static class Fract { inline bool ismandel(double RP,double IP) { if(IP<-1.15 || IP>1.15 || RP<-2.02 || RP>0.5)return false; register double r = RP, i = IP; for(register int c=0; ; ) { register const double r2 = r*r; register const double i2 = i*i; if(r2+i2 >= 4) { /* Would never return back to <4. Not part of set. Exit. */ return false; } i = r*i*2 + IP; r = r2-i2 + RP; if(++c >= maxiter) { /* Tried enough. We are inside. */ return true; } } } inline bool isjulia(double XP,double YP, double RP,double IP) { if(!ismandel(RP, IP))return false; if(XP<-2 || XP>2 || YP<-2 || YP>2)return false; register double r = XP, i = YP; for(register int c=0; ; ) { register const double r2 = r*r; register const double i2 = i*i; if(r2+i2 >= 4) { /* Would never return back to <4. Not part of set. Exit. */ return false; } i = r*i*2 + IP; r = r2-i2 + RP; if(++c >= maxiter) { /* Tried enough. We are inside. */ return true; } } } public: inline bool hit(double x,double y, double r,double i) { return isjulia(x,y,r,i); } } Fract;