local ffi = require"ffi"
local node2 = {}
node2["id"] = ffi.cast('void*',2)
node2["delete"] = nil
node2["compute"] = nil
node2["save_str"] = nil
node2["draw"] = nil
node2["pos"] = ig.ImVec2(16,210)
node2["selected"] = ffi.new('bool[1]',false)
node2["title"] = "time"
node2["nins"] = 0
node2["nouts"] = 1
node2["input_slots"] = ffi.new("SlotInfo[?]",0,{})
node2["output_slots"] = ffi.new("SlotInfo[?]",1,{{'time',1},})
node2["delete_connection"] = nil
node2["outputs"] = {}
node2["outputs"][1] = "out2time"
node2["values"] = {}
node2["inputs"] = {}
node2["connections"] = {}
node2["connections"][1] = {}
node2["connections"][1]["output_node"] = ffi.new('void*[1]',ffi.cast('void*',2))
node2["connections"][1]["output_slot"] = ffi.new('const char*[1]',{'time'})
node2["connections"][1]["input_node"] = ffi.new('void*[1]',ffi.cast('void*',3))
node2["connections"][1]["input_slot"] = ffi.new('const char*[1]',{'lhs'})

local node3 = {}
node3["id"] = ffi.cast('void*',3)
node3["delete"] = nil
node3["compute"] = nil
node3["save_str"] = nil
node3["draw"] = nil
node3["pos"] = ig.ImVec2(22,457)
node3["selected"] = ffi.new('bool[1]',false)
node3["title"] = "multiply"
node3["nins"] = 2
node3["nouts"] = 1
node3["input_slots"] = ffi.new("SlotInfo[?]",2,{{'lhs',1},{'rhs',1},})
node3["output_slots"] = ffi.new("SlotInfo[?]",1,{{'mul',1},})
node3["delete_connection"] = nil
node3["outputs"] = {}
node3["outputs"][1] = "out3mul"
node3["values"] = {}
node3["values"][1] = ffi.new("float[?]",1,0)
node3["values"][2] = ffi.new("float[?]",1,4.1900000572205)
node3["inputs"] = {}
node3["inputs"][1] = "in3lhs"
node3["inputs"][2] = "in3rhs"
node3["connections"] = {}
node3["connections"][1] = {}
node3["connections"][1]["output_node"] = ffi.new('void*[1]',ffi.cast('void*',2))
node3["connections"][1]["output_slot"] = ffi.new('const char*[1]',{'time'})
node3["connections"][1]["input_node"] = ffi.new('void*[1]',ffi.cast('void*',3))
node3["connections"][1]["input_slot"] = ffi.new('const char*[1]',{'lhs'})
node3["connections"][2] = {}
node3["connections"][2]["output_node"] = ffi.new('void*[1]',ffi.cast('void*',3))
node3["connections"][2]["output_slot"] = ffi.new('const char*[1]',{'mul'})
node3["connections"][2]["input_node"] = ffi.new('void*[1]',ffi.cast('void*',4))
node3["connections"][2]["input_slot"] = ffi.new('const char*[1]',{'lhs'})
node3["connections"][3] = {}
node3["connections"][3]["output_node"] = ffi.new('void*[1]',ffi.cast('void*',3))
node3["connections"][3]["output_slot"] = ffi.new('const char*[1]',{'mul'})
node3["connections"][3]["input_node"] = ffi.new('void*[1]',ffi.cast('void*',5))
node3["connections"][3]["input_slot"] = ffi.new('const char*[1]',{'lhs'})

local node4 = {}
node4["id"] = ffi.cast('void*',4)
node4["delete"] = nil
node4["compute"] = nil
node4["save_str"] = nil
node4["draw"] = nil
node4["pos"] = ig.ImVec2(300,109)
node4["selected"] = ffi.new('bool[1]',false)
node4["title"] = "multiply"
node4["nins"] = 2
node4["nouts"] = 1
node4["input_slots"] = ffi.new("SlotInfo[?]",2,{{'lhs',1},{'rhs',1},})
node4["output_slots"] = ffi.new("SlotInfo[?]",1,{{'mul',1},})
node4["delete_connection"] = nil
node4["outputs"] = {}
node4["outputs"][1] = "out4mul"
node4["values"] = {}
node4["values"][1] = ffi.new("float[?]",1,0)
node4["values"][2] = ffi.new("float[?]",1,3)
node4["inputs"] = {}
node4["inputs"][1] = "in4lhs"
node4["inputs"][2] = "in4rhs"
node4["connections"] = {}
node4["connections"][1] = {}
node4["connections"][1]["output_node"] = ffi.new('void*[1]',ffi.cast('void*',3))
node4["connections"][1]["output_slot"] = ffi.new('const char*[1]',{'mul'})
node4["connections"][1]["input_node"] = ffi.new('void*[1]',ffi.cast('void*',4))
node4["connections"][1]["input_slot"] = ffi.new('const char*[1]',{'lhs'})
node4["connections"][2] = {}
node4["connections"][2]["output_node"] = ffi.new('void*[1]',ffi.cast('void*',4))
node4["connections"][2]["output_slot"] = ffi.new('const char*[1]',{'mul'})
node4["connections"][2]["input_node"] = ffi.new('void*[1]',ffi.cast('void*',9))
node4["connections"][2]["input_slot"] = ffi.new('const char*[1]',{'lhs'})

local node5 = {}
node5["id"] = ffi.cast('void*',5)
node5["delete"] = nil
node5["compute"] = nil
node5["save_str"] = nil
node5["draw"] = nil
node5["pos"] = ig.ImVec2(349,512)
node5["selected"] = ffi.new('bool[1]',false)
node5["title"] = "multiply"
node5["nins"] = 2
node5["nouts"] = 1
node5["input_slots"] = ffi.new("SlotInfo[?]",2,{{'lhs',1},{'rhs',1},})
node5["output_slots"] = ffi.new("SlotInfo[?]",1,{{'mul',1},})
node5["delete_connection"] = nil
node5["outputs"] = {}
node5["outputs"][1] = "out5mul"
node5["values"] = {}
node5["values"][1] = ffi.new("float[?]",1,0)
node5["values"][2] = ffi.new("float[?]",1,4)
node5["inputs"] = {}
node5["inputs"][1] = "in5lhs"
node5["inputs"][2] = "in5rhs"
node5["connections"] = {}
node5["connections"][1] = {}
node5["connections"][1]["output_node"] = ffi.new('void*[1]',ffi.cast('void*',3))
node5["connections"][1]["output_slot"] = ffi.new('const char*[1]',{'mul'})
node5["connections"][1]["input_node"] = ffi.new('void*[1]',ffi.cast('void*',5))
node5["connections"][1]["input_slot"] = ffi.new('const char*[1]',{'lhs'})
node5["connections"][2] = {}
node5["connections"][2]["output_node"] = ffi.new('void*[1]',ffi.cast('void*',5))
node5["connections"][2]["output_slot"] = ffi.new('const char*[1]',{'mul'})
node5["connections"][2]["input_node"] = ffi.new('void*[1]',ffi.cast('void*',7))
node5["connections"][2]["input_slot"] = ffi.new('const char*[1]',{'in'})

local node6 = {}
node6["id"] = ffi.cast('void*',6)
node6["delete"] = nil
node6["compute"] = nil
node6["save_str"] = nil
node6["draw"] = nil
node6["pos"] = ig.ImVec2(570,218)
node6["selected"] = ffi.new('bool[1]',false)
node6["title"] = "sine"
node6["nins"] = 1
node6["nouts"] = 1
node6["input_slots"] = ffi.new("SlotInfo[?]",1,{{'in',1},})
node6["output_slots"] = ffi.new("SlotInfo[?]",1,{{'out',1},})
node6["delete_connection"] = nil
node6["outputs"] = {}
node6["outputs"][1] = "out6out"
node6["values"] = {}
node6["values"][1] = ffi.new("float[?]",1,0)
node6["inputs"] = {}
node6["inputs"][1] = "in6in"
node6["connections"] = {}
node6["connections"][1] = {}
node6["connections"][1]["output_node"] = ffi.new('void*[1]',ffi.cast('void*',9))
node6["connections"][1]["output_slot"] = ffi.new('const char*[1]',{'sum'})
node6["connections"][1]["input_node"] = ffi.new('void*[1]',ffi.cast('void*',6))
node6["connections"][1]["input_slot"] = ffi.new('const char*[1]',{'in'})
node6["connections"][2] = {}
node6["connections"][2]["output_node"] = ffi.new('void*[1]',ffi.cast('void*',6))
node6["connections"][2]["output_slot"] = ffi.new('const char*[1]',{'out'})
node6["connections"][2]["input_node"] = ffi.new('void*[1]',ffi.cast('void*',8))
node6["connections"][2]["input_slot"] = ffi.new('const char*[1]',{'x'})
node6["connections"][3] = {}
node6["connections"][3]["output_node"] = ffi.new('void*[1]',ffi.cast('void*',6))
node6["connections"][3]["output_slot"] = ffi.new('const char*[1]',{'out'})
node6["connections"][3]["input_node"] = ffi.new('void*[1]',ffi.cast('void*',15))
node6["connections"][3]["input_slot"] = ffi.new('const char*[1]',{'b'})

local node7 = {}
node7["id"] = ffi.cast('void*',7)
node7["delete"] = nil
node7["compute"] = nil
node7["save_str"] = nil
node7["draw"] = nil
node7["pos"] = ig.ImVec2(597,394)
node7["selected"] = ffi.new('bool[1]',false)
node7["title"] = "sine"
node7["nins"] = 1
node7["nouts"] = 1
node7["input_slots"] = ffi.new("SlotInfo[?]",1,{{'in',1},})
node7["output_slots"] = ffi.new("SlotInfo[?]",1,{{'out',1},})
node7["delete_connection"] = nil
node7["outputs"] = {}
node7["outputs"][1] = "out7out"
node7["values"] = {}
node7["values"][1] = ffi.new("float[?]",1,0)
node7["inputs"] = {}
node7["inputs"][1] = "in7in"
node7["connections"] = {}
node7["connections"][1] = {}
node7["connections"][1]["output_node"] = ffi.new('void*[1]',ffi.cast('void*',5))
node7["connections"][1]["output_slot"] = ffi.new('const char*[1]',{'mul'})
node7["connections"][1]["input_node"] = ffi.new('void*[1]',ffi.cast('void*',7))
node7["connections"][1]["input_slot"] = ffi.new('const char*[1]',{'in'})
node7["connections"][2] = {}
node7["connections"][2]["output_node"] = ffi.new('void*[1]',ffi.cast('void*',7))
node7["connections"][2]["output_slot"] = ffi.new('const char*[1]',{'out'})
node7["connections"][2]["input_node"] = ffi.new('void*[1]',ffi.cast('void*',8))
node7["connections"][2]["input_slot"] = ffi.new('const char*[1]',{'y'})
node7["connections"][3] = {}
node7["connections"][3]["output_node"] = ffi.new('void*[1]',ffi.cast('void*',7))
node7["connections"][3]["output_slot"] = ffi.new('const char*[1]',{'out'})
node7["connections"][3]["input_node"] = ffi.new('void*[1]',ffi.cast('void*',12))
node7["connections"][3]["input_slot"] = ffi.new('const char*[1]',{'g'})

local node8 = {}
node8["id"] = ffi.cast('void*',8)
node8["delete"] = nil
node8["compute"] = nil
node8["save_str"] = nil
node8["draw"] = nil
node8["pos"] = ig.ImVec2(803,328)
node8["selected"] = ffi.new('bool[1]',false)
node8["title"] = "lisa"
node8["nins"] = 2
node8["nouts"] = 0
node8["input_slots"] = ffi.new("SlotInfo[?]",2,{{'x',1},{'y',1},})
node8["output_slots"] = ffi.new("SlotInfo[?]",0,{})
node8["inputs"] = {}
node8["inputs"][1] = "in8x"
node8["inputs"][2] = "in8y"
node8["outputs"] = {}
node8["is_root"] = true
node8["values"] = {}
node8["values"][1] = ffi.new("float[?]",1,0)
node8["values"][2] = ffi.new("float[?]",1,0)
node8["show"] = nil
node8["delete_connection"] = nil
node8["connections"] = {}
node8["connections"][1] = {}
node8["connections"][1]["output_node"] = ffi.new('void*[1]',ffi.cast('void*',7))
node8["connections"][1]["output_slot"] = ffi.new('const char*[1]',{'out'})
node8["connections"][1]["input_node"] = ffi.new('void*[1]',ffi.cast('void*',8))
node8["connections"][1]["input_slot"] = ffi.new('const char*[1]',{'y'})
node8["connections"][2] = {}
node8["connections"][2]["output_node"] = ffi.new('void*[1]',ffi.cast('void*',6))
node8["connections"][2]["output_slot"] = ffi.new('const char*[1]',{'out'})
node8["connections"][2]["input_node"] = ffi.new('void*[1]',ffi.cast('void*',8))
node8["connections"][2]["input_slot"] = ffi.new('const char*[1]',{'x'})
node8["lisamem"] = {}
node8["lisamem"][1] = {}
node8["lisamem"][1][1] = 0.90214025423788247
node8["lisamem"][1][2] = 0.5772444738325021
node8["lisamem"][2] = {}
node8["lisamem"][2][1] = 0.93925487509214867
node8["lisamem"][2][2] = 0.48537716909048145
node8["lisamem"][3] = {}
node8["lisamem"][3][1] = 0.96798493178299716
node8["lisamem"][3][2] = 0.39400546792457075
node8["lisamem"][4] = {}
node8["lisamem"][4][1] = 0.98778202059904607
node8["lisamem"][4][2] = 0.3062261812142984
node8["lisamem"][5] = {}
node8["lisamem"][5][1] = 0.99826825168445232
node8["lisamem"][5][2] = 0.2250143641092941
node8["lisamem"][6] = {}
node8["lisamem"][6][1] = 0.99885842046823348
node8["lisamem"][6][2] = 0.14713611538270732
node8["lisamem"][7] = {}
node8["lisamem"][7][1] = 0.99068903735189817
node8["lisamem"][7][2] = 0.092987133244176179
node8["lisamem"][8] = {}
node8["lisamem"][8][1] = 0.97276826513503289
node8["lisamem"][8][2] = 0.046646445900715094
node8["lisamem"][9] = {}
node8["lisamem"][9][1] = 0.94294265114102083
node8["lisamem"][9][2] = 0.013657562258157896
node8["lisamem"][10] = {}
node8["lisamem"][10][1] = 0.90674524375901044
node8["lisamem"][10][2] = 0.00062253481038210268
node8["lisamem"][11] = {}
node8["lisamem"][11][1] = 0.86278382102316487
node8["lisamem"][11][2] = 0.0045126334954387892
node8["lisamem"][12] = {}
node8["lisamem"][12][1] = 0.81189752528687742
node8["lisamem"][12][2] = 0.025196013335341605
node8["lisamem"][13] = {}
node8["lisamem"][13][1] = 0.75505768193745715
node8["lisamem"][13][2] = 0.061971663897984919
node8["lisamem"][14] = {}
node8["lisamem"][14][1] = 0.69334925858848961
node8["lisamem"][14][2] = 0.11359316825874932
node8["lisamem"][15] = {}
node8["lisamem"][15][1] = 0.62795015505243412
node8["lisamem"][15][2] = 0.17831094712466294
node8["lisamem"][16] = {}
node8["lisamem"][16][1] = 0.56010871940900842
node8["lisamem"][16][2] = 0.25393155636438847
node8["lisamem"][17] = {}
node8["lisamem"][17][1] = 0.48483677757814114
node8["lisamem"][17][2] = 0.34584176289046392
node8["lisamem"][18] = {}
node8["lisamem"][18][1] = 0.40990918643975827
node8["lisamem"][18][2] = 0.44396656492278991
node8["lisamem"][19] = {}
node8["lisamem"][19][1] = 0.34298200845059096
node8["lisamem"][19][2] = 0.53599744104104974
node8["lisamem"][20] = {}
node8["lisamem"][20][1] = 0.27905201387269396
node8["lisamem"][20][2] = 0.62680827566257546
node8["lisamem"][21] = {}
node8["lisamem"][21][1] = 0.21416036310498193
node8["lisamem"][21][2] = 0.72086999475387803
node8["lisamem"][22] = {}
node8["lisamem"][22][1] = 0.1603453211039147
node8["lisamem"][22][2] = 0.79935806294014178
node8["lisamem"][23] = {}
node8["lisamem"][23][1] = 0.10906455536991722
node8["lisamem"][23][2] = 0.87332680909439309
node8["lisamem"][24] = {}
node8["lisamem"][24][1] = 0.069831330518368318
node8["lisamem"][24][2] = 0.92797289672578098
node8["lisamem"][25] = {}
node8["lisamem"][25][1] = 0.038809230949388263
node8["lisamem"][25][2] = 0.96811393404263946
node8["lisamem"][26] = {}
node8["lisamem"][26][1] = 0.016590411238986025
node8["lisamem"][26][2] = 0.99238944291559883
node8["lisamem"][27] = {}
node8["lisamem"][27][1] = 0.0035989876122989872
node8["lisamem"][27][2] = 0.99997666685632303
node8["lisamem"][28] = {}
node8["lisamem"][28][1] = 0.00046983585596355182
node8["lisamem"][28][2] = 0.9871120328468731
node8["lisamem"][29] = {}
node8["lisamem"][29][1] = 0.0082242457750622555
node8["lisamem"][29][2] = 0.95818072058496528
node8["lisamem"][30] = {}
node8["lisamem"][30][1] = 0.025365746422401914
node8["lisamem"][30][2] = 0.91372054082682785

local node9 = {}
node9["id"] = ffi.cast('void*',9)
node9["delete"] = nil
node9["compute"] = nil
node9["save_str"] = nil
node9["draw"] = nil
node9["pos"] = ig.ImVec2(360,314)
node9["selected"] = ffi.new('bool[1]',false)
node9["title"] = "add"
node9["nins"] = 2
node9["nouts"] = 1
node9["input_slots"] = ffi.new("SlotInfo[?]",2,{{'lhs',1},{'rhs',1},})
node9["output_slots"] = ffi.new("SlotInfo[?]",1,{{'sum',1},})
node9["delete_connection"] = nil
node9["outputs"] = {}
node9["outputs"][1] = "out9sum"
node9["values"] = {}
node9["values"][1] = ffi.new("float[?]",1,0)
node9["values"][2] = ffi.new("float[?]",1,0.51999998092651)
node9["inputs"] = {}
node9["inputs"][1] = "in9lhs"
node9["inputs"][2] = "in9rhs"
node9["connections"] = {}
node9["connections"][1] = {}
node9["connections"][1]["output_node"] = ffi.new('void*[1]',ffi.cast('void*',4))
node9["connections"][1]["output_slot"] = ffi.new('const char*[1]',{'mul'})
node9["connections"][1]["input_node"] = ffi.new('void*[1]',ffi.cast('void*',9))
node9["connections"][1]["input_slot"] = ffi.new('const char*[1]',{'lhs'})
node9["connections"][2] = {}
node9["connections"][2]["output_node"] = ffi.new('void*[1]',ffi.cast('void*',9))
node9["connections"][2]["output_slot"] = ffi.new('const char*[1]',{'sum'})
node9["connections"][2]["input_node"] = ffi.new('void*[1]',ffi.cast('void*',6))
node9["connections"][2]["input_slot"] = ffi.new('const char*[1]',{'in'})

local node12 = {}
node12["id"] = ffi.cast('void*',12)
node12["delete"] = nil
node12["compute"] = nil
node12["save_str"] = nil
node12["draw"] = nil
node12["pos"] = ig.ImVec2(632,514)
node12["selected"] = ffi.new('bool[1]',false)
node12["title"] = "output"
node12["nins"] = 3
node12["nouts"] = 0
node12["input_slots"] = ffi.new("SlotInfo[?]",3,{{'r',1},{'g',1},{'b',1},})
node12["output_slots"] = ffi.new("SlotInfo[?]",0,{})
node12["inputs"] = {}
node12["inputs"][1] = "in12r"
node12["inputs"][2] = "in12g"
node12["inputs"][3] = "in12b"
node12["outputs"] = {}
node12["is_root"] = true
node12["values"] = {}
node12["values"][1] = ffi.new("float[?]",1,0)
node12["values"][2] = ffi.new("float[?]",1,0)
node12["values"][3] = ffi.new("float[?]",1,0)
node12["show"] = nil
node12["delete_connection"] = nil
node12["connections"] = {}
node12["connections"][1] = {}
node12["connections"][1]["output_node"] = ffi.new('void*[1]',ffi.cast('void*',7))
node12["connections"][1]["output_slot"] = ffi.new('const char*[1]',{'out'})
node12["connections"][1]["input_node"] = ffi.new('void*[1]',ffi.cast('void*',12))
node12["connections"][1]["input_slot"] = ffi.new('const char*[1]',{'g'})

local node15 = {}
node15["id"] = ffi.cast('void*',15)
node15["delete"] = nil
node15["compute"] = nil
node15["save_str"] = nil
node15["draw"] = nil
node15["pos"] = ig.ImVec2(828,66)
node15["selected"] = ffi.new('bool[1]',false)
node15["title"] = "output"
node15["nins"] = 3
node15["nouts"] = 0
node15["input_slots"] = ffi.new("SlotInfo[?]",3,{{'r',1},{'g',1},{'b',1},})
node15["output_slots"] = ffi.new("SlotInfo[?]",0,{})
node15["inputs"] = {}
node15["inputs"][1] = "in15r"
node15["inputs"][2] = "in15g"
node15["inputs"][3] = "in15b"
node15["outputs"] = {}
node15["is_root"] = true
node15["values"] = {}
node15["values"][1] = ffi.new("float[?]",1,0)
node15["values"][2] = ffi.new("float[?]",1,0)
node15["values"][3] = ffi.new("float[?]",1,0)
node15["show"] = nil
node15["delete_connection"] = nil
node15["connections"] = {}
node15["connections"][1] = {}
node15["connections"][1]["output_node"] = ffi.new('void*[1]',ffi.cast('void*',6))
node15["connections"][1]["output_slot"] = ffi.new('const char*[1]',{'out'})
node15["connections"][1]["input_node"] = ffi.new('void*[1]',ffi.cast('void*',15))
node15["connections"][1]["input_slot"] = ffi.new('const char*[1]',{'b'})

local root_nodes = {}
root_nodes[1] = 8
root_nodes[2] = 12
root_nodes[3] = 15
return {nodes = {[2]=node2,[3]=node3,[4]=node4,[5]=node5,[6]=node6,[7]=node7,[8]=node8,[9]=node9,[12]=node12,[15]=node15,},name='compute_graph_r',current_id = 15,root_nodes = root_nodes}