oldz function
Input type | Output type |
int | complex |
Note: This function is provided for backwards compatibility and should no longer be used. You can declare an array[#maxiter + 1] to store the values of #z, and process them in the final section of the coloring algorithm. This is more efficient and more flexible. See Function oldz is deprecated.
This function returns the z value belonging to the specified iteration. This function can only be used in the final section of a coloring algorithm. If it is used, the value of #z is stored after each iteration in the fractal formula, so it can be retrieved by the coloring algorithm afterwards. This allows the coloring algorithm to process the values of z in arbitrary order. The argument of the function is the iteration in which the desired z value was produced.
This piece of code shows how the z value is stored:
execute init section of fractal formula oldz[0] = #z int iter = 0 repeat execute loop section of fractal formula iter = iter + 1 bool b = the expression in the bailout section of the fractal formula oldz[iter] = #z until (b == false) || (iter == #maxiter) #numiter = iter
The oldz function will only return valid z values if the argument is in the range 0..#numiter. Otherwise, (0,0) is returned. Here is an example of a coloring algorithm using oldz:
oldzexample { final: int iter = 1 ; initialize variables while iter <= #numiter the_z = oldz(iter) ; do something with the value of the_z iter = iter + 1 endwhile ; color the pixel }
This is equivalent to:
loopexample { init: ; initialize variables loop: ; do something with the value of #z final: ; color the pixel }
Here, you could better use the normal loop section instead of the oldz function, but some coloring algorithms need to process the values of z in non-linear order. In that case, you must use the oldz function, or an array.