aboutsummaryrefslogtreecommitdiff
path: root/externals/gridflow/doc/numop.pd
blob: c1d8efbf88eb5d8722e7437d7b9018e065950279 (plain)
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
#N canvas 0 0 1024 768 10;
#X obj 0 0 cnv 15 1024 30 empty empty empty 20 12 0 14 20 -66577 0;
#X text 10 0 op name;
#X text 96 0 description;
#X text 512 0 effect on pixels;
#X text 768 0 effect on coords;
#X obj 0 52 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 52 op ignore;
#X text 96 52  A ;
#X text 512 52 no effect;
#X text 768 52 no effect;
#X obj 0 84 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 84 op put;
#X text 96 84  B ;
#X text 512 84 replace by;
#X text 768 84 replace by;
#X obj 0 116 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 116 op +;
#X text 96 116  A + B ;
#X text 512 116 brightness \,  crossfade;
#X text 768 116 move \,  morph;
#X obj 0 148 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 148 op -;
#X text 96 148  A - B ;
#X text 512 148 brightness \,  motion detection;
#X text 768 148 move \,  motion detection;
#X obj 0 180 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 180 op inv+;
#X text 96 180  B - A ;
#X text 512 180 negate then contrast;
#X text 768 180 180 degree rotate then move;
#X obj 0 212 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 212 op *;
#X text 96 212  A * B ;
#X text 512 212 contrast;
#X text 768 212 zoom out;
#X obj 0 244 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 244 op /;
#X text 96 244  A / B \,  rounded towards zero ;
#X text 512 244 contrast;
#X text 768 244 zoom in;
#X obj 0 276 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 276 op div;
#X text 96 276  A / B \,  rounded downwards ;
#X text 512 276 contrast;
#X text 768 276 zoom in;
#X obj 0 308 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 308 op inv*;
#X text 96 308  B / A \,  rounded towards zero ;
#X obj 0 340 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 340 op swapdiv;
#X text 96 340  B / A \,  rounded downwards ;
#X obj 0 372 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 372 op %;
#X text 96 372  A % B \,  modulo (goes with div) ;
#X text 512 372 --;
#X text 768 372 tile;
#X obj 0 404 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 404 op swap%;
#X text 96 404  B % A \,  modulo (goes with div) ;
#X obj 0 436 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 436 op rem;
#X text 96 436  A % B \,  remainder (goes with /) ;
#X obj 0 468 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 468 op swaprem;
#X text 96 468  B % A \,  remainder (goes with /) ;
#X obj 0 500 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 500 op gcd;
#X text 96 500 greatest common divisor;
#X obj 0 532 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 532 op lcm;
#X text 96 532 least common multiple;
#X obj 0 564 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 564 op |;
#X text 96 564  A or B \,  bitwise ;
#X text 512 564 bright munchies;
#X text 768 564 bottomright munchies;
#X obj 0 596 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 596 op ^;
#X text 96 596  A xor B \,  bitwise ;
#X text 512 596 symmetric munchies (fractal checkers);
#X text 768 596 symmetric munchies (fractal checkers);
#X obj 0 628 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 628 op &;
#X text 96 628  A and B \,  bitwise ;
#X text 512 628 dark munchies;
#X text 768 628 topleft munchies;
#X obj 0 660 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 660 op <<;
#X text 96 660  A * (2**(B % 32)) \,  which is left-shifting ;
#X text 512 660 like *;
#X text 768 660 like *;
#X obj 0 692 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 692 op >>;
#X text 96 692  A / (2**(B % 32)) \,  which is right-shifting ;
#X text 512 692 like / \, div;
#X text 768 692 like / \, div;
#X obj 0 724 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 724 op ||;
#X text 96 724  if A is zero then B else A ;
#X obj 0 756 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 756 op &&;
#X text 96 756  if A is zero then zero else B;
#X obj 0 788 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 788 op min;
#X text 96 788  the lowest value in A \, B ;
#X text 512 788 clipping;
#X text 768 788 clipping (of individual points);
#X obj 0 820 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 820 op max;
#X text 96 820  the highest value in A \, B ;
#X text 512 820 clipping;
#X text 768 820 clipping (of individual points);
#X obj 0 852 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 852 op cmp;
#X text 96 852  -1 when A&lt \; B \;  0 when A=B \;  1 when A&gt \; B. ;
#X obj 0 884 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 884 op ==;
#X text 96 884  is A equal to B ? 1=true \,  0=false ;
#X obj 0 916 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 916 op !=;
#X text 96 916  is A not equal to B ? ;
#X obj 0 948 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 948 op >;
#X text 96 948  is A greater than B ? ;
#X obj 0 980 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 980 op <=;
#X text 96 980  is A not greater than B ? ;
#X obj 0 1012 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 1012 op <;
#X text 96 1012  is A less than B ? ;
#X obj 0 1044 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 1044 op >=;
#X text 96 1044 is A not less than B ? ;
#X obj 0 1076 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 1076 op sin*;
#X text 96 1076  B * sin(A) in centidegrees ;
#X text 512 1076 --;
#X text 768 1076 waves \,  rotations;
#X obj 0 1108 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 1108 op cos*;
#X text 96 1108  B * cos(A) in centidegrees ;
#X text 512 1108 --;
#X text 768 1108 waves \,  rotations;
#X obj 0 1140 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 1140 op atan;
#X text 96 1140  arctan(A/B) in centidegrees ;
#X text 512 1140 --;
#X text 768 1140 find angle to origin (part of polar transform);
#X obj 0 1172 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 1172 op tanh*;
#X text 96 1172  B * tanh(A) in centidegrees ;
#X text 512 1172 smooth clipping;
#X text 768 1172 smooth clipping (of individual points) \,  neural sigmoid \,  fuzzy logic;
#X obj 0 1204 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 1204 op log*;
#X text 96 1204  B * log(A) (in base e) ;
#X obj 0 1236 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 1236 op gamma;
#X text 96 1236  floor(pow(a/256.0 \, 256.0/b)*256.0) ;
#X text 512 1236 gamma correction;
#X obj 0 1268 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 1268 op **;
#X text 96 1268  A**B \,  that is \,  A raised to power B ;
#X text 512 1268 gamma correction;
#X obj 0 1300 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 1300 op abs-;
#X text 96 1300  absolute value of (A-B) ;
#X obj 0 1332 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 1332 op rand;
#X text 96 1332  randomly produces a non-negative number below A ;
#X obj 0 1364 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 1364 op sqrt;
#X text 96 1364  square root of A \,  rounded downwards ;
#X obj 0 1396 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 1396 op sq-;
#X text 96 1396  (A-B) times (A-B) ;
#X obj 0 1428 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 1428 op avg;
#X text 96 1428  (A+B)/2 ;
#X obj 0 1460 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 1460 op hypot;
#X text 96 1460  distance function: square root of (A*A+B*B) ;
#X obj 0 1492 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 1492 op clip+;
#X text 96 1492  like A+B but overflow causes clipping instead of wrapping around (coming soon) ;
#X obj 0 1524 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 1524 op clip-;
#X text 96 1524  like A-B but overflow causes clipping instead of wrapping around (coming soon) ;
#X obj 0 1556 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 1556 op erf*;
#X text 96 1556  integral of e^(-x*x) dx ... (coming soon \;  what ought to be the scaling factor?) ;
#X obj 0 1588 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 1588 op weight;
#X text 96 1588  number of "1" bits in an integer;
#X obj 0 1620 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 1620 op sin;
#X text 96 1620 sin(A-B) in radians \,  float only;
#X obj 0 1652 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 1652 op cos;
#X text 96 1652 cos(A-B) in radians \,  float only;
#X obj 0 1684 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 1684 op atan2;
#X text 96 1684 atan2(A \, B) in radians \,  float only;
#X obj 0 1716 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 1716 op tanh;
#X text 96 1716 tanh(A-B) in radians \,  float only;
#X obj 0 1748 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 1748 op exp;
#X text 96 1748 exp(A-B) in radians \,  float only;
#X obj 0 1780 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 1780 op log;
#X text 96 1780 log(A-B) in radians \,  float only;
#X obj 0 1832 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 1832 op C.*    ;
#X text 96 1832 A*B;
#X obj 0 1864 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 1864 op C.*conj;
#X text 96 1864 A*conj(B);
#X obj 0 1896 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 1896 op C./    ;
#X text 96 1896 A/B;
#X obj 0 1928 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 1928 op C./conj;
#X text 96 1928 A/conj(B);
#X obj 0 1960 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 1960 op C.sq-  ;
#X text 96 1960 (A-B)*(A-B);
#X obj 0 1992 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 1992 op C.abs- ;
#X text 96 1992 abs(A-B);
#X obj 0 2024 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 2024 op C.sin  ;
#X text 96 2024 sin(A-B);
#X obj 0 2056 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 2056 op C.cos  ;
#X text 96 2056 cos(A-B);
#X obj 0 2088 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 2088 op C.tanh ;
#X text 96 2088 tanh(A-B);
#X obj 0 2120 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0;
#X msg 10 2120 op C.exp  ;
#X text 96 2120 exp(A-B);
#X obj 0 2152 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0;
#X msg 10 2152 op C.log  ;
#X text 96 2152 log(A-B);
#X obj 10 2194 outlet;
#X connect 6 0 245 0;
#X connect 11 0 245 0;
#X connect 16 0 245 0;
#X connect 21 0 245 0;
#X connect 26 0 245 0;
#X connect 31 0 245 0;
#X connect 36 0 245 0;
#X connect 41 0 245 0;
#X connect 46 0 245 0;
#X connect 49 0 245 0;
#X connect 52 0 245 0;
#X connect 57 0 245 0;
#X connect 60 0 245 0;
#X connect 63 0 245 0;
#X connect 66 0 245 0;
#X connect 69 0 245 0;
#X connect 72 0 245 0;
#X connect 77 0 245 0;
#X connect 82 0 245 0;
#X connect 87 0 245 0;
#X connect 92 0 245 0;
#X connect 97 0 245 0;
#X connect 100 0 245 0;
#X connect 103 0 245 0;
#X connect 108 0 245 0;
#X connect 113 0 245 0;
#X connect 116 0 245 0;
#X connect 119 0 245 0;
#X connect 122 0 245 0;
#X connect 125 0 245 0;
#X connect 128 0 245 0;
#X connect 131 0 245 0;
#X connect 134 0 245 0;
#X connect 139 0 245 0;
#X connect 144 0 245 0;
#X connect 149 0 245 0;
#X connect 154 0 245 0;
#X connect 157 0 245 0;
#X connect 161 0 245 0;
#X connect 165 0 245 0;
#X connect 168 0 245 0;
#X connect 171 0 245 0;
#X connect 174 0 245 0;
#X connect 177 0 245 0;
#X connect 180 0 245 0;
#X connect 183 0 245 0;
#X connect 186 0 245 0;
#X connect 189 0 245 0;
#X connect 192 0 245 0;
#X connect 195 0 245 0;
#X connect 198 0 245 0;
#X connect 201 0 245 0;
#X connect 204 0 245 0;
#X connect 207 0 245 0;
#X connect 210 0 245 0;
#X connect 213 0 245 0;
#X connect 216 0 245 0;
#X connect 219 0 245 0;
#X connect 222 0 245 0;
#X connect 225 0 245 0;
#X connect 228 0 245 0;
#X connect 231 0 245 0;
#X connect 234 0 245 0;
#X connect 237 0 245 0;
#X connect 240 0 245 0;
#X connect 243 0 245 0;
#X obj 95 0 cnv 0 0 2214 empty empty empty -1 12 0 14 0 -66577 0;
#X obj 511 0 cnv 0 0 2214 empty empty empty -1 12 0 14 0 -66577 0;
#X obj 767 0 cnv 0 0 2214 empty empty empty -1 12 0 14 0 -66577 0;
#X obj 0 32 cnv 15 1024 18 empty empty empty 20 12 0 14 -248881 -66577 0;
#X text 10 32 numops;
#X obj 0 1812 cnv 15 1024 18 empty empty empty 20 12 0 14 -248881 -66577 0;
#X text 10 1812 vecops for complex numbers;
#X text 10 2214 
	note: a centidegree is 0.01 degree. There are 36000 centidegrees in a circle.
        Some angle operators use centidegrees \,  while some others use radians. To
        convert degrees into centidegrees \,  multiply by 100.
        To convert degrees into radians \,  divide by 57.2957 .
        Thus \,  to convert centidegrees into radians \,  divide by 5729.57 .
;