Jonathon, backward compatibility - always loved the way you guys converts fractint's old mistakes to new features with this change there is an interesting interaction between *Math.abs(calc.real) >= 0 *in the bailout calcs and *Math.cos(calc.imaginary) >= 0.0 *in the LambdaexponentFractal function (please excuse the java notation). I have wondered why the extra bailout calc in LambdaexponentFractal ( if (old.x >= rqlim && cosy >= 0.0) return(1); ) it's not echoed in any of the LambdaTrigfpFractal functions. However FloatTrigPlusExponentFractal has if (fabs(old.x) >= 6.4e2) return(1); /* DOMAIN errors */ which may go a way to explaining where it came from DOMAIN errors ??? - is this some fpu error David. Jonathan Osuch wrote:
David,
From my observations, FLOATEXPBAILOUT() doesn't work - it should be FLOATHTRIGBAILOUT
The code looks correct to me. But, you're right, it sure doesn't draw the same image. I'll have to play with it more.
Ah, here is the problem in fractals.c:
#define FLOATEXPBAILOUT() \ if (fabs(old.y) >= 1.0e8) return(1);\ if (fabs(old.x) >= 6.4e2) return(1);
#define LONGEXPBAILOUT() \ if (labs(lold.y) >= (1000L<<bitshift)) return(1);\ if (labs(lold.x) >= (8L<<bitshift)) return(1);
If the float bailout is changed to match the integer bailout:
#define FLOATEXPBAILOUT() \ if (fabs(old.y) >= 1.0e3) return(1);\ if (fabs(old.x) >= 8) return(1);
The images are the same.
Now, the problem becomes how do we fix this and include backwards compatibility.
Jonathan
_______________________________________________ Fractdev mailing list Fractdev@mailman.xmission.com http://mailman.xmission.com/cgi-bin/mailman/listinfo/fractdev
-- regards David