I've been seeing some strange behavior in some formulas that I'm working on and finally figured out why.
Here's some pseudo-code of how UF works. This is for the class version of UF; the non-class version works similarly:
for each pixel, repeat
call Iterate in the Formula plug-in to get a new z
if the new z causes bailout
call ResultIndex in the Coloring plug-in
done with this pixel
else
call the Coloring Iterate to process this z value
Note that the final z value is never seen by Iterate in the Coloring plug-in.
If bailout occurs on the first Formula iteration, then the Coloring Iterate is never called. If the formula writer is not aware of this behavior, and if the ResultIndex calculation depends on the sequence of z values, not just the final value, strange behavior may be seen.
I believe that this is the problem behind the strange behavior I saw last September in this forum posting:
https://www.ultrafractal.com/forum/index.php?u=/topic/888/problem-with-multiple-threads