#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 48 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 48 op ignore; #X text 96 48 A ; #X text 512 48 no effect; #X text 768 48 no effect; #X obj 0 80 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 80 op put; #X text 96 80 B ; #X text 512 80 replace by; #X text 768 80 replace by; #X obj 0 112 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 112 op +; #X text 96 112 A + B ; #X text 512 112 brightness \, crossfade; #X text 768 112 move \, morph; #X obj 0 144 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 144 op -; #X text 96 144 A - B ; #X text 512 144 brightness \, motion detection; #X text 768 144 move \, motion detection; #X obj 0 176 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 176 op inv+; #X text 96 176 B - A ; #X text 512 176 negate then contrast; #X text 768 176 180 degree rotate then move; #X obj 0 208 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 208 op *; #X text 96 208 A * B ; #X text 512 208 contrast; #X text 768 208 zoom out; #X obj 0 240 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 240 op /; #X text 96 240 A / B \, rounded towards zero ; #X text 512 240 contrast; #X text 768 240 zoom in; #X obj 0 272 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 272 op div; #X text 96 272 A / B \, rounded downwards ; #X text 512 272 contrast; #X text 768 272 zoom in; #X obj 0 304 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 304 op inv*; #X text 96 304 B / A \, rounded towards zero ; #X obj 0 336 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 336 op swapdiv; #X text 96 336 B / A \, rounded downwards ; #X obj 0 368 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 368 op %; #X text 96 368 A % B \, modulo (goes with div) ; #X text 512 368 --; #X text 768 368 tile; #X obj 0 400 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 400 op swap%; #X text 96 400 B % A \, modulo (goes with div) ; #X obj 0 432 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 432 op rem; #X text 96 432 A % B \, remainder (goes with /) ; #X obj 0 464 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 464 op swaprem; #X text 96 464 B % A \, remainder (goes with /) ; #X obj 0 496 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 496 op gcd; #X text 96 496 greatest common divisor; #X obj 0 528 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 528 op lcm; #X text 96 528 least common multiple; #X obj 0 560 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 560 op |; #X text 96 560 A or B \, bitwise ; #X text 512 560 bright munchies; #X text 768 560 bottomright munchies; #X obj 0 592 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 592 op ^; #X text 96 592 A xor B \, bitwise ; #X text 512 592 symmetric munchies (fractal checkers); #X text 768 592 symmetric munchies (fractal checkers); #X obj 0 624 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 624 op &; #X text 96 624 A and B \, bitwise ; #X text 512 624 dark munchies; #X text 768 624 topleft munchies; #X obj 0 656 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 656 op <<; #X text 96 656 A * (2**(B % 32)) \, which is left-shifting ; #X text 512 656 like *; #X text 768 656 like *; #X obj 0 688 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 688 op >>; #X text 96 688 A / (2**(B % 32)) \, which is right-shifting ; #X text 512 688 like / \, div; #X text 768 688 like / \, div; #X obj 0 720 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 720 op ||; #X text 96 720 if A is zero then B else A ; #X obj 0 752 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 752 op &&; #X text 96 752 if A is zero then zero else B; #X obj 0 784 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 784 op min; #X text 96 784 the lowest value in A \, B ; #X text 512 784 clipping; #X text 768 784 clipping (of individual points); #X obj 0 816 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 816 op max; #X text 96 816 the highest value in A \, B ; #X text 512 816 clipping; #X text 768 816 clipping (of individual points); #X obj 0 848 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 848 op cmp; #X text 96 848 -1 when A< \; B \; 0 when A=B \; 1 when A> \; B. ; #X obj 0 880 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 880 op ==; #X text 96 880 is A equal to B ? 1=true \, 0=false ; #X obj 0 912 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 912 op !=; #X text 96 912 is A not equal to B ? ; #X obj 0 944 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 944 op >; #X text 96 944 is A greater than B ? ; #X obj 0 976 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 976 op <=; #X text 96 976 is A not greater than B ? ; #X obj 0 1008 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 1008 op <; #X text 96 1008 is A less than B ? ; #X obj 0 1040 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 1040 op >=; #X text 96 1040 is A not less than B ? ; #X obj 0 1072 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 1072 op sin*; #X text 96 1072 B * sin(A) in centidegrees ; #X text 512 1072 --; #X text 768 1072 waves \, rotations; #X obj 0 1104 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 1104 op cos*; #X text 96 1104 B * cos(A) in centidegrees ; #X text 512 1104 --; #X text 768 1104 waves \, rotations; #X obj 0 1136 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 1136 op atan; #X text 96 1136 arctan(A/B) in centidegrees ; #X text 512 1136 --; #X text 768 1136 find angle to origin (part of polar transform); #X obj 0 1168 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 1168 op tanh*; #X text 96 1168 B * tanh(A) in centidegrees ; #X text 512 1168 smooth clipping; #X text 768 1168 smooth clipping (of individual points) \, neural sigmoid \, fuzzy logic; #X obj 0 1200 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 1200 op log*; #X text 96 1200 B * log(A) (in base e) ; #X obj 0 1232 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 1232 op gamma; #X text 96 1232 floor(pow(a/256.0 \, 256.0/b)*256.0) ; #X text 512 1232 gamma correction; #X obj 0 1264 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 1264 op **; #X text 96 1264 A**B \, that is \, A raised to power B ; #X text 512 1264 gamma correction; #X obj 0 1296 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 1296 op abs-; #X text 96 1296 absolute value of (A-B) ; #X obj 0 1328 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 1328 op rand; #X text 96 1328 randomly produces a non-negative number below A ; #X obj 0 1360 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 1360 op sqrt; #X text 96 1360 square root of A \, rounded downwards ; #X obj 0 1392 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 1392 op sq-; #X text 96 1392 (A-B) times (A-B) ; #X obj 0 1424 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 1424 op avg; #X text 96 1424 (A+B)/2 ; #X obj 0 1456 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 1456 op hypot; #X text 96 1456 square root of (A*A+B*B) ; #X obj 0 1488 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 1488 op clip+; #X text 96 1488 like A+B but overflow causes clipping instead of wrapping around (coming soon) ; #X obj 0 1520 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 1520 op clip-; #X text 96 1520 like A-B but overflow causes clipping instead of wrapping around (coming soon) ; #X obj 0 1552 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 1552 op erf*; #X text 96 1552 integral of e^(-x*x) dx ... (coming soon \; what ought to be the scaling factor?) ; #X obj 0 1584 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 1584 op weight; #X text 96 1584 number of "1" bits in an integer; #X obj 0 1616 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 1616 op sin; #X text 96 1616 sin(A-B) in radians \, float only; #X obj 0 1648 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 1648 op cos; #X text 96 1648 cos(A-B) in radians \, float only; #X obj 0 1680 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 1680 op atan2; #X text 96 1680 atan2(A \, B) in radians \, float only; #X obj 0 1712 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 1712 op tanh; #X text 96 1712 tanh(A-B) in radians \, float only; #X obj 0 1744 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 1744 op exp; #X text 96 1744 exp(A-B) in radians \, float only; #X obj 0 1776 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 1776 op log; #X text 96 1776 log(A-B) in radians \, float only; #X obj 0 1824 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 1824 op C.* ; #X text 96 1824 A*B; #X obj 0 1856 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 1856 op C.*conj; #X text 96 1856 A*conj(B); #X obj 0 1888 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 1888 op C./ ; #X text 96 1888 A/B; #X obj 0 1920 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 1920 op C./conj; #X text 96 1920 A/conj(B); #X obj 0 1952 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 1952 op C.sq- ; #X text 96 1952 (A-B)*(A-B); #X obj 0 1984 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 1984 op C.abs- ; #X text 96 1984 abs(A-B); #X obj 0 2016 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 2016 op C.sin ; #X text 96 2016 sin(A-B); #X obj 0 2048 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 2048 op C.cos ; #X text 96 2048 cos(A-B); #X obj 0 2080 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 2080 op C.tanh ; #X text 96 2080 tanh(A-B); #X obj 0 2112 cnv 15 1024 30 empty empty empty 20 12 0 14 -249792 -66577 0; #X msg 10 2112 op C.exp ; #X text 96 2112 exp(A-B); #X obj 0 2144 cnv 15 1024 30 empty empty empty 20 12 0 14 -233280 -66577 0; #X msg 10 2144 op C.log ; #X text 96 2144 log(A-B); #X obj 10 2176 outlet; #X obj 95 0 cnv 0 0 2176 empty empty empty -1 12 0 14 0 -66577 0; #X obj 511 0 cnv 0 0 2176 empty empty empty -1 12 0 14 0 -66577 0; #X obj 767 0 cnv 0 0 2176 empty empty empty -1 12 0 14 0 -66577 0; #X obj 0 32 cnv 15 1024 14 empty empty empty 20 12 0 14 -248881 -66577 0; #X text 10 32 numops; #X obj 0 1808 cnv 15 1024 14 empty empty empty 20 12 0 14 -248881 -66577 0; #X text 10 1808 vecops for complex numbers;