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 4767 - (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 : glk 4767 input bool flip = false;
35 : glk 4745
36 :     strand digit (int idx_) {
37 :     int idx = idx_;
38 : glk 4767 vec2 pos = idx*[0.888,-1.333];
39 : glk 4745 output real id = pow(10,idx);
40 :     real active = id;
41 :     real updated = 0;
42 :     real idle = 0;
43 : glk 4760 real initialized = 0; // (v2) NOTv1 NOTvL
44 :     real started = 0; // (v2) NOTv1 NOTvL
45 :     initialize { // (v2) NOTv1 NOTvL
46 :     initialized = id; // (v2) NOTv1 NOTvL
47 :     } // (v2) NOTv1 NOTvL
48 :     start { // (v2) NOTv1 NOTvL
49 :     started = id; // (v2) NOTv1 NOTvL
50 :     } // (v2) NOTv1 NOTvL
51 : glk 4745 update {
52 :     updated = id;
53 : glk 4746 if (dosee) {
54 :     real seen = 0;
55 : glk 4767 real poserr = 0;
56 :     foreach (digit d in sphere(100)) {
57 :     seen += d.id;
58 :     poserr += |d.pos - d.idx*[0.888,-1.333]|;
59 :     }
60 :     print(step, " Strand ", idx, ": hello; see ", 800000 + seen, " !!BAD!! pos error !!" if poserr != 0 else "", "\n");
61 : glk 4746 }
62 : glk 4745 if (1 == step) {
63 :     if (0 == idx) {
64 : glk 4767 print(step, " Strand ", idx, ": ******** dying\n"); die;
65 : glk 4745 }
66 :     }
67 :     if (3 == step) {
68 :     if (1 == idx) {
69 : glk 4767 print(step, " Strand ", idx, ": ******** stabilizing\n"); idle = id; stabilize;
70 : glk 4745 }
71 :     }
72 :     if (5 == step) {
73 :     if (3 == idx) {
74 : glk 4767 print(step, " Strand ", idx, ": ******** new digit(4)\n");
75 : glk 4745 new digit(4);
76 :     }
77 :     }
78 :     if (7 == step) {
79 :     if (2 == idx) {
80 : glk 4767 print(step, " Strand ", idx, ": ******** stabilizing\n"); idle = id; stabilize;
81 : glk 4745 }
82 :     if (3 == idx) {
83 : glk 4767 print(step, " Strand ", idx, ": ******** dying\n"); die;
84 : glk 4745 }
85 :     }
86 :     if (9 == step) {
87 : glk 4767 print(step, " Strand ", idx, ": ******** stabilizing\n"); idle = id; stabilize;
88 : glk 4745 }
89 :     }
90 :     }
91 :    
92 :     /* // NOTv2 (v1) (vL)
93 :     start {
94 :     real Dall = 800000 + sum { d.id | d in digit.all };
95 : glk 4760 real Dupdated = 800000 + sum { d.updated | d in digit.all };
96 :     real Dactive = 800000 + sum { d.id | d in digit.active };
97 :     real Dstable = 800000 + sum { d.id | d in digit.stable };
98 :     real Didle = 800000 + sum { d.idle | d in digit.all };
99 :     real Dinitialized = 800000 + sum { d.initialized | d in digit.all }; // (v2) NOTv1 NOTvL
100 :     real Dstarted = 800000 + sum { d.started | d in digit.all }; // (v2) NOTv1 NOTvL
101 : glk 4767 print("/ global (start): all=", Dall,
102 : glk 4760 "; active=", Dactive,
103 :     "; updated=", Dupdated,
104 :     "; stable=", Dstable,
105 :     "; idle=", Didle,
106 :     "; initialized=", Dinitialized, // (v2) NOTv1 NOTvL
107 :     "; started=", Dstarted, // (v2) NOTv1 NOTvL
108 :     "\n");
109 : glk 4767 /* next line is also supported in version1, but want to simplify comparison to Lamont's branch // (v2) NOTv1 NOTvL
110 :     print ("/ global (start): numActive=", numActive(), "; numStable=", numStable(), "\n"); // (v2) NOTv1 NOTvL
111 : glk 4745 }
112 :     */ // NOTv2 (v1) (vL)
113 :    
114 :     global // NOTv2 (v1) (vL)
115 :     update // (v2) NOTv1 NOTvL
116 :     {
117 :     real Dall = 800000 + sum { d.id | d in digit.all };
118 : glk 4760 real Dupdated = 800000 + sum { d.updated | d in digit.all };
119 :     real Dactive = 800000 + sum { d.id | d in digit.active };
120 :     real Dstable = 800000 + sum { d.id | d in digit.stable };
121 :     real Didle = 800000 + sum { d.idle | d in digit.all };
122 :     real Dinitialized = 800000 + sum { d.initialized | d in digit.all }; // (v2) NOTv1 NOTvL
123 :     real Dstarted = 800000 + sum { d.started | d in digit.all }; // (v2) NOTv1 NOTvL
124 : glk 4767 print(step, " global -------: all=", Dall,
125 : glk 4760 "; active=", Dactive,
126 :     "; updated=", Dupdated,
127 :     "; stable=", Dstable,
128 :     "; idle=", Didle,
129 :     "; initialized=", Dinitialized, // (v2) NOTv1 NOTvL
130 :     "; started=", Dstarted, // (v2) NOTv1 NOTvL
131 :     "\n");
132 : glk 4767 print (step, " global ~ numActive=", numActive(), "; numStable=", numStable(), "\n"); // (v2) NOTv1 NOTvL
133 : glk 4745 step += 1;
134 :     if (20 == step) {
135 :     print("WHOA! stopping\n");
136 :     stabilize;
137 :     }
138 :     }
139 :     initially // NOTv2 (v1) (vL)
140 :     create_collection // (v2) NOTv1 NOTvL
141 : glk 4767 { digit(3-i if flip else i) | i in 0..3 }
142 : glk 4745 ; // NOTv2 (v1) (vL)

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