Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Annotation of /tests/new-tests/steps.pdid
ViewVC logotype

Annotation of /tests/new-tests/steps.pdid

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4760 - (view) (download)

1 : glk 4745 #version 2 // (v2) NOTv1 NOTvL
2 :     // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! NOTv2 NOTv1 NOTvL
3 : glk 4746 // !!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!! NOTv2 NOTv1 NOTvL
4 : glk 4745 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! NOTv2 NOTv1 NOTvL
5 : glk 4746 // !!!!! Not a valid Diderot file! !!!!!!! NOTv2 NOTv1 NOTvL
6 :     // !!!!!!!!!!! This will be !!!!!!!!!!!!! NOTv2 NOTv1 NOTvL
7 :     // !!!!! processed by "./go-steps.sh" !!!! NOTv2 NOTv1 NOTvL
8 : glk 4745 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! NOTv2 NOTv1 NOTvL
9 : glk 4746 // !!!!!!!!!!!!!!! WARNING !!!!!!!!!!!!!!! NOTv2 NOTv1 NOTvL
10 : glk 4745 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! NOTv2 NOTv1 NOTvL
11 :    
12 : glk 4746 /* Timeline of how this program goes:
13 :     | means active
14 :     o means "stabilize"
15 :     : means stable (idle)
16 :     x means "die"
17 :     n means "new"
18 :     4 3 2 1 0 <--idx
19 :     step 0 | | | |
20 :     step 1 | | | x
21 :     step 2 | | |
22 :     step 3 | | o
23 :     step 4 | | :
24 :     step 5 n4 | :
25 :     step 6 | | | :
26 :     step 7 | x o :
27 :     step 8 | : :
28 :     step 9 o : :
29 :     after : : :
30 :     */
31 :    
32 : glk 4745 int step = 0;
33 :     input bool dosee = true;
34 :    
35 :     strand digit (int idx_) {
36 :     int idx = idx_;
37 :     vec2 pos = [idx,idx];
38 :     output real id = pow(10,idx);
39 :     real active = id;
40 :     real updated = 0;
41 :     real idle = 0;
42 : glk 4760 real initialized = 0; // (v2) NOTv1 NOTvL
43 :     real started = 0; // (v2) NOTv1 NOTvL
44 :     initialize { // (v2) NOTv1 NOTvL
45 :     initialized = id; // (v2) NOTv1 NOTvL
46 :     } // (v2) NOTv1 NOTvL
47 :     start { // (v2) NOTv1 NOTvL
48 :     started = id; // (v2) NOTv1 NOTvL
49 :     } // (v2) NOTv1 NOTvL
50 : glk 4745 update {
51 :     updated = id;
52 : glk 4746 if (dosee) {
53 :     real seen = 0;
54 :     foreach (digit d in sphere(10)) { seen += d.id; }
55 :     print(" idx ", idx, " (step ", step, "): hello; see ", 800000 + seen, "\n");
56 :     }
57 : glk 4745 if (1 == step) {
58 :     if (0 == idx) {
59 : glk 4746 print(" -- idx ", idx, " (step ", step, "): dying\n"); die;
60 : glk 4745 }
61 :     }
62 :     if (3 == step) {
63 :     if (1 == idx) {
64 :     print(" -- idx ", idx, " (step ", step, "): stabilizing\n"); idle = id; stabilize;
65 :     }
66 :     }
67 :     if (5 == step) {
68 :     if (3 == idx) {
69 :     print(" -- idx ", idx, " (step ", step, "): new digit(4)\n");
70 :     new digit(4);
71 :     }
72 :     }
73 :     if (7 == step) {
74 :     if (2 == idx) {
75 : glk 4748 print(" -- idx ", idx, " (step ", step, "): stabilizing\n"); idle = id; stabilize;
76 : glk 4745 }
77 :     if (3 == idx) {
78 : glk 4746 print(" -- idx ", idx, " (step ", step, "): dying\n"); die;
79 : glk 4745 }
80 :     }
81 :     if (9 == step) {
82 :     print(" -- idx ", idx, " (step ", step, "): stabilizing\n"); idle = id; stabilize;
83 :     }
84 :     }
85 :     }
86 :    
87 :     /* // NOTv2 (v1) (vL)
88 :     start {
89 :     real Dall = 800000 + sum { d.id | d in digit.all };
90 : glk 4760 real Dupdated = 800000 + sum { d.updated | d in digit.all };
91 :     real Dactive = 800000 + sum { d.id | d in digit.active };
92 :     real Dstable = 800000 + sum { d.id | d in digit.stable };
93 :     real Didle = 800000 + sum { d.idle | d in digit.all };
94 :     real Dinitialized = 800000 + sum { d.initialized | d in digit.all }; // (v2) NOTv1 NOTvL
95 :     real Dstarted = 800000 + sum { d.started | d in digit.all }; // (v2) NOTv1 NOTvL
96 :     print("start: all=", Dall,
97 :     "; active=", Dactive,
98 :     "; updated=", Dupdated,
99 :     "; stable=", Dstable,
100 :     "; idle=", Didle,
101 :     "; initialized=", Dinitialized, // (v2) NOTv1 NOTvL
102 :     "; started=", Dstarted, // (v2) NOTv1 NOTvL
103 :     "\n");
104 : glk 4747 print (" numActive=", numActive(), "; numStable=", numStable(), "\n"); // (v2) (v1) NOTvL
105 : glk 4745 }
106 :     */ // NOTv2 (v1) (vL)
107 :    
108 :     global // NOTv2 (v1) (vL)
109 :     update // (v2) NOTv1 NOTvL
110 :     {
111 :     real Dall = 800000 + sum { d.id | d in digit.all };
112 : glk 4760 real Dupdated = 800000 + sum { d.updated | d in digit.all };
113 :     real Dactive = 800000 + sum { d.id | d in digit.active };
114 :     real Dstable = 800000 + sum { d.id | d in digit.stable };
115 :     real Didle = 800000 + sum { d.idle | d in digit.all };
116 :     real Dinitialized = 800000 + sum { d.initialized | d in digit.all }; // (v2) NOTv1 NOTvL
117 :     real Dstarted = 800000 + sum { d.started | d in digit.all }; // (v2) NOTv1 NOTvL
118 :     print("(g) ", step, ": all=", Dall,
119 :     "; active=", Dactive,
120 :     "; updated=", Dupdated,
121 :     "; stable=", Dstable,
122 :     "; idle=", Didle,
123 :     "; initialized=", Dinitialized, // (v2) NOTv1 NOTvL
124 :     "; started=", Dstarted, // (v2) NOTv1 NOTvL
125 :     "\n");
126 : glk 4747 print (" numActive=", numActive(), "; numStable=", numStable(), "\n"); // (v2) (v1) NOTvL
127 : glk 4745 step += 1;
128 :     if (20 == step) {
129 :     print("WHOA! stopping\n");
130 :     stabilize;
131 :     }
132 :     }
133 :     initially // NOTv2 (v1) (vL)
134 :     create_collection // (v2) NOTv1 NOTvL
135 :     { digit(i) | i in 0..3 }
136 :     ; // NOTv2 (v1) (vL)

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0