-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbinarytrees-benchmark-sdl.eez-project
6197 lines (6197 loc) · 228 KB
/
binarytrees-benchmark-sdl.eez-project
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"objID": "6666cd76-f969-5646-9e7b-e39d750cc7d9",
"settings": {
"objID": "e007d988-9fba-797d-72e9-efc33ca6d05c",
"general": {
"objID": "fd434352-2277-c4a8-e87e-e96cfcbf2305",
"projectVersion": "v3",
"projectType": "firmware",
"extensions": [],
"imports": [],
"flowSupport": true,
"displayWidth": 480,
"displayHeight": 272,
"description": "This example is running a binary-trees benchmark on SDL platform",
"image": "data:image/png;base64,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v/++WvcBAwYA5t+YnTNnDjqdrkMZr7/+OhUVFURGRnLmzJkO6Y7qa70fcnNzCQkJobGxkb/+9a9UV1c73H8W//nPfzAYDOj1evbt29dpAHD32FnqfuLECXX/7Ny5k48++sjp+l09js7KBjh27Bjbtm3DZDLxyCOP4Ofn5/Q3e52xDuCtra02aZbPSmBgoDrZKjMzk8rKSk6ePAnAlClT1Pzu7ldxbZMALBz605/+xNq1a/n888/5zW9+w86dO9W0rVu3YjKZmDlzpktlLV68WO3SHjt2LM8880yH1sNDDz3ESy+9xL333ktRUZHavbdy5UoefvhhwNzFBzhNz8vLQ1EUUlNTWblyJYsWLaKlpYXa2toOdSsoKKCsrAyAF198kYceeghAbfUuXryYsWPHAjBixAieeeaZDsGvqKhILfu5557j6aef7pDuqL7WnnrqKV555RU0Gg0mk4n8/HyX9t+zzz7Liy++qP5tacG15+6xKyoq4vLlywA8//zz3H///YB5HztbvyvH0ZWy29raWLVqFQCTJ09WA9+2bdvYsmULFRUVLm1LewkJCeqEuj179tDY2MjRo0c75PvlL39JUFAQ69ev5/7776epqYmFCxeqv6cM7u9XcW2TACwcsoyfWbpT169fD5hbaps3bwbw6MnG+gfcrU+o77zzjtq1V1NT41J6UlISAPn5+axfv54HH3yQd999l4iIiA7rtf7929DQULXLsbq62uW6W+e1tw5n9bWm0WgICAhQu5c7C6TtabXaDi3z9rpy7KzrHhISwoABA0hLS+twa5W99btzHB2VvWHDBoqLi/H19bUZz3X0m72uCAsL46abbgLg3Xff5e6777YbgDdu3EhTUxORkZHqurKystQLt576Toj+S8aAhUNz5swhJCSEGTNmsGfPHgoKCjAajRw9epTLly+TnJzMoEGD+Pbbbz2+buuu4m3btqmvLRO0nKUPGzaMO+64gy+++IJ3332XqqoqfvrTnzq9fUij0bh0i5Gj+tpb3ll9r5YjR464fezab9uECRPUIOTs4sCd49i+bOsLoz179gDmLuOoqCj1/c7GuN2xbNkyhg8fzrfffktsbCzNzc188sknanplZSXr1q0D4IUXXiA1NZX/+Z//Yf/+/axZs4Zly5Z1ab+Ka5sEYOES67HatrY29aq/oKCABQsWqCfTy5cvs2DB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mFdUVBSefPJJuLm5dRh8Y4uj/B0dt5Ved+remWt2pUzBwcHQ6/Xw8vJCXFycGNHuSh3ZExERgSVLlsDHxwd5eXkYOHAg3nrrLYSGhto8X6lUYt26dQgKCsLVq1fR1NSE6dOnIzo62mFezrSVK2lPnz4dgHkxEqPRiIMHDyI7O1sM3HJVbW2tGBB28+ZNHD16VPwqKSkR55WVlQEwj/S2NRaCHl6KaTOnPZwL3FKv0wzTIG13Wq/nc+jQIfzlL39BdHS0mMf6j3/8A9u2bcNvfvMbzJs3r9fLQF1XVVUl1hjesmWL1RQYIrIv9vVY6CqtX0WwC5p63bVr1wCYg640X/LChQsAzF2XREQ/RAzA1Otefvll1NbWori4GKdPnxbvgOfOndvlqUhERI86BmDqdY899hiSkpLkLgZ1UUBAAI4cOSJ3MYi+dzgIi4iISAYMwERERDJgACYiIpIBAzAREZEMGICJiIhkwABMREQkAwZgIiIiGTAAExERyYABmIiISAYMwERERDJgACYiIpIBAzAREZEMGICJiIhkwABMREQkAwZgIiIiGTAAExERyYABmIiISAYMwERERDJgACYiIpIBAzAREZEMGICJiIhkwABMREQkAwZgIiIiGTAAExERyYABmIiISAYMwERERDJgACYiIpIBAzAREZEMGICJiIhkwABMREQkAwZgIiIiGTAAExERyYABmIiISAYMwERERDJgACYiIpIBAzAREZEMGICJiIhkwABMREQkAwZgIiIiGTAAExERyYABmIiISAYMwERERDJgACYiIpIBAzAREZEMGICJiIhkwABMREQkAwZgIiIiGTAAExERyYABmIiISAYMwERERDJgACYiIpIBAzAREZEMGICJiIhkwABMREQkAwZgIiIiGTAAExERyYABmIiISAYMwERERDJgACYiIpIBAzAREZEMGICJiIhkwABMREQkAwZgIiIiGbjLXQCSV+zrsXIXgYjoB4kB+AdMV6mTuwhERD9Y7IImIiKSAQMwERGRDBiAiYiIZMAATEREJIP/A3+eVjnw5U6lAAAAAElFTkSuQmCC",
"keywords": "benchmark binarytrees SDL",
"targetPlatform": "Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. It is used by video playback software, emulators, and popular games including Valve's award winning catalog and many Humble Bundle games.\n\nSDL officially supports Windows, macOS, Linux, iOS, and Android. Support for other platforms may be found in the source code.\n\nSDL is written in C, works natively with C++, and there are bindings available for several other languages, including C# and Python.\n\nSDL 2.0 is distributed under the zlib license. This license allows you to use SDL freely in any software.",
"targetPlatformLink": "https://www.libsdl.org/",
"resourceFiles": []
},
"build": {
"objID": "72794a43-a0fc-13c2-7eb5-67dd952141a4",
"configurations": [
{
"objID": "d6db62b3-646f-680e-91e4-9d27cb07462d",
"name": "default"
}
],
"files": [
{
"objID": "aff564fb-7760-21b3-77eb-25a9ffc7ca8e",
"fileName": "src/gui/document.h",
"template": "#pragma once\n\n#define EEZ_GUI_DOCUMENT_API_VERSION 1\n\n#include <eez/gui/data.h>\n#include <eez/gui/widget.h>\n\nnamespace eez {\nnamespace gui {\n\n//${eez-studio DATA_ENUM}\n\n//${eez-studio DATA_FUNCS_DECL}\n\n//${eez-studio DATA_ARRAY_DECL}\n\n//${eez-studio ACTIONS_ENUM}\n\n//${eez-studio ACTIONS_FUNCS_DECL}\n\n//${eez-studio ACTIONS_ARRAY_DECL}\n\n//${eez-studio GUI_FONTS_ENUM}\n\n//${eez-studio GUI_BITMAPS_ENUM}\n\n//${eez-studio GUI_STYLES_ENUM}\n\n//${eez-studio GUI_THEMES_ENUM}\n\n//${eez-studio GUI_COLORS_ENUM}\n\n//${eez-studio GUI_PAGES_ENUM}\n\n//${eez-studio GUI_ASSETS_DECL_COMPRESSED}\n\n} // namespace gui\n} // namespace eez\n"
},
{
"objID": "1cc9aae6-a588-d56b-2532-8bc0f671da17",
"fileName": "src/gui/document.cpp",
"template": "#include \"document.h\"\n\nnamespace eez {\nnamespace gui {\n\n//${eez-studio DATA_ARRAY_DEF}\n\n//${eez-studio ACTIONS_ARRAY_DEF}\n\n//${eez-studio GUI_ASSETS_DEF_COMPRESSED}\n\n} // namespace gui\n} // namespace eez\n"
}
],
"destinationFolder": ".",
"lvglInclude": "lvgl/lvgl.h"
}
},
"variables": {
"objID": "c6c71e16-53e1-217f-d03b-cef56c6b037a",
"globalVariables": [
{
"objID": "8d036022-3aa0-8665-e250-e5f72b7daf0a",
"name": "alert_message",
"description": "Message in alert dialog",
"type": "string",
"defaultValue": "\"Are you sure?\"",
"native": true
}
],
"structures": [
{
"objID": "fafb1e91-202b-40ed-8ec4-7e243b90dda2",
"name": "Node",
"fields": [
{
"objID": "77ed4cf3-0148-47d0-9d51-ebbb4c45701a",
"name": "left",
"type": "struct:Node"
},
{
"objID": "cf24ca7d-f29a-4545-b05e-9a36f288caa0",
"name": "right",
"type": "struct:Node"
}
]
}
],
"enums": []
},
"actions": [
{
"objID": "e13c0f62-502f-17cd-d0e3-a300a502f073",
"components": [],
"connectionLines": [],
"localVariables": [],
"name": "yes",
"implementationType": "native"
},
{
"objID": "7ad510ea-d6c4-38dd-09da-d70ef31bab9e",
"components": [],
"connectionLines": [],
"localVariables": [],
"name": "no",
"implementationType": "native"
},
{
"objID": "5a04afe3-77bd-1878-f284-ca3a25f01520",
"components": [],
"connectionLines": [],
"localVariables": [],
"name": "cancel",
"implementationType": "native"
},
{
"objID": "61b6227f-f3d0-cbf6-549d-cae5987f02e6",
"components": [],
"connectionLines": [],
"localVariables": [],
"name": "edit",
"implementationType": "native"
},
{
"objID": "9b576a19-f686-f158-9451-f514c22448d3",
"components": [],
"connectionLines": [],
"localVariables": [],
"name": "drag_overlay",
"implementationType": "native"
},
{
"objID": "9269c8bc-ac3c-b7aa-19b4-a364e82778ac",
"components": [],
"connectionLines": [],
"localVariables": [],
"name": "scroll",
"implementationType": "native"
},
{
"objID": "c5a72ead-fe43-473c-d0cd-0d28958fd12d",
"components": [
{
"objID": "5a1ca7ec-75f4-4e41-e85e-33a97bb80c56",
"type": "StartActionComponent",
"left": -509,
"top": -124,
"width": 87,
"height": 25,
"customInputs": [],
"customOutputs": []
},
{
"objID": "b76db717-0a96-4b1e-93c3-0877dddd117a",
"type": "CallActionActionComponent",
"left": 77,
"top": -124,
"width": 102,
"height": 54,
"customInputs": [],
"customOutputs": [],
"action": "binary_trees"
},
{
"objID": "dcaa8106-69f8-480f-e2a6-0b47d43271e9",
"type": "ConstantActionComponent",
"left": -67,
"top": -124,
"width": 87,
"height": 54,
"customInputs": [],
"customOutputs": [],
"value": "5"
},
{
"objID": "32b36b13-89ff-460b-b1e5-48d9adce3df8",
"type": "SetVariableActionComponent",
"left": 253,
"top": -124,
"width": 405,
"height": 120,
"customInputs": [
{
"objID": "1354f4f8-bd46-4794-98ed-8001e53e10f3",
"name": "log",
"type": "string"
}
],
"customOutputs": [],
"entries": [
{
"objID": "47e676df-f8e3-4b55-ec7f-9a8177fce6ed",
"variable": "result",
"value": "log == (\n \"stretch tree of depth 7 check: 255\\n\" + \n \"64 trees of depth 4 check: 1984\\n\" +\n \"16 trees of depth 6 check: 2032\\n\" +\n \"long lived tree of depth 6 check: 127\"\n) ? 1 : 2"
}
]
},
{
"objID": "d3285ff7-30f4-4145-a69f-0cacb3472271",
"type": "SetVariableActionComponent",
"left": -362,
"top": -124,
"width": 227,
"height": 56,
"customInputs": [],
"customOutputs": [],
"entries": [
{
"objID": "7978ea28-4c4f-40ae-c1af-e02e4302fefa",
"variable": "start_time",
"value": "System.getTick()"
}
]
},
{
"objID": "ff228153-f366-4291-b2eb-88b2b7dcf71d",
"type": "EvalExprActionComponent",
"left": -91,
"top": 212,
"width": 292,
"height": 55,
"customInputs": [],
"customOutputs": [],
"expression": "(System.getTick() - start_time) / 1000"
},
{
"objID": "c30114c6-4f09-438b-808c-f68e582c4ee4",
"type": "IsTrueActionComponent",
"left": -261,
"top": 212,
"width": 114,
"height": 73,
"customInputs": [],
"customOutputs": [],
"value": "result == 0"
},
{
"objID": "d78bc9cc-4c9c-4457-bff8-83b2891a9ebe",
"type": "OutputActionComponent",
"left": 253,
"top": 56,
"width": 87,
"height": 25,
"customInputs": [],
"customOutputs": [],
"name": "log",
"outputType": "string"
},
{
"objID": "0a03af90-9f82-448f-b1c8-0b0a288816c8",
"type": "WatchVariableActionComponent",
"left": 90,
"top": 116,
"width": 111,
"height": 55,
"customInputs": [],
"customOutputs": [],
"variable": "result"
},
{
"objID": "12db4fa2-dada-47c8-a8ab-dd6d2cb96fad",
"type": "OutputActionComponent",
"left": 253,
"top": 116,
"width": 87,
"height": 25,
"customInputs": [],
"customOutputs": [],
"name": "status",
"outputType": "integer"
},
{
"objID": "6747724f-68fd-4110-ac91-44e518b4616a",
"type": "EndActionComponent",
"left": 712,
"top": -124,
"width": 87,
"height": 25,
"customInputs": [],
"customOutputs": []
},
{
"objID": "c8f87ea6-d992-4a6f-8a99-7d010556c36c",
"type": "OutputActionComponent",
"left": 253,
"top": 212,
"width": 87,
"height": 25,
"customInputs": [],
"customOutputs": [],
"name": "time",
"outputType": "double"
}
],
"connectionLines": [
{
"objID": "b2b62c8a-ed9e-4f46-ae8b-2ba7a5729ff1",
"source": "5a1ca7ec-75f4-4e41-e85e-33a97bb80c56",
"output": "@seqout",
"target": "d3285ff7-30f4-4145-a69f-0cacb3472271",
"input": "@seqin"
},
{
"objID": "db87cd4f-3ccb-4bd9-9773-b5408b5d3f1c",
"source": "dcaa8106-69f8-480f-e2a6-0b47d43271e9",
"output": "value",
"target": "b76db717-0a96-4b1e-93c3-0877dddd117a",
"input": "f3b62f51-994c-478a-852a-cc9408745824"
},
{
"objID": "ff069fdd-c1cd-4fd1-d3e0-b1a6a15822b2",
"source": "b76db717-0a96-4b1e-93c3-0877dddd117a",
"output": "@seqout",
"target": "32b36b13-89ff-460b-b1e5-48d9adce3df8",
"input": "@seqin"
},
{
"objID": "5cf39983-e74d-429f-c927-ec1b1d365a78",
"source": "b76db717-0a96-4b1e-93c3-0877dddd117a",
"output": "eb44fc74-c4ab-4504-ea6f-1dd4ab5d4242",
"target": "32b36b13-89ff-460b-b1e5-48d9adce3df8",
"input": "log"
},
{
"objID": "4806add4-d1c9-4adc-a26c-f353e0d868fe",
"source": "d3285ff7-30f4-4145-a69f-0cacb3472271",
"output": "@seqout",
"target": "b76db717-0a96-4b1e-93c3-0877dddd117a",
"input": "@seqin"
},
{
"objID": "9201cb25-22ac-4857-91b8-d57d6f629a0e",
"source": "d3285ff7-30f4-4145-a69f-0cacb3472271",
"output": "@seqout",
"target": "c30114c6-4f09-438b-808c-f68e582c4ee4",
"input": "@seqin"
},
{
"objID": "471b20c9-56c8-4602-f046-56a9970a8b0c",
"source": "ff228153-f366-4291-b2eb-88b2b7dcf71d",
"output": "@seqout",
"target": "c30114c6-4f09-438b-808c-f68e582c4ee4",
"input": "@seqin"
},
{
"objID": "2189937f-c855-4d81-c5ea-80d2faec97e1",
"source": "c30114c6-4f09-438b-808c-f68e582c4ee4",
"output": "True",
"target": "ff228153-f366-4291-b2eb-88b2b7dcf71d",
"input": "@seqin"
},
{
"objID": "c338b6fb-0c0c-47b4-9667-35f7a91f322a",
"source": "b76db717-0a96-4b1e-93c3-0877dddd117a",
"output": "eb44fc74-c4ab-4504-ea6f-1dd4ab5d4242",
"target": "d78bc9cc-4c9c-4457-bff8-83b2891a9ebe",
"input": "@seqin"
},
{
"objID": "faff1f9e-2436-474a-f4a0-d37e4ce4b44f",
"source": "0a03af90-9f82-448f-b1c8-0b0a288816c8",
"output": "variable",
"target": "12db4fa2-dada-47c8-a8ab-dd6d2cb96fad",
"input": "@seqin"
},
{
"objID": "baee9aab-6e9d-476b-e39f-e0467ad6067a",
"source": "32b36b13-89ff-460b-b1e5-48d9adce3df8",
"output": "@seqout",
"target": "6747724f-68fd-4110-ac91-44e518b4616a",
"input": "@seqin"
},
{
"objID": "524d53bd-3e44-4993-a23a-27fd9c545e96",
"source": "ff228153-f366-4291-b2eb-88b2b7dcf71d",
"output": "result",
"target": "c8f87ea6-d992-4a6f-8a99-7d010556c36c",
"input": "@seqin"
}
],
"localVariables": [
{
"objID": "a435f595-93cc-4966-d354-93bd8a15bad5",
"name": "result",
"type": "integer",
"defaultValue": "0",
"persistent": false
},
{
"objID": "f7483084-da0e-4eb8-d5f8-3c345ecdffe6",
"name": "start_time",
"type": "integer",
"defaultValue": "0",
"persistent": false
}
],
"name": "run_binarytrees",
"implementationType": "flow"
},
{
"objID": "06c7545e-2a8d-475e-db40-49a03dfd04a4",
"components": [
{
"objID": "091afafe-28d5-4b41-9de5-344c9adaf1a2",
"type": "StartActionComponent",
"left": -364,
"top": -113,
"width": 87,
"height": 25,
"customInputs": [],
"customOutputs": []
},
{
"objID": "411cca47-032e-49ac-f452-b08affe094cf",
"type": "EndActionComponent",
"left": 2040,
"top": 206,
"width": 87,
"height": 25,
"customInputs": [],
"customOutputs": []
},
{
"objID": "f3b62f51-994c-478a-852a-cc9408745824",
"type": "InputActionComponent",
"left": -364,
"top": -57,
"width": 87,
"height": 25,
"customInputs": [],
"customOutputs": [],
"name": "arg",
"inputType": "integer"
},
{
"objID": "45c0b329-228d-4177-97c4-3ece90dd71d0",
"type": "EvalExprActionComponent",
"left": -211,
"top": -112,
"width": 187,
"height": 55,
"customInputs": [
{
"objID": "9085ab6e-8dff-47e2-d24c-c32f40d88645",
"name": "arg",
"type": "integer"
}
],
"customOutputs": [],
"expression": "Math.max(6, arg)"
},
{
"objID": "ff6e7e72-0484-4811-a3f8-46f1925ffd1c",
"type": "SetVariableActionComponent",
"left": -211,
"top": -26,
"width": 240,
"height": 76,
"customInputs": [
{
"objID": "e883ea1c-3652-4342-aa44-e58d2eb8bd26",
"name": "depth",
"type": "integer"
}
],
"customOutputs": [],
"entries": [
{
"objID": "ee5fb150-8d44-4240-aa7d-ae04924b2e70",
"variable": "maxDepth",
"value": "depth"
},
{
"objID": "3989cf54-9bee-4dcf-cc59-7ace91870586",
"variable": "stretchDepth",
"value": "depth + 1"
}
]
},
{
"objID": "851f66bf-24ab-428e-9889-745a3b91512a",
"type": "CallActionActionComponent",
"left": 125,
"top": 82,
"width": 96,
"height": 54,
"customInputs": [],
"customOutputs": [],
"action": "create_tree"
},
{
"objID": "681b8ac8-fe3f-4cf0-c471-a01e5435d9dd",
"type": "EvalExprActionComponent",
"left": -211,
"top": 82,
"width": 132,
"height": 55,
"customInputs": [],
"customOutputs": [],
"expression": "stretchDepth"
},
{
"objID": "b77bfa0f-6063-472b-e6f2-70a6a0457a6a",
"type": "SetVariableActionComponent",
"left": 173,
"top": -73,
"width": 193,
"height": 56,
"customInputs": [
{
"objID": "90832da8-a58c-48f4-d05d-a5e2389b1914",
"name": "tree",
"type": "struct:Node"
}
],
"customOutputs": [],
"entries": [
{
"objID": "1291a2d4-e43a-4762-fea9-df986da91753",
"variable": "stretchTree",
"value": "tree"
}
]
},
{
"objID": "08c4ff53-90db-4449-b146-1086be61352a",
"type": "CallActionActionComponent",
"left": 322,
"top": 82,
"width": 104,
"height": 54,
"customInputs": [],
"customOutputs": [],
"action": "checksum"
},
{
"objID": "eb44fc74-c4ab-4504-ea6f-1dd4ab5d4242",
"type": "OutputActionComponent",
"left": 1799,
"top": 287,
"width": 87,
"height": 25,
"customInputs": [],
"customOutputs": [],
"name": "log",
"outputType": "string"
},
{
"objID": "fa9c2468-d75d-42a6-c25b-748c22d1a982",
"type": "LoopActionComponent",
"left": 1173,
"top": -303,
"width": 316,
"height": 73,
"customInputs": [],
"customOutputs": [],
"variable": "depth",
"from": "4",
"to": "maxDepth",
"step": "2",
"version": 1
},
{
"objID": "200f40cf-ad94-4beb-d918-4748278b2510",
"type": "LoopActionComponent",
"left": 1601,
"top": -165,
"width": 285,
"height": 73,
"customInputs": [],
"customOutputs": [],
"variable": "i",
"from": "0",
"to": "iterations - 1",
"step": "1",
"version": 1
},
{
"objID": "dc03ac36-dbd0-4b0f-de88-35916bf41a71",
"type": "SetVariableActionComponent",
"left": 1601,
"top": -303,
"width": 282,
"height": 76,
"customInputs": [],
"customOutputs": [],
"entries": [
{
"objID": "ffc1c4ba-03f1-4db0-aec8-2e8b473ac534",
"variable": "sum",
"value": "0"
},
{
"objID": "162947ff-af35-40c3-c732-9624dc8a866a",
"variable": "iterations",
"value": "1 << maxDepth - depth + 4"
}
]
},
{
"objID": "b0560abc-a8b0-4f79-a681-cb578057311d",
"type": "CallActionActionComponent",
"left": 2146,
"top": -165,
"width": 96,
"height": 54,
"customInputs": [],
"customOutputs": [],
"action": "create_tree"
},
{
"objID": "bb44488a-8b03-4d28-86e8-3db8a1e6dbd6",
"type": "EvalExprActionComponent",
"left": 1995,
"top": -119,
"width": 89,
"height": 55,
"customInputs": [],
"customOutputs": [],
"expression": "depth"
},
{
"objID": "aeac6395-ea28-4499-a5d5-25f47fb6a321",
"type": "SetVariableActionComponent",
"left": 2459,
"top": -165,
"width": 235,
"height": 56,
"customInputs": [
{
"objID": "3ef00148-e28d-40b9-f35e-a0e3c0897ddf",
"name": "checksum",
"type": "integer"
}
],
"customOutputs": [],
"entries": [
{
"objID": "9403f88b-4d58-43eb-a08e-e8eca0d6842c",
"variable": "sum",
"value": "sum + checksum"
}
]
},
{
"objID": "09b24d17-b1e3-4b0d-9674-6e8ce50d2e28",
"type": "CallActionActionComponent",
"left": 2316,
"top": -165,
"width": 104,
"height": 54,
"customInputs": [],
"customOutputs": [],
"action": "checksum"
},
{
"objID": "99c905e3-eaef-46ac-c103-d7f4ff3599ac",
"type": "CallActionActionComponent",
"left": 696,
"top": 81,
"width": 96,
"height": 54,
"customInputs": [],
"customOutputs": [],
"action": "create_tree"
},
{
"objID": "29bb2ed0-89e9-4212-e462-c23170fe53d9",
"type": "EvalExprActionComponent",
"left": 504,
"top": 81,
"width": 107,
"height": 55,
"customInputs": [],
"customOutputs": [],
"expression": "maxDepth"
},
{
"objID": "b3f7e972-c8aa-41c5-cb95-6399540afe72",
"type": "CallActionActionComponent",
"left": 893,
"top": 81,
"width": 104,
"height": 54,
"customInputs": [],
"customOutputs": [],
"action": "checksum"
},
{
"objID": "5be1f214-544a-4ed2-c8dd-3b2f3bffb7e2",
"type": "SetVariableActionComponent",
"left": 504,
"top": -73,
"width": 309,
"height": 94,
"customInputs": [
{
"objID": "24051b30-acb6-4b3a-9f94-58400e5eeadc",
"name": "checksum",
"type": "integer"
}
],
"customOutputs": [],
"entries": [
{
"objID": "18068101-4e38-45f7-ffd6-6e30ac11a10a",
"variable": "log",
"value": "\"stretch tree of depth \" +\nstretchDepth +\n\" check: \" +\nchecksum"
}
]
},
{
"objID": "ae289f10-589b-4b65-96c5-b1f34aba07b1",
"type": "WatchVariableActionComponent",
"left": 1653,
"top": 287,
"width": 92,
"height": 55,
"customInputs": [],
"customOutputs": [],
"variable": "log"
},
{
"objID": "201a5bc1-53ef-41c6-8b37-598c47400ad2",
"type": "SetVariableActionComponent",
"left": 1601,
"top": 69,
"width": 257,
"height": 94,
"customInputs": [],
"customOutputs": [],
"entries": [
{
"objID": "64068edc-d653-4031-ffca-1fea6d29e86d",
"variable": "log",
"value": "log + \"\\n\" +\niterations +\n\" trees of depth \" + depth +\n\" check: \" + sum"
}
]
},
{
"objID": "3c58f8b1-468c-419d-90b1-8e1a7e13130e",
"type": "SetVariableActionComponent",
"left": 1173,
"top": 206,
"width": 396,
"height": 81,
"customInputs": [
{
"objID": "fa0106a9-4c28-446e-b6a7-7041178f82af",
"name": "checksum",
"type": "integer"
}
],
"customOutputs": [],
"entries": [
{
"objID": "8a534608-16e2-4d21-d4aa-c34482354cc5",
"variable": "log",
"value": "log + \"\\n\" +\n\"long lived tree of depth \" + maxDepth +\n\" check: \" + checksum"
}
]
},
{
"objID": "f648e52b-7b83-42f0-a83d-6d5e1a9d2a70",
"type": "DelayActionComponent",
"left": 1865,
"top": 206,
"width": 87,
"height": 55,
"customInputs": [],
"customOutputs": [],
"milliseconds": "100"
}
],
"connectionLines": [
{
"objID": "9bf1e979-a71c-4f5e-c13b-172a65a67d55",
"source": "f3b62f51-994c-478a-852a-cc9408745824",
"output": "@seqout",
"target": "45c0b329-228d-4177-97c4-3ece90dd71d0",
"input": "arg"
},
{
"objID": "35186d14-7860-4203-8d6a-23d699a6e267",
"source": "45c0b329-228d-4177-97c4-3ece90dd71d0",
"output": "result",
"target": "ff6e7e72-0484-4811-a3f8-46f1925ffd1c",
"input": "depth"
},
{
"objID": "c10f016a-9271-4c08-c6c8-7cc2a07a0a91",
"source": "ff6e7e72-0484-4811-a3f8-46f1925ffd1c",
"output": "@seqout",
"target": "851f66bf-24ab-428e-9889-745a3b91512a",
"input": "@seqin"
},
{
"objID": "c381275b-ad79-4a09-c339-7af5525c8d78",
"source": "ff6e7e72-0484-4811-a3f8-46f1925ffd1c",
"output": "@seqout",
"target": "681b8ac8-fe3f-4cf0-c471-a01e5435d9dd",
"input": "@seqin"
},
{
"objID": "ab0b1dac-9009-4589-d9c4-b1b3ab471719",
"source": "681b8ac8-fe3f-4cf0-c471-a01e5435d9dd",
"output": "result",
"target": "851f66bf-24ab-428e-9889-745a3b91512a",
"input": "6429ec72-dc72-4f4d-ea4d-ec9cf0404a01"
},
{
"objID": "c206d22a-509a-4ddf-828c-b15a4f3f25cd",
"source": "851f66bf-24ab-428e-9889-745a3b91512a",
"output": "53d0e607-02dd-47a4-a989-b8a92fd84e49",
"target": "b77bfa0f-6063-472b-e6f2-70a6a0457a6a",
"input": "tree"
},
{
"objID": "5351cd49-cf30-41c4-97c7-20a146eb58ff",
"source": "b77bfa0f-6063-472b-e6f2-70a6a0457a6a",
"output": "@seqout",
"target": "08c4ff53-90db-4449-b146-1086be61352a",
"input": "@seqin"
},
{
"objID": "326a53db-d4d9-4a84-b693-db0c25c5e10d",
"source": "08c4ff53-90db-4449-b146-1086be61352a",
"output": "c9e1ec0c-4699-4d2f-adc2-d8cf2eddc7fc",
"target": "5be1f214-544a-4ed2-c8dd-3b2f3bffb7e2",
"input": "checksum"
},
{
"objID": "940513f1-896e-4a11-ad62-7040988ba190",
"source": "851f66bf-24ab-428e-9889-745a3b91512a",
"output": "53d0e607-02dd-47a4-a989-b8a92fd84e49",
"target": "08c4ff53-90db-4449-b146-1086be61352a",
"input": "d9570ab0-2ea1-4789-8483-ddcf81edcc2b"
},
{
"objID": "8ce1c642-0366-40c1-932a-d09a5f70503d",
"source": "091afafe-28d5-4b41-9de5-344c9adaf1a2",
"output": "@seqout",
"target": "45c0b329-228d-4177-97c4-3ece90dd71d0",
"input": "@seqin"
},
{
"objID": "f1753624-4be0-4eef-f4a2-49fded65627a",
"source": "fa9c2468-d75d-42a6-c25b-748c22d1a982",
"output": "@seqout",
"target": "dc03ac36-dbd0-4b0f-de88-35916bf41a71",
"input": "@seqin"
},
{
"objID": "40e05e56-9680-4df0-f78f-942e30abaa98",
"source": "200f40cf-ad94-4beb-d918-4748278b2510",
"output": "@seqout",
"target": "b0560abc-a8b0-4f79-a681-cb578057311d",
"input": "@seqin"
},
{
"objID": "d97ca7c2-526f-4b62-bbb0-a12eed3c9a56",
"source": "200f40cf-ad94-4beb-d918-4748278b2510",
"output": "@seqout",
"target": "bb44488a-8b03-4d28-86e8-3db8a1e6dbd6",
"input": "@seqin"
},
{
"objID": "31a919a2-2427-40c1-a034-0def03dcc9fe",
"source": "bb44488a-8b03-4d28-86e8-3db8a1e6dbd6",
"output": "result",
"target": "b0560abc-a8b0-4f79-a681-cb578057311d",
"input": "6429ec72-dc72-4f4d-ea4d-ec9cf0404a01"
},
{
"objID": "26a0ad22-ce97-4de5-92b3-3d1cf16aebb1",
"source": "b0560abc-a8b0-4f79-a681-cb578057311d",
"output": "53d0e607-02dd-47a4-a989-b8a92fd84e49",
"target": "09b24d17-b1e3-4b0d-9674-6e8ce50d2e28",
"input": "d9570ab0-2ea1-4789-8483-ddcf81edcc2b"
},
{
"objID": "7ae80327-d825-4cae-d725-99d9052aa297",
"source": "09b24d17-b1e3-4b0d-9674-6e8ce50d2e28",
"output": "c9e1ec0c-4699-4d2f-adc2-d8cf2eddc7fc",
"target": "aeac6395-ea28-4499-a5d5-25f47fb6a321",
"input": "checksum"
},
{
"objID": "f4af14b8-bb8c-4097-e589-9fb29eb64b6a",
"source": "201a5bc1-53ef-41c6-8b37-598c47400ad2",
"output": "@seqout",
"target": "fa9c2468-d75d-42a6-c25b-748c22d1a982",
"input": "next"
},
{
"objID": "36faf49b-ed72-4060-e473-452303071cfd",
"source": "200f40cf-ad94-4beb-d918-4748278b2510",
"output": "done",
"target": "201a5bc1-53ef-41c6-8b37-598c47400ad2",
"input": "@seqin"
},
{
"objID": "57c6a6dd-59e0-4a64-b003-13dde6857d12",
"source": "dc03ac36-dbd0-4b0f-de88-35916bf41a71",
"output": "@seqout",
"target": "200f40cf-ad94-4beb-d918-4748278b2510",
"input": "start"
},
{
"objID": "c2dafb8e-9032-4d60-a458-4dccd362ac1f",
"source": "29bb2ed0-89e9-4212-e462-c23170fe53d9",
"output": "result",
"target": "99c905e3-eaef-46ac-c103-d7f4ff3599ac",
"input": "6429ec72-dc72-4f4d-ea4d-ec9cf0404a01"
},
{
"objID": "cf0ab456-be9d-4c89-98b7-4be43903c7e5",
"source": "99c905e3-eaef-46ac-c103-d7f4ff3599ac",
"output": "53d0e607-02dd-47a4-a989-b8a92fd84e49",
"target": "b3f7e972-c8aa-41c5-cb95-6399540afe72",
"input": "d9570ab0-2ea1-4789-8483-ddcf81edcc2b"
},
{
"objID": "a1954e85-135a-4045-f4a3-5106b871dec6",
"source": "b3f7e972-c8aa-41c5-cb95-6399540afe72",
"output": "c9e1ec0c-4699-4d2f-adc2-d8cf2eddc7fc",
"target": "fa9c2468-d75d-42a6-c25b-748c22d1a982",
"input": "start"
},
{
"objID": "bf3d4309-705a-4a86-eae4-338cc9244068",
"source": "fa9c2468-d75d-42a6-c25b-748c22d1a982",
"output": "done",
"target": "3c58f8b1-468c-419d-90b1-8e1a7e13130e",
"input": "@seqin"
},
{
"objID": "11698e18-1607-4a76-831b-d69254310bd8",
"source": "b3f7e972-c8aa-41c5-cb95-6399540afe72",
"output": "c9e1ec0c-4699-4d2f-adc2-d8cf2eddc7fc",
"target": "3c58f8b1-468c-419d-90b1-8e1a7e13130e",
"input": "checksum"
},
{
"objID": "3489d1e8-2308-477a-e455-4e9fefb108f6",
"source": "aeac6395-ea28-4499-a5d5-25f47fb6a321",
"output": "@seqout",
"target": "200f40cf-ad94-4beb-d918-4748278b2510",
"input": "next"
},
{
"objID": "a0b8d30b-186d-415a-fda0-9c99ea8556ac",
"source": "ae289f10-589b-4b65-96c5-b1f34aba07b1",
"output": "variable",
"target": "eb44fc74-c4ab-4504-ea6f-1dd4ab5d4242",
"input": "@seqin"
},
{
"objID": "7d30c064-e029-43f5-db1a-d0e163a20b9d",
"source": "3c58f8b1-468c-419d-90b1-8e1a7e13130e",
"output": "@seqout",
"target": "f648e52b-7b83-42f0-a83d-6d5e1a9d2a70",
"input": "@seqin"
},
{
"objID": "e6647a02-2783-4f29-8951-bb826de2724e",
"source": "5be1f214-544a-4ed2-c8dd-3b2f3bffb7e2",
"output": "@seqout",
"target": "29bb2ed0-89e9-4212-e462-c23170fe53d9",
"input": "@seqin"
},
{
"objID": "99b9b64a-a159-4f14-874b-998605582bf7",
"source": "29bb2ed0-89e9-4212-e462-c23170fe53d9",
"output": "@seqout",
"target": "99c905e3-eaef-46ac-c103-d7f4ff3599ac",
"input": "@seqin"
},
{
"objID": "fec2d40f-855d-418e-cb67-40a9b6e9eb96",
"source": "f648e52b-7b83-42f0-a83d-6d5e1a9d2a70",
"output": "@seqout",
"target": "411cca47-032e-49ac-f452-b08affe094cf",
"input": "@seqin"
}
],
"localVariables": [
{
"objID": "7de6be93-a954-4c4d-e65d-b579f8044355",
"name": "maxDepth",
"type": "integer",
"defaultValue": "0",
"persistent": false
},
{
"objID": "5aaed481-b2e1-4fbd-8bbf-8c00b15a9cf0",
"name": "stretchDepth",
"type": "integer",
"defaultValue": "0",
"persistent": false
},
{
"objID": "b60bba45-34bf-4c25-8c3b-5b1869e944f5",
"name": "stretchTree",
"type": "struct:Node",
"defaultValue": "null",
"persistent": false
},
{
"objID": "2bb5f5ad-1738-4104-e280-775b8e67a04f",
"name": "depth",
"type": "integer",
"defaultValue": "0",
"persistent": false