1 ( --- Complex arithmetic --- )
3 ( Location of floating point. )
6 : >scaled precision 10 / * swap precision * + ;
8 ( Redefine multiplication. Yay forth! )
11 : c* ( x1 y1 x2 y2 -- x3 y3 )
12 swap -rot ( x1 x2 y1 y2 )
13 2dup * negate ( x1 x2 y1 y2 -y1y2 )
14 4 pick 4 pick * + ( x1 x2 y1 y2 (x1x2-y1y2))
15 4 roll 2 roll * ( x2 y1 (x1x2-y1y2) x1y2 )
16 3 roll 3 roll * + ( (x1x2-y1y2) (x1y2+x2y1) )
19 : c+ ( x1 y1 x2 y2 -- x3 y3 )
27 : cmagsq ( x1 y1 -- mag )
31 ( --- Mandelbrot set calculations --- )
33 : iterate ( cr ci zr zi -- cr ci z'r z'i )
37 : inSet? ( cr ci -- res )
41 2swap 2dup 5 roll 5 roll
51 ( Draw the Mandelbrot Set!)
52 : mandel ( x1 y1 x2 y2 -- )
56 ( Clean up - hide non-standard multiplication def. )