f(z) = z^2 + C
z_{n+1} = f(z_n)
ここで,漸化式の初期値を 0 とし,C の実部を -2 〜 0,虚部 -1 〜 1 の範
囲で変化させています.100 回の繰り返しの間に絶対値が 2 を越したものは発
散したものと判定します.
なお,下記のワードは整数が 32bit 以上で表現されていることを仮定したものです.
: dot dup 100 > if drop 0 else 15 % 1+ endif setcolor 4 ndrop
over 340 - minus over 220 + swap 1 1 rectf ;
: check 100 > if drop drop 1 else dup * swap dup * + 4000000 > endif ;
: nextr dup * 1000 / swap dup * 1000 / - 5 ndup + ;
: nexti * 500 / 7 ndup + ;
: next 1+ rotr 2 copy nextr 4 nrotr 2 copy nexti 5 nrotr drop drop ;
: mpoint do 3 copy check if dot 0 else next 1 endif while ;
: mandel 201 0 for I 201 0 for I
over 100 - 10 * over 200 - 10 * 0 0 0 mpoint drop loop drop loop ;
gm mandel
tm