def comp_graph_embed(): output = ADgraph.draw_graph2(out_num[visfunc], G[visfunc], edge_labs[visfunc], pos[visfunc], labs[visfunc]) print('entered function') #output = io.BytesIO() #FigureCanvasSVG(fig).print_svg(output) return Response(output.getvalue(), mimetype='image/svg+xml')
def rev_dynamic(): global curr_idx if len(rev_dyn_set) == 0: out = ADgraph.draw_graph_rev2(out_num[visfunc], G[visfunc], edge_labs[visfunc], pos[visfunc], labs[visfunc]) return Response(out.getvalue(), mimetype='image/svg+xml') if curr_idx < 0: #global curr_idx curr_idx = 0 if curr_idx > len(rev_dyn_set) - 1: #global curr_idx curr_idx = len(rev_dyn_set) - 1 output = rev_dyn_set[ curr_idx] #ADgraph.draw_graph_rev2(out_num[visfunc], G[visfunc], edge_labs[visfunc], pos[visfunc], labs[visfunc]) return Response(output.getvalue(), mimetype='image/svg+xml')
def build_function(): global out_num out_num = [None] * master_outs for i in range(master_outs): if master_ins == 1: out_num[i] = function_output[i](x[i]) if master_ins == 2: out_num[i] = function_output[i](x[i], y[i]) if master_ins == 3: out_num[i] = function_output[i](x[i], y[i], z[i]) if master_ins == 4: out_num[i] = function_output[i](x[i], y[i], z[i], u[i]) if master_ins == 5: out_num[i] = function_output[i](x[i], y[i], z[i], u[i], v[i]) global disp_val, disp_der disp_val = '[' disp_der = '[' for out in out_num: #disp_val = str(np.round(out.val, 2)) #disp_der = str(np.round(out.der, 2)) try: disp_val += str(np.round(out.val, 2)) disp_der += str(np.round(out.der, 2)) except: disp_val += str(np.round(out, 2)) disp_der + +str([0] * master_ins) disp_val += ',\n' disp_der += ',\n' disp_val = disp_val[:-2] + ']' disp_der = disp_der[:-2] + ']' global G, edge_labs, pos, labs G = [None] * master_outs edge_labs = [None] * master_outs pos = [None] * master_outs labs = [None] * master_outs for i, out in enumerate(out_num): try: G[i], edge_labs[i], pos[i], labs[i] = ADgraph.get_graph_setup(out) except AttributeError: pass
def graphwindow(): global show_table global visfunc errors = "" if request.method == "POST": action = request.form["action"] if request.form["action"] == "Set Input Values": show_table = False global varlist varlist = [] try: global x x = [None] * master_outs for i in range(master_outs): x[i] = ADnum(float(request.form["x"]), ins=master_ins, ind=0) var_strs['x'] = request.form["x"] varlist.append(x) if master_ins > 1: global y y = [None] * master_outs for i in range(master_outs): y[i] = ADnum(float(request.form["y"]), ins=master_ins, ind=1) var_strs['y'] = request.form["y"] varlist.append(y) if master_ins > 2: global z z = [None] * master_outs for i in range(master_outs): z[i] = ADnum(float(request.form["z"]), ins=master_ins, ind=2) var_strs['z'] = request.form['z'] varlist.append(z) if master_ins > 3: global u u = [None] * master_outs for i in range(master_outs): u[i] = ADnum(float(request.form["u"]), ins=master_ins, ind=3) var_strs['u'] = request.form["u"] varlist.append(u) if master_ins > 4: global v v = [None] * master_outs for i in range(master_outs): v[i] = ADnum(float(request.form["v"]), ins=master_ins, ind=4) var_strs['v'] = request.form["v"] varlist.append(v) build_function() return render_template('graph2.html', ins=master_ins, outs=master_outs, errors=errors, var_strs=var_strs, flabels=flabels, func_content=func_content, full=True, val=disp_val, der=disp_der, show_table=False, func_select=False) except: errors += "Please enter numeric values for all of the inputs." else: global curr_idx global rev_dyn_set if request.form["action"] == "f1": visfunc = 0 curr_idx = 0 rev_dyn_set = [] if request.form["action"] == "f2": visfunc = 1 curr_idx = 0 rev_dyn_set = [] if request.form["action"] == "f3": visfunc = 2 curr_idx = 0 rev_dyn_set = [] table = get_table() if request.form["action"][0] == 'd': curr_idx = 0 action = request.form["action"] i = int(action[-2]) var = varlist[int(action[-1])] rev_dyn_set = ADgraph.get_rev_dynamic_outs( out_num[i], var[i].revder(out_num[i])[1], G[i], edge_labs[i], pos[i], labs[i], var[i].revder(out_num[i])[0]) if request.form["action"] == "prev": curr_idx = curr_idx - 1 if request.form["action"] == "next": curr_idx = curr_idx + 1 return render_template('graph2.html', visfunc=visfunc, ins=master_ins, outs=master_outs, errors=errors, var_strs=var_strs, flabels=flabels, func_content=func_content, full=True, val=disp_val, der=disp_der, func_select=True, table=table) #if action[0]=="g": #if request.form["action"]=="Computational Graph": # comp_graph(int(action[-1])) # if show_table: # df = ADgraph.gen_table(out_num[int(action[-1])]) # table = df.to_html(index=False) #ADgraph.draw_graph2(out_num[0], G[0], edge_labs[0], pos[0], labs[0]) #else: # table = 0 #return render_template('graph.html', ins=master_ins, outs=master_outs, errors=errors, var_strs=var_strs, flabels=flabels, func_content=func_content, full=True, val=disp_val, der=disp_der, show_table=show_table, tables=table) #comp_graph(int(action[-1])) #if action[0]=="t": # df = ADgraph.gen_table(out_num[int(action[-1])]) # table = df.to_html(index=False) # show_table = True #return render_template('graph.html', ins=master_ins, outs=master_outs, errors=errors, var_strs=var_strs, flabels=flabels, func_content=func_content, full=True, val=disp_val, der=disp_der, show_table = show_table, tables=table) #if action[0]=='r': #if request.form["action"]=="Reverse Graph": # rev_graph(int(action[-1])) #ADgraph.draw_graph_rev2(out_num[0], G[0], edge_labs[0], pos[0], labs[0]) # return render_template('graph.html', ins=master_ins, outs=master_outs, errors=errors, var_strs=var_strs, flabels=flabels, func_content=func_content, full=True, val=disp_val, der=disp_der, show_table=show_table) #if action[0]=='d': #if request.form["action"]=="Rev Dynamic": # rev_dynamic(int(action[-2]), varlist[int(action[-1])]) #ADgraph.draw_graph_rev_dynamic(out_num[0], x[0].revder(out_num[0])[1], G[0], edge_labs[0], pos[0], labs[0], x[0].revder(out_num[0])[0]) #return render_template('graph.html', ins=master_ins, outs=master_outs, errors=errors, var_strs=var_strs, flabels=flabels, func_content=func_content, full=True, val=disp_val, der=disp_der, show_table=show_table) return render_template('graph2.html', ins=master_ins, outs=master_outs, errors=errors, var_strs=var_strs, flabels=flabels, func_content=func_content, full=False, show_table=False, func_select=False)
def rev_dynamic(i, var): ADgraph.draw_graph_rev_dynamic(out_num[i], var[i].revder(out_num[i])[1], G[i], edge_labs[i], pos[i], labs[i], var[i].revder(out_num[i])[0])
def rev_graph(i): ADgraph.draw_graph_rev2(out_num[i], G[i], edge_labs[i], pos[i], labs[i])
def comp_graph(i): ADgraph.draw_graph2(out_num[i], G[i], edge_labs[i], pos[i], labs[i])
def get_table(): df = ADgraph.gen_table(out_num[visfunc]) return df.to_html(index=False)
def rev_graph_embed(): output = ADgraph.draw_graph_rev2(out_num[visfunc], G[visfunc], edge_labs[visfunc], pos[visfunc], labs[visfunc]) return Response(output.getvalue(), mimetype='image/svg+xml')
def graphwindow(): global show_table errors = "" if request.method == "POST": action = request.form["action"] if request.form["action"] == "Set Input Values": show_table = False global varlist varlist = [] try: global x x = [ADnum(float(request.form["x"]), ins=master_ins, ind=0) ] * master_outs var_strs['x'] = request.form["x"] varlist.append(x) if master_ins > 1: global y y = [ ADnum(float(request.form["y"]), ins=master_ins, ind=1) ] * master_outs var_strs['y'] = request.form["y"] varlist.append(y) if master_ins > 2: global z z = [ ADnum(float(request.form["z"]), ins=master_ins, ind=2) ] * master_outs var_strs['z'] = request.form['z'] varlist.append(z) if master_ins > 3: global u u = [ ADnum(float(request.form["u"]), ins=master_ins, ind=3) ] * master_outs var_strs['u'] = request.form["u"] varlist.append(u) if master_ins > 4: global v v = [ ADnum(float(request.form["v"]), ins=master_ins, ind=4) ] * master_outs var_strs['v'] = request.form["v"] varlist.append(v) build_function() return render_template('graph.html', ins=master_ins, outs=master_outs, errors=errors, var_strs=var_strs, flabels=flabels, func_content=func_content, full=True, val=disp_val, der=disp_der, show_table=False) except: errors += "Please enter numeric values for all of the inputs." if action[0] == "g": #if request.form["action"]=="Computational Graph": comp_graph(int(action[-1])) if show_table: df = ADgraph.gen_table(out_num[int(action[-1])]) table = df.to_html(index=False) #ADgraph.draw_graph2(out_num[0], G[0], edge_labs[0], pos[0], labs[0]) else: table = 0 return render_template('graph.html', ins=master_ins, outs=master_outs, errors=errors, var_strs=var_strs, flabels=flabels, func_content=func_content, full=True, val=disp_val, der=disp_der, show_table=show_table, tables=table) #comp_graph(int(action[-1])) if action[0] == "t": df = ADgraph.gen_table(out_num[int(action[-1])]) table = df.to_html(index=False) show_table = True return render_template('graph.html', ins=master_ins, outs=master_outs, errors=errors, var_strs=var_strs, flabels=flabels, func_content=func_content, full=True, val=disp_val, der=disp_der, show_table=show_table, tables=table) if action[0] == 'r': #if request.form["action"]=="Reverse Graph": rev_graph(int(action[-1])) #ADgraph.draw_graph_rev2(out_num[0], G[0], edge_labs[0], pos[0], labs[0]) return render_template('graph.html', ins=master_ins, outs=master_outs, errors=errors, var_strs=var_strs, flabels=flabels, func_content=func_content, full=True, val=disp_val, der=disp_der, show_table=show_table) if action[0] == 'd': #if request.form["action"]=="Rev Dynamic": rev_dynamic(int(action[-2]), varlist[int(action[-1])]) #ADgraph.draw_graph_rev_dynamic(out_num[0], x[0].revder(out_num[0])[1], G[0], edge_labs[0], pos[0], labs[0], x[0].revder(out_num[0])[0]) return render_template('graph.html', ins=master_ins, outs=master_outs, errors=errors, var_strs=var_strs, flabels=flabels, func_content=func_content, full=True, val=disp_val, der=disp_der, show_table=show_table) return render_template('graph.html', ins=master_ins, outs=master_outs, errors=errors, var_strs=var_strs, flabels=flabels, func_content=func_content, full=False, show_table=False)