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.

oldz function