import tft_ir_api as IR const_r = IR.FConst(4.0) const_k = IR.FConst(1.11) var_x = IR.RealVE("x", 0, (0.1 - 1e-06), (0.3 + 1e-06)) temp0 = IR.BE("*", 1, const_r, var_x) temp1 = IR.BE("/", 2, var_x, const_k) temp2 = IR.BE("+", 3, IR.FConst(1.0), temp1) rel = IR.BE("/", 4, temp0, temp2) IR.TuneExpr(rel)
b = list() for i in range(n): b.append(IR.RealVE("b{}".format(i), 1, low, high)) x = list() for i in range(n): x.append(IR.FConst(1.0)) g = 2 #j k = 0 #j while convergence not reached: # while loop for k in range(unrolls): # replacement for while loop for i in range(n): # i loop sigma = IR.FConst(0.0) for j in range(n): # j loop if j != i: sigma = IR.BE("+", g, sigma, IR.BE("*", g, A[i][j], x[j])) g += 1 # end j loop x[i] = IR.BE("/", g, IR.BE("-", g, b[i], sigma), A[i][j]) g += 1 # end i loop #j check convergence #j k = k+1 # end while loop print(x[0]) rs = x[0] IR.TuneExpr(rs)
import tft_ir_api as IR var_u = IR.RealVE("u", 0, (-100.0 - 0.0000001), (100.0 + 0.0000001)) var_v = IR.RealVE("v", 1, (20.0 - 0.000000001), (20000.0 + 0.000000001)) var_T = IR.RealVE("T", 2, (-30.0 - 0.000001), (50.0 + 0.000001)) t1 = IR.BE("+", 4, IR.FConst(331.4), IR.BE("*", 3, IR.FConst(0.6), var_T)) temp = IR.BE("+", 5, t1, var_u) temp = IR.BE("*", 8, temp, temp) r = IR.BE("/", 9, IR.BE("*", 7, IR.UE("-", 6, t1), var_v), temp) IR.TuneExpr(r)
gid += 1 y = IR.RealVE("y", gid, 0.01, 100.0) gid += 1 x2 = IR.BE("*", gid, x, x) gid += 1 y2 = IR.BE("*", gid, y, y) gid += 1 x2y2 = IR.BE("+", gid, x2, y2) gid += 1 sqrt_x2y2 = IR.UE("sqrt", gid, x2y2) gid += 1 sqrt_x = IR.BE("+", gid, sqrt_x2y2, x) gid += 1 two_sqrt_x = IR.BE("*", gid, IR.FConst(2.0), sqrt_x) gid += 1 sqrt_all = IR.UE("sqrt", gid, two_sqrt_x) gid += 1 half_sqrt_all = IR.BE("*", gid, IR.FConst(0.5), sqrt_all) IR.TuneExpr(half_sqrt_all)
alen = 16 vlb = -1.0 vub = 1.0 gid_data = 0 assert (alen > 0) assert (vlb < vub) assert (math.log(alen, 2) == int(math.log(alen, 2))) n_stages = int(math.log(alen, 2)) arr = [IR.RealVE("v" + str(i), gid_data, vlb, vub) for i in range(0, alen)] for i_stage in range(1, (n_stages + 1)): l_arr = len(arr) assert (l_arr % 2 == 0) l_arr = int(l_arr / 2) for i in range(0, l_arr): arr[i] = IR.BE("+", i_stage, arr[i], arr[i + l_arr]) arr = arr[0:l_arr] assert (len(arr) == 1) IR.SetGroupWeight(gid_data, 16.0) IR.TuneExpr(arr[0])