#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< \; B \; 0 when A=B \; 1 when A> \; 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 . ;