{"version":8,"graph":{"viewport":{"xmin":-3.9540036239838248,"ymin":-12.048092504150903,"xmax":26.618609928229155,"ymax":10.82485013929634}},"randomSeed":"0cf62cc75178599da0cea10253e9f41a","expressions":{"list":[{"type":"simulation","id":"2","isPlaying":true,"clickableInfo":{"rules":[{"id":"1","expression":"\\left\\{7\\le S\\left[S\\left[1\\right]\\right]<8:A,0\\right\\}","assignment":"A"},{"id":"2","assignment":"S","expression":"U\\left(S\\right)"}]},"fps":"10"},{"type":"text","id":"23","text":"First element is instruction pointer"},{"type":"expression","id":"3","color":"#2d70b3","latex":"S=\\left[2,7,1.75,-3.4,8.666666666666666,1.1666666666666667\\right]"},{"type":"expression","id":"40","color":"#000000","latex":"0\\le y\\le S\\left[x+1.5\\right]"},{"type":"expression","id":"46","color":"#000000","latex":"0\\ge y\\ge S\\left[x+1.5\\right]"},{"type":"folder","id":"100","title":"Input","collapsed":true},{"type":"expression","id":"77","folderId":"100","color":"#2d70b3","latex":"C=-3.4","slider":{"step":"0.1"}},{"type":"expression","id":"80","folderId":"100","color":"#2d70b3","latex":"A=0"},{"type":"expression","id":"78","folderId":"100","color":"#388c46","latex":"\\left(0,C\\right)","showLabel":true,"label":"Input: ${C}","dragMode":"Y","labelOrientation":"above","extendedLabelOrientation":"above"},{"type":"expression","id":"79","folderId":"100","color":"#c74440","latex":"\\left(0,-1\\right)","showLabel":true,"label":"Send input","dragMode":"NONE","labelOrientation":"right","clickableInfo":{"enabled":true,"rules":[{"id":"1","expression":"\\frac{2}{3}","assignment":"A"}]},"extendedLabelOrientation":"right"},{"type":"text","id":"27","text":"Jump after each instruction is based on the remainder, such that 1/2 => 0, 1/3 => -1, 1/4 => -2, 2/3 => +1, 3/4 => +2, etc."},{"type":"expression","id":"48","color":"#388c46","latex":"j_{r}\\left(x\\right)=\\left\\{0\\le x<0.5:-\\frac{1}{x}+2,0.5\\le x\\le1:-\\frac{1}{x-1}-2\\right\\}\\left\\{0\\le x\\le1\\right\\}","hidden":true},{"type":"expression","id":"59","color":"#2d70b3","latex":"j_{i}\\left(x\\right)=\\left\\{x<0:\\frac{1}{2-x},x\\ge0:-\\frac{1}{x+2}+1\\right\\}","hidden":true},{"type":"expression","id":"43","color":"#388c46","latex":"h_{iz}\\left(x\\right)=\\left\\{x=0:\\frac{1}{2},x\\right\\}","hidden":true},{"type":"expression","id":"39","color":"#6042a6","latex":"U\\left(s\\right)=\\operatorname{join}\\left(s\\left[1\\right]+\\operatorname{round}\\left(j_{r}\\left(h_{iz}\\left(\\operatorname{mod}\\left(s\\left[s\\left[1\\right]\\right],1\\right)\\right)\\right)\\right),I\\left(s\\right)\\left[2...\\right]\\right)"},{"type":"text","id":"8","text":"Instructions:"},{"type":"expression","id":"30","color":"#000000","latex":"I\\left(s\\right)=\\left\\{1\\le s\\left[s\\left[1\\right]\\right]<5:I_{0}\\left(s\\right),5\\le s\\left[s\\left[1\\right]\\right]<9:I_{4}\\left(s\\right)\\right\\}"},{"type":"folder","id":"98","title":"Microcode","collapsed":true},{"type":"expression","id":"90","folderId":"98","color":"#6042a6","latex":"I_{0}\\left(s\\right)=\\left\\{1\\le s\\left[s\\left[1\\right]\\right]<2:F_{h}\\left(s\\right),2\\le s\\left[s\\left[1\\right]\\right]<3:F_{a}\\left(s\\right),3\\le s\\left[s\\left[1\\right]\\right]<4:F_{s}\\left(s\\right),4\\le s\\left[s\\left[1\\right]\\right]<5:F_{u}\\left(s\\right)\\right\\}"},{"type":"expression","id":"91","folderId":"98","color":"#000000","latex":"I_{4}\\left(s\\right)=\\left\\{5\\le s\\left[s\\left[1\\right]\\right]<6:F_{c}\\left(s\\right),6\\le s\\left[s\\left[1\\right]\\right]<7:F_{d}\\left(s\\right),7\\le s\\left[s\\left[1\\right]\\right]<8:F_{w}\\left(s\\right),8\\le s\\left[s\\left[1\\right]\\right]<9:F_{r}\\left(s\\right)\\right\\}"},{"type":"text","id":"10","folderId":"98","text":"1: (h)alt/nop"},{"type":"expression","id":"31","folderId":"98","color":"#c74440","latex":"F_{h}\\left(s\\right)=s","hidden":true},{"type":"text","id":"13","folderId":"98","text":"2: (a)dd together previous cell and second-previous cell, store in previous cell"},{"type":"expression","id":"32","folderId":"98","color":"#2d70b3","latex":"F_{a}\\left(s\\right)=\\operatorname{join}\\left(\\operatorname{join}\\left(s\\left[1...\\left(s\\left[1\\right]-2\\right)\\right],s\\left[s\\left[1\\right]-1\\right]+s\\left[s\\left[1\\right]-2\\right]\\right),s\\left[s\\left[1\\right]...\\right]\\right)"},{"type":"text","id":"15","folderId":"98","text":"3: (s)wap previous cell and second-previous cell"},{"type":"expression","id":"35","folderId":"98","color":"#000000","latex":"F_{s}\\left(s\\right)=\\operatorname{join}\\left(\\operatorname{join}\\left(s\\left[1...\\left(s\\left[1\\right]-3\\right)\\right],s\\left[s\\left[1\\right]-1\\right]\\right),\\operatorname{join}\\left(s\\left[s\\left[1\\right]-2\\right],s\\left[s\\left[1\\right]...\\right]\\right)\\right)"},{"type":"text","id":"17","folderId":"98","text":"4: (u)nconditional relative jump, quantified by previous cell"},{"type":"expression","id":"45","folderId":"98","color":"#000000","latex":"F_{u}\\left(s\\right)=\\operatorname{join}\\left(s\\left[1...\\left(s\\left[1\\right]-1\\right)\\right],\\operatorname{join}\\left(4+j_{i}\\left(s\\left[s\\left[1\\right]-1\\right]\\right),s\\left[s\\left[1\\right]+1...\\right]\\right)\\right)"},{"type":"text","id":"19","folderId":"98","text":"5: (c)onditional jump, quantified by previous cell and conditioned on third-previous cell being greater than 0 (otherwise quantified by second-previous cell)"},{"type":"expression","id":"65","folderId":"98","color":"#2d70b3","latex":"F_{c}\\left(s\\right)=\\operatorname{join}\\left(s\\left[1...\\left(s\\left[1\\right]-1\\right)\\right],\\operatorname{join}\\left(5+j_{i}\\left(s\\left[s\\left[1\\right]-\\left\\{s\\left[s\\left[1\\right]-3\\right]>0:1,2\\right\\}\\right]\\right),s\\left[s\\left[1\\right]+1...\\right]\\right)\\right)"},{"type":"text","id":"67","folderId":"98","text":"6: (d)uplicate cell, indexed by second-previous cell, into cell indexed by previous cell"},{"type":"expression","id":"68","folderId":"98","color":"#6042a6","latex":"F_{d}\\left(s\\right)=\\operatorname{join}\\left(s\\left[1...\\left(s\\left[s\\left[1\\right]-1\\right]-1\\right)\\right],\\operatorname{join}\\left(s\\left[s\\left[s\\left[1\\right]-2\\right]\\right],s\\left[\\left(s\\left[s\\left[1\\right]-1\\right]+1\\right)...\\right]\\right)\\right)"},{"type":"text","id":"84","folderId":"98","text":"7: (w)ait for input to be sent"},{"type":"expression","id":"85","folderId":"98","color":"#000000","latex":"F_{w}\\left(s\\right)=\\operatorname{join}\\left(s\\left[1...\\left(s\\left[1\\right]-1\\right)\\right],\\operatorname{join}\\left(7+A,s\\left[\\left(s\\left[1\\right]+1\\right)...\\right]\\right)\\right)"},{"type":"text","id":"88","folderId":"98","text":"8: (r)ead input into previous cell"},{"type":"expression","id":"89","folderId":"98","color":"#388c46","latex":"F_{r}\\left(s\\right)=\\operatorname{join}\\left(s\\left[1...\\left(s\\left[1\\right]-2\\right)\\right],\\operatorname{join}\\left(C,s\\left[s\\left[1\\right]...\\right]\\right)\\right)"},{"type":"folder","id":"96","title":"Saved programs","collapsed":true},{"type":"text","id":"58","folderId":"96","text":"Accumulator: repeatedly increment cell 3"},{"type":"expression","id":"56","folderId":"96","color":"#000000","latex":"P_{a}=\\left[4,1,1,2.75,-2,4\\right]"},{"type":"text","id":"62","folderId":"96","text":"Fibonacci: iterate through the Fibonacci numbers in cells 2 and 3"},{"type":"expression","id":"63","folderId":"96","color":"#000000","latex":"P_{f}=\\left[4,1,1,2+\\frac{3}{4},3+\\frac{3}{4},3+\\frac{3}{4},-4,4\\right]"},{"type":"text","id":"70","folderId":"96","text":"Limited Fibonacci: iterate through the Fibonacci numbers in cells 2 and 3, until cell 3 exceeds 100"},{"type":"expression","id":"71","folderId":"96","color":"#c74440","latex":"P_{l}=\\left[4,1,1,2+\\frac{3}{4},3+\\frac{3}{4},3+\\frac{4}{5},3,11,6+\\frac{4}{5},-100,0,2+\\frac{4}{5},11,16,6+\\frac{5}{6},0,-15,0,5\\right]"},{"type":"text","id":"93","folderId":"96","text":"Input loop: repeatedly wait for input and read it in to cell 4"},{"type":"expression","id":"94","folderId":"96","color":"#2d70b3","latex":"P_{i}=\\left[2,7,1+\\frac{3}{4},0,8+\\frac{2}{3},1+\\frac{1}{6}\\right]"}]}}