( --- Complex arithmetic --- )
( Location of floating point. )
-: precision 10000 ;
+10000 value precision
: sign dup abs / ;
2over 2swap csq c+
;
+100 value maxiter
+
: inSet? ( cr ci -- res )
0 0 ( z_0 = 0 )
true ( flag indicating set membership )
- 100 0 do
+ maxiter 0 do
drop
iterate
-rot 2drop -rot 2drop
;
-: xsteps 100 ;
-: ysteps 30 ;
+100 value xsteps
+30 value ysteps
( Draw the Mandelbrot Set!)
-: mandel ( x1 y1 x2 y2 -- )
+: mandeldraw ( x1 y1 x2 y2 -- )
+
+ cr
0 pick 3 pick - ysteps /
1 pick 4 pick do
( Clean up - hide non-standard multiplication def. )
hide *
+
+( Default picture )
+: mandel
+ -2 0 >scaled -1 0 >scaled 0 5 >scaled 1 0 >scaled
+ mandeldraw
+;
+
+CR .( Enter 'mandel' to draw the Mandelbrot Set.)