Comment{ Fractal Formulae by Andrea Spinozzi,2003/2014. andrea.spinozzi@gmail.com , fractalcosmo@gmail.com If you see problems of compatibility, bugs or other things, write me privately. The same for suggests, implementations, critiques and other. Have good Fractal Time. } as-3D_Set { ;Triternion Mandelbrot Set. ;Original formula by Russell Walsmith. ;Really Many thanks to Gilles Nadeau to help and point me for the Julia Set.(May2004). ;Version 1.1=Revisited and added the cubic variant from Gilles Nadeau. ;Version 1.2=Fixed parameter 1 and flavor. ;Andrea Spinozzi,May(2005). Init: complex z1=(0.0,0.0) complex z2=(0.0,0.0) complex w1=(0.0,0.0) complex w2=(0.0,0.0) complex cz1=(0.0,0.0) complex cz2=(0.0,0.0) complex cw1=(0.0,0.0) complex cw2=(0.0,0.0) complex v1=(0.0,0.0) complex v2=(0.0,0.0) complex cv1=(0.0,0.0) complex cv2=(0.0,0.0) complex a1=(0.0,0.0) complex a2=(0.0,0.0) complex b1=(0.0,0.0) complex b2=(0.0,0.0) complex c1=(0.0,0.0) complex c2=(0.0,0.0) p4r=(0.0,0.0) p4i=(0.0,0.0) p5r=(0.0,0.0) p5i=(0.0,0.0) p6r=(0.0,0.0) p6i=(0.0,0.0) p7r=(0.0,0.0) p7i=(0.0,0.0) ;Define the initiation of the variables z,cz,w,cw for a triternion Mandelbrot and Julia. if (@mode == "Mandelbrot") ;3D-Mandelbrot if (@version == 1.1) cv1=real(p1) cv2=imag(p1) else cv1=real(p1)+flip(imag(p1)) cv2=real(p1)+flip(imag(p1)) endif p4r=real(p4) p4i=imag(p4) p5r=real(p5) p5i=imag(p5) if (@var == 0) cz1=real(#pixel)*p4r cz2=real(#pixel)*p4i cw1=imag(#pixel)*p5r cw2=imag(#pixel)*p5i elseif (@var == 1) cz1=flip(real(#pixel))*p4r cz2=flip(real(#pixel))*p4i cw1=flip(imag(#pixel))*p5r cw2=flip(imag(#pixel))*p5i elseif (@var == 2) cz1=real(#pixel)*p4r cz2=real(#pixel)*p4i cw1=imag(#pixel)*p5r cw2=flip(imag(#pixel))*p5i elseif (@var == 3) cz1=flip(real(#pixel))*p4r cz2=real(#pixel)*p4i cw1=imag(#pixel)*p5r cw2=imag(#pixel)*p5i elseif (@var == 4) cz1=real(#pixel)*p4r cz2=flip(real(#pixel))*p4i cw1=imag(#pixel)*p5r cw2=imag(#pixel)*p5i elseif (@var == 5) cz1=flip(real(#pixel))*p4r cz2=flip(real(#pixel))*p4i cw1=imag(#pixel)*p5r cw2=imag(#pixel)*p5i elseif (@var == 6) cz1=real(#pixel)*p4r cz2=real(#pixel)*p4i cw1=flip(imag(#pixel))*p5r cw2=flip(imag(#pixel))*p5i elseif (@var == 7) cz1=real(#pixel)*p4r cz2=flip(real(#pixel))*p4i cw1=flip(imag(#pixel))*p5r cw2=flip(imag(#pixel))*p5i elseif (@var == 8) cz1=flip(real(#pixel))*p4r cz2=real(#pixel)*p4i cw1=flip(imag(#pixel))*p5r cw2=flip(imag(#pixel))*p5i elseif (@var == 9) cz1=flip(real(#pixel))*p4r cz2=flip(real(#pixel))*p4i cw1=imag(#pixel)*p5r cw2=flip(imag(#pixel))*p5i elseif (@var == 10) cz1=real(#pixel)*p4r cz2=flip(real(#pixel))*p4i cw1=imag(#pixel)*p5r cw2=flip(imag(#pixel))*p5i elseif (@var == 11) cz1=flip(real(#pixel))*p4r cz2=real(#pixel)*p4i cw1=flip(imag(#pixel))*p5r cw2=imag(#pixel)*p5i endif elseif (@mode == "Julia") ;3D-Julia if (@version == 1.1) cv1=real(p1) cv2=imag(p1) v1=real(p3) v2=imag(p3) else cv1=real(p1)+flip(imag(p1)) cv2=real(p1)+flip(imag(p1)) if (@selmult==0) v1=real(p3) v2=imag(p3) elseif (@selmult==1) v1=real(p3)+flip(imag(p3)) v2=-(real(p3)+flip(imag(p3))) endif endif p4r= real(p4) p4i= imag(p4) p5r= real(p5) p5i= imag(p5) p6r= real(p6) p6i= imag(p6) p7r= real(@p7) p7i= imag(@p7) if (@var == 0) z1=real(#pixel)^p6r z2=-real(#pixel)^p6i w1=imag(#pixel)^p7r w2=-imag(#pixel)^p7i cz1=real(@p2)*p4r cz2=real(@p2)*p4i cw1=imag(@p2)*p5r cw2=imag(@p2)*p5i elseif (@var == 1) z1=flip(real(#pixel))^p6r z2=-flip(real(#pixel))^p6i w1=flip(imag(#pixel))^p7r w2=-flip(imag(#pixel))^p7i cz1=flip(real(@p2))*p4r cz2=flip(real(@p2))*p4i cw1=flip(imag(@p2))*p5r cw2=flip(imag(@p2))*p5i elseif (@var == 2) z1=real(#pixel)^p6r z2=-real(#pixel)^p6i w1=imag(#pixel)^p7r w2=-flip(imag(#pixel))^p7i cz1=real(@p2)*p4r cz2=real(@p2)*p4i cw1=imag(@p2)*p5r cw2=flip(imag(@p2))*p5i elseif (@var == 3) z1=flip(real(#pixel))^p6r z2=-real(#pixel)^p6i w1=imag(#pixel)^p7r w2=-imag(#pixel)^p7i cz1=flip(real(@p2))*p4r cz2=real(@p2)*p4i cw1=imag(@p2)*p5r cw2=imag(@p2)*p5i elseif (@var == 4) z1=real(#pixel)^p6r z2=-flip(real(#pixel))^p6i w1=imag(#pixel)^p7r w2=-imag(#pixel)^p7i cz1=real(@p2)*p4r cz2=flip(real(@p2))*p4i cw1=imag(@p2)*p5r cw2=imag(@p2)*p5i elseif (@var == 5) z1=flip(real(#pixel))^p6r z2=-flip(real(#pixel))^p6i w1=imag(#pixel)^p7r w2=-imag(#pixel)^p7i cz1=flip(real(@p2))*p4r cz2=flip(real(@p2))*p4i cw1=imag(@p2)*p5r cw2=imag(@p2)*p5i elseif (@var == 6) z1=real(#pixel)^p6r z2=-real(#pixel)^p6i w1=flip(imag(#pixel))^p7r w2=-flip(imag(#pixel))^p7i cz1=real(@p2)*p4r cz2=real(@p2)*p4i cw1=flip(imag(@p2))*p5r cw2=flip(imag(@p2))*p5i elseif (@var == 7) z1=real(#pixel)^p6r z2=-flip(real(#pixel))^p6i w1=flip(imag(#pixel))^p7r w2=-flip(imag(#pixel))^p7i cz1=real(@p2)*p4r cz2=flip(real(@p2))*p4i cw1=flip(imag(@p2))*p5r cw2=flip(imag(@p2))*p5i elseif (@var == 8) z1=flip(real(#pixel))^p6r z2=-real(#pixel)^p6i w1=flip(imag(#pixel))^p7r w2=-flip(imag(#pixel))^p7i cz1=flip(real(@p2))*p4r cz2=real(@p2)*p4i cw1=flip(imag(@p2))*p5r cw2=flip(imag(@p2))*p5i elseif (@var == 9) z1=flip(real(#pixel))^p6r z2=-flip(real(#pixel))^p6i w1=imag(#pixel)^p7r w2=-flip(imag(#pixel))^p7i cz1=flip(real(@p2))*p4r cz2=flip(real(@p2))*p4i cw1=imag(@p2)*p5r cw2=flip(imag(@p2))*p5i elseif (@var == 10) z1=real(#pixel)^p6r z2=-flip(real(#pixel))^p6i w1=imag(#pixel)^p7r w2=-flip(imag(#pixel))^p7i cz1=real(@p2)*p4r cz2=flip(real(@p2))*p4i cw1=imag(@p2)*p5r cw2=flip(imag(@p2))*p5i elseif (@var == 11) z1=flip(real(#pixel))^p6r z2=-real(#pixel)^p6i w1=flip(imag(#pixel))^p7r w2=-imag(#pixel)^p7i cz1=flip(real(@p2))*p4r cz2=real(@p2)*p4i cw1=flip(imag(@p2))*p5r cw2=imag(@p2)*p5i endif endif Loop: ;Define the sets Normal and Cubic of a Triternion. if (@selmult==0) ;3D-Mandelbrot a1=z1^2+z2^2+2*w1*w2+2*v1*v2 a2=2*z1*z2+2*w1*v2+2*w2*v1 b1=w2^2+v2^2+2*z1*w1+2*z2*v1 b2=w1^2+v1^2+2*z1*w2+2*z2*v2 c1=2*z1*v1+2*z2*w1+2*w2*v2 c2=2*z1*v2+2*z2*w2+2*w1*v1 elseif (@selmult==1) ;3D-Cubic Mandelbrot a1=z1^3+w1^3+w2^3+3*(z1*z2^2+w1*v1^2+w2*v2^2)+6*(z1*(w1*w2+v1*v2)+z2*(w1*v2+w2*v1)) a2=z2^3+v2^3+v1^3+3*(z2*z1^2+v1*w1^2+v2*w2^2)+6*(z1*(w1*v2+w2*v1)+z2*(w1*w2+v1*v2)) b1=3*(w2*(w1^2+v1^2)+z1*(w2^2+v2^2)+w1*(z1^2+z2^2))+6*(z2*w2*v2+z1*z2*v1+w1*v1*v2) b2=3*(w1*(w2^2+v2^2)+z1*(w1^2+v1^2)+w2*(z1^2+z2^2))+6*(z2*w1*v1+v1*w2*v2+z1*z2*v2) c1=3*(v1*(z1^2+z2^2)+z2*(w2^2+v2^2)+v2*(w1^2+v1^2))+6*(z1*w1*z2+z1*w2*v2+w1*v1*w2) c2=3*(v2*(z1^2+z2^2)+z2*(w1^2+v1^2)+v1*(w2^2+v2^2))+6*(z1*z2*w2+z1*w1*v1+w1*w2*v2) endif a1=fn1(a1) a2=fn2(a2) b1=fn3(b1) b2=fn4(b2) z1=(a1+cz1) z2=(a2-cz2) w1=(b1+cw1) w2=(b2-cw2) v1=(c1+cv1) v2=(c2-cv2) z1=@fn5(z1) z2=@fn6(z2) w1=@fn7(w1) w2=@fn8(w2) if (@version==1.1) if (@flavor == 0) z=z1+z2+flip(w1-w2) elseif (@flavor == 1) z=z1+z2-w1+w2 endif else if (@flavor == 0) z=z1-z2+flip(w1-w2) elseif (@flavor == 1) z=z1-z2+w1-w2 endif endif Bailout: |z1|+|z2|+|w1|+|w2|+|v1|+|v2|<=@bailout Default: title="3D_Set" method=multipass angle=0 maxiter=250 periodicity=0 magn=1.5 Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param bailout caption="Bailout Value" default=64.0 min=0.0 endparam param flavor caption="Flavor" enum="1""2" default=0 endparam Heading caption="Formula Parameters" Endheading param var caption="Init. Variables" enum="1""2""3""4""5""6""7""8""9""10""11""12" default=0 endparam param selmult caption="Select Mode" enum="Triternion""Cubic Triternion" default=0 endparam param p2 caption="Seed Value" default=(1.0,1.0) visible=(@mode=="Julia") endparam param p1 caption="Parameter 1" default=(0.0,0.0) endparam param p4 caption="Parameter 2" default=(1.0,1.0) endparam param p5 caption="Parameter 3" default=(1.0,1.0) endparam param p3 caption="Parameter 4" default=(0.0,0.0) visible=(@mode=="Julia") endparam param p6 caption="Parameter 5" default=(1.0,1.0) visible=(@mode=="Julia") endparam param p7 caption="Parameter 6" default=(1.0,1.0) visible=(@mode=="Julia") endparam param version caption="Version" default=1.2 visible=false endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc func fn6 caption="Function 6" default=ident() endfunc func fn7 caption="Function 7" default=ident() endfunc func fn8 caption="Function 8" default=ident() endfunc Switch: type="as-3D_Set" bailout=@bailout flavor=@flavor selmult=@selmult var=@var p2=#pixel p1=@p1 p4=@p4 p5=@p5 p6=@p6 p7=@p7 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 fn8=@fn8 mode=@switchmode switchmode=@mode version=@version } AandB { ;Andrea Spinozzi(Updated Aug2004) Init: z=pixel c=4^z*#pixel a=@c^fn2(z)+p2 Loop: if (@op2==0) if (@op1==0) if (@op==0) z=fn3(z)^fn4(c)+fn1(z)+fn2(a+#pixel) elseif (@op==1) z=fn3(z)^fn4(c)+fn1(z)+fn2(a-#pixel) endif elseif (@op1==1) if (@op==0) z=fn3(z)^fn4(c)-fn1(z)+fn2(a+#pixel) elseif (@op==1) z=fn3(z)^fn4(c)-fn1(z)+fn2(a-#pixel) endif endif elseif (@op2==1) if (@op1==0) if (@op==0) z=fn3(z)+fn4(c)+fn1(z)+fn2(a+#pixel) elseif (@op==1) z=fn3(z)+fn4(c)+fn1(z)+fn2(a-#pixel) endif elseif (@op1==1) if (@op==0) z=fn3(z)+fn4(c)-fn1(z)+fn2(a+#pixel) elseif (@op==1) z=fn3(z)+fn4(c)-fn1(z)+fn2(a-#pixel) endif endif elseif (@op2==2) if (@op1==0) if (@op==0) z=fn3(z)-fn4(c)+fn1(z)+fn2(a+#pixel) elseif (@op==1) z=fn3(z)-fn4(c)+fn1(z)+fn2(a-#pixel) endif elseif (@op1==1) if (@op==0) z=fn3(z)-fn4(c)-fn1(z)+fn2(a+#pixel) elseif (@op==1) z=fn3(z)-fn4(c)-fn1(z)+fn2(a-#pixel) endif endif elseif (@op2==3) if (@op1==0) if (@op==0) z=fn3(z)*fn4(c)+fn1(z)+fn2(a+#pixel) elseif (@op==1) z=fn3(z)*fn4(c)+fn1(z)+fn2(a-#pixel) endif elseif (@op1==1) if (@op==0) z=fn3(z)*fn4(c)-fn1(z)+fn2(a+#pixel) elseif (@op==1) z=fn3(z)*fn4(c)-fn1(z)+fn2(a-#pixel) endif endif endif z=@fn5(z)^@power+@deep c=p1*e Bailout: |z|<=@bailout Default: Title="AandB" magn=1.0 center=(0.0,0.0) angle=90 maxiter=250 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param c caption="Operator 1" enum="a""b" default=0 endparam param op caption="Operator 2" enum="+""-" default=0 endparam param op1 caption="Operator 3" enum="+""-" default=0 endparam param op2 caption="Operator 4" enum="1""2""3""4" default=0 endparam param power caption="Exponent" default=(1.0,0.0) endparam param p1 caption="Parameter 1" default=(0.0,0.0) endparam param p2 caption="Parameter 2" default=(0.0,0.0) endparam param deep caption="Parameter 3" default=(0.0,0.0) endparam Heading caption="Functions" Endheading Func fn1 caption="Function 1" default=sqr() endfunc Func fn2 caption="Function 2" default=asin() endfunc Func fn3 caption="Function 3" default=ident() endfunc Func fn4 caption="Function 4" default=ident() endfunc Func fn5 caption="Function 5" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="AandB-Julia" seed=#pixel bailout=@bailout @c=@c op=@op op1=@op1 op2=@op2 power=@power p1=@p1 p2=@p2 deep=@deep fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 version=@version } AandB-Julia { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel c=4^z*@seed a=@c^fn2(z)+p2 Loop: if (@op2==0) if (@op1==0) if (@op==0) z=fn3(z)^@fn4(c)+fn1(z)+fn2(a+@seed) elseif (@op==1) z=fn3(z)^@fn4(c)+fn1(z)+fn2(a-@seed) endif elseif (@op1==1) if (@op==0) z=fn3(z)^@fn4(c)-fn1(z)+fn2(a+@seed) elseif (@op==1) z=fn3(z)^@fn4(c)-fn1(z)+fn2(a-@seed) endif endif elseif (@op2==1) if (@op1==0) if (@op==0) z=fn3(z)+@fn4(c)+fn1(z)+fn2(a+@seed) elseif (@op==1) z=fn3(z)+@fn4(c)+fn1(z)+fn2(a-@seed) endif elseif (@op1==1) if (@op==0) z=fn3(z)+@fn4(c)-fn1(z)+fn2(a+@seed) elseif (@op==1) z=fn3(z)+@fn4(c)-fn1(z)+fn2(a-@seed) endif endif elseif (@op2==2) if (@op1==0) if (@op==0) z=fn3(z)-@fn4(c)+fn1(z)+fn2(a+@seed) elseif (@op==1) z=fn3(z)-@fn4(c)+fn1(z)+fn2(a-@seed) endif elseif (@op1==1) if (@op==0) z=fn3(z)-@fn4(c)-fn1(z)+fn2(a+@seed) elseif (@op==1) z=fn3(z)-@fn4(c)-fn1(z)+fn2(a-@seed) endif endif elseif (@op2==3) if (@op1==0) if (@op==0) z=fn3(z)*@fn4(c)+fn1(z)+fn2(a+@seed) elseif (@op==1) z=fn3(z)*@fn4(c)+fn1(z)+fn2(a-@seed) endif elseif (@op1==1) if (@op==0) z=fn3(z)*@fn4(c)-fn1(z)+fn2(a+@seed) elseif (@op==1) z=fn3(z)*@fn4(c)-fn1(z)+fn2(a-@seed) endif endif endif z=@fn5(z)^@power+@deep c=p1*e Bailout: |z|<=@bailout Default: Title="AandB-Julia" magn=1.0 center=(0.0,0.0) angle=90 maxiter=250 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param seed caption="Seed Value" default=(0.0,0.0) endparam param c caption="Operator 1" enum="a""b" default=0 endparam param op caption="Operator 2" enum="+""-" default=0 endparam param op1 caption="Operator 3" enum="+""-" default=0 endparam param op2 caption="Operator 4" enum="1""2""3""4" default=0 endparam param power caption="Exponent" default=(1.0,0.0) endparam param p1 caption="Parameter 1" default=(0.0,0.0) endparam param p2 caption="Parameter 2" default=(0.0,0.0) endparam param deep caption="Parameter 3" default=(0.0,0.0) endparam Heading caption="Functions" Endheading Func fn1 caption="Function 1" default=sqr() endfunc Func fn2 caption="Function 2" default=asin() endfunc Func fn3 caption="Function 3" default=ident() endfunc Func fn4 caption="Function 4" default=ident() endfunc Func fn5 caption="Function 5" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="AandB" seed=#pixel bailout=@bailout @c=@c op=@op op1=@op1 op2=@op2 power=@power p1=@p1 p2=@p2 deep=@deep fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 version=@version } as-Absolute { ;Andrea Spinozzi(Apr2004) Init: z=pixel c=pixel if @mode == "Julia" z=pixel c=@seed endif x=(0.0,0.0) y=(0.0,0.0) s1=(0.0,0.0) s2=(0.0,0.0) Loop: if @selectabs==true if @opx==0 if @opy==0 x=real(fn1(abs(z))+fn4(abs(c)^p3)) y=imag(fn1(abs(z))+fn4(abs(c)^p3)) elseif @opy==1 x=real(fn1(abs(z))+fn4(abs(c)^p3)) y=imag(fn1(abs(z))-fn4(abs(c)^p3)) elseif @opy==2 x=real(fn1(abs(z))+fn4(abs(c)^p3)) y=imag(fn1(abs(z))*fn4(abs(c)^p3)) elseif @opy==3 x=real(fn1(abs(z))+fn4(abs(c)^p3)) y=imag(fn1(abs(z))/fn4(abs(c)^p3)) endif elseif @opx==1 if @opy==0 x=real(fn1(abs(z))-fn4(abs(c)^p3)) y=imag(fn1(abs(z))+fn4(abs(c)^p3)) elseif @opy==1 x=real(fn1(abs(z))-fn4(abs(c)^p3)) y=imag(fn1(abs(z))-fn4(abs(c)^p3)) elseif @opy==2 x=real(fn1(abs(z))-fn4(abs(c)^p3)) y=imag(fn1(abs(z))*fn4(abs(c)^p3)) elseif @opy==3 x=real(fn1(abs(z))-fn4(abs(c)^p3)) y=imag(fn1(abs(z))/fn4(abs(c)^p3)) endif elseif @opx==2 if @opy==0 x=real(fn1(abs(z))*fn4(abs(c)^p3)) y=imag(fn1(abs(z))+fn4(abs(c)^p3)) elseif @opy==1 x=real(fn1(abs(z))*fn4(abs(c)^p3)) y=imag(fn1(abs(z))-fn4(abs(c)^p3)) elseif @opy==2 x=real(fn1(abs(z))*fn4(abs(c)^p3)) y=imag(fn1(abs(z))*fn4(abs(c)^p3)) elseif @opy==3 x=real(fn1(abs(z))*fn4(abs(c)^p3)) y=imag(fn1(abs(z))/fn4(abs(c)^p3)) endif elseif @opx==3 if @opy==0 x=real(fn1(abs(z))/fn4(abs(c)^p3)) y=imag(fn1(abs(z))+fn4(abs(c)^p3)) elseif @opy==1 x=real(fn1(abs(z))/fn4(abs(c)^p3)) y=imag(fn1(abs(z))-fn4(abs(c)^p3)) elseif @opy==2 x=real(fn1(abs(z))/fn4(abs(c)^p3)) y=imag(fn1(abs(z))*fn4(abs(c)^p3)) elseif @opy==3 x=real(fn1(abs(z))/fn4(abs(c)^p3)) y=imag(fn1(abs(z))/fn4(abs(c)^p3)) endif endif elseif @selectabs==false if @opx==0 if @opy==0 x=real(fn1(z)+fn4(c^p3)) y=imag(fn1(z)+fn4(c^p3)) elseif @opy==1 x=real(fn1(z)+fn4(c^p3)) y=imag(fn1(z)-fn4(c^p3)) elseif @opy==2 x=real(fn1(z)+fn4(c^p3)) y=imag(fn1(z)*fn4(c^p3)) elseif @opy==3 x=real(fn1(z)+fn4(c^p3)) y=imag(fn1(z)/fn4(c^p3)) endif elseif @opx==1 if @opy==0 x=real(fn1(z)-fn4(c^p3)) y=imag(fn1(z)+fn4(c^p3)) elseif @opy==1 x=real(fn1(z)-fn4(c^p3)) y=imag(fn1(z)-fn4(c^p3)) elseif @opy==2 x=real(fn1(z)-fn4(c^p3)) y=imag(fn1(z)*fn4(c^p3)) elseif @opy==3 x=real(fn1(z)-fn4(c^p3)) y=imag(fn1(z)/fn4(c^p3)) endif elseif @opx==2 if @opy==0 x=real(fn1(z)*fn4(c^p3)) y=imag(fn1(z)+fn4(c^p3)) elseif @opy==1 x=real(fn1(z)*fn4(c^p3)) y=imag(fn1(z)-fn4(c^p3)) elseif @opy==2 x=real(fn1(z)*fn4(c^p3)) y=imag(fn1(z)*fn4(c^p3)) elseif @opy==3 x=real(fn1(z)*fn4(c^p3)) y=imag(fn1(z)/fn4(c^p3)) endif elseif @opx==3 if @opy==0 x=real(fn1(z)/fn4(c^p3)) y=imag(fn1(z)+fn4(c^p3)) elseif @opy==1 x=real(fn1(z)/fn4(c^p3)) y=imag(fn1(z)-fn4(c^p3)) elseif @opy==2 x=real(fn1(z)/fn4(c^p3)) y=imag(fn1(z)*fn4(c^p3)) elseif @opy==3 x=real(fn1(z)/fn4(c^p3)) y=imag(fn1(z)/fn4(c^p3)) endif endif endif if @usesqr==false s1=@fn5(x+p4)^p1 s2=@fn6(y-p5)^p2 elseif @usesqr==true s1=@fn5(sqr(x+p4))^p1 s2=@fn6(sqr(y-p5))^p2 endif z=fn2(s2)+flip(fn3(s1)) Bailout: |s1|+|s2| < @bailout Default: title="Absolute" method=Multipass periodicity=0 maxiter=250 angle=315 Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="Current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param seed caption="Seed Value" default=(0.0,0.0) visible=@mode=="Julia" endparam param selectabs caption="Select Absolute" default=false endparam param usesqr caption="Select Sqr" default=false endparam param opx caption="Select X" enum="1""2""3""4" default=0 endparam param opy caption="Select Y" enum="1""2""3""4" default=0 endparam param p1 caption="Exponent x" default=(1.0,1.0) endparam param p2 caption="Exponent y" default=(1.0,1.0) endparam param p3 caption="Exponent c" default=(1.0,0.0) endparam param p4 caption="Parameter 1" default=(0.0,0.0) endparam param p5 caption="Parameter 2" default=(0.0,0.0) endparam param version caption="Version" default=1.0 endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=flip() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc func fn6 caption="Function 6" default=ident() endfunc Switch: type="as-Absolute" bailout=@bailout seed=pixel selectabs=@selectabs usesqr=@usesqr opx=@opx opy=@opy p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 mode=@switchmode switchmode=@mode version=@version } AngelJulia { ;Andrea Spinozzi(Updated Aug2004) Init: z=(0.0,0.0) c=(0.0,0.0) a=(0.0,0.0) if (@select==0) if (@select1==0) if (@op2==0) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)^@fn8(z) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)^@fn8(z) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)^@fn8(z) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)^@fn8(z) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)^@fn8(z) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)^@fn8(z) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)^@fn8(z) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)^@fn8(z) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)^@fn8(z) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)^@fn8(z) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)^@fn8(z) a=z^c endif elseif (@select1==1) if (@op2==0) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)^@fn8(z) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)^@fn8(z) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)^@fn8(z) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)^@fn8(z) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)^@fn8(z) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)^@fn8(z) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)^@fn8(z) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)^@fn8(z) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)^@fn8(z) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)^@fn8(z) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)^@fn8(z) a=z^c endif elseif (@select1==2) if (@op2==0) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)^@fn8(z) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)^@fn8(z) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)^@fn8(z) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)^@fn8(z) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)^@fn8(z) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)^@fn8(z) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)^@fn8(z) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)^@fn8(z) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)^@fn8(z) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)^@fn8(z) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)^@fn8(z) a=z^c endif elseif (@select1==3) if (@op2==0) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)^@fn8(z) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)^@fn8(z) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)^@fn8(z) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)^@fn8(z) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)^@fn8(z) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)^@fn8(z) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)^@fn8(z) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)^@fn8(z) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)^@fn8(z) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)^@fn8(z) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)^@fn8(z) a=z^c endif endif elseif (@select==1) if (@select1==0) if (@op2==0) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)*@fn8(z) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)*@fn8(z) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)*@fn8(z) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)*@fn8(z) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)*@fn8(z) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)*@fn8(z) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)*@fn8(z) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)*@fn8(z) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)*@fn8(z) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)*@fn8(z) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)*@fn8(z) a=z^c endif elseif (@select1==1) if (@op2==0) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)*@fn8(z) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)*@fn8(z) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)*@fn8(z) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)*@fn8(z) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)*@fn8(z) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)*@fn8(z) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)*@fn8(z) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)*@fn8(z) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)*@fn8(z) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)*@fn8(z) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)*@fn8(z) a=z^c endif elseif (@select1==2) if (@op2==0) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)*@fn8(z) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)*@fn8(z) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)*@fn8(z) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)*@fn8(z) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)*@fn8(z) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)*@fn8(z) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)*@fn8(z) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)*@fn8(z) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)*@fn8(z) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)*@fn8(z) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)*@fn8(z) a=z^c endif elseif (@select1==3) if (@op2==0) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)*@fn8(z) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)*@fn8(z) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)*@fn8(z) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)*@fn8(z) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)*@fn8(z) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)*@fn8(z) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)*@fn8(z) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)*@fn8(z) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)*@fn8(z) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)*@fn8(z) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)*@fn8(z) a=z^c endif endif elseif (@select==2) if (@select1==0) if (@op2==0) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)-@fn8(z) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)-@fn8(z) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)-@fn8(z) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)-@fn8(z) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)-@fn8(z) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)-@fn8(z) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)-@fn8(z) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)-@fn8(z) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)-@fn8(z) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)-@fn8(z) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)-@fn8(z) a=z^c endif elseif (@select1==1) if (@op2==0) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)-@fn8(z) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)-@fn8(z) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)-@fn8(z) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)-@fn8(z) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)-@fn8(z) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)-@fn8(z) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)-@fn8(z) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)-@fn8(z) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)-@fn8(z) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)-@fn8(z) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)-@fn8(z) a=z^c endif elseif (@select1==2) if (@op2==0) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)-@fn8(z) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)-@fn8(z) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)-@fn8(z) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)-@fn8(z) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)-@fn8(z) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)-@fn8(z) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)-@fn8(z) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)-@fn8(z) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)-@fn8(z) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)-@fn8(z) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)-@fn8(z) a=z^c endif elseif (@select1==3) if (@op2==0) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)-@fn8(z) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)-@fn8(z) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)-@fn8(z) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)-@fn8(z) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)-@fn8(z) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)-@fn8(z) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)-@fn8(z) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)-@fn8(z) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)-@fn8(z) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)-@fn8(z) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)-@fn8(z) a=z^c endif endif elseif (@select==3) if (@select1==0) if (@op2==0) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)/@fn8(z) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)/@fn8(z) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)/@fn8(z) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)/@fn8(z) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)/@fn8(z) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)/@fn8(z) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)/@fn8(z) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)/@fn8(z) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)/@fn8(z) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)/@fn8(z) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(z)*fn2(z)*fn3(z)/@fn8(z) a=z^c endif elseif (@select1==1) if (@op2==0) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)/@fn8(z) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)/@fn8(z) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)/@fn8(z) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)/@fn8(z) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)/@fn8(z) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)/@fn8(z) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)/@fn8(z) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)/@fn8(z) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)/@fn8(z) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)/@fn8(z) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(z)*fn2(z)+fn3(z)/@fn8(z) a=z^c endif elseif (@select1==2) if (@op2==0) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)/@fn8(z) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)/@fn8(z) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)/@fn8(z) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)/@fn8(z) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)/@fn8(z) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)/@fn8(z) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)/@fn8(z) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)/@fn8(z) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)/@fn8(z) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)/@fn8(z) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(z)*fn2(z)-fn3(z)/@fn8(z) a=z^c endif elseif (@select1==3) if (@op2==0) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)/@fn8(z) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)/@fn8(z) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)/@fn8(z) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)/@fn8(z) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)/@fn8(z) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)/@fn8(z) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)/@fn8(z) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)/@fn8(z) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)/@fn8(z) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)/@fn8(z) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(z)*fn2(z)/fn3(z)/@fn8(z) a=z^c endif endif endif Loop: if (@op==0) if (@op1==0) z=fn4(z^p2)^@seed+@power+@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)+c elseif (@op1==1) z=fn4(z^p2)^@seed+@power-@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)+c elseif (@op1==2) z=fn4(z^p2)^@seed+@power*@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)+c elseif (@op1==3) z=fn4(z^p2)^@seed+@power/@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)+c elseif (@op1==4) z=fn4(z^p2)^@seed+@power^@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)+c endif elseif (@op==1) if (@op1==0) z=fn4(z^p2)^@seed+@power+@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)-c elseif (@op1==1) z=fn4(z^p2)^@seed+@power-@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)-c elseif (@op1==2) z=fn4(z^p2)^@seed+@power*@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)-c elseif (@op1==3) z=fn4(z^p2)^@seed+@power/@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)-c elseif (@op1==4) z=fn4(z^p2)^@seed+@power^@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)-c endif elseif (@op==2) if (@op1==0) z=fn4(z^p2)^@seed+@power+@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)*c elseif (@op1==1) z=fn4(z^p2)^@seed+@power-@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)*c elseif (@op1==2) z=fn4(z^p2)^@seed+@power*@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)*c elseif (@op1==3) z=fn4(z^p2)^@seed+@power/@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)*c elseif (@op1==4) z=fn4(z^p2)^@seed+@power^@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)*c endif elseif (@op==3) if (@op1==0) z=fn4(z^p2)^@seed+@power+@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)/c elseif (@op1==1) z=fn4(z^p2)^@seed+@power-@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)/c elseif (@op1==2) z=fn4(z^p2)^@seed+@power*@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)/c elseif (@op1==3) z=fn4(z^p2)^@seed+@power/@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)/c elseif (@op1==4) z=fn4(z^p2)^@seed+@power^@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)/c endif elseif (@op==4) if (@op1==0) z=fn4(z^p2)^@seed+@power+@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)^c elseif (@op1==1) z=fn4(z^p2)^@seed+@power-@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)^c elseif (@op1==2) z=fn4(z^p2)^@seed+@power*@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)^c elseif (@op1==3) z=fn4(z^p2)^@seed+@power/@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)^c elseif (@op1==4) z=fn4(z^p2)^@seed+@power^@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)^c endif endif bailout: |z|<=@bailout Default: title="AngelJulia" angle=90 center=(0.0,0.0) maxiter=250 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param juliavariant caption="Julia Variant" enum="1""2""3""4""5" default=0 endparam param select caption="Init Operator 1" enum="1""2""3""4" default=0 endparam param select1 caption="Init Operator 2" enum="1""2""3""4" default=0 endparam param op2 caption="Init Operator 3" enum="1""2""3""4""5""6""7""8""9""10""11" default=4 endparam param op caption="Operator 1" enum="1""2""3""4""5" default=4 endparam param op1 caption="Operator 2" enum="1""2""3""4""5" default=0 endparam param @seed caption="Parameter 1" default=(1.4,0.0) endparam param power caption="Parameter 2" default=(0.0,0.0) endparam param p1 caption="Exponent 1" default=(1.0,0.0) endparam param p2 caption="Exponent 2" default=(1.0,0.0) endparam param p3 caption="Exponent 3" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn9 caption="Init Func Z" default=ident() endfunc func fn1 caption="Init Func 1" default=log() endfunc func fn2 caption="Init Func 2" default=sin() endfunc func fn3 caption="Init Func 3" default=sin() endfunc func fn8 caption="Init Func 4" default=ident() endfunc func fn4 caption="Loop Func 1" default=ident() endfunc func fn5 caption="Loop Func 2" default=ident() endfunc func fn6 caption="Loop Func 3" default=ident() endfunc func fn7 caption="Loop Func 4" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="AngelJulia-J" seed1=#pixel bailout=@bailout select=@select select1=select1 op=@op op1=@op1 op2=@op2 juliavariant=@juliavariant seed=@seed power=@power p1=@p1 p2=@p2 p3=@p3 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 fn8=@fn8 fn9=@fn9 version=@version } AngelJulia-J { ;Andrea Spinozzi(Updated Aug2004) Init: z=(0.0,0.0) c=(0.0,0.0) a=(0.0,0.0) if (@juliavariant==0);---------------------------1° choice----------------- if (@select==0) if (@select1==0) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)^@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)^@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)^@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)^@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)^@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)^@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)^@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)^@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)^@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)^@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)^@fn8(@seed1) a=z^c endif elseif (@select1==1) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)^@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)^@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)^@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)^@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)^@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)^@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)^@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)^@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)^@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)^@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)^@fn8(@seed1) a=z^c endif elseif (@select1==2) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)^@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)^@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)^@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)^@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)^@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)^@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)^@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)^@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)^@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)^@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)^@fn8(@seed1) a=z^c endif elseif (@select1==3) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)^@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)^@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)^@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)^@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)^@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)^@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)^@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)^@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)^@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)^@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)^@fn8(@seed1) a=z^c endif endif elseif (@select==1) if (@select1==0) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*@fn8(@seed1) a=z^c endif elseif (@select1==1) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)*@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)*@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)*@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)*@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)*@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)*@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)*@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)*@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)*@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)*@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)*@fn8(@seed1) a=z^c endif elseif (@select1==2) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)*@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)*@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)*@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)*@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)*@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)*@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)*@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)*@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)*@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)*@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)*@fn8(@seed1) a=z^c endif elseif (@select1==3) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)*@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)*@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)*@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)*@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)*@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)*@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)*@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)*@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)*@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)*@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)*@fn8(@seed1) a=z^c endif endif elseif (@select==2) if (@select1==0) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)-@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)-@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)-@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)-@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)-@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)-@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)-@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)-@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)-@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)-@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)-@fn8(@seed1) a=z^c endif elseif (@select1==1) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)-@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)-@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)-@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)-@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)-@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)-@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)-@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)-@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)-@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)-@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)-@fn8(@seed1) a=z^c endif elseif (@select1==2) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)-@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)-@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)-@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)-@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)-@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)-@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)-@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)-@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)-@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)-@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)-@fn8(@seed1) a=z^c endif elseif (@select1==3) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)-@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)-@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)-@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)-@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)-@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)-@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)-@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)-@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)-@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)-@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)-@fn8(@seed1) a=z^c endif endif elseif (@select==3) if (@select1==0) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)/@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)/@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)/@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)/@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)/@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)/@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)/@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)/@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)/@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)/@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)/@fn8(@seed1) a=z^c endif elseif (@select1==1) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)/@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)/@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)/@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)/@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)/@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)/@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)/@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)/@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)/@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)/@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)/@fn8(@seed1) a=z^c endif elseif (@select1==2) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)/@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)/@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)/@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)/@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)/@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)/@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)/@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)/@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)/@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)/@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)/@fn8(@seed1) a=z^c endif elseif (@select1==3) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)/@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)/@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)/@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)/@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)/@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)/@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)/@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)/@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)/@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)/@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)/@fn8(@seed1) a=z^c endif endif endif elseif (@JuliaVariant==1);---------------------------2° choice----------------- if (@select==0) if (@select1==0) if (@op2==0) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)^@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)^@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)^@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)^@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)^@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)^@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)^@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)^@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)^@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)^@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)^@fn8(@seed1) a=z^c endif elseif (@select1==1) if (@op2==0) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)^@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)^@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)^@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)^@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)^@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)^@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)^@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)^@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)^@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)^@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)^@fn8(@seed1) a=z^c endif elseif (@select1==2) if (@op2==0) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)^@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)^@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)^@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)^@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)^@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)^@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)^@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)^@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)^@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)^@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)^@fn8(@seed1) a=z^c endif elseif (@select1==3) if (@op2==0) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)^@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)^@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)^@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)^@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)^@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)^@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)^@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)^@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)^@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)^@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)^@fn8(@seed1) a=z^c endif endif elseif (@select==1) if (@select1==0) if (@op2==0) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)*@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)*@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)*@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)*@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)*@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)*@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)*@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)*@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)*@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)*@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)*@fn8(@seed1) a=z^c endif elseif (@select1==1) if (@op2==0) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)*@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)*@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)*@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)*@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)*@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)*@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)*@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)*@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)*@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)*@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)*@fn8(@seed1) a=z^c endif elseif (@select1==2) if (@op2==0) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)*@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)*@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)*@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)*@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)*@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)*@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)*@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)*@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)*@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)*@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)*@fn8(@seed1) a=z^c endif elseif (@select1==3) if (@op2==0) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)*@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)*@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)*@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)*@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)*@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)*@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)*@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)*@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)*@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)*@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)*@fn8(@seed1) a=z^c endif endif elseif (@select==2) if (@select1==0) if (@op2==0) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)-@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)-@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)-@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)-@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)-@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)-@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)-@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)-@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)-@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)-@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)-@fn8(@seed1) a=z^c endif elseif (@select1==1) if (@op2==0) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)-@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)-@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)-@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)-@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)-@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)-@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)-@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)-@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)-@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)-@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)-@fn8(@seed1) a=z^c endif elseif (@select1==2) if (@op2==0) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)-@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)-@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)-@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)-@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)-@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)-@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)-@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)-@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)-@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)-@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)-@fn8(@seed1) a=z^c endif elseif (@select1==3) if (@op2==0) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)-@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)-@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)-@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)-@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)-@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)-@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)-@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)-@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)-@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)-@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)-@fn8(@seed1) a=z^c endif endif elseif (@select==3) if (@select1==0) if (@op2==0) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)/@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)/@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)/@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)/@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)/@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)/@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)/@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)/@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)/@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)/@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)/@fn8(@seed1) a=z^c endif elseif (@select1==1) if (@op2==0) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)/@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)/@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)/@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)/@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)/@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)/@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)/@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)/@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)/@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)/@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)+fn3(@seed1)/@fn8(@seed1) a=z^c endif elseif (@select1==2) if (@op2==0) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)/@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)/@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)/@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)/@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)/@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)/@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)/@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)/@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)/@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)/@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)-fn3(@seed1)/@fn8(@seed1) a=z^c endif elseif (@select1==3) if (@op2==0) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)/@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)/@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)/@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)/@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)/@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)/@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)/@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)/@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)/@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)/@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(pixel)*fn2(@seed1)/fn3(@seed1)/@fn8(@seed1) a=z^c endif endif endif elseif (@juliavariant==2);---------------------------3° choice----------------- if (@select==0) if (@select1==0) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)^@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)^@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)^@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)^@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)^@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)^@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)^@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)^@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)^@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)^@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)^@fn8(@seed1) a=z^c endif elseif (@select1==1) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)^@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)^@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)^@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)^@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)^@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)^@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)^@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)^@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)^@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)^@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)^@fn8(@seed1) a=z^c endif elseif (@select1==2) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)^@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)^@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)^@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)^@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)^@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)^@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)^@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)^@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)^@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)^@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)^@fn8(@seed1) a=z^c endif elseif (@select1==3) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)^@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)^@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)^@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)^@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)^@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)^@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)^@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)^@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)^@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)^@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)^@fn8(@seed1) a=z^c endif endif elseif (@select==1) if (@select1==0) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)*@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)*@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)*@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)*@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)*@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)*@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)*@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)*@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)*@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)*@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)*@fn8(@seed1) a=z^c endif elseif (@select1==1) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)*@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)*@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)*@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)*@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)*@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)*@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)*@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)*@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)*@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)*@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)*@fn8(@seed1) a=z^c endif elseif (@select1==2) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)*@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)*@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)*@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)*@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)*@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)*@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)*@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)*@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)*@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)*@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)*@fn8(@seed1) a=z^c endif elseif (@select1==3) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)*@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)*@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)*@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)*@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)*@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)*@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)*@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)*@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)*@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)*@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)*@fn8(@seed1) a=z^c endif endif elseif (@select==2) if (@select1==0) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)-@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)-@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)-@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)-@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)-@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)-@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)-@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)-@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)-@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)-@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)-@fn8(@seed1) a=z^c endif elseif (@select1==1) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)-@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)-@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)-@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)-@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)-@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)-@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)-@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)-@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)-@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)-@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)-@fn8(@seed1) a=z^c endif elseif (@select1==2) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)-@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)-@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)-@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)-@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)-@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)-@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)-@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)-@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)-@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)-@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)-@fn8(@seed1) a=z^c endif elseif (@select1==3) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)-@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)-@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)-@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)-@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)-@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)-@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)-@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)-@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)-@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)-@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)-@fn8(@seed1) a=z^c endif endif elseif (@select==3) if (@select1==0) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)/@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)/@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)/@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)/@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)/@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)/@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)/@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)/@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)/@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)/@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)/@fn8(@seed1) a=z^c endif elseif (@select1==1) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)/@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)/@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)/@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)/@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)/@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)/@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)/@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)/@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)/@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)/@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)+fn3(@seed1)/@fn8(@seed1) a=z^c endif elseif (@select1==2) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)/@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)/@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)/@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)/@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)/@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)/@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)/@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)/@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)/@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)/@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)-fn3(@seed1)/@fn8(@seed1) a=z^c endif elseif (@select1==3) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)/@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)/@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)/@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)/@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)/@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)/@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)/@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)/@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)/@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)/@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(pixel)/fn3(@seed1)/@fn8(@seed1) a=z^c endif endif endif elseif (@juliavariant==3);---------------------------4° choice----------------- if (@select==0) if (@select1==0) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)^@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)^@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)^@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)^@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)^@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)^@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)^@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)^@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)^@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)^@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)^@fn8(@seed1) a=z^c endif elseif (@select1==1) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)^@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)^@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)^@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)^@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)^@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)^@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)^@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)^@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)^@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)^@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)^@fn8(@seed1) a=z^c endif elseif (@select1==2) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)^@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)^@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)^@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)^@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)^@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)^@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)^@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)^@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)^@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)^@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)^@fn8(@seed1) a=z^c endif elseif (@select1==3) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)^@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)^@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)^@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)^@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)^@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)^@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)^@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)^@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)^@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)^@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)^@fn8(@seed1) a=z^c endif endif elseif (@select==1) if (@select1==0) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)*@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)*@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)*@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)*@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)*@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)*@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)*@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)*@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)*@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)*@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)*@fn8(@seed1) a=z^c endif elseif (@select1==1) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)*@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)*@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)*@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)*@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)*@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)*@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)*@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)*@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)*@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)*@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)*@fn8(@seed1) a=z^c endif elseif (@select1==2) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)*@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)*@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)*@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)*@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)*@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)*@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)*@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)*@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)*@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)*@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)*@fn8(@seed1) a=z^c endif elseif (@select1==3) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)*@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)*@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)*@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)*@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)*@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)*@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)*@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)*@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)*@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)*@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)*@fn8(@seed1) a=z^c endif endif elseif (@select==2) if (@select1==0) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)-@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)-@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)-@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)-@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)-@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)-@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)-@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)-@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)-@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)-@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)-@fn8(@seed1) a=z^c endif elseif (@select1==1) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)-@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)-@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)-@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)-@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)-@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)-@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)-@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)-@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)-@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)-@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)-@fn8(@seed1) a=z^c endif elseif (@select1==2) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)-@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)-@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)-@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)-@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)-@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)-@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)-@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)-@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)-@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)-@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)-@fn8(@seed1) a=z^c endif elseif (@select1==3) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)-@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)-@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)-@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)-@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)-@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)-@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)-@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)-@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)-@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)-@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)-@fn8(@seed1) a=z^c endif endif elseif (@select==3) if (@select1==0) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)/@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)/@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)/@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)/@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)/@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)/@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)/@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)/@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)/@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)/@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(pixel)/@fn8(@seed1) a=z^c endif elseif (@select1==1) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)/@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)/@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)/@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)/@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)/@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)/@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)/@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)/@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)/@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)/@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(pixel)/@fn8(@seed1) a=z^c endif elseif (@select1==2) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)/@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)/@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)/@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)/@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)/@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)/@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)/@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)/@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)/@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)/@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(pixel)/@fn8(@seed1) a=z^c endif elseif (@select1==3) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)/@fn8(@seed1) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)/@fn8(@seed1) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)/@fn8(@seed1) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)/@fn8(@seed1) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)/@fn8(@seed1) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)/@fn8(@seed1) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)/@fn8(@seed1) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)/@fn8(@seed1) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)/@fn8(@seed1) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)/@fn8(@seed1) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(pixel)/@fn8(@seed1) a=z^c endif endif endif elseif (@juliavariant==4);---------------------------5° choice----------------- if (@select==0) if (@select1==0) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)^@fn8(pixel) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)^@fn8(pixel) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)^@fn8(pixel) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)^@fn8(pixel) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)^@fn8(pixel) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)^@fn8(pixel) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)^@fn8(pixel) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)^@fn8(pixel) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)^@fn8(pixel) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)^@fn8(pixel) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)^@fn8(pixel) a=z^c endif elseif (@select1==1) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)^@fn8(pixel) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)^@fn8(pixel) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)^@fn8(pixel) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)^@fn8(pixel) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)^@fn8(pixel) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)^@fn8(pixel) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)^@fn8(pixel) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)^@fn8(pixel) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)^@fn8(pixel) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)^@fn8(pixel) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)^@fn8(pixel) a=z^c endif elseif (@select1==2) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)^@fn8(pixel) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)^@fn8(pixel) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)^@fn8(pixel) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)^@fn8(pixel) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)^@fn8(pixel) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)^@fn8(pixel) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)^@fn8(pixel) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)^@fn8(pixel) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)^@fn8(pixel) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)^@fn8(pixel) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)^@fn8(pixel) a=z^c endif elseif (@select1==3) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)^@fn8(pixel) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)^@fn8(pixel) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)^@fn8(pixel) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)^@fn8(pixel) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)^@fn8(pixel) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)^@fn8(pixel) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)^@fn8(pixel) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)^@fn8(pixel) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)^@fn8(pixel) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)^@fn8(pixel) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)^@fn8(pixel) a=z^c endif endif elseif (@select==1) if (@select1==0) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*@fn8(pixel) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*@fn8(pixel) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*@fn8(pixel) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*@fn8(pixel) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*@fn8(pixel) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*@fn8(pixel) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*@fn8(pixel) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*@fn8(pixel) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*@fn8(pixel) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*@fn8(pixel) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*@fn8(pixel) a=z^c endif elseif (@select1==1) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)*@fn8(pixel) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)*@fn8(pixel) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)*@fn8(pixel) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)*@fn8(pixel) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)*@fn8(pixel) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)*@fn8(pixel) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)*@fn8(pixel) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)*@fn8(pixel) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)*@fn8(pixel) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)*@fn8(pixel) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)*@fn8(pixel) a=z^c endif elseif (@select1==2) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)*@fn8(pixel) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)*@fn8(pixel) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)*@fn8(pixel) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)*@fn8(pixel) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)*@fn8(pixel) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)*@fn8(pixel) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)*@fn8(pixel) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)*@fn8(pixel) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)*@fn8(pixel) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)*@fn8(pixel) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)*@fn8(pixel) a=z^c endif elseif (@select1==3) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)*@fn8(pixel) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)*@fn8(pixel) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)*@fn8(pixel) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)*@fn8(pixel) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)*@fn8(pixel) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)*@fn8(pixel) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)*@fn8(pixel) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)*@fn8(pixel) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)*@fn8(pixel) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)*@fn8(pixel) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)*@fn8(pixel) a=z^c endif endif elseif (@select==2) if (@select1==0) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)-@fn8(pixel) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)-@fn8(pixel) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)-@fn8(pixel) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)-@fn8(pixel) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)-@fn8(pixel) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)-@fn8(pixel) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)-@fn8(pixel) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)-@fn8(pixel) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)-@fn8(pixel) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)-@fn8(pixel) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)-@fn8(pixel) a=z^c endif elseif (@select1==1) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)-@fn8(pixel) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)-@fn8(pixel) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)-@fn8(pixel) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)-@fn8(pixel) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)-@fn8(pixel) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)-@fn8(pixel) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)-@fn8(pixel) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)-@fn8(pixel) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)-@fn8(pixel) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)-@fn8(pixel) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)-@fn8(pixel) a=z^c endif elseif (@select1==2) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)-@fn8(pixel) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)-@fn8(pixel) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)-@fn8(pixel) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)-@fn8(pixel) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)-@fn8(pixel) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)-@fn8(pixel) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)-@fn8(pixel) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)-@fn8(pixel) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)-@fn8(pixel) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)-@fn8(pixel) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)-@fn8(pixel) a=z^c endif elseif (@select1==3) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)-@fn8(pixel) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)-@fn8(pixel) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)-@fn8(pixel) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)-@fn8(pixel) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)-@fn8(pixel) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)-@fn8(pixel) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)-@fn8(pixel) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)-@fn8(pixel) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)-@fn8(pixel) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)-@fn8(pixel) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)-@fn8(pixel) a=z^c endif endif elseif (@select==3) if (@select1==0) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)/@fn8(pixel) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)/@fn8(pixel) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)/@fn8(pixel) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)/@fn8(pixel) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)/@fn8(pixel) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)/@fn8(pixel) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)/@fn8(pixel) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)/@fn8(pixel) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)/@fn8(pixel) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)/@fn8(pixel) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)/@fn8(pixel) a=z^c endif elseif (@select1==1) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)/@fn8(pixel) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)/@fn8(pixel) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)/@fn8(pixel) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)/@fn8(pixel) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)/@fn8(pixel) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)/@fn8(pixel) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)/@fn8(pixel) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)/@fn8(pixel) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)/@fn8(pixel) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)/@fn8(pixel) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)+fn3(@seed1)/@fn8(pixel) a=z^c endif elseif (@select1==2) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)/@fn8(pixel) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)/@fn8(pixel) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)/@fn8(pixel) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)/@fn8(pixel) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)/@fn8(pixel) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)/@fn8(pixel) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)/@fn8(pixel) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)/@fn8(pixel) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)/@fn8(pixel) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)/@fn8(pixel) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)-fn3(@seed1)/@fn8(pixel) a=z^c endif elseif (@select1==3) if (@op2==0) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)/@fn8(pixel) a=z+z elseif (@op2==1) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)/@fn8(pixel) a=z-z elseif (@op2==2) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)/@fn8(pixel) a=z*z elseif (@op2==3) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)/@fn8(pixel) a=z/z elseif (@op2==4) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)/@fn8(pixel) a=z^z elseif (@op2==5) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)/@fn8(pixel) a=z elseif (@op2==6) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)/@fn8(pixel) a=z+c elseif (@op2==7) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)/@fn8(pixel) a=z-c elseif (@op2==8) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)/@fn8(pixel) a=z*c elseif (@op2==9) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)/@fn8(pixel) a=z/c elseif (@op2==10) complex z=@fn9(pixel) c=fn1(@seed1)*fn2(@seed1)/fn3(@seed1)/@fn8(pixel) a=z^c endif endif endif endif Loop: if (@op==0) if (@op1==0) z=fn4(z^p2)^@seed+@power+@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)+c elseif (@op1==1) z=fn4(z^p2)^@seed+@power-@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)+c elseif (@op1==2) z=fn4(z^p2)^@seed+@power*@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)+c elseif (@op1==3) z=fn4(z^p2)^@seed+@power/@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)+c elseif (@op1==4) z=fn4(z^p2)^@seed+@power^@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)+c endif elseif (@op==1) if (@op1==0) z=fn4(z^p2)^@seed+@power+@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)-c elseif (@op1==1) z=fn4(z^p2)^@seed+@power-@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)-c elseif (@op1==2) z=fn4(z^p2)^@seed+@power*@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)-c elseif (@op1==3) z=fn4(z^p2)^@seed+@power/@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)-c elseif (@op1==4) z=fn4(z^p2)^@seed+@power^@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)-c endif elseif (@op==2) if (@op1==0) z=fn4(z^p2)^@seed+@power+@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)*c elseif (@op1==1) z=fn4(z^p2)^@seed+@power-@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)*c elseif (@op1==2) z=fn4(z^p2)^@seed+@power*@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)*c elseif (@op1==3) z=fn4(z^p2)^@seed+@power/@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)*c elseif (@op1==4) z=fn4(z^p2)^@seed+@power^@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)*c endif elseif (@op==3) if (@op1==0) z=fn4(z^p2)^@seed+@power+@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)/c elseif (@op1==1) z=fn4(z^p2)^@seed+@power-@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)/c elseif (@op1==2) z=fn4(z^p2)^@seed+@power*@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)/c elseif (@op1==3) z=fn4(z^p2)^@seed+@power/@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)/c elseif (@op1==4) z=fn4(z^p2)^@seed+@power^@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)/c endif elseif (@op==4) if (@op1==0) z=fn4(z^p2)^@seed+@power+@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)^c elseif (@op1==1) z=fn4(z^p2)^@seed+@power-@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)^c elseif (@op1==2) z=fn4(z^p2)^@seed+@power*@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)^c elseif (@op1==3) z=fn4(z^p2)^@seed+@power/@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)^c elseif (@op1==4) z=fn4(z^p2)^@seed+@power^@fn7(c)*@fn6(a^@p1) a=@fn5(z^p3)^c endif endif Bailout: |z|<=@bailout Default: title="AngelJulia-J" angle=90 center=(0.0,0.0) maxiter=250 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param juliavariant caption="Julia Variant" enum="1""2""3""4""5" default=0 endparam param Select caption="Init Operator 1" enum="1""2""3""4" default=0 endparam param Select1 caption="Init Operator 2" enum="1""2""3""4" default=0 endparam param op2 caption="Init Operator 3" enum="1""2""3""4""5""6""7""8""9""10""11" default=4 endparam param op caption="Operator 1" enum="1""2""3""4""5" default=4 endparam param op1 caption="Operator 2" enum="1""2""3""4""5" default=0 endparam param @seed1 caption="Seed Value" default=(-1.475,0.5) endparam param @seed caption="Parameter 1" default=(1.4,0.0) endparam param power caption="Parameter 2" default=(0.0,0.0) endparam param p1 caption="Exponent 1" default=(1.0,0.0) endparam param p2 caption="Exponent 2" default=(1.0,0.0) endparam param p3 caption="Exponent 3" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn9 caption="Init Func Z" default=ident() endfunc func fn1 caption="Init Func 1" default=log() endfunc func fn2 caption="Init Func 2" default=sin() endfunc func fn3 caption="Init Func 3" default=sin() endfunc func fn8 caption="Init Func 4" default=ident() endfunc func fn4 caption="Loop Func 1" default=ident() endfunc func fn5 caption="Loop Func 2" default=ident() endfunc func fn6 caption="Loop Func 3" default=ident() endfunc func fn7 caption="Loop Func 4" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="AngelJulia" seed1=#pixel bailout=@bailout select=@select select1=select1 op=@op op1=@op1 op2=@op2 juliavariant=@juliavariant seed=@seed power=@power p1=@p1 p2=@p2 p3=@p3 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 fn8=@fn8 fn9=@fn9 version=@version } Barney { ;A Mandelbrot/Julia that remember the Barnsley Type of Fractals. ;There're two Rand. parameters that are unified in the equation: ;float r=abs(random(p2))/#randomrange ;float s=abs(random(p3))/#randomrange ;Andrea Spinozzi(Feb2004) ;Updated(Aug2004) Init: z=(0.0,0.0) z1=(0.0,0.0) c=(0.0,0.0) x=(0.0,0.0) y=(0.0,0.0) float r=abs(random(p2))/#randomrange float s=abs(random(p3))/#randomrange if @mode=="Mandelbrot" z=#pixel c=#pixel endif if @mode=="Julia" z=#pixel c=@seed if @scale!=1.0 z=z/@scale endif if @center!=(0,0) z=z+@center endif endif z=fn1(z+pixel) z=fn2(z-pixel) Loop: if real(p1)>=0&&real(p1)<=4 if @opr=="+" if @ops=="+" x=(fn3(c+r)^4*sqr(z+s)/0.58) y=(c/(1+cabs(1)))+p1 elseif @ops=="-" x=(fn3(c+r)^4*sqr(z-s)/0.58) y=(c/(1+cabs(1)))+p1 endif elseif @opr=="-" if @ops=="+" x=(fn3(c-r)^4*sqr(z+s)/0.58) y=(c/(1+cabs(1)))+p1 elseif @ops=="-" x=(fn3(c-r)^4*sqr(z-s)/0.58) y=(c/(1+cabs(1)))+p1 endif elseif @opr=="^" if @ops=="+" x=(fn3(c^r)^4*sqr(z+s)/0.58) y=(c/(1+cabs(1)))+p1 elseif @ops=="-" x=(fn3(c^r)^4*sqr(z-s)/0.58) y=(c/(1+cabs(1)))+p1 endif endif elseif real(p1)>4&&real(p1)<=10 if @opr=="+" if @ops=="+" x=(fn3(c+r)^2*sqr(z+s)/0.58)-p1 y=(c/(1+cabs(1))) elseif @ops=="-" x=(fn3(c+r)^2*sqr(z-s)/0.58)-p1 y=(c/(1+cabs(1))) endif elseif @opr=="-" if @ops=="+" x=(fn3(c-r)^2*sqr(z+s)/0.58)-p1 y=(c/(1+cabs(1))) elseif @ops=="-" x=(fn3(c-r)^2*sqr(z-s)/0.58)-p1 y=(c/(1+cabs(1))) endif elseif @opr=="^" if @ops=="+" x=(fn3(c^r)^2*sqr(z+s)/0.58)-p1 y=(c/(1+cabs(1))) elseif @ops=="-" x=(fn3(c^r)^2*sqr(z-s)/0.58)-p1 y=(c/(1+cabs(1))) endif endif elseif real(p1)>10 if @opr=="+" if @ops=="+" x=(fn3(c+r)^4*sqr(z+s)/0.58) y=(c/(p1+cabs(1))) elseif @ops=="-" x=(fn3(c+r)^4*sqr(z-s)/0.58) y=(c/(p1+cabs(1))) endif elseif @opr=="-" if @ops=="+" x=(fn3(c-r)^4*sqr(z+s)/0.58) y=(c/(p1+cabs(1))) elseif @ops=="-" x=(fn3(c-r)^4*sqr(z-s)/0.58) y=(c/(p1+cabs(1))) endif elseif @opr=="^" if @ops=="+" x=(fn3(c^r)^4*sqr(z+s)/0.58) y=(c/(p1+cabs(1))) elseif @ops=="-" x=(fn3(c^r)^4*sqr(z-s)/0.58) y=(c/(p1+cabs(1))) endif endif elseif real(p1)>=-10 if @opr=="+" if @ops=="+" x=(p1+fn3(c+r)^4*sqr(z+s)/0.58) y=(c/(1*cabs(-1))) elseif @ops=="-" x=(p1+fn3(c+r)^4*sqr(z-s)/0.58) y=(c/(1*cabs(-1))) endif elseif @opr=="-" if @ops=="+" x=(p1+fn3(c-r)^4*sqr(z+s)/0.58) y=(c/(1*cabs(-1))) elseif @ops=="-" x=(p1+fn3(c-r)^4*sqr(z-s)/0.58) y=(c/(1*cabs(-1))) endif elseif @opr=="^" if @ops=="+" x=(p1+fn3(c^r)^4*sqr(z+s)/0.58) y=(c/(1*cabs(-1))) elseif @ops=="-" x=(p1+fn3(c^r)^4*sqr(z-s)/0.58) y=(c/(1*cabs(-1))) endif endif elseif real(p1)<-10 if @opr=="+" if @ops=="+" x=(fn3(c+r)^4*sqr(z+s)/0.58) y=(c/(p1+cabs(1))) elseif @ops=="-" x=(fn3(c+r)^4*sqr(z-s)/0.58) y=(c/(p1+cabs(1))) endif elseif @opr=="-" if @ops=="+" x=(fn3(c-r)^4*sqr(z+s)/0.58) y=(c/(p1+cabs(1))) elseif @ops=="-" x=(fn3(c-r)^4*sqr(z-s)/0.58) y=(c/(p1+cabs(1))) endif elseif @opr=="^" if @ops=="+" x=(fn3(c^r)^4*sqr(z+s)/0.58) y=(c/(p1+cabs(1))) elseif @ops=="-" x=(fn3(c^r)^4*sqr(z-s)/0.58) y=(c/(p1+cabs(1))) endif endif endif if real(p1)==-1 if @opr=="+" if @ops=="+" x=(fn3(c+r)^4*sqr(z+s)/0.58) y=(c/p1*(1+cabs(-1))) elseif @ops=="-" x=(fn3(c+r)^4*sqr(z-s)/0.58) y=(c/p1*(1+cabs(-1))) endif elseif @opr=="-" if @ops=="+" x=(fn3(c-r)^4*sqr(z+s)/0.58) y=(c/p1*(1+cabs(-1))) elseif @ops=="-" x=(fn3(c-r)^4*sqr(z-s)/0.58) y=(c/p1*(1+cabs(-1))) endif elseif @opr=="^" if @ops=="+" x=(fn3(c^r)^4*sqr(z+s)/0.58) y=(c/p1*(1+cabs(-1))) elseif @ops=="-" x=(fn3(c^r)^4*sqr(z-s)/0.58) y=(c/p1*(1+cabs(-1))) endif endif endif x=fn4(x+p4) y=@fn5(y+p5) if @opx=="+" if @op=="+" z1=x^0.5+c z=(y^p6)+(-@fn6(z1))+0.1+@p7 elseif @op=="-" z1=x^0.5-c z=(y^p6)+(-@fn6(z1))+0.1+@p7 elseif @op=="*" z1=x^0.5*c z=(y^p6)+(-@fn6(z1))+@p7 elseif @op=="/" z1=x^0.5/c z=(y^p6)+(-@fn6(z1))+@p7 endif elseif @opx=="-" if @op=="+" z1=(-x)^0.5+c z=(y^p6)+(-@fn6(z1))+@p7 elseif @op=="-" z1=(-x)^0.5-c z=(y^p6)+(-@fn6(z1))+@p7 elseif @op=="*" z1=(-x)^0.5*c z=(y^p6)+(-@fn6(z1))+@p7 elseif @op=="/" z1=(-x)^0.5/c z=(y^p6)+(-@fn6(z1))+@p7 endif endif Bailout: |z|<=|@bailout| Default: title="Barney" center=(0.0,0.0) maxiter=250 angle=90 magn=1.0 method=multipass periodicity=0 param Bailout caption="Bailout Value" default=16.0 min=0.0 endparam param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 endparam param SwitchMode caption="Select Switch" enum="Mandelbrot""Julia" default=1 endparam Heading caption="Switch Parameters" visible=@show endheading param @show caption="Show Switch Parameters" default=false endparam param swscale caption="Scale" default=0.6 visible=@show endparam param swcenter caption="Switch Center" default=(0.0,0.0) visible=@show endparam param scale caption="Scale Reset" default=0.5 visible=@show endparam param center caption="Center Reset" default=(0.0,0.0) visible=@show endparam Heading caption="Operators and Parameters" Endheading complex param seed caption="Seed Value" default=(-0.59375,0.24375) visible=(@mode=="Julia") endparam param opr caption="Operator 1" enum="+""-""^" default=2 endparam param ops caption="Operator 2" enum="+""-" default=0 endparam param op caption="Operator 3" enum="+""-""*""/" default=0 endparam param opx caption="Operator 4" enum="+""-" default=1 endparam param p1 caption="Parameter 1" default=(1.5,0.0) endparam param p4 caption="Parameter 2" default=(0.0,0.0) endparam param p5 caption="Parameter 3" default=(0.0,0.0) endparam param p6 caption="Parameter 4" default=(1.0,0.0) endparam param p7 caption="Parameter 5" default=(0.0,0.0) endparam param p2 caption="Rand. 1" default=1234 endparam param p3 caption="Rand. 2" default=1234 endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=sqrt() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc func fn6 caption="Function 6" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Barney" @seed=#pixel bailout=@bailout p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 ops=@ops opr=@opr op=@op opx=@opx fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 mode=@switchmode switchmode=@mode center=@swcenter scale=@swscale version=@version } Barney-1 { ;Andrea Spinozzi(Feb2004) ;Updated(Aug2004) Init: z=@startseed c=(0.0,0.0) z1=(0.0,0.0) z2=(0.0,0.0) z3=(0.0,0.0) float a=2.0 int iter=1 if @mode=="Mandelbrot" z=@startseed c=pixel elseif @mode=="Julia" if @changeswitch==0 z=pixel c=@startseed elseif @changeswitch==1 z4=fn3(z-pixel) z=abs(fn4(z+pixel)/z4) c=@startseed endif if @scale!=1.0 z=z/@scale endif if @center!=(0.0,0.0) z=z+@center endif endif Loop: iter=iter+1 if real(p1)>=-10 && real(p1)<=10 if @op=="+" z1=fn2(z/exp(a))+p1/a elseif @op=="-" z1=fn2(z/exp(a))-p1/a elseif @op=="/" z1=fn2(z/exp(a))/p1/a endif else z1=fn2(z/exp(a))+a endif if real(p2)>=-15 && real(p2)<=15 if @opselect==0 if @op1==0 if @op2=="+" if @op3=="+" z2=@fn10(z^p3)+@fn8(z)*@fn11(c)+p2-@fn9(z^p4) z3=sqrt(@fn12(z+a))+@fn11(c) elseif @op3=="-" z2=@fn10(z^p3)+@fn8(z)*@fn11(c)+p2-@fn9(z^p4) z3=sqrt(@fn12(z+a))-@fn11(c) elseif @op3=="*" z2=@fn10(z^p3)+@fn8(z)*@fn11(c)+p2-@fn9(z^p4) z3=sqrt(@fn12(z+a))*@fn11(c) elseif @op3=="/" z2=@fn10(z^p3)+@fn8(z)*@fn11(c)+p2-@fn9(z^p4) z3=sqrt(@fn12(z+a))/@fn11(c) endif elseif @op2=="-" if @op3=="+" z2=@fn10(z^p3)-@fn8(z)*@fn11(c)+p2-@fn9(z^p4) z3=sqrt(@fn12(z+a))+@fn11(c) elseif @op3=="-" z2=@fn10(z^p3)-@fn8(z)*@fn11(c)+p2-@fn9(z^p4) z3=sqrt(@fn12(z+a))-@fn11(c) elseif @op3=="*" z2=@fn10(z^p3)-@fn8(z)*@fn11(c)+p2-@fn9(z^p4) z3=sqrt(@fn12(z+a))*@fn11(c) elseif @op3=="/" z2=@fn10(z^p3)-@fn8(z)*@fn11(c)+p2-@fn9(z^p4) z3=sqrt(@fn12(z+a))/@fn11(c) endif elseif @op2=="*" if @op3=="+" z2=@fn10(z^p3)*@fn8(z)*@fn11(c)+p2-@fn9(z^p4) z3=sqrt(@fn12(z+a))+@fn11(c) elseif @op3=="-" z2=@fn10(z^p3)*@fn8(z)*@fn11(c)+p2-@fn9(z^p4) z3=sqrt(@fn12(z+a))-@fn11(c) elseif @op3=="*" z2=@fn10(z^p3)*@fn8(z)*@fn11(c)+p2-@fn9(z^p4) z3=sqrt(@fn12(z+a))*@fn11(c) elseif @op3=="/" z2=@fn10(z^p3)*@fn8(z)*@fn11(c)+p2-@fn9(z^p4) z3=sqrt(@fn12(z+a))/@fn11(c) endif endif elseif @op1==1 if @op2=="+" if @op3=="+" z2=@fn10(z^p3)+@fn8(z)/@fn11(c)+p2-@fn9(z^p4) z3=sqrt(@fn12(z+a))+@fn11(c) elseif @op3=="-" z2=@fn10(z^p3)+@fn8(z)/@fn11(c)+p2-@fn9(z^p4) z3=sqrt(@fn12(z+a))-@fn11(c) elseif @op3=="*" z2=@fn10(z^p3)+@fn8(z)/@fn11(c)+p2-@fn9(z^p4) z3=sqrt(@fn12(z+a))*@fn11(c) elseif @op3=="/" z2=@fn10(z^p3)+@fn8(z)/@fn11(c)+p2-@fn9(z^p4) z3=sqrt(@fn12(z+a))/@fn11(c) endif elseif @op2=="-" if @op3=="+" z2=@fn10(z^p3)-@fn8(z)/@fn11(c)+p2-@fn9(z^p4) z3=sqrt(@fn12(z+a))+@fn11(c) elseif @op3=="-" z2=@fn10(z^p3)-@fn8(z)/@fn11(c)+p2-@fn9(z^p4) z3=sqrt(@fn12(z+a))-@fn11(c) elseif @op3=="*" z2=@fn10(z^p3)-@fn8(z)/@fn11(c)+p2-@fn9(z^p4) z3=sqrt(@fn12(z+a))*@fn11(c) elseif @op3=="/" z2=@fn10(z^p3)-@fn8(z)/@fn11(c)+p2-@fn9(z^p4) z3=sqrt(@fn12(z+a))/@fn11(c) endif elseif @op2=="*" if @op3=="+" z2=@fn10(z^p3)*@fn8(z)/@fn11(c)+p2-@fn9(z^p4) z3=sqrt(@fn12(z+a))+@fn11(c) elseif @op3=="-" z2=@fn10(z^p3)*@fn8(z)/@fn11(c)+p2-@fn9(z^p4) z3=sqrt(@fn12(z+a))-@fn11(c) elseif @op3=="*" z2=@fn10(z^p3)*@fn8(z)/@fn11(c)+p2-@fn9(z^p4) z3=sqrt(@fn12(z+a))*@fn11(c) elseif @op3=="/" z2=@fn10(z^p3)*@fn8(z)/@fn11(c)+p2-@fn9(z^p4) z3=sqrt(@fn12(z+a))/@fn11(c) endif endif endif elseif @opselect==1 if @op1==0 if @op2=="+" if @op3=="+" z2=@fn10(z^p3)+@fn8(z)*@fn11(c)+p2-@fn9(z^p4) z3=log(@fn12(z+a))+@fn11(c) elseif @op3=="-" z2=@fn10(z^p3)+@fn8(z)*@fn11(c)+p2-@fn9(z^p4) z3=log(@fn12(z+a))-@fn11(c) elseif @op3=="*" z2=@fn10(z^p3)+@fn8(z)*@fn11(c)+p2-@fn9(z^p4) z3=log(@fn12(z+a))*@fn11(c) elseif @op3=="/" z2=@fn10(z^p3)+@fn8(z)*@fn11(c)+p2-@fn9(z^p4) z3=log(@fn12(z+a))/@fn11(c) endif elseif @op2=="-" if @op3=="+" z2=@fn10(z^p3)-@fn8(z)*@fn11(c)+p2-@fn9(z^p4) z3=log(@fn12(z+a))+@fn11(c) elseif @op3=="-" z2=@fn10(z^p3)-@fn8(z)*@fn11(c)+p2-@fn9(z^p4) z3=log(@fn12(z+a))-@fn11(c) elseif @op3=="*" z2=@fn10(z^p3)-@fn8(z)*@fn11(c)+p2-@fn9(z^p4) z3=log(@fn12(z+a))*@fn11(c) elseif @op3=="/" z2=@fn10(z^p3)-@fn8(z)*@fn11(c)+p2-@fn9(z^p4) z3=log(@fn12(z+a))/@fn11(c) endif elseif @op2=="*" if @op3=="+" z2=@fn10(z^p3)*@fn8(z)*@fn11(c)+p2-@fn9(z^p4) z3=log(@fn12(z+a))+@fn11(c) elseif @op3=="-" z2=@fn10(z^p3)*@fn8(z)*@fn11(c)+p2-@fn9(z^p4) z3=log(@fn12(z+a))-@fn11(c) elseif @op3=="*" z2=@fn10(z^p3)*@fn8(z)*@fn11(c)+p2-@fn9(z^p4) z3=log(@fn12(z+a))*@fn11(c) elseif @op3=="/" z2=@fn10(z^p3)*@fn8(z)*@fn11(c)+p2-@fn9(z^p4) z3=log(@fn12(z+a))/@fn11(c) endif endif elseif @op1==1 if @op2=="+" if @op3=="+" z2=@fn10(z^p3)+@fn8(z)/@fn11(c)+p2-@fn9(z^p4) z3=log(@fn12(z+a))+@fn11(c) elseif @op3=="-" z2=@fn10(z^p3)+@fn8(z)/@fn11(c)+p2-@fn9(z^p4) z3=log(@fn12(z+a))-@fn11(c) elseif @op3=="*" z2=@fn10(z^p3)+@fn8(z)/@fn11(c)+p2-@fn9(z^p4) z3=log(@fn12(z+a))*@fn11(c) elseif @op3=="/" z2=@fn10(z^p3)+@fn8(z)/@fn11(c)+p2-@fn9(z^p4) z3=log(@fn12(z+a))/@fn11(c) endif elseif @op2=="-" if @op3=="+" z2=@fn10(z^p3)-@fn8(z)/@fn11(c)+p2-@fn9(z^p4) z3=log(@fn12(z+a))+@fn11(c) elseif @op3=="-" z2=@fn10(z^p3)-@fn8(z)/@fn11(c)+p2-@fn9(z^p4) z3=log(@fn12(z+a))-@fn11(c) elseif @op3=="*" z2=@fn10(z^p3)-@fn8(z)/@fn11(c)+p2-@fn9(z^p4) z3=log(@fn12(z+a))*@fn11(c) elseif @op3=="/" z2=@fn10(z^p3)-@fn8(z)/@fn11(c)+p2-@fn9(z^p4) z3=log(@fn12(z+a))/@fn11(c) endif elseif @op2=="*" if @op3=="+" z2=@fn10(z^p3)*@fn8(z)/@fn11(c)+p2-@fn9(z^p4) z3=log(@fn12(z+a))+@fn11(c) elseif @op3=="-" z2=@fn10(z^p3)*@fn8(z)/@fn11(c)+p2-@fn9(z^p4) z3=log(@fn12(z+a))-@fn11(c) elseif @op3=="*" z2=@fn10(z^p3)*@fn8(z)/@fn11(c)+p2-@fn9(z^p4) z3=log(@fn12(z+a))*@fn11(c) elseif @op3=="/" z2=@fn10(z^p3)*@fn8(z)/@fn11(c)+p2-@fn9(z^p4) z3=log(@fn12(z+a))/@fn11(c) endif endif endif endif else z2=sqr(@fn8(z))*@fn11(c) z3=@fn10(log(@fn9(z+a))*@fn11(c)) endif z1=@fn5(z1)+p5 z2=@fn6(z2)+p6 z3=@fn7(z3) if @opfn1=="-" if @opz=="+" if @op4==0 z=(z1+z2)+z3-fn1(z/exp(a)) elseif @op4==1 z=(z1+z2)-z3-fn1(z/exp(a)) elseif @op4==2 z=(z1+z2)*z3-fn1(z/exp(a)) endif elseif @opz=="-" if @op4==0 z=(z1-z2)+z3-fn1(z/exp(a)) elseif @op4==1 z=(z1-z2)-z3-fn1(z/exp(a)) elseif @op4==2 z=(z1-z2)*z3-fn1(z/exp(a)) endif elseif @opz=="*" if @op4==0 z=(z1*z2)+z3-fn1(z/exp(a)) elseif @op4==1 z=(z1*z2)-z3-fn1(z/exp(a)) elseif @op4==2 z=(z1*z2)*z3-fn1(z/exp(a)) endif endif elseif @opfn1=="*" if @opz=="+" if @op4==0 z=(z1+z2)+z3*fn1(z/exp(a+0.5)) elseif @op4==1 z=(z1+z2)-z3*fn1(z/exp(a+0.5)) elseif @op4==2 z=(z1+z2)*z3*fn1(z/exp(a+0.5)) endif elseif @opz=="-" if @op4==0 z=(z1-z2)+z3*fn1(z/exp(a+0.5)) elseif @op4==1 z=(z1-z2)-z3*fn1(z/exp(a+0.5)) elseif @op4==2 z=(z1-z2)*z3*fn1(z/exp(a+0.5)) endif elseif @opz=="*" if @op4==0 z=(z1*z2)+z3*fn1(z/exp(a+0.5)) elseif @op4==1 z=(z1*z2)-z3*fn1(z/exp(a+0.5)) elseif @op4==2 z=(z1*z2)*z3*fn1(z/exp(a+0.5)) endif endif endif Bailout: |real(z)*imag(z)|<=|@bailout*iter| Default: title="Barney-1" center=(0.0,0.0) angle=90 magn=0.6 maxiter=250 method=multipass periodicity=0 param Bailout caption="Bailout Value" default=64.0 min=0.0 endparam param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 endparam param switchmode caption="Switch To..." enum="Mandelbrot""Julia" default=1 endparam param changeswitch caption="Change Switch" enum="Normal""Mixed" default=0 endparam func fn4 caption="FunctionSwitch 1" default=tanh() visible=(@changeswitch==1) endfunc func fn3 caption="FunctionSwitch 2" default=abs() visible=(@changeswitch==1) endfunc Heading caption="Switch Parameters" visible=@show endheading param @show caption="Show Switch Parameters" default=false endparam param swscale caption="Scale" default=0.4 visible=@show endparam param swcenter caption="Switch Center" default=(0.0,0.0) visible=@show endparam param scale caption="Scale Reset" default=0.5 visible=@show endparam param center caption="Center Reset" default=(0.0,0.0) visible=@show endparam Heading caption="Operators and Parameters" Endheading param op caption="Operator Param.1" enum="+""-""/" default=2 endparam param opselect caption="Select Mode" enum="1""2" default=1 endparam param op1 caption="Select C" enum="*""/" default=0 endparam param op2 caption="Operator 1" enum="+""-""*" default=0 endparam param op3 caption="Operator 2" enum="+""-""*""/" default=0 endparam param opz caption="Operator 3" enum="+""-""*" default=0 endparam param op4 caption="Operator 4" enum="+""-""*" default=1 endparam param opfn1 caption="Operator 5" enum="-""*" default=1 endparam param startseed caption="Init Z/Seed Value" default=(0.6250000002,4.912791096e-19) endparam param p1 caption="Parameter 1" default=(1.5,0.0) endparam param p2 caption="Parameter 2" default=(1.0,0.0) endparam param p5 caption="Parameter 3" default=(0.0,0.0) endparam param p6 caption="Parameter 4" default=(0.0,0.0) endparam param p3 caption="Exponent 1" default=(1.0,0.0) endparam param p4 caption="Exponent 2" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn5 caption="Function 3" default=ident() endfunc func fn6 caption="Function 4" default=ident() endfunc func fn7 caption="Function 5" default=ident() endfunc func fn8 caption="Function 6" default=ident() endfunc func fn9 caption="Function 7" default=ident() endfunc func fn10 caption="Function 8" default=ident() endfunc func fn11 caption="Function 9" default=ident() endfunc func fn12 caption="Function 10" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Barney-1" startseed=#pixel bailout=@bailout op=@op op1=@op1 op2=@op2 op3=@op3 op4=@op4 opz=@opz opfn1=@opfn1 opselect=@opselect p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 fn8=@fn8 fn9=@fn9 fn10=@fn10 fn11=@fn11 fn12=@fn12 mode=@switchmode switchmode=@mode changeswitch=@changeswitch center=@swcenter scale=@swscale version=@version } Barney-2 { ;A Switchable Mandelbrot/Julia based on the Real and Imag part of Z ;applied at Functions that user can see in the Operator "Select Mode", ;Instead the "Operator Mode"allows to Divide or Subtract the Real on the Imag part ;of Functions seen in the Operator "Select Mode",so if the user uses ;"Select Mode"=Atan(Re(z)Im(z)) ;and "Operator Mode"="/" this means Atan(Re(z)+p1)/Atan(Im(z)+p1),or ;"Select Mode"=Cos(Re(z)Im(z) and "Operator Mode"="/" this means cos(re(z)+p1)/cos(im(z)+p1) ;and so on. ;Thanks to all people that helped me to test and adjust it. ;Andrea Spinozzi(Mar2004) ;Updated(Aug2004) Init: z=(0.0,0.0) z1=(0.0,0.0) z2=(0.0,0.0) z3=(0.0,0.0) z4=(0.0,0.0) z5=(0.0,0.0) z6=(0.0,0.0) c=(0.0,0.0) int iter=0 float d=1.5 bool k=true if @mode2=="Mandelbrot" z=@startseed c=#pixel endif if @mode2=="Julia" z=pixel c=@startseed if @scale!=1.0 z=z/@scale endif if @center!=(0.0,0.0) z=z+@center endif endif Loop: iter=iter+1 if @select==0 z=z elseif @select==1 z=z*c elseif @select==2 z=(z*c)+(real(z)+imag(z)) elseif @select==3 z=(z*c)-(real(z)+imag(z)) elseif @select==4 z=(z/c)+(real(z)+imag(z)) elseif @select==5 z=(z/c)-(real(z)+imag(z)) endif if @mode==0 if @mode1==0 if @op5=="+" z1=(cos(real(z))+p1)/(cos(imag(z))+p1) elseif @op5=="-" z1=(cos(real(z))-p1)/(cos(imag(z))+p1) elseif @op5=="/" z1=(cos(real(z))/p1)/(cos(imag(z))+p1) endif elseif @mode1==1 if @op5=="+" z1=(cos(real(z))+p1)-(cos(imag(z))+p1) elseif @op5=="-" z1=(cos(real(z))-p1)-(cos(imag(z))+p1) elseif @op5=="/" z1=(cos(real(z))/p1)-(cos(imag(z))+p1) endif endif if @op2==0 if @op3==0 z2=z+fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z+fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z+fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z+fn3(c) z3=z/fn3(c) endif elseif @op2==1 if @op3==0 z2=z-fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z-fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z-fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z-fn3(c) z3=z/fn3(c) endif elseif @op2==2 if @op3==0 z2=z*fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z*fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z*fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z*fn3(c) z3=z/fn3(c) endif elseif @op2==3 if @op3==0 z2=z/fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z/fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z/fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z/fn3(c) z3=z/fn3(c) endif endif if @op1==0 z5=(z1+z2)+z3 elseif @op1==1 z5=(z1+z2)-z3 endif endif if @mode==1 if @mode1==0 if @op5=="+" z1=(sin(real(z))+p1)/(sin(imag(z^2))+p1) elseif @op5=="-" z1=(sin(real(z))-p1)/(sin(imag(z^2))+p1) elseif @op5=="/" z1=(sin(real(z))/p1)/(sin(imag(z^2))+p1) endif elseif @mode1==1 if @op5=="+" z1=(sin(real(z))+p1)-(sin(imag(z^2))+p1) elseif @op5=="-" z1=(sin(real(z))-p1)-(sin(imag(z^2))+p1) elseif @op5=="/" z1=(sin(real(z))/p1)-(sin(imag(z^2))+p1) endif endif if @op2==0 if @op3==0 z2=z+fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z+fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z+fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z+fn3(c) z3=z/fn3(c) endif elseif @op2==1 if @op3==0 z2=z-fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z-fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z-fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z-fn3(c) z3=z/fn3(c) endif elseif @op2==2 if @op3==0 z2=z*fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z*fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z*fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z*fn3(c) z3=z/fn3(c) endif elseif @op2==3 if @op3==0 z2=z/fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z/fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z/fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z/fn3(c) z3=z/fn3(c) endif endif if @op1==0 z5=(z1+z2)+z3 elseif @op1==1 z5=(z1+z2)-z3 endif endif if @mode==2 if @mode1==0 if @op5=="+" z1=(sqrt(real(z))+p1)/(sqrt(imag(z))+p1) elseif @op5=="-" z1=(sqrt(real(z))-p1)/(sqrt(imag(z))+p1) elseif @op5=="/" z1=(sqrt(real(z))/p1)/(sqrt(imag(z))+p1) endif elseif @mode1==1 if @op5=="+" z1=(sqrt(real(z))+p1)-(sqrt(imag(z))+p1) elseif @op5=="-" z1=(sqrt(real(z))-p1)-(sqrt(imag(z))+p1) elseif @op5=="/" z1=(sqrt(real(z))/p1)-(sqrt(imag(z))+p1) endif endif if @op2==0 if @op3==0 z2=z+fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z+fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z+fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z+fn3(c) z3=z/fn3(c) endif elseif @op2==1 if @op3==0 z2=z-fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z-fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z-fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z-fn3(c) z3=z/fn3(c) endif elseif @op2==2 if @op3==0 z2=z*fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z*fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z*fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z*fn3(c) z3=z/fn3(c) endif elseif @op2==3 if @op3==0 z2=z/fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z/fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z/fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z/fn3(c) z3=z/fn3(c) endif endif if @op1==0 z5=(z1+z2)+z3 elseif @op1==1 z5=(z1+z2)-z3 endif endif if @mode==3 if @mode1==0 if @op5=="+" z1=(abs(real(z))+p1)/(abs(imag(z))+p1) elseif @op5=="-" z1=(abs(real(z))-p1)/(abs(imag(z))+p1) elseif @op5=="/" z1=(abs(real(z))/p1)/(abs(imag(z))+p1) endif elseif @mode1==1 if @op5=="+" z1=(abs(real(z))+p1)-(abs(imag(z))+p1) elseif @op5=="-" z1=(abs(real(z))-p1)-(abs(imag(z))+p1) elseif @op5=="/" z1=(abs(real(z))/p1)-(abs(imag(z))+p1) endif endif if @op2==0 if @op3==0 z2=z+fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z+fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z+fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z+fn3(c) z3=z/fn3(c) endif elseif @op2==1 if @op3==0 z2=z-fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z-fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z-fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z-fn3(c) z3=z/fn3(c) endif elseif @op2==2 if @op3==0 z2=z*fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z*fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z*fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z*fn3(c) z3=z/fn3(c) endif elseif @op2==3 if @op3==0 z2=z/fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z/fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z/fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z/fn3(c) z3=z/fn3(c) endif endif if @op1==0 z5=(z1+z2)+z3 elseif @op1==1 z5=(z1+z2)-z3 endif endif if @mode==4 if @mode1==0 if @op5=="+" z1=(exp(real(z))+p1)/(exp(imag(z))+p1) elseif @op5=="-" z1=(exp(real(z))-p1)/(exp(imag(z))+p1) elseif @op5=="/" z1=(exp(real(z))/p1)/(exp(imag(z))+p1) endif elseif @mode1==1 if @op5=="+" z1=(exp(real(z))+p1)-(exp(imag(z))+p1) elseif @op5=="-" z1=(exp(real(z))-p1)-(exp(imag(z))+p1) elseif @op5=="/" z1=(exp(real(z))/p1)-(exp(imag(z))+p1) endif endif if @op2==0 if @op3==0 z2=z+fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z+fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z+fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z+fn3(c) z3=z/fn3(c) endif elseif @op2==1 if @op3==0 z2=z-fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z-fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z-fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z-fn3(c) z3=z/fn3(c) endif elseif @op2==2 if @op3==0 z2=z*fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z*fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z*fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z*fn3(c) z3=z/fn3(c) endif elseif @op2==3 if @op3==0 z2=z/fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z/fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z/fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z/fn3(c) z3=z/fn3(c) endif endif if @op1==0 z5=(z1+z2)+z3 elseif @op1==1 z5=(z1+z2)-z3 endif endif if @mode==5 if @mode1==0 if @op5=="+" z1=(flip(real(z))+p1)/(flip(imag(z))+p1) elseif @op5=="-" z1=(flip(real(z))-p1)/(flip(imag(z))+p1) elseif @op5=="/" z1=(flip(real(z))/p1)/(flip(imag(z))+p1) endif elseif @mode1==1 if @op5=="+" z1=(flip(real(z))+p1)-(flip(imag(z))+p1) elseif @op5=="-" z1=(flip(real(z))-p1)-(flip(imag(z))+p1) elseif @op5=="/" z1=(flip(real(z))/p1)-(flip(imag(z))+p1) endif endif if @op2==0 if @op3==0 z2=z+fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z+fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z+fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z+fn3(c) z3=z/fn3(c) endif elseif @op2==1 if @op3==0 z2=z-fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z-fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z-fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z-fn3(c) z3=z/fn3(c) endif elseif @op2==2 if @op3==0 z2=z*fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z*fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z*fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z*fn3(c) z3=z/fn3(c) endif elseif @op2==3 if @op3==0 z2=z/fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z/fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z/fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z/fn3(c) z3=z/fn3(c) endif endif if @op1==0 z5=(z1+z2)+z3 elseif @op1==1 z5=(z1+z2)-z3 endif endif if @mode==6 if @mode1==0 if @op5=="+" z1=((real(z))+p1)/((imag(z))+p1) elseif @op5=="-" z1=((real(z))-p1)/((imag(z))+p1) elseif @op5=="/" z1=((real(z))/p1)/((imag(z))+p1) endif elseif @mode1==1 if @op5=="+" z1=((real(z))+p1)-((imag(z))+p1) elseif @op5=="-" z1=((real(z))-p1)-((imag(z))+p1) elseif @op5=="/" z1=((real(z))/p1)-((imag(z))+p1) endif endif if @op2==0 if @op3==0 z2=z+fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z+fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z+fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z+fn3(c) z3=z/fn3(c) endif elseif @op2==1 if @op3==0 z2=z-fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z-fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z-fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z-fn3(c) z3=z/fn3(c) endif elseif @op2==2 if @op3==0 z2=z*fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z*fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z*fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z*fn3(c) z3=z/fn3(c) endif elseif @op2==3 if @op3==0 z2=z/fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z/fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z/fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z/fn3(c) z3=z/fn3(c) endif endif if @op1==0 z5=(z1+z2)+z3 elseif @op1==1 z5=(z1+z2)-z3 endif endif if @mode==7 if @mode1==0 if @op5=="+" z1=(atan(real(z))+p1)/(atan(imag(z))+p1) elseif @op5=="-" z1=(atan(real(z))-p1)/(atan(imag(z))+p1) elseif @op5=="/" z1=(atan(real(z))/p1)/(atan(imag(z))+p1) endif elseif @mode1==1 if @op5=="+" z1=(atan(real(z))+p1)-(atan(imag(z))+p1) elseif @op5=="-" z1=(atan(real(z))-p1)-(atan(imag(z))+p1) elseif @op5=="/" z1=(atan(real(z))/p1)-(atan(imag(z))+p1) endif endif if @op2==0 if @op3==0 z2=z+fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z+fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z+fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z+fn3(c) z3=z/fn3(c) endif elseif @op2==1 if @op3==0 z2=z-fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z-fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z-fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z-fn3(c) z3=z/fn3(c) endif elseif @op2==2 if @op3==0 z2=z*fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z*fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z*fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z*fn3(c) z3=z/fn3(c) endif elseif @op2==3 if @op3==0 z2=z/fn3(c) z3=z+fn3(c) elseif @op3==1 z2=z/fn3(c) z3=z-fn3(c) elseif @op3==2 z2=z/fn3(c) z3=z*fn3(c) elseif @op3==3 z2=z/fn3(c) z3=z/fn3(c) endif endif if @op1==0 z5=(z1+z2)+z3 elseif @op1==1 z5=(z1+z2)-z3 endif endif if @opfn1==0 z4=(p2)+fn1(c) elseif @opfn1==1 z4=(p2)-fn1(c) elseif @opfn1==2 z4=(p2)*fn1(c) elseif @opfn1==3 z4=(p2)/fn1(c) endif if @opz6=="+" z6=(c*fn1(z+d))+fn2(z4) elseif @opz6=="-" z6=(c*fn1(z+d))-fn2(z4) elseif @opz6=="*" z6=(c*fn1(z+d))*fn2(z4) elseif @opz6=="/" z6=(c*fn1(z+d))/fn2(z4) endif z=z5+z6 if |real(z)*imag(z)|<=|@bailout*iter| k=true else k=false endif Bailout: k==true Default: title="Barney-2" center=(0.0,0.0) angle=90 magn=0.8 maxiter=500 method=multipass periodicity=0 param bailout caption="Bailout Value" default=64.0 min=0.0 endparam param mode2 caption="Current Mode" enum="Mandelbrot""Julia" default=0 endparam param SwitchMode caption="Select Switch" enum="Mandelbrot""Julia" default=1 endparam Heading caption="Switch Parameters" visible=@show endheading param @show caption="Show Switch Parameters" default=false endparam param swscale caption="Scale" default=0.7 visible=@show endparam param swcenter caption="Switch Center" default=(0.0,0.0) visible=@show endparam param scale caption="Scale Reset" default=1.0 visible=@show endparam param center caption="Center Reset" default=(0.0,0.0) visible=@show endparam Heading caption="Operators and Parameters" Endheading param select caption="Select Z" enum="z""z*c""(z*c)+(ReZ+ImZ)""(z*c)-(ReZ+ImZ)"\ "(z/c)+(ReZ+ImZ)""(z/c)-(ReZ+ImZ)" default=0 endparam param startseed caption="Init Z/Seed Value" default=(0.0,0.0) endparam param mode caption="Select Mode" enum="Cos(Re(z)Im(z))""Sin(Re(z)Im(z))""Sqrt(Re(z)Im(z))""Abs(Re(z)Im(z))"\ "Exp(Re(z)Im(z))""Flip(Re(z)Im(z))""Re/Im""Atan(Re(z)Im(z))" default=7 endparam param mode1 caption="Operator Mode" enum="/""-" default=0 endparam param op1 caption="Z 1st.Result" enum="+""-" default=1 endparam param op5 caption="Operator Param.1" enum="+""-""/" default=2 endparam param opfn1 caption="Operator Fn.1" enum="+""-""*""/" default=2 endparam param opz6 caption="Operator Fn.2" enum="+""-""*""/" default=1 endparam param op2 caption="Operator Fn.3|1" enum="+""-""*""/" default=1 endparam param op3 caption="Operator Fn.3|2" enum="+""-""*""/" default=0 endparam param p1 caption="Parameter 1" default=(0.0,1.0) endparam param p2 caption="Parameter 2" default=(2.0,0.0) endparam param version caption="Version" default=1.0 visible=false endparam Heading caption="Functions" Endheading Func fn1 caption="Function 1" default=ident() endfunc Func fn2 caption="Function 2" default=cotan() endfunc Func fn3 caption="Function 3" default=ident() endfunc Switch: type="Barney-2" startseed=#pixel bailout=@bailout select=@select mode=@mode mode1=@mode1 op1=@op1 op2=@op2 op3=@op3 op5=@op5 opz6=@opz6 opfn1=@opfn1 p1=@p1 p2=@p2 fn1=@fn1 fn2=@fn2 fn3=@fn3 mode2=@switchmode switchmode=@mode2 center=@swcenter scale=@swscale version=@version } Barney-3 { ;Variation of the "Barney-2" formula ;Amplified and re-fixed in some points,the user has a "Function Mode" that allow ;to select the real and image function applied to Z,this there wasn't in the Barney-2 ;because there was an operator "Select Mode", and choices were limited. ;Andrea Spinozzi(Aug2004) Init: complex z=@start complex c=pixel complex x=(0.0,0.0) complex y=(0.0,0.0) complex z1=(0.0,0.0) complex z2=(0.0,0.0) complex z3=(0.0,0.0) complex z4=(0.0,0.0) complex z5=(0.0,0.0) complex z6=(0.0,0.0) p4r=real(p4) p4i=imag(p4) if @mode=="Julia" z=pixel c=@seed if @scale!=1.0 z=z/@scale endif if @center!=(0.0,0.0) z=z+@center endif endif Loop: x=real(z) y=imag(z) if @select==0 z=z elseif @select==1 z=z+c elseif @select==2 z=z-c elseif @select==3 z=z*c elseif @select==4 z=c-z elseif @select==5 z=(z+c)+(x+y) elseif @select==6 z=(z+c)-(x+y) elseif @select==7 z=(z+c)*(x+y) elseif @select==8 z=(z-c)+(x+y) elseif @select==9 z=(z-c)-(x+y) elseif @select==10 z=(z-c)*(x+y) elseif @select==11 z=(z*c)+(x+y) elseif @select==12 z=(z*c)-(x+y) elseif @select==13 z=(z*c)*(x+y) endif if @mode1==0 if @op==0 z1=(fn4(x^p4r)+p1)+(fn4(y^p4i)+p3) elseif @op==1 z1=(fn4(x^p4r)-p1)+(fn4(y^p4i)+p3) elseif @op==2 z1=(fn4(x^p4r)*p1)+(fn4(y^p4i)+p3) elseif @op==3 z1=(fn4(x^p4r)/p1)+(fn4(y^p4i)+p3) endif elseif @mode1==1 if @op==0 z1=(fn4(x^p4r)+p1)-(fn4(y^p4i)+p3) elseif @op==1 z1=(fn4(x^p4r)-p1)-(fn4(y^p4i)+p3) elseif @op==2 z1=(fn4(x^p4r)*p1)-(fn4(y^p4i)+p3) elseif @op==3 z1=(fn4(x^p4r)/p1)-(fn4(y^p4i)+p3) endif elseif @mode1==2 if @op==0 z1=(fn4(x^p4r)+p1)*(fn4(y^p4i)+p3) elseif @op==1 z1=(fn4(x^p4r)-p1)*(fn4(y^p4i)+p3) elseif @op==2 z1=(fn4(x^p4r)*p1)*(fn4(y^p4i)+p3) elseif @op==3 z1=(fn4(x^p4r)/p1)*(fn4(y^p4i)+p3) endif elseif @mode1==3 if @op==0 z1=(fn4(x^p4r)+p1)/(fn4(y^p4i)+p3) elseif @op==1 z1=(fn4(x^p4r)-p1)/(fn4(y^p4i)+p3) elseif @op==2 z1=(fn4(x^p4r)*p1)/(fn4(y^p4i)+p3) elseif @op==3 z1=(fn4(x^p4r)/p1)/(fn4(y^p4i)+p3) endif endif if @op1==0 if @op2==0 z2=z+fn3(c) z3=z+fn3(c) elseif @op2==1 z2=z+fn3(c) z3=z-fn3(c) elseif @op2==2 z2=z+fn3(c) z3=z*fn3(c) elseif @op2==3 z2=z+fn3(c) z3=z/fn3(c) endif elseif @op1==1 if @op2==0 z2=z-fn3(c) z3=z+fn3(c) elseif @op2==1 z2=z-fn3(c) z3=z-fn3(c) elseif @op2==2 z2=z-fn3(c) z3=z*fn3(c) elseif @op2==3 z2=z-fn3(c) z3=z/fn3(c) endif elseif @op1==2 if @op2==0 z2=z*fn3(c) z3=z+fn3(c) elseif @op2==1 z2=z*fn3(c) z3=z-fn3(c) elseif @op2==2 z2=z*fn3(c) z3=z*fn3(c) elseif @op2==3 z2=z*fn3(c) z3=z/fn3(c) endif elseif @op1==3 if @op2==0 z2=z/fn3(c) z3=z+fn3(c) elseif @op2==1 z2=z/fn3(c) z3=z-fn3(c) elseif @op2==2 z2=z/fn3(c) z3=z*fn3(c) elseif @op2==3 z2=z/fn3(c) z3=z/fn3(c) endif endif z1=@fn5(z1+@p7) z2=@fn6(z2+@p8) z3=@fn7(z3+@p9) if @op3==0 z5=(z1+z2)+z3 elseif @op3==1 z5=(z1+z2)-z3 elseif @op3==2 z5=(z1-z2)+z3 elseif @op3==3 z5=(z1-z2)-z3 elseif @op3==4 z5=(z1+z2)*z3 elseif @op3==5 z5=(z1-z2)*z3 elseif @op3==6 z5=(z1*z2)+z3 elseif @op3==7 z5=(z1*z2)-z3 elseif @op3==8 z5=(z1*z3)+z2 endif z5=@fn8(z5+@p10) if @op4==0 z4=(p2+fn1(c)) elseif @op4==1 z4=(p2-fn1(c)) elseif @op4==2 z4=(p2*fn1(c)) elseif @op4==3 z4=(p2/fn1(c)) elseif @op4==4 z4=(p2+fn1(c))+z5 elseif @op4==5 z4=(p2+fn1(c))-z5 elseif @op4==6 z4=(p2+fn1(c))*z5 elseif @op4==7 z4=(p2-fn1(c))+z5 elseif @op4==8 z4=(p2-fn1(c))-z5 elseif @op4==9 z4=(p2-fn1(c))*z5 elseif @op4==10 z4=(p2*fn1(c))+z5 elseif @op4==11 z4=(p2*fn1(c))-z5 elseif @op4==12 z4=(p2*fn1(c))*z5 endif z4=@fn9(z4+@p11) if @op5==0 z6=(c^p5*@fn11(z+p6))+fn2(z4) elseif @op5==1 z6=(c^p5*@fn11(z+p6))-fn2(z4) elseif @op5==2 z6=(c^p5*@fn11(z+p6))*fn2(z4) elseif @op5==3 z6=(c^p5*@fn11(z+p6))/fn2(z4) endif z6=@fn10(z6+@p12) if (@op6==0) z=z5+z6 elseif (@op6==1) z=z5-z6 elseif (@op6==2) z=z6-z5 elseif (@op6==3) z=(z5+z6)+z4 elseif (@op6==4) z=(z5+z6)-z4 elseif (@op6==5) z=(z5+z6)*z4 elseif (@op6==6) z=(z5-z6)+z4 elseif (@op6==7) z=(z5-z6)-z4 elseif (@op6==8) z=(z6-z5)+z4 elseif (@op6==9) z=(z6-z5)-z4 elseif (@op6==10) z=(z6-z5)*z4 endif Bailout: |z|<=@bailout Default: title="Barney-3" center=(0.0,0.0) angle=90 magn=0.8 maxiter=250 method=multipass periodicity=0 Heading caption="Mandelbrot Mode" visible=(@mode==0) Endheading Heading caption="Julia Mode" visible=(@mode==1) Endheading param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 visible=false endparam param SwitchMode caption="Select Switch" enum="Mandelbrot""Julia" default=1 visible=false endparam param bailout caption="Bailout Value" default=64.0 min=0.0 endparam Heading caption="Switch Parameters" visible=@show Endheading param @show caption="Show Switch Parameters" default=false endparam param swscale caption="Scale" default=0.7 visible=@show endparam param swcenter caption="Switch Center" default=(0.0,0.0) visible=@show endparam param scale caption="Scale Reset" default=1.0 visible=@show endparam param center caption="Center Reset" default=(0.0,0.0) visible=@show endparam Heading caption="Operators and Parameters" Endheading param start caption="Start Value" default=(0.0,0.0) visible=(@mode=="Mandelbrot") endparam param seed caption="Seed Value" default=(0.0,0.0) visible=(@mode=="Julia") endparam param select caption="Select Z" enum="1""2""3""4""5""6""7""8""9""10""11""12""13""14" default=0 endparam param mode1 caption="Operator Re|Im" enum="+""-""*""/" default=0 endparam param op caption="Operator 1" enum="1""2""3""4" default=1 endparam param op1 caption="Operator 2" enum="1""2""3""4" default=2 endparam param op2 caption="Operator 3" enum="1""2""3""4" default=2 endparam param op3 caption="Operator 4" enum="1""2""3""4""5""6""7""8""9" default=2 endparam param op4 caption="Operator 5" enum="1""2""3""4""5""6""7""8""9""10""11""12""13" default=2 endparam param op5 caption="Operator 6" enum="1""2""3""4" default=1 endparam param op6 caption="Operator 7" enum="1""2""3""4""5""6""7""8""9""10""11" default=0 endparam param p1 caption="Parameter 1" default=(1.0,0.0) endparam param p2 caption="Parameter 2" default=(2.0,0.0) endparam param p3 caption="Parameter 3" default=(2.0,0.0) endparam param p6 caption="Parameter 4" default=(0.0,0.0) endparam param p7 caption="Parameter z1" default=(0.0,0.0) endparam param p8 caption="Parameter z2" default=(0.0,0.0) endparam param p9 caption="Parameter z3" default=(0.0,0.0) endparam param p11 caption="Parameter z4" default=(0.0,0.0) endparam param p10 caption="Parameter z5" default=(0.0,0.0) endparam param p12 caption="Parameter z6" default=(0.0,0.0) endparam param p4 caption="Exp z (Re|Im)" default=(1.0,1.0) endparam param p5 caption="Exp c" default=(1.0,0.0) endparam param version caption="Version" default=1.0 visible=false endparam Heading caption="Functions" Endheading Func fn4 caption="Function Mode" default=cos() endfunc Func fn1 caption="Function 1|c" default=ident() endfunc Func fn3 caption="Function 2|c" default=ident() endfunc Func fn2 caption="Function 1" default=cabs() endfunc Func fn11 caption="Function 2" default=ident() endfunc Func fn5 caption="Function z1" default=ident() endfunc Func fn6 caption="Function z2" default=ident() endfunc Func fn7 caption="Function z3" default=ident() endfunc Func fn9 caption="Function z4" default=ident() endfunc Func fn8 caption="Function z5" default=ident() endfunc Func fn10 caption="Function z6" default=ident() endfunc Switch: type="Barney-3" seed=#pixel bailout=@bailout select=@select mode1=@mode1 op=@op op1=@op1 op2=@op2 op3=@op3 op4=@op4 op5=@op5 op6=@op6 p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 p8=@p8 p9=@p9 p10=@p10 p11=@p11 p12=@p12 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 fn8=@fn8 fn9=@fn9 fn10=@fn10 fn11=@fn11 mode=@switchmode switchmode=@mode center=@swcenter scale=@swscale version=@version } SlopeBarney-4 { ;This formula presents 9 indipendent sections. ;Basically the formula is based on z=z1+z2+z3, ;in these sections, z(complex param start), x, y(float x=real(z) and float y=real(flip(z)) and c ;are defined differents times in differents selectable ways. ;Users can see in the formula tab all the possibles values to aplly at ;z1,z2 and z3 that will be used for the final result. ;Section z1: ;In this section, z1 can take differents values mixing z,x,y but we ;are also able to select the mode for the final result of z1,so can be used the ;real(z1) or imag(z1),modulus squared or atan2. ;It presents also an "Init Function c" that defines c= @function(pixel) in the init section. ;Corrispectives parameters and functions for x,y,z,z1 can be seen in the ;formula tab. ;Section z2: ;In this section we are able to define two new variables, newx and newy, ;that will be used for the final result of z2=newx+newy with differents possibilities. ;These variables are defined mixing x and y and other two variables x1, y1. ;There's the possibility to use a c=pixel variable,both ;for x1,y1,newx,newy that for z2 and differents modes for all the variables. ;As in section z1, of sure, all parameters and functions, applied ;to these variables, can be seen in the formula tab, so to have a most clear vision of where ;we are going to apply our owns. ;Section z3: ;This section is based on z3=z*c-(z-c) ;All corrispectives parameters can be seen in the formula tab. ;Final Section: ;This section is based on z=z1+z2+z3 but there's also the possibility ;to use again a c=pixel variable and z=complex parameter, in differents selectable ways. ;Besides, users can choice which sections explore, for exmple if we want to use ;only the section z1 we can do it putting the functions at z2 and z3 to zero. ;So this means that, in this section, we are working with the global parameters ;for z1,z2 and z3. ;Perturbation Section: ;This section is based on the classic own of a Barsnley set,so: ; ; if real(z) >= 0 ; z=(z-1)*c ; else ; z=(z+1)*c ; endif ; ;This structure is modified and applied at the variables that users can see in the formula tab, ;and "-1" becomes the perturbation parameter. ;There's also the possibility to select how to operate with the c=pixel variable. ;Mixers Section: ;This section basically takes all the variables and mixes them together ;in differents selectables ways.It works only if selected. ;Slope Section: ;If this section is selected, we'll be able to use differents colors in reb.ucl , ;for example "3d-texturizer" and also the "Lighting" color in dmj.ucl or in the standard ;folder.If we want to apply the slope method at the other colors like as the normal orbit traps ;we must check "on" the "every iteration". ;Switch Section: ;In this section can be changed the center and magnification moving ;form Mandelbrot and Julia with the switch feature. ;Julia Variant Section: ;This section will be able changing the operator "Final Result" in the final section. ;So we'll be able to change the normal switch, selecting differents functions and ;parameters applied to z1,z2,z3. ;Note: ;Differents parameters are setted in (1.0,1.0),this means that they ;have a real part "Exponential" and an image part "Multiplier". ;Parameter "Frequency" executes z1 and z2 and combine them. ;Parameter "Iter Counter" influences the iteration on the final condition of Bailout. ;Try it >=1.3. ;It presents much parameters so all sections are hidden. ;Many thanks to Gilles Nadeau and Ron Barnett to help me and so to allow ;this formula-work,and Nancy Harper to test it. ;Andrea Spinozzi(February2005) Init: c=@fn21(pixel) c1=c+@offset c2=c+flip(@offset) z4=@startseed z5=z4 z6=z4 ;------------------------------------- float x11=0.0 float x12=0.0 float x13=0.0 float y11=0.0 float y12=0.0 float y13=0.0 float x1a=0.0 float x1b=0.0 float x1c=0.0 float y1a=0.0 float y1b=0.0 float y1c=0.0 float newx1=0.0 float newx2=0.0 float newx3=0.0 float newy1=0.0 float newy2=0.0 float newy3=0.0 z11=@startseed z12=@startseed z13=@startseed z21=@startseed z22=@startseed z23=@startseed z31=@startseed z32=@startseed z33=@startseed za1=@startseed za2=@startseed za3=@startseed zb1=@startseed zb2=@startseed zb3=@startseed zc1=@startseed zc2=@startseed zc3=@startseed zd1=@startseed zd2=@startseed zd3=@startseed ze1=@startseed ze2=@startseed ze3=@startseed int i=0 n=0 ;------------------------------------- ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 if (@mode=="Julia") z4=pixel z5=z4+@offset z6=z4+flip(@offset) c=@fn21(@startseed) c1=c c2=c if (@julvarza==0) za1=z4 za2=z5 za3=z6 elseif (@julvarza==1) za1=real(z4) za2=real(z5) za3=real(z6) elseif (@julvarza==2) za1=imag(z4) za2=imag(z5) za3=imag(z6) elseif (@julvarza==3) za1=|z4| za2=|z5| za3=|z6| elseif (@julvarza==4) za1=atan2(z4) za2=atan2(z5) za3=atan2(z6) endif za1=@fza(za1)^@pza*@pza1 za2=@fza(za2)^@pza*@pza1 za3=@fza(za3)^@pza*@pza1 if (@julvarzb==0) zb1=z4 zb2=z5 zb3=z6 elseif (@julvarzb==1) zb1=real(z4) zb2=real(z5) zb3=real(z6) elseif (@julvarzb==2) zb1=imag(z4) zb2=imag(z5) zb3=imag(z6) elseif (@julvarzb==3) zb1=|z4| zb2=|z5| zb3=|z6| elseif (@julvarzb==4) zb1=atan2(z4) zb2=atan2(z5) zb3=atan2(z6) endif zb1=@fzb(zb1)^@pzb*@pzb1 zb2=@fzb(zb2)^@pzb*@pzb1 zb3=@fzb(zb3)^@pzb*@pzb1 if (@julvarzc==0) zc1=z4 zc2=z5 zc3=z6 elseif (@julvarzc==1) zc1=real(z4) zc2=real(z5) zc3=real(z6) elseif (@julvarzc==2) zc1=imag(z4) zc2=imag(z5) zc3=imag(z6) elseif (@julvarzc==3) zc1=|z4| zc2=|z5| zc3=|z6| elseif (@julvarzc==4) zc1=atan2(z4) zc2=atan2(z5) zc3=atan2(z6) endif zc1=@fzc(zc1)^@pzc*@pzc1 zc2=@fzc(zc2)^@pzc*@pzc1 zc3=@fzc(zc3)^@pzc*@pzc1 if @scale!=1.0 z4=z4/@scale z5=z5/@scale z6=z6/@scale endif if @center!=(0,0) z4=z4+@center z5=z5+@center z6=z6+@center endif endif Loop: i=i+1 if (i%@freq==0) float x11=real(fn2(z4))^real(p1)*imag(@p1) float x12=real(fn2(z5))^real(p1)*imag(@p1) float x13=real(fn2(z6))^real(p1)*imag(@p1) float y11=real(flip(fn3(z4)))^real(@p51)*imag(@p51) float y12=real(flip(fn3(z5)))^real(@p51)*imag(@p51) float y13=real(flip(fn3(z6)))^real(@p51)*imag(@p51) z4=fn1(z4)^@p26*@p62 z5=fn1(z5)^@p26*@p62 z6=fn1(z6)^@p26*@p62 if (x11>=0 && x12>=0 && x13>=0) if (@pert_x==0) x11=(x11-real(p2))+real(@fn32(c))^real(@p50)*imag(@p50) x12=(x12-real(p2))+real(@fn32(c1))^real(@p50)*imag(@p50) x13=(x13-real(p2))+real(@fn32(c2))^real(@p50)*imag(@p50) elseif (@pert_x==1) x11=(x11-real(p2))-real(@fn32(c))^real(@p50)*imag(@p50) x12=(x12-real(p2))-real(@fn32(c1))^real(@p50)*imag(@p50) x13=(x13-real(p2))-real(@fn32(c2))^real(@p50)*imag(@p50) elseif (@pert_x==2) x11=(x11-real(p2))*real(@fn32(c))^real(@p50)*imag(@p50) x12=(x12-real(p2))*real(@fn32(c1))^real(@p50)*imag(@p50) x13=(x13-real(p2))*real(@fn32(c2))^real(@p50)*imag(@p50) endif else if (@pert_x==0) x11=(x11+imag(p2))+real(@fn32(c))^real(@p50)*imag(@p50) x12=(x12+imag(p2))+real(@fn32(c1))^real(@p50)*imag(@p50) x13=(x13+imag(p2))+real(@fn32(c2))^real(@p50)*imag(@p50) elseif (@pert_x==1) x11=(x11+imag(p2))-real(@fn32(c))^real(@p50)*imag(@p50) x12=(x12+imag(p2))-real(@fn32(c1))^real(@p50)*imag(@p50) x13=(x13+imag(p2))-real(@fn32(c2))^real(@p50)*imag(@p50) elseif (@pert_x==2) x11=(x11+imag(p2))*real(@fn32(c))^real(@p50)*imag(@p50) x12=(x12+imag(p2))*real(@fn32(c1))^real(@p50)*imag(@p50) x13=(x13+imag(p2))*real(@fn32(c2))^real(@p50)*imag(@p50) endif endif if (y11>=0 && y12>=0 && y13>=0) if (@pert_y==0) y11=(y11-real(p3))+real(@fn32(c))^real(@p57)*imag(@p57) y12=(y12-real(p3))+real(@fn32(c1))^real(@p57)*imag(@p57) y13=(y13-real(p3))+real(@fn32(c2))^real(@p57)*imag(@p57) elseif (@pert_y==1) y11=(y11-real(p3))-real(@fn32(c))^real(@p57)*imag(@p57) y12=(y12-real(p3))-real(@fn32(c1))^real(@p57)*imag(@p57) y13=(y13-real(p3))-real(@fn32(c2))^real(@p57)*imag(@p57) elseif (@pert_y==2) y11=(y11-real(p3))*real(@fn32(c))^real(@p57)*imag(@p57) y12=(y12-real(p3))*real(@fn32(c1))^real(@p57)*imag(@p57) y13=(y13-real(p3))*real(@fn32(c2))^real(@p57)*imag(@p57) endif else if (@pert_y==0) y11=(y11+imag(p3))+real(@fn32(c))^real(@p57)*imag(@p57) y12=(y12+imag(p3))+real(@fn32(c1))^real(@p57)*imag(@p57) y13=(y13+imag(p3))+real(@fn32(c2))^real(@p57)*imag(@p57) elseif (@pert_y==1) y11=(y11+imag(p3))-real(@fn32(c))^real(@p57)*imag(@p57) y12=(y12+imag(p3))-real(@fn32(c1))^real(@p57)*imag(@p57) y13=(y13+imag(p3))-real(@fn32(c2))^real(@p57)*imag(@p57) elseif (@pert_y==2) y11=(y11+imag(p3))*real(@fn32(c))^real(@p57)*imag(@p57) y12=(y12+imag(p3))*real(@fn32(c1))^real(@p57)*imag(@p57) y13=(y13+imag(p3))*real(@fn32(c2))^real(@p57)*imag(@p57) endif endif if (@opz1==0) z11=@fn5(x11)^@p45*p6+@fn6(y11)^@p46*@p29 z12=@fn5(x12)^@p45*p6+@fn6(y12)^@p46*@p29 z13=@fn5(x13)^@p45*p6+@fn6(y13)^@p46*@p29 elseif (@opz1==1) z11=@fn5(x11)^@p45*p6*@fn6(y11)^@p46*@p29 z12=@fn5(x12)^@p45*p6*@fn6(y12)^@p46*@p29 z13=@fn5(x13)^@p45*p6*@fn6(y13)^@p46*@p29 elseif (@opz1==2) z11=@fn5(x11)^@p45*p6/@fn6(y11)^@p46*@p29 z12=@fn5(x12)^@p45*p6/@fn6(y12)^@p46*@p29 z13=@fn5(x13)^@p45*p6/@fn6(y13)^@p46*@p29 elseif (@opz1==3) z11=@fn6(y11)^@p46*@p29/@fn5(x11)^@p45*p6 z12=@fn6(y12)^@p46*@p29/@fn5(x12)^@p45*p6 z13=@fn6(y13)^@p46*@p29/@fn5(x13)^@p45*p6 elseif (@opz1==4) z11=@fn4(z4)^p4*p5+@fn5(x11)^@p45*p6 z12=@fn4(z5)^p4*p5+@fn5(x12)^@p45*p6 z13=@fn4(z6)^p4*p5+@fn5(x13)^@p45*p6 elseif (@opz1==5) z11=@fn4(z4)^p4*p5+@fn6(y11)^@p46*@p29 z12=@fn4(z5)^p4*p5+@fn6(y12)^@p46*@p29 z13=@fn4(z6)^p4*p5+@fn6(y13)^@p46*@p29 elseif (@opz1==6) z11=@fn4(z4)^p4*p5*@fn5(x11)^@p45*p6 z12=@fn4(z5)^p4*p5*@fn5(x12)^@p45*p6 z13=@fn4(z6)^p4*p5*@fn5(x13)^@p45*p6 elseif (@opz1==7) z11=@fn4(z4)^p4*p5*@fn6(y11)^@p46*@p29 z12=@fn4(z5)^p4*p5*@fn6(y12)^@p46*@p29 z13=@fn4(z6)^p4*p5*@fn6(y13)^@p46*@p29 elseif (@opz1==8) z11=@fn4(z4)^p4*p5+@fn5(x11)^@p45*p6+@fn6(y11)^@p46*@p29 z12=@fn4(z5)^p4*p5+@fn5(x12)^@p45*p6+@fn6(y12)^@p46*@p29 z13=@fn4(z6)^p4*p5+@fn5(x13)^@p45*p6+@fn6(y13)^@p46*@p29 elseif (@opz1==9) z11=@fn4(z4)^p4*p5*@fn5(x11)^@p45*p6+@fn6(y11)^@p46*@p29 z12=@fn4(z5)^p4*p5*@fn5(x12)^@p45*p6+@fn6(y12)^@p46*@p29 z13=@fn4(z6)^p4*p5*@fn5(x13)^@p45*p6+@fn6(y13)^@p46*@p29 elseif (@opz1==10) z11=@fn4(z4)^p4*p5+@fn5(x11)^@p45*p6*@fn6(y11)^@p46*@p29 z12=@fn4(z5)^p4*p5+@fn5(x12)^@p45*p6*@fn6(y12)^@p46*@p29 z13=@fn4(z6)^p4*p5+@fn5(x13)^@p45*p6*@fn6(y13)^@p46*@p29 elseif (@opz1==11) z11=@fn4(z4)^p4*p5*@fn6(y11)^@p46*@p29+@fn5(x11)^@p45*p6 z12=@fn4(z5)^p4*p5*@fn6(y12)^@p46*@p29+@fn5(x12)^@p45*p6 z13=@fn4(z6)^p4*p5*@fn6(y13)^@p46*@p29+@fn5(x13)^@p45*p6 elseif (@opz1==12) z11=@fn4(z4)^p4*p5*@fn5(x11)^@p45*p6*@fn6(y11)^@p46*@p29 z12=@fn4(z5)^p4*p5*@fn5(x12)^@p45*p6*@fn6(y12)^@p46*@p29 z13=@fn4(z6)^p4*p5*@fn5(x13)^@p45*p6*@fn6(y13)^@p46*@p29 elseif (@opz1==13) z11=@fn4(z4)^p4*p5*(@fn5(x11)^@p45*p6+@fn6(y11)^@p46*@p29) z12=@fn4(z5)^p4*p5*(@fn5(x12)^@p45*p6+@fn6(y12)^@p46*@p29) z13=@fn4(z6)^p4*p5*(@fn5(x13)^@p45*p6+@fn6(y13)^@p46*@p29) elseif (@opz1==14) z11=@fn4(z5)^p4*p5/@fn5(x11)^@p45*p6+@fn6(y11)^@p46*@p29 z12=@fn4(z5)^p4*p5/@fn5(x12)^@p45*p6+@fn6(y12)^@p46*@p29 z13=@fn4(z6)^p4*p5/@fn5(x13)^@p45*p6+@fn6(y13)^@p46*@p29 elseif (@opz1==15) z11=@fn4(z4)^p4*p5+@fn5(x11)^@p45*p6/@fn6(y11)^@p46*@p29 z12=@fn4(z5)^p4*p5+@fn5(x12)^@p45*p6/@fn6(y12)^@p46*@p29 z13=@fn4(z6)^p4*p5+@fn5(x13)^@p45*p6/@fn6(y13)^@p46*@p29 elseif (@opz1==16) z11=@fn4(z4)^p4*p5/@fn6(y11)^@p46*@p29+@fn5(x11)^@p45*p6 z12=@fn4(z5)^p4*p5/@fn6(y12)^@p46*@p29+@fn5(x12)^@p45*p6 z13=@fn4(z6)^p4*p5/@fn6(y13)^@p46*@p29+@fn5(x13)^@p45*p6 elseif (@opz1==17) z11=@fn4(z4)^p4*p5/@fn5(x11)^@p45*p6*@fn6(y11)^@p46*@p29 z12=@fn4(z5)^p4*p5/@fn5(x12)^@p45*p6*@fn6(y12)^@p46*@p29 z13=@fn4(z6)^p4*p5/@fn5(x13)^@p45*p6*@fn6(y13)^@p46*@p29 elseif (@opz1==18) z11=@fn4(z4)^p4*p5/@fn6(y11)^@p46*@p29*@fn5(x11)^@p45*p6 z12=@fn4(z5)^p4*p5/@fn6(y12)^@p46*@p29*@fn5(x12)^@p45*p6 z13=@fn4(z6)^p4*p5/@fn6(y13)^@p46*@p29*@fn5(x13)^@p45*p6 elseif (@opz1==19) z11=@fn4(z4)^p4*p5/(@fn5(x11)^@p45*p6+@fn6(y11)^@p46*@p29) z12=@fn4(z5)^p4*p5/(@fn5(x12)^@p45*p6+@fn6(y12)^@p46*@p29) z13=@fn4(z6)^p4*p5/(@fn5(x13)^@p45*p6+@fn6(y13)^@p46*@p29) elseif (@opz1==20) z11=@fn4(z4)^p4*p5/@fn5(x11)^@p45*p6/@fn6(y11)^@p46*@p29 z12=@fn4(z5)^p4*p5/@fn5(x12)^@p45*p6/@fn6(y12)^@p46*@p29 z13=@fn4(z6)^p4*p5/@fn5(x13)^@p45*p6/@fn6(y13)^@p46*@p29 elseif (@opz1==21) z11=@fn4(z4)^p4*p5 z12=@fn4(z5)^p4*p5 z13=@fn4(z6)^p4*p5 elseif (@opz1==22) z11=@fn5(x11)^@p45*p6 z12=@fn5(x12)^@p45*p6 z13=@fn5(x13)^@p45*p6 elseif (@opz1==23) z11=@fn6(y11)^@p46*@p29 z12=@fn6(y12)^@p46*@p29 z13=@fn6(y13)^@p46*@p29 endif z11=@fn20(z11)^real(@p20)*imag(@p20) z12=@fn20(z12)^real(@p20)*imag(@p20) z13=@fn20(z13)^real(@p20)*imag(@p20) if (@mixer==true) if (@opz12==0) z11=@fn20(z11)^real(@p20)*imag(@p20)+@fn34(z21)^real(@p58)*imag(@p58) z12=@fn20(z12)^real(@p20)*imag(@p20)+@fn34(z22)^real(@p58)*imag(@p58) z13=@fn20(z13)^real(@p20)*imag(@p20)+@fn34(z23)^real(@p58)*imag(@p58) elseif (@opz12==1) z11=@fn20(z11)^real(@p20)*imag(@p20)*@fn34(z21)^real(@p58)*imag(@p58) z12=@fn20(z12)^real(@p20)*imag(@p20)*@fn34(z22)^real(@p58)*imag(@p58) z13=@fn20(z13)^real(@p20)*imag(@p20)*@fn34(z23)^real(@p58)*imag(@p58) elseif (@opz12==2) z11=@fn20(z11)^real(@p20)*imag(@p20)/@fn34(z21)^real(@p58)*imag(@p58) z12=@fn20(z12)^real(@p20)*imag(@p20)/@fn34(z22)^real(@p58)*imag(@p58) z13=@fn20(z13)^real(@p20)*imag(@p20)/@fn34(z23)^real(@p58)*imag(@p58) elseif (@opz12==3) z11=@fn20(z11)^real(@p20)*imag(@p20)+@fn35(z31)^real(@p59)*imag(@p59) z12=@fn20(z12)^real(@p20)*imag(@p20)+@fn35(z32)^real(@p59)*imag(@p59) z13=@fn20(z13)^real(@p20)*imag(@p20)+@fn35(z33)^real(@p59)*imag(@p59) elseif (@opz12==4) z11=@fn20(z11)^real(@p20)*imag(@p20)*@fn35(z31)^real(@p59)*imag(@p59) z12=@fn20(z12)^real(@p20)*imag(@p20)*@fn35(z32)^real(@p59)*imag(@p59) z13=@fn20(z13)^real(@p20)*imag(@p20)*@fn35(z33)^real(@p59)*imag(@p59) elseif (@opz12==5) z11=@fn20(z11)^real(@p20)*imag(@p20)/@fn35(z31)^real(@p59)*imag(@p59) z12=@fn20(z12)^real(@p20)*imag(@p20)/@fn35(z32)^real(@p59)*imag(@p59) z13=@fn20(z13)^real(@p20)*imag(@p20)/@fn35(z33)^real(@p59)*imag(@p59) endif if (@mixcz1==0) z11=z11+c*@p79 z12=z12+c1*@p79 z13=z13+c2*@p79 elseif (@mixcz1==1) z11=z11*c*@p79 z12=z12*c1*@p79 z13=z13*c2*@p79 elseif (@mixcz1==2) z11=z11/c*@p79 z12=z12/c1*@p79 z13=z13/c2*@p79 endif endif if (real(z11)>=0 && real(z12)>=0 && real(z13)>=0) if (@pert_z1==0) z11=(z11-@p28)+real(@fn32(c))^real(@p63)*imag(@p63) z12=(z12-@p28)+real(@fn32(c1))^real(@p63)*imag(@p63) z13=(z13-@p28)+real(@fn32(c2))^real(@p63)*imag(@p63) elseif (@pert_z1==1) z11=(z11-@p28)-real(@fn32(c))^real(@p63)*imag(@p63) z12=(z12-@p28)-real(@fn32(c1))^real(@p63)*imag(@p63) z13=(z13-@p28)-real(@fn32(c2))^real(@p63)*imag(@p63) elseif (@pert_z1==2) z11=(z11-@p28)*real(@fn32(c))^real(@p63)*imag(@p63) z12=(z12-@p28)*real(@fn32(c1))^real(@p63)*imag(@p63) z13=(z13-@p28)*real(@fn32(c2))^real(@p63)*imag(@p63) endif else if (@pert_z1==0) z11=(z11+@p28)+real(@fn32(c))^real(@p63)*imag(@p63) z12=(z12+@p28)+real(@fn32(c1))^real(@p63)*imag(@p63) z13=(z13+@p28)+real(@fn32(c2))^real(@p63)*imag(@p63) elseif (@pert_z1==1) z11=(z11+@p28)+real(@fn32(c))^real(@p63)*imag(@p63) z12=(z12+@p28)+real(@fn32(c1))^real(@p63)*imag(@p63) z13=(z13+@p28)+real(@fn32(c2))^real(@p63)*imag(@p63) elseif (@pert_z1==2) z11=(z11+@p28)+real(@fn32(c))^real(@p63)*imag(@p63) z12=(z12+@p28)+real(@fn32(c1))^real(@p63)*imag(@p63) z13=(z13+@p28)+real(@fn32(c2))^real(@p63)*imag(@p63) endif endif if (@opz11==0) z11=z11 z12=z12 z13=z13 elseif (@opz11==1) z11=real(z11) z12=real(z12) z13=real(z13) elseif (@opz11==2) z11=imag(z11) z12=imag(z12) z13=imag(z13) elseif (@opz11==3) z11=|z11| z12=|z12| z13=|z13| elseif (@opz11==4) z11=atan2(z11) z12=atan2(z12) z13=atan2(z13) endif ;------------------------------we're finished z1 and start z2--------------------------- if (@opselx1==0) x1a=real(@fn24(x11))^real(@p32)*imag(@p32) x1b=real(@fn24(x12))^real(@p32)*imag(@p32) x1c=real(@fn24(x13))^real(@p32)*imag(@p32) elseif (@opselx1==1) x1a=real(@fn25(y11))^real(@p33)*imag(@p33) x1b=real(@fn25(y12))^real(@p33)*imag(@p33) x1c=real(@fn25(y13))^real(@p33)*imag(@p33) elseif (@opselx1==2) x1a=real(@fn24(x11))^real(@p32)*imag(@p32)+real(@fn25(y11))^real(@p33)*imag(@p33) x1b=real(@fn24(x12))^real(@p32)*imag(@p32)+real(@fn25(y12))^real(@p33)*imag(@p33) x1c=real(@fn24(x13))^real(@p32)*imag(@p32)+real(@fn25(y13))^real(@p33)*imag(@p33) elseif (@opselx1==3) x1a=real(@fn24(x11))^real(@p32)*imag(@p32)*real(@fn25(y11))^real(@p33)*imag(@p33) x1b=real(@fn24(x12))^real(@p32)*imag(@p32)*real(@fn25(y12))^real(@p33)*imag(@p33) x1c=real(@fn24(x13))^real(@p32)*imag(@p32)*real(@fn25(y13))^real(@p33)*imag(@p33) elseif (@opselx1==4) x1a=real(@fn24(x11))^real(@p32)*imag(@p32)/real(@fn25(y11))^real(@p33)*imag(@p33) x1b=real(@fn24(x12))^real(@p32)*imag(@p32)/real(@fn25(y12))^real(@p33)*imag(@p33) x1c=real(@fn24(x13))^real(@p32)*imag(@p32)/real(@fn25(y13))^real(@p33)*imag(@p33) elseif (@opselx1==5) x1a=real(@fn25(y11))^real(@p33)*imag(@p33)/real(@fn24(x11))^real(@p32)*imag(@p32) x1b=real(@fn25(y12))^real(@p33)*imag(@p33)/real(@fn24(x12))^real(@p32)*imag(@p32) x1c=real(@fn25(y13))^real(@p33)*imag(@p33)/real(@fn24(x13))^real(@p32)*imag(@p32) endif if (@opsely1==0) y1a=real(@fn25(y11))^real(@p33)*imag(@p33) y1b=real(@fn25(y12))^real(@p33)*imag(@p33) y1c=real(@fn25(y13))^real(@p33)*imag(@p33) elseif (@opsely1==1) y1a=real(@fn24(x11))^real(@p32)*imag(@p32) y1b=real(@fn24(x12))^real(@p32)*imag(@p32) y1c=real(@fn24(x13))^real(@p32)*imag(@p32) elseif (@opsely1==2) y1a=real(@fn25(y11))^real(@p33)*imag(@p33)+real(@fn24(x11))^real(@p32)*imag(@p32) y1b=real(@fn25(y12))^real(@p33)*imag(@p33)+real(@fn24(x12))^real(@p32)*imag(@p32) y1c=real(@fn25(y13))^real(@p33)*imag(@p33)+real(@fn24(x13))^real(@p32)*imag(@p32) elseif (@opsely1==3) y1a=real(@fn25(y11))^real(@p33)*imag(@p33)*real(@fn24(x11))^real(@p32)*imag(@p32) y1b=real(@fn25(y12))^real(@p33)*imag(@p33)*real(@fn24(x12))^real(@p32)*imag(@p32) y1c=real(@fn25(y13))^real(@p33)*imag(@p33)*real(@fn24(x13))^real(@p32)*imag(@p32) elseif (@opsely1==4) y1a=real(@fn25(y11))^real(@p33)*imag(@p33)/real(@fn24(x11))^real(@p32)*imag(@p32) y1b=real(@fn25(y12))^real(@p33)*imag(@p33)/real(@fn24(x12))^real(@p32)*imag(@p32) y1c=real(@fn25(y13))^real(@p33)*imag(@p33)/real(@fn24(x13))^real(@p32)*imag(@p32) elseif (@opsely1==5) y1a=real(@fn24(x11))^real(@p32)*imag(@p32)/real(@fn25(y11))^real(@p33)*imag(@p33) y1b=real(@fn24(x12))^real(@p32)*imag(@p32)/real(@fn25(y12))^real(@p33)*imag(@p33) y1c=real(@fn24(x13))^real(@p32)*imag(@p32)/real(@fn25(y13))^real(@p33)*imag(@p33) endif if (@selcx1==0) x1a=real(@fn15(x1a))^real(@p35)*imag(@p35) x1b=real(@fn15(x1b))^real(@p35)*imag(@p35) x1c=real(@fn15(x1c))^real(@p35)*imag(@p35) elseif (@selcx1==1) x1a=(real(@fn15(x1a))^real(@p35)*imag(@p35))*real(c) x1b=(real(@fn15(x1b))^real(@p35)*imag(@p35))*real(c1) x1c=(real(@fn15(x1c))^real(@p35)*imag(@p35))*real(c2) elseif (@selcx1==2) x1a=(real(@fn15(x1a))^real(@p35)*imag(@p35))/real(c) x1b=(real(@fn15(x1b))^real(@p35)*imag(@p35))/real(c1) x1c=(real(@fn15(x1c))^real(@p35)*imag(@p35))/real(c2) endif if (@selcy1==0) y1a=real(@fn11(y1a))^real(@p36)*imag(@p36) y1b=real(@fn11(y1b))^real(@p36)*imag(@p36) y1c=real(@fn11(y1c))^real(@p36)*imag(@p36) elseif (@selcy1==1) y1a=(real(@fn11(y1a))^real(@p36)*imag(@p36))*real(c) y1b=(real(@fn11(y1b))^real(@p36)*imag(@p36))*real(c1) y1c=(real(@fn11(y1c))^real(@p36)*imag(@p36))*real(c2) elseif (@selcy1==2) y1a=(real(@fn11(y1a))^real(@p36)*imag(@p36))/real(c) y1b=(real(@fn11(y1b))^real(@p36)*imag(@p36))/real(c1) y1c=(real(@fn11(y1c))^real(@p36)*imag(@p36))/real(c2) endif if (x1a>=0 && x1b>=0 && x1c>=0) if (@pert_x1==0) x1a=(x1a-real(@p53))+real(c)^real(@p64)*imag(@p64) x1b=(x1b-real(@p53))+real(c1)^real(@p64)*imag(@p64) x1c=(x1c-real(@p53))+real(c2)^real(@p64)*imag(@p64) elseif (@pert_x1==1) x1a=(x1a-real(@p53))-real(c)^real(@p64)*imag(@p64) x1b=(x1b-real(@p53))-real(c1)^real(@p64)*imag(@p64) x1c=(x1c-real(@p53))-real(c2)^real(@p64)*imag(@p64) elseif (@pert_x1==2) x1a=(x1a-real(@p53))*real(c)^real(@p64)*imag(@p64) x1b=(x1b-real(@p53))*real(c1)^real(@p64)*imag(@p64) x1c=(x1c-real(@p53))*real(c2)^real(@p64)*imag(@p64) endif else if (@pert_x1==0) x1a=(x1a+imag(@p53))+real(c)^real(@p64)*imag(@p64) x1b=(x1b+imag(@p53))+real(c1)^real(@p64)*imag(@p64) x1c=(x1c+imag(@p53))+real(c2)^real(@p64)*imag(@p64) elseif (@pert_x1==1) x1a=(x1a+imag(@p53))-real(c)^real(@p64)*imag(@p64) x1b=(x1b+imag(@p53))-real(c1)^real(@p64)*imag(@p64) x1c=(x1c+imag(@p53))-real(c2)^real(@p64)*imag(@p64) elseif (@pert_x1==2) x1a=(x1a+imag(@p53))*real(c)^real(@p64)*imag(@p64) x1b=(x1b+imag(@p53))*real(c1)^real(@p64)*imag(@p64) x1c=(x1c+imag(@p53))*real(c2)^real(@p64)*imag(@p64) endif endif if (y1a>=0 && y1b>=0 && y1c>=0) if (@pert_y1==0) y1a=(y1a-real(@p54))+real(c)^real(@p65)*imag(@p65) y1b=(y1b-real(@p54))+real(c1)^real(@p65)*imag(@p65) y1c=(y1c-real(@p54))+real(c2)^real(@p65)*imag(@p65) elseif (@pert_y1==1) y1a=(y1a-real(@p54))-real(c)^real(@p65)*imag(@p65) y1b=(y1b-real(@p54))-real(c1)^real(@p65)*imag(@p65) y1c=(y1c-real(@p54))-real(c2)^real(@p65)*imag(@p65) elseif (@pert_y1==2) y1a=(y1a-real(@p54))*real(c)^real(@p65)*imag(@p65) y1b=(y1b-real(@p54))*real(c1)^real(@p65)*imag(@p65) y1c=(y1c-real(@p54))*real(c2)^real(@p65)*imag(@p65) endif else if (@pert_y1==0) y1a=(y1a+imag(@p54))+real(c)^real(@p65)*imag(@p65) y1b=(y1b+imag(@p54))+real(c1)^real(@p65)*imag(@p65) y1c=(y1c+imag(@p54))+real(c2)^real(@p65)*imag(@p65) elseif (@pert_y1==1) y1a=(y1a+imag(@p54))-real(c)^real(@p65)*imag(@p65) y1b=(y1b+imag(@p54))-real(c1)^real(@p65)*imag(@p65) y1c=(y1c+imag(@p54))-real(c2)^real(@p65)*imag(@p65) elseif (@pert_y1==2) y1a=(y1a+imag(@p54))*real(c)^real(@p65)*imag(@p65) y1b=(y1b+imag(@p54))*real(c1)^real(@p65)*imag(@p65) y1c=(y1c+imag(@p54))*real(c2)^real(@p65)*imag(@p65) endif endif if (@newx==0) newx1=x1a^real(@p34)*imag(@p34) newx2=x1b^real(@p34)*imag(@p34) newx3=x1c^real(@p34)*imag(@p34) elseif (@newx==1) newx1=real(@fn26(x11))^real(@p48)*imag(@p48)+x1a^real(@p34)*imag(@p34) newx2=real(@fn26(x12))^real(@p48)*imag(@p48)+x1b^real(@p34)*imag(@p34) newx3=real(@fn26(x13))^real(@p48)*imag(@p48)+x1c^real(@p34)*imag(@p34) elseif (@newx==2) newx1=real(@fn26(x11))^real(@p48)*imag(@p48)*x1a^real(@p34)*imag(@p34) newx2=real(@fn26(x12))^real(@p48)*imag(@p48)*x1b^real(@p34)*imag(@p34) newx3=real(@fn26(x13))^real(@p48)*imag(@p48)*x1c^real(@p34)*imag(@p34) elseif (@newx==3) newx1=real(@fn26(x11))^real(@p48)*imag(@p48)/x1a^real(@p34)*imag(@p34) newx2=real(@fn26(x12))^real(@p48)*imag(@p48)/x1b^real(@p34)*imag(@p34) newx3=real(@fn26(x13))^real(@p48)*imag(@p48)/x1c^real(@p34)*imag(@p34) elseif (@newx==4) newx1=x1a^real(@p34)*imag(@p34)/real(@fn26(x11))^real(@p48)*imag(@p48) newx2=x1b^real(@p34)*imag(@p34)/real(@fn26(x12))^real(@p48)*imag(@p48) newx3=x1c^real(@p34)*imag(@p34)/real(@fn26(x13))^real(@p48)*imag(@p48) endif if (@newy==0) newy1=y1a^real(@p47)*imag(@p47) newy2=y1b^real(@p47)*imag(@p47) newy3=y1c^real(@p47)*imag(@p47) elseif (@newy==1) newy1=real(@fn31(y11))^real(@p49)*imag(@p49)+y1a^real(@p47)*imag(@p47) newy2=real(@fn31(y12))^real(@p49)*imag(@p49)+y1b^real(@p47)*imag(@p47) newy3=real(@fn31(y13))^real(@p49)*imag(@p49)+y1c^real(@p47)*imag(@p47) elseif (@newy==2) newy1=real(@fn31(y11))^real(@p49)*imag(@p49)*y1a^real(@p47)*imag(@p47) newy2=real(@fn31(y12))^real(@p49)*imag(@p49)*y1b^real(@p47)*imag(@p47) newy3=real(@fn31(y13))^real(@p49)*imag(@p49)*y1c^real(@p47)*imag(@p47) elseif (@newy==3) newy1=real(@fn31(y11))^real(@p49)*imag(@p49)/y1a^real(@p47)*imag(@p47) newy2=real(@fn31(y12))^real(@p49)*imag(@p49)/y1b^real(@p47)*imag(@p47) newy3=real(@fn31(y13))^real(@p49)*imag(@p49)/y1c^real(@p47)*imag(@p47) elseif (@newy==4) newy1=y1a^real(@p47)*imag(@p47)/real(@fn31(y11))^real(@p49)*imag(@p49) newy2=y1b^real(@p47)*imag(@p47)/real(@fn31(y12))^real(@p49)*imag(@p49) newy3=y1c^real(@p47)*imag(@p47)/real(@fn31(y13))^real(@p49)*imag(@p49) endif if (@selectcx==0) newx1=newx1 newx2=newx2 newx3=newx3 elseif (@selectcx==1) newx1=newx1+real(c) newx2=newx2+real(c1) newx3=newx3+real(c2) elseif (@selectcx==2) newx1=newx1-real(c) newx2=newx2-real(c1) newx3=newx3-real(c2) elseif (@selectcx==3) newx1=newx1*real(c) newx2=newx2*real(c1) newx3=newx3*real(c2) endif if (@selectcy==0) newy1=newy1 newy2=newy2 newy3=newy3 elseif (@selectcy==1) newy1=newy1+real(c) newy2=newy2+real(c1) newy3=newy3+real(c2) elseif (@selectcy==2) newy1=newy1-real(c) newy2=newy2-real(c1) newy3=newy3-real(c2) elseif (@selectcy==3) newy1=newy1*real(c) newy2=newy2*real(c1) newy3=newy3*real(c2) endif if (@mixer==true) if (@mix_newx==0) newx1=newx1+real(@fn40(z11))^real(@p73)*imag(@p73) newx2=newx2+real(@fn40(z12))^real(@p73)*imag(@p73) newx3=newx3+real(@fn40(z13))^real(@p73)*imag(@p73) elseif (@mix_newx==1) newx1=newx1*real(@fn40(z11))^real(@p73)*imag(@p73) newx2=newx2*real(@fn40(z12))^real(@p73)*imag(@p73) newx3=newx3*real(@fn40(z13))^real(@p73)*imag(@p73) elseif (@mix_newx==2) newx1=newx1/real(@fn40(z11))^real(@p73)*imag(@p73) newx2=newx2/real(@fn40(z12))^real(@p73)*imag(@p73) newx3=newx3/real(@fn40(z13))^real(@p73)*imag(@p73) elseif (@mix_newx==3) newx1=newx1+real(@fn41(z21))^real(@p74)*imag(@p74) newx2=newx2+real(@fn41(z22))^real(@p74)*imag(@p74) newx3=newx3+real(@fn41(z23))^real(@p74)*imag(@p74) elseif (@mix_newx==4) newx1=newx1*real(@fn41(z21))^real(@p74)*imag(@p74) newx2=newx2*real(@fn41(z22))^real(@p74)*imag(@p74) newx3=newx3*real(@fn41(z23))^real(@p74)*imag(@p74) elseif (@mix_newx==5) newx1=newx1/real(@fn41(z21))^real(@p74)*imag(@p74) newx2=newx2/real(@fn41(z22))^real(@p74)*imag(@p74) newx3=newx3/real(@fn41(z23))^real(@p74)*imag(@p74) elseif (@mix_newx==6) newx1=newx1+real(@fn42(z31))^real(@p75)*imag(@p75) newx2=newx2+real(@fn42(z32))^real(@p75)*imag(@p75) newx3=newx3+real(@fn42(z33))^real(@p75)*imag(@p75) elseif (@mix_newx==7) newx1=newx1*real(@fn42(z31))^real(@p75)*imag(@p75) newx2=newx2*real(@fn42(z32))^real(@p75)*imag(@p75) newx3=newx3*real(@fn42(z33))^real(@p75)*imag(@p75) elseif (@mix_newx==8) newx1=newx1/real(@fn42(z31))^real(@p75)*imag(@p75) newx2=newx2/real(@fn42(z32))^real(@p75)*imag(@p75) newx3=newx3/real(@fn42(z33))^real(@p75)*imag(@p75) elseif (@mix_newx==9) newx1=newx1+imag(@fn40(z11))^real(@p73)*imag(@p73) newx2=newx2+imag(@fn40(z12))^real(@p73)*imag(@p73) newx3=newx3+imag(@fn40(z13))^real(@p73)*imag(@p73) elseif (@mix_newx==10) newx1=newx1*imag(@fn40(z11))^real(@p73)*imag(@p73) newx2=newx2*imag(@fn40(z12))^real(@p73)*imag(@p73) newx3=newx3*imag(@fn40(z13))^real(@p73)*imag(@p73) elseif (@mix_newx==11) newx1=newx1/imag(@fn40(z11))^real(@p73)*imag(@p73) newx2=newx2/imag(@fn40(z12))^real(@p73)*imag(@p73) newx3=newx3/imag(@fn40(z13))^real(@p73)*imag(@p73) elseif (@mix_newx==12) newx1=newx1+imag(@fn41(z21))^real(@p74)*imag(@p74) newx2=newx2+imag(@fn41(z22))^real(@p74)*imag(@p74) newx3=newx3+imag(@fn41(z23))^real(@p74)*imag(@p74) elseif (@mix_newx==13) newx1=newx1*imag(@fn41(z21))^real(@p74)*imag(@p74) newx2=newx2*imag(@fn41(z22))^real(@p74)*imag(@p74) newx3=newx3*imag(@fn41(z23))^real(@p74)*imag(@p74) elseif (@mix_newx==14) newx1=newx1/imag(@fn41(z21))^real(@p74)*imag(@p74) newx2=newx2/imag(@fn41(z22))^real(@p74)*imag(@p74) newx3=newx3/imag(@fn41(z23))^real(@p74)*imag(@p74) elseif (@mix_newx==15) newx1=newx1+imag(@fn42(z31))^real(@p75)*imag(@p75) newx2=newx2+imag(@fn42(z32))^real(@p75)*imag(@p75) newx3=newx3+imag(@fn42(z33))^real(@p75)*imag(@p75) elseif (@mix_newx==16) newx1=newx1*imag(@fn42(z31))^real(@p75)*imag(@p75) newx2=newx2*imag(@fn42(z32))^real(@p75)*imag(@p75) newx3=newx3*imag(@fn42(z33))^real(@p75)*imag(@p75) elseif (@mix_newx==17) newx1=newx1/imag(@fn42(z31))^real(@p75)*imag(@p75) newx2=newx2/imag(@fn42(z32))^real(@p75)*imag(@p75) newx3=newx3/imag(@fn42(z33))^real(@p75)*imag(@p75) elseif (@mix_newx==18) newx1=newx1+|@fn40(z11)|^real(@p73)*imag(@p73) newx2=newx2+|@fn40(z12)|^real(@p73)*imag(@p73) newx3=newx3+|@fn40(z13)|^real(@p73)*imag(@p73) elseif (@mix_newx==19) newx1=newx1*|@fn40(z11)|^real(@p73)*imag(@p73) newx2=newx2*|@fn40(z12)|^real(@p73)*imag(@p73) newx3=newx3*|@fn40(z13)|^real(@p73)*imag(@p73) elseif (@mix_newx==20) newx1=newx1/|@fn40(z11)|^real(@p73)*imag(@p73) newx2=newx2/|@fn40(z12)|^real(@p73)*imag(@p73) newx3=newx3/|@fn40(z13)|^real(@p73)*imag(@p73) elseif (@mix_newx==21) newx1=newx1+|@fn41(z21)|^real(@p74)*imag(@p74) newx2=newx2+|@fn41(z22)|^real(@p74)*imag(@p74) newx3=newx3+|@fn41(z23)|^real(@p74)*imag(@p74) elseif (@mix_newx==22) newx1=newx1*|@fn41(z21)|^real(@p74)*imag(@p74) newx2=newx2*|@fn41(z22)|^real(@p74)*imag(@p74) newx3=newx3*|@fn41(z23)|^real(@p74)*imag(@p74) elseif (@mix_newx==23) newx1=newx1/|@fn41(z21)|^real(@p74)*imag(@p74) newx2=newx2/|@fn41(z22)|^real(@p74)*imag(@p74) newx3=newx3/|@fn41(z23)|^real(@p74)*imag(@p74) elseif (@mix_newx==24) newx1=newx1+|@fn42(z31)|^real(@p75)*imag(@p75) newx2=newx2+|@fn42(z32)|^real(@p75)*imag(@p75) newx3=newx3+|@fn42(z33)|^real(@p75)*imag(@p75) elseif (@mix_newx==25) newx1=newx1*|@fn42(z31)|^real(@p75)*imag(@p75) newx2=newx2*|@fn42(z32)|^real(@p75)*imag(@p75) newx3=newx3*|@fn42(z33)|^real(@p75)*imag(@p75) elseif (@mix_newx==26) newx1=newx1/|@fn42(z31)|^real(@p75)*imag(@p75) newx2=newx2/|@fn42(z32)|^real(@p75)*imag(@p75) newx3=newx3/|@fn42(z33)|^real(@p75)*imag(@p75) endif if (@mix_newy==0) newy1=newy1+real(@fn43(z11))^real(@p76)*imag(@p76) newy2=newy2+real(@fn43(z12))^real(@p76)*imag(@p76) newy3=newy3+real(@fn43(z13))^real(@p76)*imag(@p76) elseif (@mix_newy==1) newy1=newy1*real(@fn43(z11))^real(@p76)*imag(@p76) newy2=newy2*real(@fn43(z12))^real(@p76)*imag(@p76) newy3=newy3*real(@fn43(z13))^real(@p76)*imag(@p76) elseif (@mix_newy==2) newy1=newy1/real(@fn43(z11))^real(@p76)*imag(@p76) newy2=newy2/real(@fn43(z12))^real(@p76)*imag(@p76) newy3=newy3/real(@fn43(z13))^real(@p76)*imag(@p76) elseif (@mix_newy==3) newy3=newy1+real(@fn44(z21))^real(@p77)*imag(@p77) newy2=newy2+real(@fn44(z22))^real(@p77)*imag(@p77) newy1=newy3+real(@fn44(z23))^real(@p77)*imag(@p77) elseif (@mix_newy==4) newy1=newy1*real(@fn44(z21))^real(@p77)*imag(@p77) newy2=newy2*real(@fn44(z22))^real(@p77)*imag(@p77) newy3=newy3*real(@fn44(z23))^real(@p77)*imag(@p77) elseif (@mix_newy==5) newy1=newy1/real(@fn44(z21))^real(@p77)*imag(@p77) newy2=newy2/real(@fn44(z22))^real(@p77)*imag(@p77) newy3=newy3/real(@fn44(z23))^real(@p77)*imag(@p77) elseif (@mix_newy==6) newy1=newy1+real(@fn45(z31))^real(@p78)*imag(@p78) newy2=newy2+real(@fn45(z32))^real(@p78)*imag(@p78) newy3=newy3+real(@fn45(z33))^real(@p78)*imag(@p78) elseif (@mix_newy==7) newy1=newy1*real(@fn45(z31))^real(@p78)*imag(@p78) newy2=newy2*real(@fn45(z32))^real(@p78)*imag(@p78) newy3=newy3*real(@fn45(z33))^real(@p78)*imag(@p78) elseif (@mix_newy==8) newy1=newy1/real(@fn45(z31))^real(@p78)*imag(@p78) newy2=newy2/real(@fn45(z32))^real(@p78)*imag(@p78) newy3=newy3/real(@fn45(z33))^real(@p78)*imag(@p78) elseif (@mix_newy==9) newy1=newy1+imag(@fn43(z11))^real(@p76)*imag(@p76) newy2=newy2+imag(@fn43(z12))^real(@p76)*imag(@p76) newy3=newy3+imag(@fn43(z13))^real(@p76)*imag(@p76) elseif (@mix_newy==10) newy1=newy1*imag(@fn43(z11))^real(@p76)*imag(@p76) newy2=newy2*imag(@fn43(z12))^real(@p76)*imag(@p76) newy3=newy3*imag(@fn43(z13))^real(@p76)*imag(@p76) elseif (@mix_newy==11) newy1=newy1/imag(@fn43(z11))^real(@p76)*imag(@p76) newy2=newy2/imag(@fn43(z12))^real(@p76)*imag(@p76) newy3=newy3/imag(@fn43(z13))^real(@p76)*imag(@p76) elseif (@mix_newy==12) newy1=newy1+imag(@fn44(z21))^real(@p77)*imag(@p77) newy2=newy2+imag(@fn44(z22))^real(@p77)*imag(@p77) newy3=newy3+imag(@fn44(z23))^real(@p77)*imag(@p77) elseif (@mix_newy==13) newy1=newy1*imag(@fn44(z21))^real(@p77)*imag(@p77) newy2=newy2*imag(@fn44(z22))^real(@p77)*imag(@p77) newy3=newy3*imag(@fn44(z23))^real(@p77)*imag(@p77) elseif (@mix_newy==14) newy1=newy1/imag(@fn44(z21))^real(@p77)*imag(@p77) newy2=newy2/imag(@fn44(z22))^real(@p77)*imag(@p77) newy3=newy3/imag(@fn44(z23))^real(@p77)*imag(@p77) elseif (@mix_newy==15) newy1=newy1+imag(@fn45(z31))^real(@p78)*imag(@p78) newy2=newy2+imag(@fn45(z32))^real(@p78)*imag(@p78) newy3=newy3+imag(@fn45(z33))^real(@p78)*imag(@p78) elseif (@mix_newy==16) newy1=newy1*imag(@fn45(z31))^real(@p78)*imag(@p78) newy2=newy2*imag(@fn45(z32))^real(@p78)*imag(@p78) newy3=newy3*imag(@fn45(z33))^real(@p78)*imag(@p78) elseif (@mix_newy==17) newy1=newy1/imag(@fn45(z31))^real(@p78)*imag(@p78) newy2=newy2/imag(@fn45(z32))^real(@p78)*imag(@p78) newy3=newy3/imag(@fn45(z33))^real(@p78)*imag(@p78) elseif (@mix_newy==18) newy1=newy1+|@fn43(z11)|^real(@p76)*imag(@p76) newy2=newy2+|@fn43(z12)|^real(@p76)*imag(@p76) newy3=newy3+|@fn43(z13)|^real(@p76)*imag(@p76) elseif (@mix_newy==19) newy1=newy1*|@fn43(z11)|^real(@p76)*imag(@p76) newy2=newy2*|@fn43(z12)|^real(@p76)*imag(@p76) newy3=newy3*|@fn43(z13)|^real(@p76)*imag(@p76) elseif (@mix_newy==20) newy1=newy1/|@fn43(z11)|^real(@p76)*imag(@p76) newy2=newy2/|@fn43(z12)|^real(@p76)*imag(@p76) newy3=newy3/|@fn43(z13)|^real(@p76)*imag(@p76) elseif (@mix_newy==21) newy1=newy1+|@fn44(z21)|^real(@p77)*imag(@p77) newy2=newy2+|@fn44(z22)|^real(@p77)*imag(@p77) newy3=newy3+|@fn44(z23)|^real(@p77)*imag(@p77) elseif (@mix_newy==22) newy1=newy1*|@fn44(z21)|^real(@p77)*imag(@p77) newy2=newy2*|@fn44(z22)|^real(@p77)*imag(@p77) newy3=newy3*|@fn44(z23)|^real(@p77)*imag(@p77) elseif (@mix_newy==23) newy1=newy1/|@fn44(z21)|^real(@p77)*imag(@p77) newy2=newy2/|@fn44(z22)|^real(@p77)*imag(@p77) newy3=newy3/|@fn44(z23)|^real(@p77)*imag(@p77) elseif (@mix_newy==24) newy1=newy1+|@fn45(z31)|^real(@p78)*imag(@p78) newy2=newy2+|@fn45(z32)|^real(@p78)*imag(@p78) newy3=newy3+|@fn45(z33)|^real(@p78)*imag(@p78) elseif (@mix_newy==25) newy1=newy1*|@fn45(z31)|^real(@p78)*imag(@p78) newy2=newy2*|@fn45(z32)|^real(@p78)*imag(@p78) newy3=newy3*|@fn45(z33)|^real(@p78)*imag(@p78) elseif (@mix_newy==26) newy1=newy1/|@fn45(z31)|^real(@p78)*imag(@p78) newy2=newy2/|@fn45(z32)|^real(@p78)*imag(@p78) newy3=newy3/|@fn45(z33)|^real(@p78)*imag(@p78) endif newx1=real(@fn38(newx1))^real(@p71)*imag(@p71) newx2=real(@fn38(newx2))^real(@p71)*imag(@p71) newx3=real(@fn38(newx3))^real(@p71)*imag(@p71) newy1=real(@fn39(newy1))^real(@p72)*imag(@p72) newy2=real(@fn39(newy2))^real(@p72)*imag(@p72) newy3=real(@fn39(newy3))^real(@p72)*imag(@p72) endif newx1=real(@fn27(newx1))^real(@p42)*imag(@p42) newx2=real(@fn27(newx2))^real(@p42)*imag(@p42) newx3=real(@fn27(newx3))^real(@p42)*imag(@p42) newy1=real(@fn28(newy1))^real(@p43)*imag(@p43) newy2=real(@fn28(newy2))^real(@p43)*imag(@p43) newy3=real(@fn28(newy3))^real(@p43)*imag(@p43) if (newx1>=0 && newx2>=0 && newx3>=0) if (@pert_newx==0) newx1=(newx1-real(@p55))+real(c)^real(@p66)*imag(@p66) newx2=(newx2-real(@p55))+real(c1)^real(@p66)*imag(@p66) newx3=(newx3-real(@p55))+real(c2)^real(@p66)*imag(@p66) elseif (@pert_newx==1) newx1=(newx1-real(@p55))-real(c)^real(@p66)*imag(@p66) newx2=(newx2-real(@p55))-real(c1)^real(@p66)*imag(@p66) newx3=(newx3-real(@p55))-real(c2)^real(@p66)*imag(@p66) elseif (@pert_newx==2) newx1=(newx1-real(@p55))*real(c)^real(@p66)*imag(@p66) newx2=(newx2-real(@p55))*real(c1)^real(@p66)*imag(@p66) newx3=(newx3-real(@p55))*real(c2)^real(@p66)*imag(@p66) endif else if (@pert_newx==0) newx1=(newx1+imag(@p55))+real(c)^real(@p66)*imag(@p66) newx2=(newx2+imag(@p55))+real(c1)^real(@p66)*imag(@p66) newx3=(newx3+imag(@p55))+real(c2)^real(@p66)*imag(@p66) elseif (@pert_newx==1) newx1=(newx1+imag(@p55))-real(c)^real(@p66)*imag(@p66) newx2=(newx2+imag(@p55))-real(c1)^real(@p66)*imag(@p66) newx3=(newx3+imag(@p55))-real(c2)^real(@p66)*imag(@p66) elseif (@pert_newx==2) newx1=(newx1+imag(@p55))*real(c)^real(@p66)*imag(@p66) newx2=(newx2+imag(@p55))*real(c1)^real(@p66)*imag(@p66) newx3=(newx3+imag(@p55))*real(c2)^real(@p66)*imag(@p66) endif endif if (newy1>=0 && newy2>=0 && newy3>=0) if (@pert_newy==0) newy1=(newy1-real(@p56))+real(c)^real(@p67)*imag(@p67) newy2=(newy2-real(@p56))+real(c1)^real(@p67)*imag(@p67) newy3=(newy3-real(@p56))+real(c2)^real(@p67)*imag(@p67) elseif (@pert_newy==1) newy1=(newy1-real(@p56))-real(c)^real(@p67)*imag(@p67) newy2=(newy2-real(@p56))-real(c1)^real(@p67)*imag(@p67) newy3=(newy3-real(@p56))-real(c2)^real(@p67)*imag(@p67) elseif (@pert_newy==2) newy1=(newy1-real(@p56))*real(c)^real(@p67)*imag(@p67) newy2=(newy2-real(@p56))*real(c1)^real(@p67)*imag(@p67) newy3=(newy3-real(@p56))*real(c2)^real(@p67)*imag(@p67) endif else if (@pert_newy==0) newy1=(newy1+imag(@p56))+real(c)^real(@p67)*imag(@p67) newy2=(newy2+imag(@p56))+real(c1)^real(@p67)*imag(@p67) newy3=(newy3+imag(@p56))+real(c2)^real(@p67)*imag(@p67) elseif (@pert_newy==1) newy1=(newy1+imag(@p56))-real(c)^real(@p67)*imag(@p67) newy2=(newy2+imag(@p56))-real(c1)^real(@p67)*imag(@p67) newy3=(newy3+imag(@p56))-real(c2)^real(@p67)*imag(@p67) elseif (@pert_newy==2) newy1=(newy1+imag(@p56))*real(c)^real(@p67)*imag(@p67) newy2=(newy2+imag(@p56))*real(c1)^real(@p67)*imag(@p67) newy3=(newy3+imag(@p56))*real(c2)^real(@p67)*imag(@p67) endif endif if (@opz21==0) z21=(@fn7(newx1)^real(@p12)+@fn8(newy1)^imag(@p12))*@p7 z22=(@fn7(newx2)^real(@p12)+@fn8(newy2)^imag(@p12))*@p7 z23=(@fn7(newx3)^real(@p12)+@fn8(newy3)^imag(@p12))*@p7 elseif (@opz21==1) z21=(@fn7(newx1)^real(@p12)*@fn8(newy1)^imag(@p12))*@p7 z22=(@fn7(newx2)^real(@p12)*@fn8(newy2)^imag(@p12))*@p7 z23=(@fn7(newx3)^real(@p12)*@fn8(newy3)^imag(@p12))*@p7 elseif (@opz21==2) z21=(@fn7(newx1)^real(@p12)/@fn8(newy1)^imag(@p12))*@p7 z22=(@fn7(newx2)^real(@p12)/@fn8(newy2)^imag(@p12))*@p7 z23=(@fn7(newx3)^real(@p12)/@fn8(newy3)^imag(@p12))*@p7 elseif (@opz21==3) z21=(@fn8(newy1)^imag(@p12)/@fn7(newx1)^real(@p12))*@p7 z22=(@fn8(newy2)^imag(@p12)/@fn7(newx2)^real(@p12))*@p7 z23=(@fn8(newy3)^imag(@p12)/@fn7(newx3)^real(@p12))*@p7 endif z21=(z21+c*@p44-(@p30*@fn9(newx1)^@p8)*@p9)*@fn30(c) z22=(z22+c*@p44-(@p30*@fn9(newx2)^@p8)*@p9)*@fn30(c1) z23=(z23+c*@p44-(@p30*@fn9(newx3)^@p8)*@p9)*@fn30(c2) if (@opz22==0) z21=z21+@fn30(c)*@p31 z22=z22+@fn30(c1)*@p31 z23=z23+@fn30(c2)*@p31 elseif (@opz22==1) z21=z21-@fn30(c)*@p31 z22=z22-@fn30(c1)*@p31 z23=z23-@fn30(c2)*@p31 elseif (@opz22==2) z21=z21*@fn30(c)*@p31 z22=z22*@fn30(c1)*@p31 z23=z23*@fn30(c2)*@p31 elseif (@opz22==3) z21=z21/@fn30(c)*@p31 z22=z22/@fn30(c1)*@p31 z23=z23/@fn30(c2)*@p31 endif z21=@fn10(z21)^real(@p10)*imag(@p10) z22=@fn10(z22)^real(@p10)*imag(@p10) z23=@fn10(z23)^real(@p10)*imag(@p10) if (@mixer==true) if (@opz24==0) z21=@fn10(z21)^real(@p10)*imag(@p10)+@fn36(z11)^real(@p60)*imag(@p60) z22=@fn10(z22)^real(@p10)*imag(@p10)+@fn36(z12)^real(@p60)*imag(@p60) z23=@fn10(z23)^real(@p10)*imag(@p10)+@fn36(z13)^real(@p60)*imag(@p60) elseif (@opz24==1) z21=@fn10(z21)^real(@p10)*imag(@p10)*@fn36(z11)^real(@p60)*imag(@p60) z22=@fn10(z22)^real(@p10)*imag(@p10)*@fn36(z12)^real(@p60)*imag(@p60) z23=@fn10(z23)^real(@p10)*imag(@p10)*@fn36(z13)^real(@p60)*imag(@p60) elseif (@opz24==2) z21=@fn10(z21)^real(@p10)*imag(@p10)/@fn36(z11)^real(@p60)*imag(@p60) z22=@fn10(z22)^real(@p10)*imag(@p10)/@fn36(z12)^real(@p60)*imag(@p60) z23=@fn10(z23)^real(@p10)*imag(@p10)/@fn36(z13)^real(@p60)*imag(@p60) elseif (@opz24==3) z21=@fn10(z21)^real(@p10)*imag(@p10)+@fn37(z31)^real(@p61)*imag(@p61) z22=@fn10(z22)^real(@p10)*imag(@p10)+@fn37(z32)^real(@p61)*imag(@p61) z23=@fn10(z23)^real(@p10)*imag(@p10)+@fn37(z33)^real(@p61)*imag(@p61) elseif (@opz24==4) z21=@fn10(z21)^real(@p10)*imag(@p10)*@fn37(z31)^real(@p61)*imag(@p61) z22=@fn10(z22)^real(@p10)*imag(@p10)*@fn37(z32)^real(@p61)*imag(@p61) z23=@fn10(z23)^real(@p10)*imag(@p10)*@fn37(z33)^real(@p61)*imag(@p61) elseif (@opz24==5) z21=@fn10(z21)^real(@p10)*imag(@p10)/@fn37(z31)^real(@p61)*imag(@p61) z22=@fn10(z22)^real(@p10)*imag(@p10)/@fn37(z32)^real(@p61)*imag(@p61) z23=@fn10(z23)^real(@p10)*imag(@p10)/@fn37(z33)^real(@p61)*imag(@p61) endif if (@mixcz2==0) z21=z21+c*@p80 z22=z22+c1*@p80 z23=z23+c2*@p80 elseif (@mixcz2==1) z21=z21*c*@p80 z22=z22*c1*@p80 z23=z23*c2*@p80 elseif (@mixcz2==2) z21=z23/c*@p80 z22=z22/c1*@p80 z23=z21/c2*@p80 endif endif if (real(z21)>=0 && real(z22)>=0 && real(z23)>=0) if (@pert_z2==0) z21=(z21-@p11)+real(@fn32(c))^real(@p68)*imag(@p68) z22=(z22-@p11)+real(@fn32(c1))^real(@p68)*imag(@p68) z23=(z23-@p11)+real(@fn32(c2))^real(@p68)*imag(@p68) elseif (@pert_z2==1) z21=(z21-@p11)-real(@fn32(c))^real(@p68)*imag(@p68) z22=(z22-@p11)-real(@fn32(c1))^real(@p68)*imag(@p68) z23=(z23-@p11)-real(@fn32(c2))^real(@p68)*imag(@p68) elseif (@pert_z2==2) z21=(z21-@p11)*real(@fn32(c))^real(@p68)*imag(@p68) z22=(z22-@p11)*real(@fn32(c1))^real(@p68)*imag(@p68) z23=(z23-@p11)*real(@fn32(c2))^real(@p68)*imag(@p68) endif else if (@pert_z2==0) z21=(z21+@p11)+real(@fn32(c))^real(@p68)*imag(@p68) z22=(z22+@p11)+real(@fn32(c1))^real(@p68)*imag(@p68) z23=(z23+@p11)+real(@fn32(c2))^real(@p68)*imag(@p68) elseif (@pert_z2==1) z21=(z21+@p11)-real(@fn32(c))^real(@p68)*imag(@p68) z22=(z22+@p11)-real(@fn32(c1))^real(@p68)*imag(@p68) z23=(z23+@p11)-real(@fn32(c2))^real(@p68)*imag(@p68) elseif (@pert_z2==2) z21=(z21+@p11)*real(@fn32(c))^real(@p68)*imag(@p68) z22=(z22+@p11)*real(@fn32(c1))^real(@p68)*imag(@p68) z23=(z23+@p11)*real(@fn32(c2))^real(@p68)*imag(@p68) endif endif if (@opz23==0) z21=z21 z22=z22 z23=z23 elseif (@opz23==1) z21=real(z21) z22=real(z22) z23=real(z23) elseif (@opz23==2) z21=imag(z21) z22=imag(z22) z23=imag(z23) elseif (@opz23==3) z21=|z21| z22=|z22| z23=|z23| elseif (@opz23==4) z21=atan2(z21) z22=atan2(z22) z23=atan2(z23) endif else z21=(1.0,0.0) z22=(1.0,0.0) z23=(1.0,0.0) endif ;------------------------------we're finished z2 and start z3--------------------------- z31=@fn12(z4)*@p13*@fn23(c)^@p24*@p23-(@fn13(z4)^@p14*@p19-c*@p41) z32=@fn12(z5)*@p13*@fn23(c1)^@p24*@p23-(@fn13(z5)^@p14*@p19-c1*@p41) z33=@fn12(z6)*@p13*@fn23(c2)^@p24*@p23-(@fn13(z6)^@p14*@p19-c2*@p41) z31=@fn14(z31)^real(@p37)*imag(@p37) z32=@fn14(z32)^real(@p37)*imag(@p37) z33=@fn14(z33)^real(@p37)*imag(@p37) if (@mixer==true) if (@opz31==0) z31=@fn46(z31)^real(@p81)*imag(@p81)+z11 z32=@fn46(z32)^real(@p81)*imag(@p81)+z12 z33=@fn46(z33)^real(@p81)*imag(@p81)+z13 elseif (@opz31==1) z31=@fn46(z31)^real(@p81)*imag(@p81)*z11 z32=@fn46(z32)^real(@p81)*imag(@p81)*z12 z33=@fn46(z33)^real(@p81)*imag(@p81)*z13 elseif (@opz31==2) z31=@fn46(z31)^real(@p81)*imag(@p81)/z11 z32=@fn46(z32)^real(@p81)*imag(@p81)/z12 z33=@fn46(z33)^real(@p81)*imag(@p81)/z13 elseif (@opz31==3) z31=@fn46(z31)^real(@p81)*imag(@p81)+z21 z32=@fn46(z32)^real(@p81)*imag(@p81)+z22 z33=@fn46(z33)^real(@p81)*imag(@p81)+z23 elseif (@opz31==4) z31=@fn46(z31)^real(@p81)*imag(@p81)*z21 z32=@fn46(z32)^real(@p81)*imag(@p81)*z22 z33=@fn46(z33)^real(@p81)*imag(@p81)*z23 elseif (@opz31==5) z31=@fn46(z31)^real(@p81)*imag(@p81)/z21 z32=@fn46(z32)^real(@p81)*imag(@p81)/z22 z33=@fn46(z33)^real(@p81)*imag(@p81)/z23 endif if (@mixcz3==0) z31=z31+c*@p82 z32=z32+c1*@p82 z33=z33+c2*@p82 elseif (@mixcz3==1) z31=z31*c*@p82 z32=z32*c1*@p82 z33=z33*c2*@p82 elseif (@mixcz3==2) z31=z31/c*@p82 z32=z32/c1*@p82 z33=z33/c2*@p82 endif endif if (real(z31)>=0 && real(z32)>=0 && real(z33)>=0) if (@pert_z3==0) z31=(z31-@p25)+real(@fn32(c))^real(@p69)*imag(@p69) z32=(z32-@p25)+real(@fn32(c1))^real(@p69)*imag(@p69) z33=(z33-@p25)+real(@fn32(c2))^real(@p69)*imag(@p69) elseif (@pert_z3==1) z31=(z31-@p25)-real(@fn32(c))^real(@p69)*imag(@p69) z32=(z32-@p25)-real(@fn32(c1))^real(@p69)*imag(@p69) z33=(z33-@p25)-real(@fn32(c2))^real(@p69)*imag(@p69) elseif (@pert_z3==2) z31=(z31-@p25)*real(@fn32(c))^real(@p69)*imag(@p69) z32=(z32-@p25)*real(@fn32(c1))^real(@p69)*imag(@p69) z33=(z33-@p25)*real(@fn32(c2))^real(@p69)*imag(@p69) endif else if (@pert_z3==0) z31=(z31+@p25)+real(@fn32(c))^real(@p69)*imag(@p69) z32=(z32+@p25)+real(@fn32(c1))^real(@p69)*imag(@p69) z33=(z33+@p25)+real(@fn32(c2))^real(@p69)*imag(@p69) elseif (@pert_z3==1) z31=(z31+@p25)-real(@fn32(c))^real(@p69)*imag(@p69) z32=(z32+@p25)-real(@fn32(c1))^real(@p69)*imag(@p69) z33=(z33+@p25)-real(@fn32(c2))^real(@p69)*imag(@p69) elseif (@pert_z3==2) z31=(z31+@p25)*real(@fn32(c))^real(@p69)*imag(@p69) z32=(z32+@p25)*real(@fn32(c1))^real(@p69)*imag(@p69) z33=(z33+@p25)*real(@fn32(c2))^real(@p69)*imag(@p69) endif endif if (@opz3==0) z31=z31 z32=z32 z33=z33 elseif (@opz3==1) z31=real(z31) z32=real(z32) z33=real(z33) elseif (@opz3==2) z31=imag(z31) z32=imag(z32) z33=imag(z33) elseif (@opz3==3) z31=|z31| z32=|z32| z33=|z33| elseif (@opz3==4) z31=atan2(z31) z32=atan2(z32) z33=atan2(z33) endif ;------------------------------we're finished z3 and start the final section------------ if (@selvar==0) za1=@fn16(z11)^real(@p15)*imag(@p15)-(@fn22(c)+@p18) za2=@fn16(z12)^real(@p15)*imag(@p15)-(@fn22(c1)+@p18) za3=@fn16(z13)^real(@p15)*imag(@p15)-(@fn22(c2)+@p18) zb1=@fn17(z21)^real(@p16)*imag(@p16)-(@fn22(c)+@p18) zb2=@fn17(z22)^real(@p16)*imag(@p16)-(@fn22(c1)+@p18) zb3=@fn17(z23)^real(@p16)*imag(@p16)-(@fn22(c2)+@p18) zc1=@fn18(z31)^real(@p17)*imag(@p17)-(@fn22(c)+@p18) zc2=@fn18(z32)^real(@p17)*imag(@p17)-(@fn22(c1)+@p18) zc3=@fn18(z33)^real(@p17)*imag(@p17)-(@fn22(c2)+@p18) endif if (@opzd==0) zd1=@fn29(c)^real(@p21)*imag(@p21)+(za1^real(@p38)*imag(@p38)\ +zb1^real(@p39)*imag(@p39)+zc1^real(@p40)*imag(@p40)) zd2=@fn29(c1)^real(@p21)*imag(@p21)+(za2^real(@p38)*imag(@p38)\ +zb2^real(@p39)*imag(@p39)+zc2^real(@p40)*imag(@p40)) zd3=@fn29(c2)^real(@p21)*imag(@p21)+(za3^real(@p38)*imag(@p38)\ +zb3^real(@p39)*imag(@p39)+zc3^real(@p40)*imag(@p40)) elseif (@opzd==1) zd1=@fn29(c)^real(@p21)*imag(@p21)-(za1^real(@p38)*imag(@p38)\ +zb1^real(@p39)*imag(@p39)+zc1^real(@p40)*imag(@p40)) zd2=@fn29(c1)^real(@p21)*imag(@p21)-(za2^real(@p38)*imag(@p38)\ +zb2^real(@p39)*imag(@p39)+zc2^real(@p40)*imag(@p40)) zd3=@fn29(c2)^real(@p21)*imag(@p21)-(za3^real(@p38)*imag(@p38)\ +zb3^real(@p39)*imag(@p39)+zc3^real(@p40)*imag(@p40)) elseif (@opzd==2) zd1=@fn29(c)^real(@p21)*imag(@p21)*(za1^real(@p38)*imag(@p38)\ +zb1^real(@p39)*imag(@p39)+zc1^real(@p40)*imag(@p40)) zd2=@fn29(c1)^real(@p21)*imag(@p21)*(za2^real(@p38)*imag(@p38)\ +zb2^real(@p39)*imag(@p39)+zc2^real(@p40)*imag(@p40)) zd3=@fn29(c2)^real(@p21)*imag(@p21)*(za3^real(@p38)*imag(@p38)\ +zb3^real(@p39)*imag(@p39)+zc3^real(@p40)*imag(@p40)) endif ze1=zd1-c*@p22 ze2=zd2-c1*@p22 ze3=zd3-c2*@p22 if (real(ze1)>=0 && real(ze2)>=0 && real(ze3)>=0) if (@pert_z==0) ze1=(ze1-@p27)+real(@fn32(c))^real(@p70)*imag(@p70) ze2=(ze2-@p27)+real(@fn32(c1))^real(@p70)*imag(@p70) ze3=(ze3-@p27)+real(@fn32(c2))^real(@p70)*imag(@p70) elseif (@pert_z==1) ze1=(ze1-@p27)-real(@fn32(c))^real(@p70)*imag(@p70) ze2=(ze2-@p27)-real(@fn32(c1))^real(@p70)*imag(@p70) ze3=(ze3-@p27)-real(@fn32(c2))^real(@p70)*imag(@p70) elseif (@pert_z==2) ze1=(ze1-@p27)*real(@fn32(c))^real(@p70)*imag(@p70) ze2=(ze2-@p27)*real(@fn32(c1))^real(@p70)*imag(@p70) ze3=(ze3-@p27)*real(@fn32(c2))^real(@p70)*imag(@p70) endif else if (@pert_z==0) ze1=(ze1+@p27)+real(@fn32(c))^real(@p70)*imag(@p70) ze2=(ze2+@p27)+real(@fn32(c1))^real(@p70)*imag(@p70) ze3=(ze3+@p27)+real(@fn32(c2))^real(@p70)*imag(@p70) elseif (@pert_z==1) ze1=(ze1+@p27)-real(@fn32(c))^real(@p70)*imag(@p70) ze2=(ze2+@p27)-real(@fn32(c1))^real(@p70)*imag(@p70) ze3=(ze3+@p27)-real(@fn32(c2))^real(@p70)*imag(@p70) elseif (@pert_z==2) ze1=(ze1+@p27)*real(@fn32(c))^real(@p70)*imag(@p70) ze2=(ze2+@p27)*real(@fn32(c1))^real(@p70)*imag(@p70) ze3=(ze3+@p27)*real(@fn32(c2))^real(@p70)*imag(@p70) endif endif if (@selz==0) z4=z4+@fn33(ze1)^real(@p52)*imag(@p52) z5=z5+@fn33(ze2)^real(@p52)*imag(@p52) z6=z6+@fn33(ze3)^real(@p52)*imag(@p52) elseif (@selz==1) z4=z4*@fn33(ze1)^real(@p52)*imag(@p52) z5=z5*@fn33(ze2)^real(@p52)*imag(@p52) z6=z6*@fn33(ze3)^real(@p52)*imag(@p52) elseif (@selz==2) z4=@fn33(ze1)^real(@p52)*imag(@p52)-z4 z5=@fn33(ze2)^real(@p52)*imag(@p52)-z5 z6=@fn33(ze3)^real(@p52)*imag(@p52)-z6 endif c=@fn19(c) c1=@fn19(c) c2=@fn19(c) if (@selvar==1) za1=@fn16(z11)^real(@p15)*imag(@p15)-(@fn22(c)+@p18) za2=@fn16(z12)^real(@p15)*imag(@p15)-(@fn22(c1)+@p18) za3=@fn16(z13)^real(@p15)*imag(@p15)-(@fn22(c2)+@p18) zb1=@fn17(z21)^real(@p16)*imag(@p16)-(@fn22(c)+@p18) zb2=@fn17(z22)^real(@p16)*imag(@p16)-(@fn22(c1)+@p18) zb3=@fn17(z23)^real(@p16)*imag(@p16)-(@fn22(c2)+@p18) zc1=@fn18(z31)^real(@p17)*imag(@p17)-(@fn22(c)+@p18) zc2=@fn18(z32)^real(@p17)*imag(@p17)-(@fn22(c1)+@p18) zc3=@fn18(z33)^real(@p17)*imag(@p17)-(@fn22(c2)+@p18) endif if (@n_count>=0) n=@n_count*i endif z4=z4^@pow z5=z5^@pow z6=z6^@pow ;------------------------------we're finished the final section and start the slope----- if (@slope == true) ;;;; process slope if (@zmode == 5) iterexp1 = iterexp1 + exp(-cabs(z4)) iterexp2 = iterexp2 + exp(-cabs(z5)) iterexp3 = iterexp3 + exp(-cabs(z6)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z4|; get current distances from origin d2 = |z5| d3 = |z6| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z4)); get current distances from the i axis d2 = abs(real(z5)) d3 = abs(real(z6)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z4)); get current distances from the r axis d2 = abs(imag(z5)) d3 = abs(imag(z6)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z4))+abs(imag(z4)); get current distances from the i axis d2 = abs(real(z5))+abs(imag(z5)) d3 = abs(real(z6))+abs(imag(z6)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z4)); get current angles d2 = abs(atan2(z5)) d3 = abs(atan2(z6)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if (@bailout < |z4+n| || \ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 4) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 5) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector ELSE; didn't compute z this time z = z4; use primary iteration value to keep periodicity working endif else z = z4 endif if (@bailout < |z4+n|) ; we're done done = 0 endif Bailout: done>0 Default: title="Barney-4" method=multipass periodicity=0 maxiter=250 magn=0.8 angle=0.01 Heading caption="Mandelbrot Mode" visible=(@mode==0) Endheading Heading caption="Julia Mode" visible=(@mode==1) Endheading param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 visible=false endparam param SwitchMode caption="Select Switch" enum="Mandelbrot""Julia" default=1 visible=false endparam param bailout caption="Bailout Value" default=1.0e5 min=0.0 endparam param n_count caption="Iter Counter" default=0.0 min=0.0 endparam param freq caption="Frequency" default=1.0 min=0.0 endparam param startseed caption="StartSeed" default=(1.5,0.0) endparam Heading caption="Switch Section" visible=(@show) endheading param @show caption="Switch Section" default=false endparam param swscale caption="Magnification" default=0.8 visible=(@show) endparam param swcenter caption="Switch Center" default=(0.0,0.0) visible=(@show) endparam param scale caption="Magnification Reset" default=1.0 visible=(@show) endparam param center caption="Center Reset" default=(0.0,0.0) visible=(@show) endparam Heading caption="Julia Variant Section" visible=(@show6)&&(@selvar==1) endheading param @show6 caption="Julia Variant Section" default=false visible=(@selvar==1) endparam param julvarza caption="Variant z1" enum="pixel""real(pixel)""imag(pixel)""|pixel|""atan2(pixel)" default=0 visible=(@show6)&&(@selvar==1) endparam param julvarzb caption="Variant z2" enum="pixel""real(pixel)""imag(pixel)""|pixel|""atan2(pixel)" default=0 visible=(@show6)&&(@selvar==1) endparam param julvarzc caption="Variant z3" enum="pixel""real(pixel)""imag(pixel)""|pixel|""atan2(pixel)" default=0 visible=(@show6)&&(@selvar==1) endparam param pza caption="Exponent z1" default=(1.0,0.0) visible=(@show6)&&(@selvar==1) endparam param pza1 caption="Multiplier z1" default=(1.0,0.0) visible=(@show6)&&(@selvar==1) endparam param pzb caption="Exponent z2" default=(1.0,0.0) visible=(@show6)&&(@selvar==1) endparam param pzb1 caption="Multiplier z2" default=(1.0,0.0) visible=(@show6)&&(@selvar==1) endparam param pzc caption="Exponent z3" default=(1.0,0.0) visible=(@show6)&&(@selvar==1) endparam param pzc1 caption="Multiplier z3" default=(1.0,0.0) visible=(@show6)&&(@selvar==1) endparam func fza caption="Function z1" default=ident() visible=(@show6)&&(@selvar==1) endfunc func fzb caption="Function z2" default=ident() visible=(@show6)&&(@selvar==1) endfunc func fzc caption="Function z3" default=ident() visible=(@show6)&&(@selvar==1) endfunc Heading caption="Slope Parameters" visible=@slope==true endheading param slope caption="Apply slope?" default=false endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=5 enum="smallest |z|""smallest |real(z)|"\ "smallest |imag(z)|""smallest summ(z)""smallest |atan(z)|"\ "smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam param xfer caption="Height Transfer" default=0 enum="linear" "log" "sqrt" "cuberoot" "exp" "sqr" "cube" "sin" "cos" "tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.25 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Heading caption="Perturbers Section z1" visible=(@show1) endheading param @show1 caption="Perturbation Sections" default=false endparam param pert_x caption="Select c|x" enum="x+c""x-c""x*c" default=0 visible=(@show1) endparam param pert_y caption="Select c|y" enum="y+c""y-c""y*c" default=1 visible=(@show1) endparam param pert_z1 caption="Select c|z1" enum="z1+c""z1-c""z1*c" default=1 visible=(@show1) endparam param p2 caption="Perturbation x" default=(0.0,0.0) visible=(@show1) endparam param p3 caption="Perturbation y" default=(0.0,0.0) visible=(@show1) endparam param p28 caption="Perturbation z1" default=(0.0,0.0) visible=(@show1) endparam param p50 caption="Param. c|x" default=(1.0,1.0) visible=(@show1) endparam param p57 caption="Param. c|y" default=(1.0,1.0) visible=(@show1) endparam param p63 caption="Param. c|z1" default=(1.0,0.0) visible=(@show1) endparam Heading caption="Perturbers Section z2" visible=(@show1) endheading param pert_x1 caption="Select c|x1" enum="x1+c""x1-c""x1*c" default=1 visible=(@show1) endparam param pert_y1 caption="Select c|y1" enum="y1+c""y1-c""y1*c" default=1 visible=(@show1) endparam param pert_newx caption="Select c|newx" enum="newx+c""newx-c""newx*c" default=0 visible=(@show1) endparam param pert_newy caption="Select c|newy" enum="newy+c""newy-c""newy*c" default=0 visible=(@show1) endparam param pert_z2 caption="Select c|z2" enum="z2+c""z2-c""z2*c" default=0 visible=(@show1) endparam param p53 caption="Perturbation x1" default=(0.0,0.0) visible=(@show1) endparam param p54 caption="Perturbation y1" default=(0.0,0.0) visible=(@show1) endparam param p55 caption="Perturbation newx" default=(0.0,0.0) visible=(@show1) endparam param p56 caption="Perturbation newy" default=(0.0,0.0) visible=(@show1) endparam param p11 caption="Perturbation z2" default=(0.0,0.0) visible=(@show1) endparam param p64 caption="Param. c|x1" default=(1.0,1.0) visible=(@show1) endparam param p65 caption="Param. c|y1" default=(1.0,1.0) visible=(@show1) endparam param p66 caption="Param. c|newx" default=(1.0,1.0) visible=(@show1) endparam param p67 caption="Param. c|newy" default=(1.0,1.0) visible=(@show1) endparam param p68 caption="Param. c|z2" default=(1.0,0.0) visible=(@show1) endparam Heading caption="Perturbers Section z3" visible=(@show1) endheading param pert_z3 caption="Select c|z3" enum="z3+c""z3-c""z3*c" default=0 visible=(@show1) endparam param p25 caption="Perturbation z3" default=(0.0,0.0) visible=(@show1) endparam param p69 caption="Param. c|z3" default=(1.0,0.0) visible=(@show1) endparam Heading caption="Final Perturbers" visible=(@show1) endheading param pert_z caption="Select c|z" enum="z+c""z-c""z*c" default=0 visible=(@show1) endparam param p27 caption="Final Perturbation" default=(0.0,0.0) visible=(@show1) endparam param p70 caption="Param. c|final" default=(1.0,0.0) visible=(@show1) endparam func fn32 caption="Function c" default=ident() visible=(@show1) endfunc Heading caption="Mixers Section" visible=(@mixer==true) endheading param mixer caption="Able Mixers Section" default=false endparam param opz12 caption="Mixer z1" enum="z1+z2""z1*z2""z1/z2""z1+z3""z1*z3""z1/z3" default=0 visible=(@mixer==true) endparam param opz24 caption="Mixer z2" enum="z2+z1""z2*z1""z2/z1""z2+z3""z2*z3""z2/z3" default=0 visible=(@mixer==true) endparam param opz31 caption="Mixer z3" enum="z3+z1""z3*z1""z3/z1""z3+z2""z3*z2""z3/z2" default=0 visible=(@mixer==true) endparam param mix_newx caption="Mixer newx" enum="newx+real(z1)""newx*real(z1)""newx/real(z1)""newx+real(z2)"\ "newx*real(z2)""newx/real(z2)""newx+real(z3)""newx*real(z3)"\ "newx/real(z3)""newx+imag(z1)""newx*imag(z1)""newx/imag(z1)"\ "newx+imag(z2)""newx*imag(z2)""newx/imag(z2)"\ "newx+imag(z3)""newx*imag(z3)""newx/imag(z3)"\ "newx+|z1|""newx*|z1|""newx/|z1|""newx+|z2|""newx*|z2|""newx/|z2|"\ "newx+|z3|""newx*|z3|""newx/|z3|" default=0 visible=(@mixer==true) endparam param mix_newy caption="Mixer newy" enum="newy+real(z1)""newy*real(z1)""newy/real(z1)""newy+real(z2)"\ "newy*real(z2)""newy/real(z2)""newy+real(z3)""newy*real(z3)"\ "newy/real(z3)""newy+imag(z1)""newy*imag(z1)""newy/imag(z1)"\ "newy+imag(z2)""newy*imag(z2)""newy/imag(z2)"\ "newy+imag(z3)""newy*imag(z3)""newy/imag(z3)"\ "newy+|z1|""newy*|z1|""newy/|z1|""newy+|z2|""newy*|z2|""newy/|z2|"\ "newy+|z3|""newy*|z3|""newy/|z3|" default=0 visible=(@mixer==true) endparam param mixcz1 caption="Select c|z1" enum="z1=z1+c""z1=z1*c""z1=z1/c" default=1 visible=(@mixer==true) endparam param mixcz2 caption="Select c|z2" enum="z2=z2+c""z2=z2*c""z2=z2/c" default=1 visible=(@mixer==true) endparam param mixcz3 caption="Select c|z3" enum="z3=z3+c""z3=z3*c""z3=z3/c" default=1 visible=(@mixer==true) endparam param p73 caption="Param. z1|newx" default=(1.0,1.0) visible=(@mix_newx==0)||(@mix_newx==1)||(@mix_newx==2)\ ||(@mix_newx==9)||(@mix_newx==10)||(@mix_newx==11)\ ||(@mix_newx==18)||(@mix_newx==19)||(@mix_newx==20)&&(@mixer==true) endparam param p76 caption="Param. z1|newy" default=(1.0,1.0) visible=(@mix_newy==0)||(@mix_newy==1)||(@mix_newy==2)\ ||(@mix_newy==9)||(@mix_newy==10)||(@mix_newy==11)\ ||(@mix_newy==18)||(@mix_newy==19)||(@mix_newy==20)&&(@mixer==true) endparam param p60 caption="Param. z1" default=(1.0,1.0) visible=(@opz24==0)||(@opz24==1)||(@opz24==2)&&(@mixer==true) endparam param p74 caption="Param. z2|newx" default=(1.0,1.0) visible=(@mix_newx==3)||(@mix_newx==4)||(@mix_newx==5)\ ||(@mix_newx==12)||(@mix_newx==13)||(@mix_newx==14)\ ||(@mix_newx==21)||(@mix_newx==22)||(@mix_newx==23)&&(@mixer==true) endparam param p77 caption="Param. z2|newy" default=(1.0,1.0) visible=(@mix_newy==3)||(@mix_newy==4)||(@mix_newy==5)\ ||(@mix_newy==12)||(@mix_newy==13)||(@mix_newy==14)\ ||(@mix_newy==21)||(@mix_newy==22)||(@mix_newy==23)&&(@mixer==true) endparam param p58 caption="Param. z2" default=(1.0,1.0) visible=(@opz12==0)||(@opz12==1)||(@opz12==2)&&(@mixer==true) endparam param p75 caption="Param. z3|newx" default=(1.0,1.0) visible=(@mix_newx==6)||(@mix_newx==7)||(@mix_newx==8)\ ||(@mix_newx==15)||(@mix_newx==16)||(@mix_newx==17)\ ||(@mix_newx==24)||(@mix_newx==25)||(@mix_newx==26)&&(@mixer==true) endparam param p78 caption="Param. z3|newy" default=(1.0,1.0) visible=(@mix_newy==6)||(@mix_newy==7)||(@mix_newy==8)\ ||(@mix_newy==15)||(@mix_newy==16)||(@mix_newy==17)\ ||(@mix_newy==24)||(@mix_newy==25)||(@mix_newy==26)&&(@mixer==true) endparam param p81 caption="Param. 1|z3" default=(1.0,1.0) visible=(@mixer==true) endparam param p59 caption="Param. 2|z3" default=(1.0,1.0) visible=(@opz12==3)||(@opz12==4)||(@opz12==5)&&(@mixer==true) endparam param p61 caption="Param. 3|z3" default=(1.0,1.0) visible=(@opz24==3)||(@opz24==4)||(@opz24==5)&&(@mixer==true) endparam param p71 caption="Param. newx" default=(1.0,1.0) visible=(@mixer==true) endparam param p72 caption="Param. newy" default=(1.0,1.0) visible=(@mixer==true) endparam param p79 caption="Param. c|z1" default=(1.0,0.0) visible=(@mixer==true) endparam param p80 caption="Param. c|z2" default=(1.0,0.0) visible=(@mixer==true) endparam param p82 caption="Param. c|z3" default=(1.0,0.0) visible=(@mixer==true) endparam func fn40 caption="Function z1|newx" default=ident() visible=(@mix_newx==0)||(@mix_newx==1)||(@mix_newx==2)\ ||(@mix_newx==9)||(@mix_newx==10)||(@mix_newx==11)\ ||(@mix_newx==18)||(@mix_newx==19)||(@mix_newx==20)&&(@mixer==true) endfunc func fn43 caption="Function z1|newy" default=ident() visible=(@mix_newy==0)||(@mix_newy==1)||(@mix_newy==2)\ ||(@mix_newy==9)||(@mix_newy==10)||(@mix_newy==11)\ ||(@mix_newy==18)||(@mix_newy==19)||(@mix_newy==20)&&(@mixer==true) endfunc func fn36 caption="Function z1" default=ident() visible=(@opz24==0)||(@opz24==1)||(@opz24==2)&&(@mixer==true) endfunc func fn41 caption="Function z2|newx" default=ident() visible=(@mix_newx==3)||(@mix_newx==4)||(@mix_newx==5)\ ||(@mix_newx==12)||(@mix_newx==13)||(@mix_newx==14)\ ||(@mix_newx==21)||(@mix_newx==22)||(@mix_newx==23)&&(@mixer==true) endfunc func fn44 caption="Function z2|newy" default=ident() visible=(@mix_newy==3)||(@mix_newy==4)||(@mix_newy==5)\ ||(@mix_newy==12)||(@mix_newy==13)||(@mix_newy==14)\ ||(@mix_newy==21)||(@mix_newy==22)||(@mix_newy==23)&&(@mixer==true) endfunc func fn34 caption="Function z2" default=ident() visible=(@opz12==0)||(@opz12==1)||(@opz12==2)&&(@mixer==true) endfunc func fn42 caption="Function z3|newx" default=ident() visible=(@mix_newx==6)||(@mix_newx==7)||(@mix_newx==8)\ ||(@mix_newx==15)||(@mix_newx==16)||(@mix_newx==17)\ ||(@mix_newx==24)||(@mix_newx==25)||(@mix_newx==26)&&(@mixer==true) endfunc func fn45 caption="Function z3|newy" default=ident() visible=(@mix_newy==6)||(@mix_newy==7)||(@mix_newy==8)\ ||(@mix_newy==15)||(@mix_newy==16)||(@mix_newy==17)\ ||(@mix_newy==24)||(@mix_newy==25)||(@mix_newy==26)&&(@mixer==true) endfunc func fn46 caption="Function 1|z3" default=ident() visible=(@mixer==true) endfunc func fn35 caption="Function 2|z3" default=ident() visible=(@opz12==3)||(@opz12==4)||(@opz12==5)&&(@mixer==true) endfunc func fn37 caption="Function 3|z3" default=ident() visible=(@opz24==3)||(@opz24==4)||(@opz24==5)&&(@mixer==true) endfunc func fn38 caption="Function newx" default=ident() visible=(@mixer==true) endfunc func fn39 caption="Function newy" default=ident() visible=(@mixer==true) endfunc Heading caption="Section z1" Endheading param @show2 caption="Section z1" default=false endparam param opz1 caption="Start z1" enum="x+y""x*y""x/y""y/x""z+x""z+y""z*x""z*y""z+x+y""z*x+y""z+x*y"\ "z*y+x""z*x*y""z*(x+y)""z/x+y""z+x/y""z/y+x""z/x*y""z/y*x"\ "z/(x+y)""z/x/y""z""x""y" default=21 visible=(@show2) endparam param opz11 caption="Mode z1" enum="z1""real(z1)""imag(z1)""|z1|""atan2(z1)" default=0 visible=(@show2) endparam param p26 caption="Exponent 1|z" default=(1.0,0.0) visible=(@show2) endparam param p4 caption="Exponent 2|z" default=(1.0,0.0) visible=(@show2) endparam param p62 caption="Param. 1|z" default=(1.0,0.0) visible=(@show2) endparam param p5 caption="Param. 2|z" default=(1.0,0.0) visible=(@show2) endparam param p1 caption="Param. 1|x" default=(1.0,1.0) visible=(@show2) endparam param p6 caption="Param. 2|x" default=(1.0,0.0) visible=(@show2) endparam param p51 caption="Param. 1|y" default=(1.0,1.0) visible=(@show2) endparam param p29 caption="Param. 2|y" default=(1.0,0.0) visible=(@show2) endparam param p45 caption="Exponent x" default=(1.0,0.0) visible=(@show2) endparam param p46 caption="Exponent y" default=(1.0,0.0) visible=(@show2) endparam param p20 caption="Param. z1" default=(1.0,1.0) visible=(@show2) endparam func fn1 caption="Function 1|z" default=ident() visible=(@show2) endfunc func fn4 caption="Function 2|z" default=ident() visible=(@show2) endfunc func fn2 caption="Function 1|x" default=ident() visible=(@show2) endfunc func fn5 caption="Function 2|x" default=ident() visible=(@show2) endfunc func fn3 caption="Function 1|y" default=ident() visible=(@show2) endfunc func fn6 caption="Function 2|y" default=ident() visible=(@show2) endfunc func fn20 caption="Function z1" default=ident() visible=(@show2) endfunc func fn21 caption="Init Func. c" default=ident() visible=(@show2) endfunc Heading caption="Section z2" Endheading param @show3 caption="Section z2" default=false endparam param opselx1 caption="Select x1" enum="x""y""x+y""x*y""x/y""y/x" default=1 visible=(@show3) endparam param opsely1 caption="Select y1" enum="y""x""y+x""y*x""y/x""x/y" default=0 visible=(@show3) endparam param newx caption="Select newx" enum="x1""x+x1""x*x1""x/x1""x1/x" default=1 visible=(@show3) endparam param newy caption="Select newy" enum="y1""y+y1""y*y1""y/y1""y1/y" default=1 visible=(@show3) endparam param selcx1 caption="C in x1" enum="x1""x1*c""x1/c" default=0 visible=(@show3) endparam param selcy1 caption="C in y1" enum="y1""y1*c""y1/c" default=0 visible=(@show3) endparam param selectcx caption="C in newx" enum="newx""newx+c""newx-c""newx*c" default=0 visible=(@show3) endparam param selectcy caption="C in newy" enum="newy""newy+c""newy-c""newy*c" default=1 visible=(@show3) endparam param opz21 caption="Select z2" enum="z2=newx+newy""z2=newx*newy""z2=newx/newy""z2=newy/newx" default=0 visible=(@show3) endparam param opz22 caption="C in z2" enum="z2+c""z2-c""z2*c""z2/c" default=1 visible=(@show3) endparam param opz23 caption="Mode z2" enum="z2""real(z2)""imag(z2)""|z2|""atan2(z2)" default=0 visible=(@show3) endparam param p32 caption="Param. 1|x" default=(1.0,1.0) visible=(@show3) endparam param p48 caption="Param. 2|x" default=(1.0,1.0) visible=(@show3) endparam param p33 caption="Param. 1|y" default=(1.0,1.0) visible=(@show3) endparam param p49 caption="Param. 2|y" default=(1.0,1.0) visible=(@show3) endparam param p35 caption="Param. 1|x1" default=(1.0,1.0) visible=(@show3) endparam param p34 caption="Param. 2|x1" default=(1.0,1.0) visible=(@show3) endparam param p36 caption="Param. 1|y1" default=(1.0,1.0) visible=(@show3) endparam param p47 caption="Param. 2|y1" default=(1.0,1.0) visible=(@show3) endparam param p12 caption="Exp. newx|newy" default=(1.0,1.0) visible=(@show3) endparam param p8 caption="Exponent newx" default=(1.0,0.0) visible=(@show3) endparam param p9 caption="Param. 1|newx" default=(1.0,0.0) visible=(@show3) endparam param p30 caption="Param. 2|newx" default=(2.0,1.0) visible=(@show3) endparam param p42 caption="Param. 3|newx" default=(1.0,1.0) visible=(@show3) endparam param p43 caption="Param. newy" default=(1.0,1.0) visible=(@show3) endparam param p7 caption="Param. 1|z2" default=(1.0,0.0) visible=(@show3) endparam param p10 caption="Param. 2|z2" default=(1.0,1.0) visible=(@show3) endparam param p31 caption="Param. 1|c" default=(1.0,0.0) visible=(@show3) endparam param p44 caption="Param. 2|c" default=(1.0,0.0) visible=(@show3) endparam func fn24 caption="Function 1|x" default=ident() visible=(@show3) endfunc func fn26 caption="Function 2|x" default=ident() visible=(@show3) endfunc func fn25 caption="Function 1|y" default=ident() visible=(@show3) endfunc func fn31 caption="Function 2|y" default=ident() visible=(@show3) endfunc func fn15 caption="Function x1" default=ident() visible=(@show3) endfunc func fn11 caption="Function y1" default=ident() visible=(@show3) endfunc func fn7 caption="Function 1|newx" default=ident() visible=(@show3) endfunc func fn9 caption="Function 2|newx" default=ident() visible=(@show3) endfunc func fn27 caption="Function 3|newx" default=ident() visible=(@show3) endfunc func fn8 caption="Function 1|newy" default=ident() visible=(@show3) endfunc func fn28 caption="Function 2|newy" default=ident() visible=(@show3) endfunc func fn10 caption="Function z2" default=ident() visible=(@show3) endfunc func fn30 caption="Function c" default=ident() visible=(@show3) endfunc Heading caption="Section z3" Endheading param @show4 caption="Section z3" default=false endparam param opz3 caption="Mode z3" enum="z3""real(z3)""imag(z3)""|z3|""atan2(z3)" default=0 visible=(@show4) endparam param p14 caption="Exponent z" default=(1.0,0.0) visible=(@show4) endparam param p13 caption="Param. 1|z" default=(2.0,1.0) visible=(@show4) endparam param p19 caption="Param. 2|z" default=(1.0,0.0) visible=(@show4) endparam param p23 caption="Param. 1|c" default=(1.0,0.0) visible=(@show4) endparam param p41 caption="Param. 2|c" default=(1.0,0.0) visible=(@show4) endparam param p24 caption="Exponent c" default=(1.0,0.0) visible=(@show4) endparam param p37 caption="Param. z3" default=(1.0,1.0) visible=(@show4) endparam func fn12 caption="Function 1|z" default=ident() visible=(@show4) endfunc func fn13 caption="Function 2|z" default=ident() visible=(@show4) endfunc func fn23 caption="Function c" default=ident() visible=(@show4) endfunc func fn14 caption="Function z3" default=ident() visible=(@show4) endfunc Heading caption="Final Section" Endheading param @show5 caption="Final Section" default=false endparam param selvar caption="Final Mode" enum="Normal""Allows Julia Variant" default=0 visible=(@show5) endparam param selz caption="Final Result" enum="z+""z*""-z" default=0 visible=(@show5) endparam param opzd caption="Final c" enum="c+""c-""c*" default=1 visible=(@show5) endparam param pow caption="Global Exponent" default=(1.0,0.0) visible=(@show5) endparam param p38 caption="Param. 1|z1" default=(1.0,1.0) visible=(@show5) endparam param p15 caption="Param. 2|z1" default=(1.0,1.0) visible=(@show5) endparam param p39 caption="Param. 1|z2" default=(1.0,1.0) visible=(@show5) endparam param p16 caption="Param. 2|z2" default=(1.0,1.0) visible=(@show5) endparam param p40 caption="Param. 1|z3" default=(1.0,1.0) visible=(@show5) endparam param p17 caption="Param. 2|z3" default=(1.0,1.0) visible=(@show5) endparam param p52 caption="Param. z" default=(1.0,1.0) visible=(@show5) endparam param p21 caption="Last Param. 1|c" default=(1.0,1.0) visible=(@show5) endparam param p18 caption="Last Param. 2|c" default=(0.0,0.0) visible=(@show5) endparam param p22 caption="Last Param. 3|c" default=(2.5,0.0) visible=(@show5) endparam func fn16 caption="Last Function z1" default=ident() visible=(@show5) endfunc func fn17 caption="Last Function z2" default=ident() visible=(@show5) endfunc func fn18 caption="Last Function z3" default=ident() visible=(@show5) endfunc func fn33 caption="Function z" default=ident() visible=(@show5) endfunc func fn19 caption="Function 1|c" default=ident() visible=(@show5) endfunc func fn22 caption="Function 2|c" default=ident() visible=(@show5) endfunc func fn29 caption="Function 3|c" default=ident() visible=(@show5) endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="SlopeBarney-4" startseed=pixel bailout=@bailout n_count=@n_count freq=@freq opselx1=@opselx1 opsely1=@opsely1 selcx1=@selcx1 selcy1=@selcy1 selectcx=@selectcx selectcy=@selectcy selvar=@selvar opzd=@opzd opz1=@opz1 opz11=@opz11 opz12=@opz12 opz21=@opz21 opz22=@opz22 opz23=@opz23 opz24=@opz24 opz3=@opz3 opz31=@opz31 newx=@newx newy=@newy mix_newx=@mix_newx mix_newy=@mix_newy mixcz1=@mixcz1 mixcz2=@mixcz2 mixcz3=@mixcz3 pert_x=@pert_x pert_y=@pert_y pert_x1=@pert_x1 pert_y1=@pert_y1 pert_newx=@pert_newx pert_newy=@pert_newy pert_z1=@pert_z1 pert_z2=@pert_z2 pert_z3=@pert_z3 pert_z=@pert_z selz=@selz julvarza=@julvarza julvarzb=@julvarzb julvarzc=@julvarzc p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 p8=@p8 p9=@p9 p10=@p10 p11=@p11 p12=@p12 p13=@p13 p14=@p14 p15=@p15 p16=@p16 p17=@p17 p18=@p18 p19=@p19 p20=@p20 p21=@p21 p22=@p22 p23=@p23 p24=@p24 p25=@p25 p26=@p26 p27=@p27 p28=@p28 p29=@p29 p30=@p30 p31=@p31 p32=@p32 p33=@p33 p34=@p34 p35=@p35 p36=@p36 p37=@p37 p38=@p38 p39=@p39 p40=@p40 p41=@p41 p42=@p42 p43=@p43 p44=@p44 p45=@p45 p46=@p46 p47=@p47 p48=@p48 p49=@p49 p50=@p50 p51=@p51 p52=@p52 p53=@p53 p54=@p54 p55=@p55 p56=@p56 p57=@p57 p58=@p58 p59=@p59 p60=@p60 p61=@p61 p62=@p62 p63=@p63 p64=@p64 p65=@p65 p66=@p66 p67=@p67 p68=@p68 p69=@p69 p70=@p70 p71=@p71 p72=@p72 p73=@p73 p74=@p74 p75=@p75 p76=@p76 p77=@p77 p78=@p78 p79=@p79 p80=@p80 p81=@p81 p82=@p82 pza=@pza pza1=@pza1 pzb=@pzb pzb1=@pzb1 pzc=@pzc pzc1=@pzc1 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 fn8=@fn8 fn9=@fn9 fn10=@fn10 fn11=@fn11 fn12=@fn12 fn13=@fn13 fn14=@fn14 fn15=@fn15 fn16=@fn16 fn17=@fn17 fn18=@fn18 fn19=@fn19 fn20=@fn20 fn21=@fn21 fn22=@fn22 fn23=@fn23 fn24=@fn24 fn25=@fn25 fn26=@fn26 fn27=@fn27 fn28=@fn28 fn29=@fn29 fn30=@fn30 fn31=@fn31 fn32=@fn32 fn33=@fn33 fn34=@fn34 fn35=@fn35 fn36=@fn36 fn37=@fn37 fn38=@fn38 fn39=@fn39 fn40=@fn40 fn41=@fn41 fn42=@fn42 fn43=@fn43 fn44=@fn44 fn45=@fn45 fn46=@fn46 fza=@fza fzb=@fzb fzc=@fzc mode=@switchmode switchmode=@mode scale=@swscale center=@swcenter show=@show show1=@show1 show2=@show2 show3=@show3 show4=@show4 show5=@show5 show6=@show6 mixer=@mixer version=@version slope=@slope offset=@offset pow=@pow zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter } SlopeBarney-5 { ;The general structure of this formula is similar at the Barney-4,but ;it has a different development of the loop sections. ;Section z1: ;Based on z1=newx-newy ;see in the formula tab all the selectables ways. ;As always it's allow to select the mode for all the variables and to operate ;on the c=pixel variable. ;Section z2: ;This section is equal and added to section z1. ;Section z3: ;Based on z3=(x+y)*(z*c) ;Final Section: ;Based on z=(z1+z2+z3)+c ;For the general structure of all the sections can be read the hints in Barney-4. ;Andrea Spinozzi(February2005) Init: c=@fnc(pixel) c1=c+@offset c2=c+flip(@offset) z4=@startseed z5=z4 z6=z4 ;------------------------------------- float x11=0.0 float x12=0.0 float x13=0.0 float y11=0.0 float y12=0.0 float y13=0.0 float x1a=0.0 float x1b=0.0 float x1c=0.0 float y1a=0.0 float y1b=0.0 float y1c=0.0 float x21=0.0 float x22=0.0 float x23=0.0 float y21=0.0 float y22=0.0 float y23=0.0 newx1=@startseed newx2=@startseed newx3=@startseed newy1=@startseed newy2=@startseed newy3=@startseed newx1a=@startseed newx1b=@startseed newx1c=@startseed newy1=@startseed newy2=@startseed newy3=@startseed newy1a=@startseed newy1b=@startseed newy1c=@startseed z11=@startseed z12=@startseed z13=@startseed z21=@startseed z22=@startseed z23=@startseed z31=@startseed z32=@startseed z33=@startseed za1=@startseed za2=@startseed za3=@startseed zb1=@startseed zb2=@startseed zb3=@startseed zc1=@startseed zc2=@startseed zc3=@startseed zd1=@startseed zd2=@startseed zd3=@startseed int i=0 n=0 ;------------------------------------- ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 if @mode=="Julia" z4=pixel z5=z4+@offset z6=z4+flip(@offset) c=@fnc(@startseed) c1=c c2=c if (@julvarza==0) za1=z4 za2=z5 za3=z6 elseif (@julvarza==1) za1=real(z4) za2=real(z5) za3=real(z6) elseif (@julvarza==2) za1=imag(z4) za2=imag(z5) za3=imag(z6) elseif (@julvarza==3) za1=|z4| za2=|z5| za3=|z6| elseif (@julvarza==4) za1=atan2(z4) za2=atan2(z5) za3=atan2(z6) endif za1=@fza1(za1)^@pza*@pza1 za2=@fza1(za2)^@pza*@pza1 za3=@fza1(za3)^@pza*@pza1 if (@julvarzb==0) zb1=z4 zb2=z5 zb3=z6 elseif (@julvarzb==1) zb1=real(z4) zb2=real(z5) zb3=real(z6) elseif (@julvarzb==2) zb1=imag(z4) zb2=imag(z5) zb3=imag(z6) elseif (@julvarzb==3) zb1=|z4| zb2=|z5| zb3=|z6| elseif (@julvarzb==4) zb1=atan2(z4) zb2=atan2(z5) zb3=atan2(z6) endif zb1=@fzb1(zb1)^@pzb*@pzb1 zb2=@fzb1(zb2)^@pzb*@pzb1 zb3=@fzb1(zb3)^@pzb*@pzb1 if (@julvarzc==0) zc1=z4 zc2=z5 zc3=z6 elseif (@julvarzc==1) zc1=real(z4) zc2=real(z5) zc3=real(z6) elseif (@julvarzc==2) zc1=imag(z4) zc2=imag(z5) zc3=imag(z6) elseif (@julvarzc==3) zc1=|z4| zc2=|z5| zc3=|z6| elseif (@julvarzc==4) zc1=atan2(z4) zc2=atan2(z5) zc3=atan2(z6) endif zc1=@fzc1(zc1)^@pzc*@pzc1 zc2=@fzc1(zc2)^@pzc*@pzc1 zc3=@fzc1(zc3)^@pzc*@pzc1 if @scale!=1.0 z4=z4/@scale z5=z5/@scale z6=z6/@scale endif if @center!=(0,0) z4=z4+@center z5=z5+@center z6=z6+@center endif endif Loop: i=i+1 if (i%@freq==0) float x11=real(@fx0(z4))^real(@p53)*imag(@p53) float x12=real(@fx0(z5))^real(@p53)*imag(@p53) float x13=real(@fx0(z6))^real(@p53)*imag(@p53) float y11=real(flip(@fy0(z4)))^real(@p54)*imag(@p54) float y12=real(flip(@fy0(z5)))^real(@p54)*imag(@p54) float y13=real(flip(@fy0(z6)))^real(@p54)*imag(@p54) z4=@fz(z4)^@p5*p6 z5=@fz(z5)^@p5*p6 z6=@fz(z6)^@p5*p6 if (x11>=0 && x12>=0 && x13>=0) if (@pertx_c==0) x11=(x11-real(@p31))+real(c)^real(@p40)*imag(@p40) x12=(x12-real(@p31))+real(c1)^real(@p40)*imag(@p40) x13=(x13-real(@p31))+real(c2)^real(@p40)*imag(@p40) elseif (@pertx_c==1) x11=(x11-real(@p31))-real(c)^real(@p40)*imag(@p40) x12=(x12-real(@p31))-real(c1)^real(@p40)*imag(@p40) x13=(x13-real(@p31))-real(c2)^real(@p40)*imag(@p40) elseif (@pertx_c==2) x11=(x11-real(@p31))*real(c)^real(@p40)*imag(@p40) x12=(x12-real(@p31))*real(c1)^real(@p40)*imag(@p40) x13=(x13-real(@p31))*real(c2)^real(@p40)*imag(@p40) endif else if (@pertx_c==0) x11=(x11+imag(@p31))+real(c)^real(@p40)*imag(@p40) x12=(x12+imag(@p31))+real(c1)^real(@p40)*imag(@p40) x13=(x13+imag(@p31))+real(c2)^real(@p40)*imag(@p40) elseif (@pertx_c==1) x11=(x11+imag(@p31))-real(c)^real(@p40)*imag(@p40) x12=(x12+imag(@p31))-real(c1)^real(@p40)*imag(@p40) x13=(x13+imag(@p31))-real(c2)^real(@p40)*imag(@p40) elseif (@pertx_c==2) x11=(x11+imag(@p31))*real(c)^real(@p40)*imag(@p40) x12=(x12+imag(@p31))*real(c1)^real(@p40)*imag(@p40) x13=(x13+imag(@p31))*real(c2)^real(@p40)*imag(@p40) endif endif if (y11>=0 && y12>=0 && y13>=0) if (@perty_c==0) y11=(y11-real(@p32))+real(c)^real(@p41)*imag(@p41) y12=(y12-real(@p32))+real(c1)^real(@p41)*imag(@p41) y13=(y13-real(@p32))+real(c2)^real(@p41)*imag(@p41) elseif (@perty_c==1) y11=(y11-real(@p32))-real(c)^real(@p41)*imag(@p41) y12=(y12-real(@p32))-real(c1)^real(@p41)*imag(@p41) y13=(y13-real(@p32))-real(c2)^real(@p41)*imag(@p41) elseif (@perty_c==2) y11=(y11-real(@p32))*real(c)^real(@p41)*imag(@p41) y12=(y12-real(@p32))*real(c1)^real(@p41)*imag(@p41) y13=(y13-real(@p32))*real(c2)^real(@p41)*imag(@p41) endif else if (@perty_c==0) y11=(y11+imag(@p32))+real(c)^real(@p41)*imag(@p41) y12=(y12+imag(@p32))+real(c1)^real(@p41)*imag(@p41) y13=(y13+imag(@p32))+real(c2)^real(@p41)*imag(@p41) elseif (@perty_c==1) y11=(y11+imag(@p32))-real(c)^real(@p41)*imag(@p41) y12=(y12+imag(@p32))-real(c1)^real(@p41)*imag(@p41) y13=(y13+imag(@p32))-real(c2)^real(@p41)*imag(@p41) elseif (@perty_c==2) y11=(y11+imag(@p32))*real(c)^real(@p41)*imag(@p41) y12=(y12+imag(@p32))*real(c1)^real(@p41)*imag(@p41) y13=(y13+imag(@p32))*real(c2)^real(@p41)*imag(@p41) endif endif if (@mode_x==0) x11=real(@fx(x11))^real(@p7)*imag(@p7) x12=real(@fx(x12))^real(@p7)*imag(@p7) x13=real(@fx(x13))^real(@p7)*imag(@p7) elseif (@mode_x==1) x11=|@fx(x11)|^real(@p7)*imag(@p7) x12=|@fx(x12)|^real(@p7)*imag(@p7) x13=|@fx(x13)|^real(@p7)*imag(@p7) elseif (@mode_x==2) x11=atan2(@fx(x11))^real(@p7)*imag(@p7) x12=atan2(@fx(x12))^real(@p7)*imag(@p7) x13=atan2(@fx(x13))^real(@p7)*imag(@p7) endif if (@mode_y==0) y11=real(@fy(y11))^real(@p8)*imag(@p8) y12=real(@fy(y12))^real(@p8)*imag(@p8) y13=real(@fy(y13))^real(@p8)*imag(@p8) elseif (@mode_y==1) y11=|@fy(y11)|^real(@p8)*imag(@p8) y12=|@fy(y12)|^real(@p8)*imag(@p8) y13=|@fy(y13)|^real(@p8)*imag(@p8) elseif (@mode_y==2) y11=atan2(@fy(y11))^real(@p8)*imag(@p8) y12=atan2(@fy(y12))^real(@p8)*imag(@p8) y13=atan2(@fy(y13))^real(@p8)*imag(@p8) endif if (@newx==0) newx1=x11+y11 newx2=x12+y12 newx3=x13+y13 elseif (@newx==1) newx1=x11*y11 newx2=x12*y12 newx3=x13*y13 elseif (@newx==2) newx1=x11/y11 newx2=x12/y12 newx3=x13/y13 elseif (@newx==3) newx1=y11/x11 newx2=y12/x12 newx3=y13/x13 elseif (@newx==4) newx1=z4+x11 newx2=z5+x12 newx3=z6+x13 elseif (@newx==5) newx1=z4+y11 newx2=z5+y12 newx3=z6+y13 elseif (@newx==6) newx1=z4*x11 newx2=z5*x12 newx3=z6*x13 elseif (@newx==7) newx1=z4*y11 newx2=z5*y12 newx3=z6*y13 elseif (@newx==8) newx1=z4+x11+y11 newx2=z5+x12+y12 newx3=z6+x13+y13 elseif (@newx==9) newx1=z4*x11+y11 newx2=z5*x12+y12 newx3=z6*x13+y13 elseif (@newx==10) newx1=z4+x11*y11 newx2=z5+x12*y12 newx3=z6+x13*y13 elseif (@newx==11) newx1=z4*y11+x11 newx2=z5*y12+x12 newx3=z6*y13+x13 elseif (@newx==12) newx1=z4*x11*y11 newx2=z5*x12*y12 newx3=z6*x13*y13 elseif (@newx==13) newx1=z4*(x11+y11) newx2=z5*(x12+y12) newx3=z6*(x13+y13) elseif (@newx==14) newx1=z4/x11+y11 newx2=z5/x12+y12 newx3=z6/x13+y13 elseif (@newx==15) newx1=z4+x11/y11 newx2=z5+x12/y12 newx3=z6+x13/y13 elseif (@newx==16) newx1=z4/y11+x11 newx2=z5/y12+x12 newx3=z6/y13+x13 elseif (@newx==17) newx1=z4/x11*y11 newx2=z5/x12*y12 newx3=z6/x13*y13 elseif (@newx==18) newx1=z4/y11*x11 newx2=z5/y12*x12 newx3=z6/y13*x13 elseif (@newx==19) newx1=z4/(x11+y11) newx2=z5/(x12+y12) newx3=z6/(x13+y13) elseif (@newx==20) newx1=z4/x11/y11 newx2=z5/x12/y12 newx3=z6/x13/y13 elseif (@newx==21) newx1=z4 newx2=z5 newx3=z6 elseif (@newx==22) newx1=x11 newx2=x12 newx3=x13 elseif (@newx==23) newx1=y11 newx2=y12 newx3=y13 endif if (@mixer==true) if (@mixnewx==0) newx1=newx1+newx1a newx2=newx2+newx1b newx3=newx3+newx1c elseif (@mixnewx==1) newx1=newx1-newx1a newx2=newx2-newx1b newx3=newx3-newx1c elseif (@mixnewx==2) newx1=newx1*newx1a newx2=newx2*newx1b newx3=newx3*newx1c elseif (@mixnewx==3) newx1=newx1/newx1a newx2=newx2/newx1b newx3=newx3/newx1c elseif (@mixnewx==4) newx1=newx1+newy1 newx2=newx2+newy2 newx3=newx3+newy3 elseif (@mixnewx==5) newx1=newx1-newy1 newx2=newx2-newy2 newx3=newx3-newy3 elseif (@mixnewx==6) newx1=newx1*newy1 newx2=newx2*newy2 newx3=newx3*newy3 elseif (@mixnewx==7) newx1=newx1/newy1 newx2=newx2/newy2 newx3=newx3/newy3 elseif (@mixnewx==8) newx1=newx1+newy1a newx2=newx2+newy1b newx3=newx3+newy1c elseif (@mixnewx==9) newx1=newx1-newy1a newx2=newx2-newy1b newx3=newx3-newy1c elseif (@mixnewx==10) newx1=newx1*newy1a newx2=newx2*newy1b newx3=newx3*newy1c elseif (@mixnewx==11) newx1=newx1/newy1a newx2=newx2/newy1b newx3=newx3/newy1c elseif (@mixnewx==12) newx1=newx1+z11 newx2=newx2+z12 newx3=newx3+z13 elseif (@mixnewx==13) newx1=newx1-z11 newx2=newx2-z12 newx3=newx3-z13 elseif (@mixnewx==14) newx1=newx1*z11 newx2=newx2*z12 newx3=newx3*z13 elseif (@mixnewx==15) newx1=newx1/z11 newx2=newx2/z12 newx3=newx3/z13 elseif (@mixnewx==16) newx1=newx1+z21 newx2=newx2+z22 newx3=newx3+z23 elseif (@mixnewx==17) newx1=newx1-z21 newx2=newx2-z22 newx3=newx3-z23 elseif (@mixnewx==18) newx1=newx1*z21 newx2=newx2*z22 newx3=newx3*z23 elseif (@mixnewx==19) newx1=newx1/z21 newx2=newx2/z22 newx3=newx3/z23 elseif (@mixnewx==20) newx1=newx1+z31 newx2=newx2+z32 newx3=newx3+z33 elseif (@mixnewx==21) newx1=newx1-z31 newx2=newx2-z32 newx3=newx3-z33 elseif (@mixnewx==22) newx1=newx1*z31 newx2=newx2*z32 newx3=newx3*z33 elseif (@mixnewx==23) newx1=newx1/z31 newx2=newx2/z32 newx3=newx3/z33 endif newx1=@fmixnewx(newx1)^@p60*@p61 newx2=@fmixnewx(newx2)^@p60*@p61 newx3=@fmixnewx(newx3)^@p60*@p61 newx1a=@fmixnewx1(newx1a)^@p62*@p63 newx1b=@fmixnewx1(newx1b)^@p62*@p63 newx1c=@fmixnewx1(newx1c)^@p62*@p63 newy1=@fmixnewy(newy1)^@p64*@p65 newy2=@fmixnewy(newy2)^@p64*@p65 newy3=@fmixnewy(newy3)^@p64*@p65 newy1a=@fmixnewy1(newy1a)^@p66*@p67 newy1b=@fmixnewy1(newy1b)^@p66*@p67 newy1c=@fmixnewy1(newy1c)^@p66*@p67 endif if (@newxc==0) newx1=newx1+c^real(@p38)*imag(@p38) newx2=newx2+c1^real(@p38)*imag(@p38) newx3=newx3+c2^real(@p38)*imag(@p38) elseif (@newxc==1) newx1=newx1-c^real(@p38)*imag(@p38) newx2=newx2-c1^real(@p38)*imag(@p38) newx3=newx3-c2^real(@p38)*imag(@p38) elseif (@newxc==2) newx1=newx1*c^real(@p38)*imag(@p38) newx2=newx2*c1^real(@p38)*imag(@p38) newx3=newx3*c2^real(@p38)*imag(@p38) elseif (@newxc==3) newx1=newx1/c^real(@p38)*imag(@p38) newx2=newx2/c1^real(@p38)*imag(@p38) newx3=newx3/c2^real(@p38)*imag(@p38) endif if (real(newx1)>=0 && real(newx2)>=0 && real(newx3)>=0) if (@pertnewx_c==0) newx1=(newx1-@p26)+c^real(@p42)*imag(@p42) newx2=(newx2-@p26)+c1^real(@p42)*imag(@p42) newx3=(newx3-@p26)+c2^real(@p42)*imag(@p42) elseif (@pertnewx_c==1) newx1=(newx1-@p26)-c^real(@p42)*imag(@p42) newx2=(newx2-@p26)-c1^real(@p42)*imag(@p42) newx3=(newx3-@p26)-c2^real(@p42)*imag(@p42) elseif (@pertnewx_c==2) newx1=(newx1-@p26)*c^real(@p42)*imag(@p42) newx2=(newx2-@p26)*c1^real(@p42)*imag(@p42) newx3=(newx3-@p26)*c2^real(@p42)*imag(@p42) endif else if (@pertnewx_c==0) newx1=(newx1+@p26)+c^real(@p42)*imag(@p42) newx2=(newx2+@p26)+c1^real(@p42)*imag(@p42) newx3=(newx3+@p26)+c2^real(@p42)*imag(@p42) elseif (@pertnewx_c==1) newx1=(newx1+@p26)-c^real(@p42)*imag(@p42) newx2=(newx2+@p26)-c1^real(@p42)*imag(@p42) newx3=(newx3+@p26)-c2^real(@p42)*imag(@p42) elseif (@pertnewx_c==2) newx1=(newx1+@p26)*c^real(@p42)*imag(@p42) newx2=(newx2+@p26)*c1^real(@p42)*imag(@p42) newx3=(newx3+@p26)*c2^real(@p42)*imag(@p42) endif endif if (@mode_newx==0) newx1=newx1 newx2=newx2 newx3=newx3 elseif (@mode_newx==1) newx1=real(newx1) newx2=real(newx2) newx3=real(newx3) elseif (@mode_newx==2) newx1=imag(newx1) newx2=imag(newx2) newx3=imag(newx3) elseif (@mode_newx==3) newx1=|newx1| newx2=|newx2| newx3=|newx3| elseif (@mode_newx==4) newx1=atan2(newx1) newx2=atan2(newx2) newx3=atan2(newx3) endif if (@newy==0) newy1=x11+y11 newy2=x12+y12 newy3=x13+y13 elseif (@newy==1) newy1=x11*y11 newy2=x12*y12 newy3=x13*y13 elseif (@newy==2) newy1=x11/y11 newy2=x12/y12 newy3=x13/y13 elseif (@newy==3) newy1=y11/x11 newy2=y12/x12 newy3=y13/x13 elseif (@newy==4) newy1=z4+x11 newy2=z5+x12 newy3=z6+x13 elseif (@newy==5) newy1=z4+y11 newy2=z5+y12 newy3=z6+y13 elseif (@newy==6) newy1=z4*x11 newy2=z5*x12 newy3=z6*x13 elseif (@newy==7) newy1=z4*y11 newy2=z5*y12 newy3=z6*y13 elseif (@newy==8) newy1=z4+x11+y11 newy2=z5+x12+y12 newy3=z6+x13+y13 elseif (@newy==9) newy1=z4*x11+y11 newy2=z5*x12+y12 newy3=z6*x13+y13 elseif (@newy==10) newy1=z4+x11*y11 newy2=z5+x12*y12 newy3=z6+x13*y13 elseif (@newy==11) newy1=z4*y11+x11 newy2=z5*y12+x12 newy3=z6*y13+x13 elseif (@newy==12) newy1=z4*x11*y11 newy2=z5*x12*y12 newy3=z6*x13*y13 elseif (@newy==13) newy1=z4*(x11+y11) newy2=z5*(x12+y12) newy3=z6*(x13+y13) elseif (@newy==14) newy1=z4/x11+y11 newy2=z5/x12+y12 newy3=z6/x13+y13 elseif (@newy==15) newy1=z4+x11/y11 newy2=z5+x12/y12 newy3=z6+x13/y13 elseif (@newy==16) newy1=z4/y11+x11 newy2=z5/y12+x12 newy3=z6/y13+x13 elseif (@newy==17) newy1=z4/x11*y11 newy2=z5/x12*y12 newy3=z6/x13*y13 elseif (@newy==18) newy1=z4/y11*x11 newy2=z5/y12*x12 newy3=z6/y13*x13 elseif (@newy==19) newy1=z4/(x11+y11) newy2=z5/(x12+y12) newy3=z6/(x13+y13) elseif (@newy==20) newy1=z4/x11/y11 newy2=z5/x12/y12 newy3=z6/x13/y13 elseif (@newy==21) newy1=z4 newy2=z5 newy3=z6 elseif (@newy==22) newy1=x11 newy2=x12 newy3=x13 elseif (@newy==23) newy1=y11 newy2=y12 newy3=y13 endif if (@mixer==true) if (@mixnewy==0) newy1=newy1+newx1 newy2=newy2+newx2 newy3=newy3+newx3 elseif (@mixnewy==1) newy1=newy1-newx1 newy2=newy2-newx2 newy3=newy3-newx3 elseif (@mixnewy==2) newy1=newy1*newx1 newy2=newy2*newx2 newy3=newy3*newx3 elseif (@mixnewy==3) newy1=newy1/newx1 newy2=newy2/newx2 newy3=newy3/newx3 elseif (@mixnewy==4) newy1=newy1+newx1a newy2=newy2+newx1b newy3=newy3+newx1c elseif (@mixnewy==5) newy1=newy1-newx1a newy2=newy2-newx1b newy3=newy3-newx1c elseif (@mixnewy==6) newy1=newy1*newx1a newy2=newy2*newx1b newy3=newy3*newx1c elseif (@mixnewy==7) newy1=newy1/newx1a newy2=newy2/newx1b newy3=newy3/newx1c elseif (@mixnewy==8) newy1=newy1+newy1a newy2=newy2+newy1b newy3=newy3+newy1c elseif (@mixnewy==9) newy1=newy1-newy1a newy2=newy2-newy1b newy3=newy3-newy1c elseif (@mixnewy==10) newy1=newy1*newy1a newy2=newy2*newy1b newy3=newy3*newy1c elseif (@mixnewy==11) newy1=newy1/newy1a newy2=newy2/newy1b newy3=newy3/newy1c elseif (@mixnewy==12) newy1=newy1+z11 newy2=newy2+z12 newy3=newy3+z13 elseif (@mixnewy==13) newy1=newy1-z11 newy2=newy2-z12 newy3=newy3-z13 elseif (@mixnewy==14) newy1=newy1*z11 newy2=newy2*z12 newy3=newy3*z13 elseif (@mixnewy==15) newy1=newy1/z11 newy2=newy2/z12 newy3=newy3/z13 elseif (@mixnewy==16) newy1=newy1+z21 newy2=newy2+z22 newy3=newy3+z23 elseif (@mixnewy==17) newy1=newy1-z21 newy2=newy2-z22 newy3=newy3-z23 elseif (@mixnewy==18) newy1=newy1*z21 newy2=newy2*z22 newy3=newy3*z23 elseif (@mixnewy==19) newy1=newy1/z21 newy2=newy2/z22 newy3=newy3/z23 elseif (@mixnewy==20) newy1=newy1+z31 newy2=newy2+z32 newy3=newy3+z33 elseif (@mixnewy==21) newy1=newy1-z31 newy2=newy2-z32 newy3=newy3-z33 elseif (@mixnewy==22) newy1=newy1*z31 newy2=newy2*z32 newy3=newy3*z33 elseif (@mixnewy==23) newy1=newy1/z31 newy2=newy2/z32 newy3=newy3/z33 endif newx1=@fmixnewx(newx1)^@p60*@p61 newx2=@fmixnewx(newx2)^@p60*@p61 newx3=@fmixnewx(newx3)^@p60*@p61 newx1a=@fmixnewx1(newx1a)^@p62*@p63 newx1b=@fmixnewx1(newx1b)^@p62*@p63 newx1c=@fmixnewx1(newx1c)^@p62*@p63 newy1=@fmixnewy(newy1)^@p64*@p65 newy2=@fmixnewy(newy2)^@p64*@p65 newy3=@fmixnewy(newy3)^@p64*@p65 newy1a=@fmixnewy1(newy1a)^@p66*@p67 newy1b=@fmixnewy1(newy1b)^@p66*@p67 newy1c=@fmixnewy1(newy1c)^@p66*@p67 endif if (@newyc==0) newy1=newy1+c^real(@p21)*imag(@p21) newy2=newy2+c1^real(@p21)*imag(@p21) newy3=newy3+c2^real(@p21)*imag(@p21) elseif (@newyc==1) newy1=newy1-c^real(@p21)*imag(@p21) newy2=newy2-c1^real(@p21)*imag(@p21) newy3=newy3-c2^real(@p21)*imag(@p21) elseif (@newyc==2) newy1=newy1*c^real(@p21)*imag(@p21) newy2=newy2*c1^real(@p21)*imag(@p21) newy3=newy3*c2^real(@p21)*imag(@p21) elseif (@newyc==3) newy1=newy1/c^real(@p21)*imag(@p21) newy2=newy2/c1^real(@p21)*imag(@p21) newy3=newy3/c2^real(@p21)*imag(@p21) endif if (real(newy1)>=0 && real(newy2)>=0 && real(newy3)>=0) if (@pertnewy_c==0) newy1=(newy1-@p27)+c^real(@p43)*imag(@p43) newy2=(newy2-@p27)+c1^real(@p43)*imag(@p43) newy3=(newy3-@p27)+c2^real(@p43)*imag(@p43) elseif (@pertnewy_c==1) newy1=(newy1-@p27)-c^real(@p43)*imag(@p43) newy2=(newy2-@p27)-c1^real(@p43)*imag(@p43) newy3=(newy3-@p27)-c2^real(@p43)*imag(@p43) elseif (@pertnewy_c==2) newy1=(newy1-@p27)*c^real(@p43)*imag(@p43) newy2=(newy2-@p27)*c1^real(@p43)*imag(@p43) newy3=(newy3-@p27)*c2^real(@p43)*imag(@p43) endif else if (@pertnewy_c==0) newy1=(newy1+@p27)+c^real(@p43)*imag(@p43) newy2=(newy2+@p27)+c1^real(@p43)*imag(@p43) newy3=(newy3+@p27)+c2^real(@p43)*imag(@p43) elseif (@pertnewy_c==1) newy1=(newy1+@p27)-c^real(@p43)*imag(@p43) newy2=(newy2+@p27)-c1^real(@p43)*imag(@p43) newy3=(newy3+@p27)-c2^real(@p43)*imag(@p43) elseif (@pertnewy_c==2) newy1=(newy1+@p27)*c^real(@p43)*imag(@p43) newy2=(newy2+@p27)*c1^real(@p43)*imag(@p43) newy3=(newy3+@p27)*c2^real(@p43)*imag(@p43) endif endif if (@mode_newy==0) newy1=newy1 newy2=newy2 newy3=newy3 elseif (@mode_newy==1) newy1=real(newy1) newy2=real(newy2) newy3=real(newy3) elseif (@mode_newy==2) newy1=imag(newy1) newy2=imag(newy2) newy3=imag(newy3) elseif (@mode_newy==3) newy1=|newy1| newy2=|newy2| newy3=|newy3| elseif (@mode_newy==4) newy1=atan2(newy1) newy2=atan2(newy2) newy3=atan2(newy3) endif if (@newxy==0) z11=@fnewx(newx1)^@p17*p1+@fnewy(newy1)^@p18*p2 z12=@fnewx(newx2)^@p17*p1+@fnewy(newy2)^@p18*p2 z13=@fnewx(newx3)^@p17*p1+@fnewy(newy3)^@p18*p2 elseif (@newxy==1) z11=@fnewx(newx1)^@p17*p1-@fnewy(newy1)^@p18*p2 z12=@fnewx(newx2)^@p17*p1-@fnewy(newy2)^@p18*p2 z13=@fnewx(newx3)^@p17*p1-@fnewy(newy3)^@p18*p2 elseif (@newxy==2) z11=@fnewx(newx1)^@p17*p1*@fnewy(newy1)^@p18*p2 z12=@fnewx(newx2)^@p17*p1*@fnewy(newy2)^@p18*p2 z13=@fnewx(newx3)^@p17*p1*@fnewy(newy3)^@p18*p2 elseif (@newxy==3) z11=@fnewx(newx1)^@p17*p1/@fnewy(newy1)^@p18*p2 z12=@fnewx(newx2)^@p17*p1/@fnewy(newy2)^@p18*p2 z13=@fnewx(newx3)^@p17*p1/@fnewy(newy3)^@p18*p2 endif if (@opselz1==0) z11=@fz11(z11)^real(@p49)*imag(@p49) z12=@fz11(z12)^real(@p49)*imag(@p49) z13=@fz11(z13)^real(@p49)*imag(@p49) elseif (@opselz1==1) z11=@fz11(z11)^real(@p49)*imag(@p49)+@fz12(z21)^real(@p50)*imag(@p50) z12=@fz11(z12)^real(@p49)*imag(@p49)+@fz12(z22)^real(@p50)*imag(@p50) z13=@fz11(z13)^real(@p49)*imag(@p49)+@fz12(z23)^real(@p50)*imag(@p50) elseif (@opselz1==2) z11=@fz11(z11)^real(@p49)*imag(@p49)*@fz12(z21)^real(@p50)*imag(@p50) z12=@fz11(z12)^real(@p49)*imag(@p49)*@fz12(z22)^real(@p50)*imag(@p50) z13=@fz11(z13)^real(@p49)*imag(@p49)*@fz12(z23)^real(@p50)*imag(@p50) elseif (@opselz1==3) z11=@fz11(z11)^real(@p49)*imag(@p49)/@fz12(z21)^real(@p50)*imag(@p50) z12=@fz11(z12)^real(@p49)*imag(@p49)/@fz12(z22)^real(@p50)*imag(@p50) z13=@fz11(z13)^real(@p49)*imag(@p49)/@fz12(z23)^real(@p50)*imag(@p50) elseif (@opselz1==4) z11=@fz11(z11)^real(@p49)*imag(@p49)+@fz15(z31)^real(@p57)*imag(@p57) z12=@fz11(z12)^real(@p49)*imag(@p49)+@fz15(z32)^real(@p57)*imag(@p57) z13=@fz11(z13)^real(@p49)*imag(@p49)+@fz15(z33)^real(@p57)*imag(@p57) elseif (@opselz1==5) z11=@fz11(z11)^real(@p49)*imag(@p49)*@fz15(z31)^real(@p57)*imag(@p57) z12=@fz11(z12)^real(@p49)*imag(@p49)*@fz15(z32)^real(@p57)*imag(@p57) z13=@fz11(z13)^real(@p49)*imag(@p49)*@fz15(z33)^real(@p57)*imag(@p57) elseif (@opselz1==6) z11=@fz11(z11)^real(@p49)*imag(@p49)/@fz15(z31)^real(@p57)*imag(@p57) z12=@fz11(z12)^real(@p49)*imag(@p49)/@fz15(z32)^real(@p57)*imag(@p57) z13=@fz11(z13)^real(@p49)*imag(@p49)/@fz15(z33)^real(@p57)*imag(@p57) endif if (real(z11)>=0 && real(z12)>=0 && real(z13)>=0) if (@pertz1_c==0) z11=(z11-@p70)+c^real(@p71)*imag(@p71) z12=(z12-@p70)+c1^real(@p71)*imag(@p71) z13=(z13-@p70)+c2^real(@p71)*imag(@p71) elseif (@pertz1_c==1) z11=(z11-@p70)-c^real(@p71)*imag(@p71) z12=(z12-@p70)-c1^real(@p71)*imag(@p71) z13=(z13-@p70)-c2^real(@p71)*imag(@p71) elseif (@pertz1_c==2) z11=(z11-@p70)*c^real(@p71)*imag(@p71) z12=(z12-@p70)*c1^real(@p71)*imag(@p71) z13=(z13-@p70)*c2^real(@p71)*imag(@p71) endif else if (@pertz1_c==0) z11=(z11+@p70)+c^real(@p71)*imag(@p71) z12=(z12+@p70)+c1^real(@p71)*imag(@p71) z13=(z13+@p70)+c2^real(@p71)*imag(@p71) elseif (@pertz1_c==1) z11=(z11+@p70)-c^real(@p71)*imag(@p71) z12=(z12+@p70)-c1^real(@p71)*imag(@p71) z13=(z13+@p70)-c2^real(@p71)*imag(@p71) elseif (@pertz1_c==2) z11=(z11+@p70)*c^real(@p71)*imag(@p71) z12=(z12+@p70)*c1^real(@p71)*imag(@p71) z13=(z13+@p70)*c2^real(@p71)*imag(@p71) endif endif if (@modez1==0) z11=z11 z12=z12 z13=z13 elseif (@modez1==1) z11=real(z11) z12=real(z12) z13=real(z13) elseif (@modez1==2) z11=imag(z11) z12=imag(z12) z13=imag(z13) elseif (@modez1==3) z11=|z11| z12=|z12| z13=|z13| elseif (@modez1==4) z11=atan2(z11) z12=atan2(z12) z13=atan2(z13) endif ;---------------------------we're finished z1 and start z2------------------------------ float x1a=real(@fx3(z4))^real(@p55)*imag(@p55) float x1b=real(@fx3(z5))^real(@p55)*imag(@p55) float x1c=real(@fx3(z6))^real(@p55)*imag(@p55) float y1a=real(flip(@fy3(z4)))^real(@p56)*imag(@p56) float y1b=real(flip(@fy3(z5)))^real(@p56)*imag(@p56) float y1c=real(flip(@fy3(z6)))^real(@p56)*imag(@p56) z4=@fz1(z4)^@p11*@p12 z5=@fz1(z5)^@p11*@p12 z6=@fz1(z6)^@p11*@p12 if (x1a>=0 && x1b>=0 && x1c>=0) if (@pertx1_c==0) x1a=(x1a-real(@p33))+real(c)^real(@p44)*imag(@p44) x1b=(x1b-real(@p33))+real(c1)^real(@p44)*imag(@p44) x1c=(x1c-real(@p33))+real(c2)^real(@p44)*imag(@p44) elseif (@pertx1_c==1) x1a=(x1a-real(@p33))-real(c)^real(@p44)*imag(@p44) x1b=(x1b-real(@p33))-real(c1)^real(@p44)*imag(@p44) x1c=(x1c-real(@p33))-real(c2)^real(@p44)*imag(@p44) elseif (@pertx1_c==2) x1a=(x1a-real(@p33))*real(c)^real(@p44)*imag(@p44) x1b=(x1b-real(@p33))*real(c1)^real(@p44)*imag(@p44) x1c=(x1c-real(@p33))*real(c2)^real(@p44)*imag(@p44) endif else if (@pertx1_c==0) x1a=(x1a+imag(@p33))+real(c)^real(@p44)*imag(@p44) x1b=(x1b+imag(@p33))+real(c1)^real(@p44)*imag(@p44) x1c=(x1c+imag(@p33))+real(c2)^real(@p44)*imag(@p44) elseif (@pertx1_c==1) x1a=(x1a+imag(@p33))-real(c)^real(@p44)*imag(@p44) x1b=(x1b+imag(@p33))-real(c1)^real(@p44)*imag(@p44) x1c=(x1c+imag(@p33))-real(c2)^real(@p44)*imag(@p44) elseif (@pertx1_c==2) x1a=(x1a+imag(@p33))*real(c)^real(@p44)*imag(@p44) x1b=(x1b+imag(@p33))*real(c1)^real(@p44)*imag(@p44) x1c=(x1c+imag(@p33))*real(c2)^real(@p44)*imag(@p44) endif endif if (y1a>=0 && y1b>=0 &&y1c>=0) if (@perty1_c==0) y1a=(y1a-real(@p34))+real(c)^real(@p45)*imag(@p45) y1b=(y1b-real(@p34))+real(c1)^real(@p45)*imag(@p45) y1c=(y1c-real(@p34))+real(c2)^real(@p45)*imag(@p45) elseif (@perty1_c==1) y1a=(y1a-real(@p34))-real(c)^real(@p45)*imag(@p45) y1b=(y1b-real(@p34))-real(c1)^real(@p45)*imag(@p45) y1c=(y1c-real(@p34))-real(c2)^real(@p45)*imag(@p45) elseif (@perty1_c==2) y1a=(y1a-real(@p34))*real(c)^real(@p45)*imag(@p45) y1b=(y1b-real(@p34))*real(c1)^real(@p45)*imag(@p45) y1c=(y1c-real(@p34))*real(c2)^real(@p45)*imag(@p45) endif else if (@perty1_c==0) y1a=(y1a+imag(@p34))+real(c)^real(@p45)*imag(@p45) y1b=(y1b+imag(@p34))+real(c1)^real(@p45)*imag(@p45) y1c=(y1c+imag(@p34))+real(c2)^real(@p45)*imag(@p45) elseif (@perty1_c==1) y1a=(y1a+imag(@p34))-real(c)^real(@p45)*imag(@p45) y1b=(y1b+imag(@p34))-real(c1)^real(@p45)*imag(@p45) y1c=(y1c+imag(@p34))-real(c2)^real(@p45)*imag(@p45) elseif (@perty1_c==2) y1a=(y1a+imag(@p34))*real(c)^real(@p45)*imag(@p45) y1b=(y1b+imag(@p34))*real(c1)^real(@p45)*imag(@p45) y1c=(y1c+imag(@p34))*real(c2)^real(@p45)*imag(@p45) endif endif if (@mode_x1==0) x1a=real(@fx1(x1a))^real(@p9)*imag(@p9) x1b=real(@fx1(x1b))^real(@p9)*imag(@p9) x1c=real(@fx1(x1c))^real(@p9)*imag(@p9) elseif (@mode_x1==1) x1a=|@fx1(x1a)|^real(@p9)*imag(@p9) x1b=|@fx1(x1b)|^real(@p9)*imag(@p9) x1c=|@fx1(x1c)|^real(@p9)*imag(@p9) elseif (@mode_x1==2) x1a=atan2(@fx1(x1a))^real(@p9)*imag(@p9) x1b=atan2(@fx1(x1b))^real(@p9)*imag(@p9) x1c=atan2(@fx1(x1c))^real(@p9)*imag(@p9) endif if (@mode_y1==0) y1a=real(@fy1(y1a))^real(@p10)*imag(@p10) y1b=real(@fy1(y1b))^real(@p10)*imag(@p10) y1c=real(@fy1(y1c))^real(@p10)*imag(@p10) elseif (@mode_y1==1) y1a=|@fy1(y1a)|^real(@p10)*imag(@p10) y1b=|@fy1(y1b)|^real(@p10)*imag(@p10) y1c=|@fy1(y1c)|^real(@p10)*imag(@p10) elseif (@mode_y1==2) y1a=atan2(@fy1(y1a))^real(@p10)*imag(@p10) y1b=atan2(@fy1(y1b))^real(@p10)*imag(@p10) y1c=atan2(@fy1(y1c))^real(@p10)*imag(@p10) endif if (@newx1==0) newx1a=x1a+y1a newx1b=x1b+y1b newx1c=x1c+y1c elseif (@newx1==1) newx1a=x1a*y1a newx1b=x1b*y1b newx1c=x1c*y1c elseif (@newx1==2) newx1a=x1a/y1a newx1b=x1b/y1b newx1c=x1c/y1c elseif (@newx1==3) newx1a=y1a/x1a newx1b=y1b/x1b newx1c=y1c/x1c elseif (@newx1==4) newx1a=z4+x1a newx1b=z5+x1b newx1c=z6+x1c elseif (@newx1==5) newx1a=z4+y1a newx1b=z5+y1b newx1c=z6+y1c elseif (@newx1==6) newx1a=z4*x1a newx1b=z5*x1b newx1c=z6*x1c elseif (@newx1==7) newx1a=z4*y1a newx1b=z5*y1b newx1c=z6*y1c elseif (@newx1==8) newx1a=z4+x1a+y1a newx1b=z5+x1b+y1b newx1c=z6+x1c+y1c elseif (@newx1==9) newx1a=z4*x1a+y1a newx1b=z5*x1b+y1b newx1c=z6*x1c+y1c elseif (@newx1==10) newx1a=z4+x1a*y1a newx1b=z5+x1b*y1b newx1c=z6+x1c*y1c elseif (@newx1==11) newx1a=z4*y1a+x1a newx1b=z5*y1b+x1b newx1c=z6*y1c+x1c elseif (@newx1==12) newx1a=z4*x1a*y1a newx1b=z5*x1b*y1b newx1c=z6*x1c*y1c elseif (@newx1==13) newx1a=z4*(x1a+y1a) newx1b=z5*(x1b+y1b) newx1c=z6*(x1c+y1c) elseif (@newx1==14) newx1a=z4/x1a+y1a newx1b=z5/x1b+y1b newx1c=z6/x1c+y1c elseif (@newx1==15) newx1a=z4+x1a/y1a newx1b=z5+x1b/y1b newx1c=z6+x1c/y1c elseif (@newx1==16) newx1a=z4/y1a+x1a newx1b=z5/y1b+x1b newx1c=z6/y1c+x1c elseif (@newx1==17) newx1a=z4/x1a*y1a newx1b=z5/x1b*y1b newx1c=z6/x1c*y1c elseif (@newx1==18) newx1a=z4/y1a*x1a newx1b=z5/y1b*x1b newx1c=z6/y1c*x1c elseif (@newx1==19) newx1a=z4/(x1a+y1a) newx1b=z5/(x1b+y1b) newx1c=z6/(x1c+y1c) elseif (@newx1==20) newx1a=z4/x1a/y1a newx1b=z5/x1b/y1b newx1c=z6/x1c/y1c elseif (@newx1==21) newx1a=z4 newx1b=z5 newx1c=z6 elseif (@newx1==22) newx1a=x1a newx1b=x1b newx1c=x1c elseif (@newx1==23) newx1a=y1a newx1b=y1b newx1c=y1c endif if (@mixer==true) if (@mixnewx1==0) newx1a=newx1a+newx1 newx1b=newx1b+newx2 newx1c=newx1c+newx3 elseif (@mixnewx1==1) newx1a=newx1a-newx1 newx1b=newx1b-newx2 newx1c=newx1c-newx3 elseif (@mixnewx1==2) newx1a=newx1a*newx1 newx1b=newx1b*newx2 newx1c=newx1c*newx3 elseif (@mixnewx1==3) newx1a=newx1a/newx1 newx1b=newx1b/newx2 newx1c=newx1c/newx3 elseif (@mixnewx1==4) newx1a=newx1a+newy1 newx1b=newx1b+newy2 newx1c=newx1c+newy3 elseif (@mixnewx1==5) newx1a=newx1a-newy1 newx1b=newx1b-newy2 newx1c=newx1c-newy3 elseif (@mixnewx1==6) newx1a=newx1a*newy1 newx1b=newx1b*newy2 newx1c=newx1c*newy3 elseif (@mixnewx1==7) newx1a=newx1a/newy1 newx1b=newx1b/newy2 newx1c=newx1c/newy3 elseif (@mixnewx1==8) newx1a=newx1a+newy1a newx1b=newx1b+newy1b newx1c=newx1c+newy1c elseif (@mixnewx1==9) newx1a=newx1a-newy1a newx1b=newx1b-newy1b newx1c=newx1c-newy1c elseif (@mixnewx1==10) newx1a=newx1a*newy1a newx1b=newx1b*newy1b newx1c=newx1c*newy1c elseif (@mixnewx1==11) newx1a=newx1a/newy1a newx1b=newx1b/newy1b newx1c=newx1c/newy1c elseif (@mixnewx1==12) newx1a=newx1a+z11 newx1b=newx1b+z12 newx1c=newx1c+z13 elseif (@mixnewx1==13) newx1a=newx1a-z11 newx1b=newx1b-z12 newx1c=newx1c-z13 elseif (@mixnewx1==14) newx1a=newx1a*z11 newx1b=newx1b*z12 newx1c=newx1c*z13 elseif (@mixnewx1==15) newx1a=newx1a/z11 newx1b=newx1b/z12 newx1c=newx1c/z13 elseif (@mixnewx1==16) newx1a=newx1a+z21 newx1b=newx1b+z22 newx1c=newx1c+z23 elseif (@mixnewx1==17) newx1a=newx1a-z21 newx1b=newx1b-z22 newx1c=newx1c-z23 elseif (@mixnewx1==18) newx1a=newx1a*z21 newx1b=newx1b*z22 newx1c=newx1c*z23 elseif (@mixnewx1==19) newx1a=newx1a/z21 newx1b=newx1b/z22 newx1c=newx1c/z23 elseif (@mixnewx1==20) newx1a=newx1a+z31 newx1b=newx1b+z32 newx1c=newx1c+z33 elseif (@mixnewx1==21) newx1a=newx1a-z31 newx1b=newx1b-z32 newx1c=newx1c-z33 elseif (@mixnewx1==22) newx1a=newx1a*z31 newx1b=newx1b*z32 newx1c=newx1c*z33 elseif (@mixnewx1==23) newx1a=newx1a/z31 newx1b=newx1b/z32 newx1c=newx1c/z33 endif newx1=@fmixnewx(newx1)^@p60*@p61 newx2=@fmixnewx(newx2)^@p60*@p61 newx3=@fmixnewx(newx3)^@p60*@p61 newx1a=@fmixnewx1(newx1a)^@p62*@p63 newx1b=@fmixnewx1(newx1b)^@p62*@p63 newx1c=@fmixnewx1(newx1c)^@p62*@p63 newy1=@fmixnewy(newy1)^@p64*@p65 newy2=@fmixnewy(newy2)^@p64*@p65 newy3=@fmixnewy(newy3)^@p64*@p65 newy1a=@fmixnewy1(newy1a)^@p66*@p67 newy1b=@fmixnewy1(newy1b)^@p66*@p67 newy1c=@fmixnewy1(newy1c)^@p66*@p67 endif if (@newx1c==0) newx1a=newx1a+c^real(@p39)*imag(@p39) newx1b=newx1b+c1^real(@p39)*imag(@p39) newx1c=newx1c+c2^real(@p39)*imag(@p39) elseif (@newx1c==1) newx1a=newx1a-c^real(@p39)*imag(@p39) newx1b=newx1b-c1^real(@p39)*imag(@p39) newx1c=newx1c-c2^real(@p39)*imag(@p39) elseif (@newx1c==2) newx1a=newx1a*c^real(@p39)*imag(@p39) newx1b=newx1b*c1^real(@p39)*imag(@p39) newx1c=newx1c*c2^real(@p39)*imag(@p39) elseif (@newx1c==3) newx1a=newx1a/c^real(@p39)*imag(@p39) newx1b=newx1b/c1^real(@p39)*imag(@p39) newx1c=newx1c/c2^real(@p39)*imag(@p39) endif if (real(newx1a)>=0 && real(newx1b)>=0 && real(newx1c)>=0) if (@pertnewx1_c==0) newx1a=(newx1a-@p28)+c^real(@p46)*imag(@p46) newx1b=(newx1b-@p28)+c1^real(@p46)*imag(@p46) newx1c=(newx1c-@p28)+c2^real(@p46)*imag(@p46) elseif (@pertnewx1_c==1) newx1a=(newx1a-@p28)-c^real(@p46)*imag(@p46) newx1b=(newx1b-@p28)-c1^real(@p46)*imag(@p46) newx1c=(newx1c-@p28)-c2^real(@p46)*imag(@p46) elseif (@pertnewx1_c==2) newx1a=(newx1a-@p28)*c^real(@p46)*imag(@p46) newx1b=(newx1b-@p28)*c1^real(@p46)*imag(@p46) newx1c=(newx1c-@p28)*c2^real(@p46)*imag(@p46) endif else if (@pertnewx1_c==0) newx1a=(newx1a+@p28)+c^real(@p46)*imag(@p46) newx1b=(newx1b+@p28)+c1^real(@p46)*imag(@p46) newx1c=(newx1c+@p28)+c2^real(@p46)*imag(@p46) elseif (@pertnewx1_c==1) newx1a=(newx1a+@p28)-c^real(@p46)*imag(@p46) newx1b=(newx1b+@p28)-c1^real(@p46)*imag(@p46) newx1c=(newx1c+@p28)-c2^real(@p46)*imag(@p46) elseif (@pertnewx1_c==2) newx1a=(newx1a+@p28)*c^real(@p46)*imag(@p46) newx1b=(newx1b+@p28)*c1^real(@p46)*imag(@p46) newx1c=(newx1c+@p28)*c2^real(@p46)*imag(@p46) endif endif if (@mode_newx1==0) newx1a=newx1a newx1b=newx1b newx1c=newx1c elseif (@mode_newx1==1) newx1a=real(newx1a) newx1b=real(newx1b) newx1c=real(newx1c) elseif (@mode_newx1==2) newx1a=imag(newx1a) newx1b=imag(newx1b) newx1c=imag(newx1c) elseif (@mode_newx1==3) newx1a=|newx1a| newx1b=|newx1b| newx1c=|newx1c| elseif (@mode_newx1==4) newx1a=atan2(newx1a) newx1b=atan2(newx1b) newx1c=atan2(newx1c) endif if (@newy1==0) newy1a=x1a+y1a newy1b=x1b+y1b newy1c=x1c+y1c elseif (@newy1==1) newy1a=x1a*y1a newy1b=x1b*y1b newy1c=x1c*y1c elseif (@newy1==2) newy1a=x1a/y1a newy1b=x1b/y1b newy1c=x1c/y1c elseif (@newy1==3) newy1a=y1a/x1a newy1b=y1b/x1b newy1c=y1c/x1c elseif (@newy1==4) newy1a=z4+x1a newy1b=z5+x1b newy1c=z6+x1c elseif (@newy1==5) newy1a=z4+y1a newy1b=z5+y1b newy1c=z++y1c elseif (@newy1==6) newy1a=z4*x1a newy1b=z5*x1b newy1c=z6*x1c elseif (@newy1==7) newy1a=z4*y1a newy1b=z5*y1b newy1c=z6*y1c elseif (@newy1==8) newy1a=z4+x1a+y1a newy1b=z5+x1b+y1b newy1c=z6+x1c+y1c elseif (@newy1==9) newy1a=z4*x1a+y1a newy1b=z5*x1b+y1b newy1c=z6*x1c+y1c elseif (@newy1==10) newy1a=z4+x1a*y1a newy1b=z5+x1b*y1b newy1c=z6+x1c*y1c elseif (@newy1==11) newy1a=z4*y1a+x1a newy1b=z5*y1b+x1b newy1c=z6*y1c+x1c elseif (@newy1==12) newy1a=z4*x1a*y1a newy1b=z5*x1b*y1b newy1c=z6*x1c*y1c elseif (@newy1==13) newy1a=z4*(x1a+y1a) newy1b=z5*(x1b+y1b) newy1c=z6*(x1c+y1c) elseif (@newy1==14) newy1a=z4/x1a+y1a newy1b=z5/x1b+y1b newy1c=z6/x1c+y1c elseif (@newy1==15) newy1a=z4+x1a/y1a newy1b=z5+x1b/y1b newy1c=z6+x1c/y1c elseif (@newy1==16) newy1a=z4/y1a+x1a newy1b=z5/y1b+x1b newy1c=z6/y1c+x1c elseif (@newy1==17) newy1a=z4/x1a*y1a newy1b=z5/x1b*y1b newy1c=z6/x1c*y1c elseif (@newy1==18) newy1a=z4/y1a*x1a newy1b=z5/y1b*x1b newy1c=z6/y1c*x1c elseif (@newy1==19) newy1a=z4/(x1a+y1a) newy1b=z5/(x1b+y1b) newy1c=z6/(x1c+y1c) elseif (@newy1==20) newy1a=z4/x1a/y1a newy1b=z5/x1b/y1b newy1c=z6/x1c/y1c elseif (@newy1==21) newy1a=z4 newy1b=z5 newy1c=z6 elseif (@newy1==22) newy1a=x1a newy1b=x1b newy1c=x1c elseif (@newy1==23) newy1a=y1a newy1b=y1b newy1c=y1c endif if (@mixer==true) if (@mixnewy1==0) newy1a=newy1a+newx1 newy1b=newy1b+newx2 newy1c=newy1c+newx3 elseif (@mixnewy1==1) newy1a=newy1a-newx1 newy1b=newy1b-newx2 newy1c=newy1c-newx3 elseif (@mixnewy1==2) newy1a=newy1a*newx1 newy1b=newy1b*newx2 newy1c=newy1c*newx3 elseif (@mixnewy1==3) newy1a=newy1a/newx1 newy1b=newy1b/newx2 newy1c=newy1c/newx3 elseif (@mixnewy1==4) newy1a=newy1a+newx1a newy1b=newy1b+newx1b newy1c=newy1c+newx1c elseif (@mixnewy1==5) newy1a=newy1a-newx1a newy1b=newy1b-newx1b newy1c=newy1c-newx1c elseif (@mixnewy1==6) newy1a=newy1a*newx1a newy1b=newy1b*newx1b newy1c=newy1c*newx1c elseif (@mixnewy1==7) newy1a=newy1a/newx1a newy1b=newy1b/newx1b newy1c=newy1c/newx1c elseif (@mixnewy1==8) newy1a=newy1a+newy1 newy1b=newy1b+newy2 newy1c=newy1c+newy3 elseif (@mixnewy1==9) newy1a=newy1a-newy1 newy1b=newy1b-newy2 newy1c=newy1c-newy3 elseif (@mixnewy1==10) newy1a=newy1a*newy1 newy1b=newy1b*newy2 newy1c=newy1c*newy3 elseif (@mixnewy1==11) newy1a=newy1a/newy1 newy1b=newy1b/newy2 newy1c=newy1c/newy3 elseif (@mixnewy1==12) newy1a=newy1a+z11 newy1b=newy1b+z12 newy1c=newy1c+z13 elseif (@mixnewy1==13) newy1a=newy1a-z11 newy1b=newy1b-z12 newy1c=newy1c-z13 elseif (@mixnewy1==14) newy1a=newy1a*z11 newy1b=newy1b*z12 newy1c=newy1c*z13 elseif (@mixnewy1==15) newy1a=newy1a/z11 newy1b=newy1b/z12 newy1c=newy1c/z13 elseif (@mixnewy1==16) newy1a=newy1a+z21 newy1b=newy1b+z22 newy1c=newy1c+z23 elseif (@mixnewy1==17) newy1a=newy1a-z21 newy1b=newy1b-z22 newy1c=newy1c-z23 elseif (@mixnewy1==18) newy1a=newy1a*z21 newy1b=newy1b*z22 newy1c=newy1c*z23 elseif (@mixnewy1==19) newy1a=newy1a/z21 newy1b=newy1b/z22 newy1c=newy1c/z23 elseif (@mixnewy1==20) newy1a=newy1a+z31 newy1b=newy1b+z32 newy1c=newy1c+z33 elseif (@mixnewy1==21) newy1a=newy1a-z31 newy1b=newy1b-z32 newy1c=newy1c-z33 elseif (@mixnewy1==22) newy1a=newy1a*z31 newy1b=newy1b*z32 newy1c=newy1c*z33 elseif (@mixnewy1==23) newy1a=newy1a/z31 newy1b=newy1b/z32 newy1c=newy1c/z33 endif newx1=@fmixnewx(newx1)^@p60*@p61 newx2=@fmixnewx(newx2)^@p60*@p61 newx3=@fmixnewx(newx3)^@p60*@p61 newx1a=@fmixnewx1(newx1a)^@p62*@p63 newx1b=@fmixnewx1(newx1b)^@p62*@p63 newx1c=@fmixnewx1(newx1c)^@p62*@p63 newy1=@fmixnewy(newy1)^@p64*@p65 newy2=@fmixnewy(newy2)^@p64*@p65 newy3=@fmixnewy(newy3)^@p64*@p65 newy1a=@fmixnewy1(newy1a)^@p66*@p67 newy1b=@fmixnewy1(newy1b)^@p66*@p67 newy1c=@fmixnewy1(newy1c)^@p66*@p67 endif if (@newy1c==0) newy1a=newy1a+c^real(@p22)*imag(@p22) newy1b=newy1b+c1^real(@p22)*imag(@p22) newy1c=newy1c+c2^real(@p22)*imag(@p22) elseif (@newy1c==1) newy1a=newy1a-c^real(@p22)*imag(@p22) newy1b=newy1b-c1^real(@p22)*imag(@p22) newy1c=newy1c-c2^real(@p22)*imag(@p22) elseif (@newy1c==2) newy1a=newy1a*c^real(@p22)*imag(@p22) newy1b=newy1b*c1^real(@p22)*imag(@p22) newy1c=newy1c*c2^real(@p22)*imag(@p22) elseif (@newy1c==3) newy1a=newy1a/c^real(@p22)*imag(@p22) newy1b=newy1b/c1^real(@p22)*imag(@p22) newy1c=newy1c/c2^real(@p22)*imag(@p22) endif if (real(newy1a)>=0 && real(newy1b)>=0 && real(newy1c)>=0) if (@pertnewy1_c==0) newy1a=(newy1a-@p29)+c^real(@p47)*imag(@p47) newy1b=(newy1b-@p29)+c1^real(@p47)*imag(@p47) newy1c=(newy1c-@p29)+c2^real(@p47)*imag(@p47) elseif (@pertnewy1_c==1) newy1a=(newy1a-@p29)-c^real(@p47)*imag(@p47) newy1b=(newy1b-@p29)-c1^real(@p47)*imag(@p47) newy1c=(newy1c-@p29)-c2^real(@p47)*imag(@p47) elseif (@pertnewy1_c==2) newy1a=(newy1a-@p29)*c^real(@p47)*imag(@p47) newy1b=(newy1b-@p29)*c1^real(@p47)*imag(@p47) newy1c=(newy1c-@p29)*c2^real(@p47)*imag(@p47) endif else if (@pertnewy1_c==0) newy1a=(newy1a+@p29)+c^real(@p47)*imag(@p47) newy1b=(newy1b+@p29)+c1^real(@p47)*imag(@p47) newy1c=(newy1c+@p29)+c2^real(@p47)*imag(@p47) elseif (@pertnewy1_c==1) newy1a=(newy1a+@p29)-c^real(@p47)*imag(@p47) newy1b=(newy1b+@p29)-c1^real(@p47)*imag(@p47) newy1c=(newy1c+@p29)-c2^real(@p47)*imag(@p47) elseif (@pertnewy1_c==2) newy1a=(newy1a+@p29)*c^real(@p47)*imag(@p47) newy1b=(newy1b+@p29)*c1^real(@p47)*imag(@p47) newy1c=(newy1c+@p29)*c2^real(@p47)*imag(@p47) endif endif if (@mode_newy1==0) newy1a=newy1a newy1b=newy1b newy1c=newy1c elseif (@mode_newy1==1) newy1a=real(newy1a) newy1b=real(newy1b) newy1c=real(newy1c) elseif (@mode_newy1==2) newy1a=imag(newy1a) newy1b=imag(newy1b) newy1c=imag(newy1c) elseif (@mode_newy1==3) newy1a=|newy1a| newy1b=|newy1b| newy1c=|newy1c| elseif (@mode_newy1==4) newy1a=atan2(newy1a) newy1b=atan2(newy1b) newy1c=atan2(newy1c) endif if (@newxy1==0) z21=@fnewx1(newx1a)^@p19*p3+@fnewy1(newy1a)^@p20*p4 z22=@fnewx1(newx1b)^@p19*p3+@fnewy1(newy1b)^@p20*p4 z23=@fnewx1(newx1c)^@p19*p3+@fnewy1(newy1c)^@p20*p4 elseif (@newxy1==1) z21=@fnewx1(newx1a)^@p19*p3-@fnewy1(newy1a)^@p20*p4 z22=@fnewx1(newx1b)^@p19*p3-@fnewy1(newy1b)^@p20*p4 z23=@fnewx1(newx1c)^@p19*p3-@fnewy1(newy1c)^@p20*p4 elseif (@newxy1==2) z21=@fnewx1(newx1a)^@p19*p3*@fnewy1(newy1a)^@p20*p4 z22=@fnewx1(newx1b)^@p19*p3*@fnewy1(newy1b)^@p20*p4 z23=@fnewx1(newx1c)^@p19*p3*@fnewy1(newy1c)^@p20*p4 elseif (@newxy1==3) z21=@fnewx1(newx1a)^@p19*p3/@fnewy1(newy1a)^@p20*p4 z22=@fnewx1(newx1b)^@p19*p3/@fnewy1(newy1b)^@p20*p4 z23=@fnewx1(newx1c)^@p19*p3/@fnewy1(newy1c)^@p20*p4 endif if (@opselz2==0) z21=@fz13(z21)^real(@p51)*imag(@p51) z22=@fz13(z22)^real(@p51)*imag(@p51) z23=@fz13(z23)^real(@p51)*imag(@p51) elseif (@opselz2==1) z21=@fz13(z21)^real(@p51)*imag(@p51)+@fz14(z11)^real(@p52)*imag(@p52) z22=@fz13(z22)^real(@p51)*imag(@p51)+@fz14(z12)^real(@p52)*imag(@p52) z23=@fz13(z23)^real(@p51)*imag(@p51)+@fz14(z13)^real(@p52)*imag(@p52) elseif (@opselz2==2) z21=@fz13(z21)^real(@p51)*imag(@p51)*@fz14(z11)^real(@p52)*imag(@p52) z22=@fz13(z22)^real(@p51)*imag(@p51)*@fz14(z12)^real(@p52)*imag(@p52) z23=@fz13(z23)^real(@p51)*imag(@p51)*@fz14(z13)^real(@p52)*imag(@p52) elseif (@opselz2==3) z21=@fz13(z21)^real(@p51)*imag(@p51)/@fz14(z11)^real(@p52)*imag(@p52) z22=@fz13(z22)^real(@p51)*imag(@p51)/@fz14(z12)^real(@p52)*imag(@p52) z23=@fz13(z23)^real(@p51)*imag(@p51)/@fz14(z13)^real(@p52)*imag(@p52) elseif (@opselz2==4) z21=@fz13(z21)^real(@p51)*imag(@p51)+@fz16(z31)^real(@p58)*imag(@p58) z22=@fz13(z22)^real(@p51)*imag(@p51)+@fz16(z32)^real(@p58)*imag(@p58) z23=@fz13(z23)^real(@p51)*imag(@p51)+@fz16(z33)^real(@p58)*imag(@p58) elseif (@opselz2==5) z21=@fz13(z21)^real(@p51)*imag(@p51)*@fz16(z31)^real(@p58)*imag(@p58) z22=@fz13(z22)^real(@p51)*imag(@p51)*@fz16(z32)^real(@p58)*imag(@p58) z23=@fz13(z23)^real(@p51)*imag(@p51)*@fz16(z33)^real(@p58)*imag(@p58) elseif (@opselz2==6) z21=@fz13(z21)^real(@p51)*imag(@p51)/@fz16(z31)^real(@p58)*imag(@p58) z22=@fz13(z22)^real(@p51)*imag(@p51)/@fz16(z32)^real(@p58)*imag(@p58) z23=@fz13(z23)^real(@p51)*imag(@p51)/@fz16(z33)^real(@p58)*imag(@p58) endif if (real(z21)>=0 && real(z22)>=0 && real(z23)>=0) if (@pertz2_c==0) z21=(z21-@p72)+c^real(@p73)*imag(@p73) z22=(z22-@p72)+c1^real(@p73)*imag(@p73) z23=(z23-@p72)+c2^real(@p73)*imag(@p73) elseif (@pertz2_c==1) z21=(z21-@p72)-c^real(@p73)*imag(@p73) z22=(z22-@p72)-c1^real(@p73)*imag(@p73) z23=(z23-@p72)-c2^real(@p73)*imag(@p73) elseif (@pertz2_c==2) z21=(z21-@p72)*c^real(@p73)*imag(@p73) z22=(z22-@p72)*c1^real(@p73)*imag(@p73) z23=(z23-@p72)*c2^real(@p73)*imag(@p73) endif else if (@pertz2_c==0) z21=(z21+@p72)+c^real(@p73)*imag(@p73) z22=(z22+@p72)+c1^real(@p73)*imag(@p73) z23=(z23+@p72)+c2^real(@p73)*imag(@p73) elseif (@pertz2_c==1) z21=(z21+@p72)-c^real(@p73)*imag(@p73) z22=(z22+@p72)-c1^real(@p73)*imag(@p73) z23=(z23+@p72)-c2^real(@p73)*imag(@p73) elseif (@pertz2_c==2) z21=(z21+@p72)*c^real(@p73)*imag(@p73) z22=(z22+@p72)*c1^real(@p73)*imag(@p73) z23=(z23+@p72)*c2^real(@p73)*imag(@p73) endif endif if (@modez2==0) z21=z21 z22=z22 z23=z23 elseif (@modez2==1) z21=real(z21) z22=real(z22) z23=real(z23) elseif (@modez2==2) z21=imag(z21) z22=imag(z22) z23=imag(z23) elseif (@modez2==3) z21=|z21| z22=|z22| z23=|z23| elseif (@modez2==4) z21=atan2(z21) z22=atan2(z22) z23=atan2(z23) endif else z21=(1.0,0.0) z22=(1.0,0.0) z23=(1.0,0.0) endif ;---------------------------we're finished z2 and start z3------------------------------ float x21=real(@fx2(z4))^real(@p16)*imag(@p16) float x22=real(@fx2(z5))^real(@p16)*imag(@p16) float x23=real(@fx2(z6))^real(@p16)*imag(@p16) float y21=real(flip(@fy2(z4)))^real(@p25)*imag(@p25) float y22=real(flip(@fy2(z5)))^real(@p25)*imag(@p25) float y23=real(flip(@fy2(z6)))^real(@p25)*imag(@p25) if (@mode_x2==0) float x21=real(@fx21(x21))^real(@p14)*imag(@p14) float x22=real(@fx21(x22))^real(@p14)*imag(@p14) float x23=real(@fx21(x23))^real(@p14)*imag(@p14) elseif (@mode_x2==1) float x21=|@fx21(x21)|^real(@p14)*imag(@p14) float x22=|@fx21(x22)|^real(@p14)*imag(@p14) float x23=|@fx21(x23)|^real(@p14)*imag(@p14) elseif (@mode_x2==2) float x21=atan2(@fx21(x21))^real(@p14)*imag(@p14) float x22=atan2(@fx21(x22))^real(@p14)*imag(@p14) float x23=atan2(@fx21(x23))^real(@p14)*imag(@p14) endif if (@mode_y2==0) float y21=real(@fy21(y21))^real(@p15)*imag(@p15) float y22=real(@fy21(y22))^real(@p15)*imag(@p15) float y23=real(@fy21(y23))^real(@p15)*imag(@p15) elseif (@mode_y2==1) float y21=|@fy21(y21)|^real(@p15)*imag(@p15) float y22=|@fy21(y22)|^real(@p15)*imag(@p15) float y23=|@fy21(y23)|^real(@p15)*imag(@p15) elseif (@mode_y2==2) float y21=atan2(@fy21(y21))^real(@p15)*imag(@p15) float y22=atan2(@fy21(y22))^real(@p15)*imag(@p15) float y23=atan2(@fy21(y23))^real(@p15)*imag(@p15) endif z31=(x21+y21)+(@fz3(z4)^@p23*@p24*c*@p68) z32=(x22+y22)+(@fz3(z5)^@p23*@p24*c1*@p68) z33=(x23+y23)+(@fz3(z6)^@p23*@p24*c2*@p68) if (@opz3c==0) z31=z31+c^real(@p13)*imag(@p13) z32=z32+c1^real(@p13)*imag(@p13) z33=z33+c2^real(@p13)*imag(@p13) elseif (@opz3c==1) z31=z31-c^real(@p13)*imag(@p13) z32=z32-c1^real(@p13)*imag(@p13) z33=z33-c2^real(@p13)*imag(@p13) elseif (@opz3c==2) z31=z31*c^real(@p13)*imag(@p13) z32=z32*c1^real(@p13)*imag(@p13) z33=z33*c2^real(@p13)*imag(@p13) elseif (@opz3c==3) z31=z31/c^real(@p13)*imag(@p13) z32=z32/c1^real(@p13)*imag(@p13) z33=z33/c2^real(@p13)*imag(@p13) endif if (real(z31)>=0 && real(z32)>=0 && real(z33)>=0) if (@pertz3_c==0) z31=(z31-@p30)+c^real(@p48)*imag(@p48) z32=(z32-@p30)+c1^real(@p48)*imag(@p48) z33=(z33-@p30)+c2^real(@p48)*imag(@p48) elseif (@pertz3_c==1) z31=(z31-@p30)-c^real(@p48)*imag(@p48) z32=(z32-@p30)-c1^real(@p48)*imag(@p48) z33=(z33-@p30)-c2^real(@p48)*imag(@p48) elseif (@pertz3_c==2) z31=(z31-@p30)*c^real(@p48)*imag(@p48) z32=(z32-@p30)*c1^real(@p48)*imag(@p48) z33=(z33-@p30)*c2^real(@p48)*imag(@p48) endif else if (@pertz3_c==0) z31=(z31+@p30)+c^real(@p48)*imag(@p48) z32=(z32+@p30)+c1^real(@p48)*imag(@p48) z33=(z33+@p30)+c2^real(@p48)*imag(@p48) elseif (@pertz3_c==1) z31=(z31+@p30)-c^real(@p48)*imag(@p48) z32=(z32+@p30)-c1^real(@p48)*imag(@p48) z33=(z33+@p30)-c2^real(@p48)*imag(@p48) elseif (@pertz3_c==2) z31=(z31+@p30)*c^real(@p48)*imag(@p48) z32=(z32+@p30)*c1^real(@p48)*imag(@p48) z33=(z33+@p30)*c2^real(@p48)*imag(@p48) endif endif if (@opselz3==0) z31=@fz33(z31)^real(@p59)*imag(@p59) z32=@fz33(z32)^real(@p59)*imag(@p59) z33=@fz33(z33)^real(@p59)*imag(@p59) elseif (@opselz3==1) z31=@fz33(z31)^real(@p59)*imag(@p59)+@fz10(z11)^real(@p74)*imag(@p74) z32=@fz33(z32)^real(@p59)*imag(@p59)+@fz10(z12)^real(@p74)*imag(@p74) z33=@fz33(z33)^real(@p59)*imag(@p59)+@fz10(z13)^real(@p74)*imag(@p74) elseif (@opselz3==2) z31=@fz33(z31)^real(@p59)*imag(@p59)*@fz10(z11)^real(@p74)*imag(@p74) z32=@fz33(z32)^real(@p59)*imag(@p59)*@fz10(z12)^real(@p74)*imag(@p74) z33=@fz33(z33)^real(@p59)*imag(@p59)*@fz10(z13)^real(@p74)*imag(@p74) elseif (@opselz3==3) z31=@fz33(z31)^real(@p59)*imag(@p59)/@fz10(z11)^real(@p74)*imag(@p74) z32=@fz33(z32)^real(@p59)*imag(@p59)/@fz10(z12)^real(@p74)*imag(@p74) z33=@fz33(z33)^real(@p59)*imag(@p59)/@fz10(z13)^real(@p74)*imag(@p74) elseif (@opselz3==4) z31=@fz33(z31)^real(@p59)*imag(@p59)+@fz2(z21)^real(@p75)*imag(@p75) z32=@fz33(z32)^real(@p59)*imag(@p59)+@fz2(z22)^real(@p75)*imag(@p75) z33=@fz33(z33)^real(@p59)*imag(@p59)+@fz2(z23)^real(@p75)*imag(@p75) elseif (@opselz3==5) z31=@fz33(z31)^real(@p59)*imag(@p59)*@fz2(z21)^real(@p75)*imag(@p75) z32=@fz33(z32)^real(@p59)*imag(@p59)*@fz2(z22)^real(@p75)*imag(@p75) z33=@fz33(z33)^real(@p59)*imag(@p59)*@fz2(z23)^real(@p75)*imag(@p75) elseif (@opselz3==6) z31=@fz33(z31)^real(@p59)*imag(@p59)/@fz2(z21)^real(@p75)*imag(@p75) z32=@fz33(z32)^real(@p59)*imag(@p59)/@fz2(z22)^real(@p75)*imag(@p75) z33=@fz33(z33)^real(@p59)*imag(@p59)/@fz2(z23)^real(@p75)*imag(@p75) endif if (@modez3==0) z31=z31 z32=z32 z33=z33 elseif (@modez3==1) z31=real(z31) z32=real(z32) z33=real(z33) elseif (@modez3==2) z31=imag(z31) z32=imag(z32) z33=imag(z33) elseif (@modez3==3) z31=|z31| z32=|z32| z33=|z33| elseif (@modez3==4) z31=atan2(z31) z32=atan2(z32) z33=atan2(z33) endif ;---------------------------we're finished z3 and start the final section--------------- if (@varmode==0) za1=@fza(z11)^real(@p35)*imag(@p35) za2=@fza(z12)^real(@p35)*imag(@p35) za3=@fza(z13)^real(@p35)*imag(@p35) zb1=@fzb(z21)^real(@p36)*imag(@p36) zb2=@fzb(z22)^real(@p36)*imag(@p36) zb3=@fzb(z23)^real(@p36)*imag(@p36) zc1=@fzc(z31)^real(@p37)*imag(@p37) zc2=@fzc(z32)^real(@p37)*imag(@p37) zc3=@fzc(z33)^real(@p37)*imag(@p37) endif zd1=za1+zb1+zc1 zd2=za2+zb2+zc2 zd3=za3+zb3+zc3 if (@oplastc==0) z4=zd1+c^real(@p69)*imag(@p69) z5=zd2+c1^real(@p69)*imag(@p69) z6=zd3+c2^real(@p69)*imag(@p69) elseif (@oplastc==1) z4=zd1-c^real(@p69)*imag(@p69) z5=zd2-c1^real(@p69)*imag(@p69) z6=zd3-c2^real(@p69)*imag(@p69) elseif (@oplastc==2) z4=zd1*c^real(@p69)*imag(@p69) z5=zd2*c1^real(@p69)*imag(@p69) z6=zd3*c2^real(@p69)*imag(@p69) elseif (@oplastc==3) z4=zd1/c^real(@p69)*imag(@p69) z5=zd2/c1^real(@p69)*imag(@p69) z6=zd3/c2^real(@p69)*imag(@p69) endif if (@varmode==1) za1=@fza(z11)^real(@p35)*imag(@p35) za2=@fza(z12)^real(@p35)*imag(@p35) za3=@fza(z13)^real(@p35)*imag(@p35) zb1=@fzb(z21)^real(@p36)*imag(@p36) zb2=@fzb(z22)^real(@p36)*imag(@p36) zb3=@fzb(z23)^real(@p36)*imag(@p36) zc1=@fzc(z31)^real(@p37)*imag(@p37) zc2=@fzc(z32)^real(@p37)*imag(@p37) zc3=@fzc(z33)^real(@p37)*imag(@p37) endif if (@n_count>=0) n=@n_count*i endif z4=z4^@pow z5=z5^@pow z6=z6^@pow ;---------------------------we're finished the final section and start the slope-------- if (@slope == true) ;;;; process slope if (@zmode == 5) iterexp1 = iterexp1 + exp(-cabs(z4)) iterexp2 = iterexp2 + exp(-cabs(z5)) iterexp3 = iterexp3 + exp(-cabs(z6)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z4|; get current distances from origin d2 = |z5| d3 = |z6| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z4)); get current distances from the i axis d2 = abs(real(z5)) d3 = abs(real(z6)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z4)); get current distances from the r axis d2 = abs(imag(z5)) d3 = abs(imag(z6)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z4))+abs(imag(z4)); get current distances from the i axis d2 = abs(real(z5))+abs(imag(z5)) d3 = abs(real(z6))+abs(imag(z6)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z4)); get current angles d2 = abs(atan2(z5)) d3 = abs(atan2(z6)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if (@bailout < |z4+n| || \ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 4) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 5) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector ELSE; didn't compute z this time z = z4; use primary iteration value to keep periodicity working endif else z = z4 endif if (@bailout < |z4+n|) ; we're done done = 0 endif Bailout: done>0 Default: title="Barney-5" method=multipass periodicity=0 maxiter=500 center=(0.0,0.0) angle=0.01 magn=0.8 Heading caption="Mandelbrot Mode" visible=(@mode==0) Endheading Heading caption="Julia Mode" visible=(@mode==1) Endheading param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 visible=false endparam param SwitchMode caption="Select Switch" enum="Mandelbrot""Julia" default=1 visible=false endparam param bailout caption="Bailout Value" default=1.0e5 min=0.0 endparam param @n_count caption="Iter Counter" default=0.0 min=0.0 endparam param freq caption="Frequency" default=1.0 min=0.0 endparam param startseed caption="Init z|Seed Value" default=(0.5,0.8) endparam Heading caption="Switch Section" visible=(@show) endheading param @show caption="Switch Section" default=false endparam param swscale caption="Magnification" default=0.8 visible=(@show) endparam param swcenter caption="Switch Center" default=(0.0,0.0) visible=(@show) endparam param scale caption="Magnification Reset" default=1.0 visible=(@show) endparam param center caption="Center Reset" default=(0.0,0.0) visible=(@show) endparam Heading caption="Julia Variant Section" visible=(@show6)&&(@varmode==1) endheading param @show6 caption="Julia Variant Section" default=false visible=(@varmode==1) endparam param julvarza caption="Variant z1" enum="pixel""real(pixel)""imag(pixel)""|pixel|""atan2(pixel)" default=0 visible=(@show6)&&(@varmode==1) endparam param julvarzb caption="Variant z2" enum="pixel""real(pixel)""imag(pixel)""|pixel|""atan2(pixel)" default=0 visible=(@show6)&&(@varmode==1) endparam param julvarzc caption="Variant z3" enum="pixel""real(pixel)""imag(pixel)""|pixel|""atan2(pixel)" default=0 visible=(@show6)&&(@varmode==1) endparam param pza caption="Exponent z1" default=(1.0,0.0) visible=(@show6)&&(@varmode==1) endparam param pza1 caption="Multiplier z1" default=(1.0,0.0) visible=(@show6)&&(@varmode==1) endparam param pzb caption="Exponent z2" default=(1.0,0.0) visible=(@show6)&&(@varmode==1) endparam param pzb1 caption="Multiplier z2" default=(1.0,0.0) visible=(@show6)&&(@varmode==1) endparam param pzc caption="Exponent z3" default=(1.0,0.0) visible=(@show6)&&(@varmode==1) endparam param pzc1 caption="Multiplier z3" default=(1.0,0.0) visible=(@show6)&&(@varmode==1) endparam func fza1 caption="Function z1" default=ident() visible=(@show6)&&(@varmode==1) endfunc func fzb1 caption="Function z2" default=ident() visible=(@show6)&&(@varmode==1) endfunc func fzc1 caption="Function z3" default=ident() visible=(@show6)&&(@varmode==1) endfunc heading caption="Slope Parameters" visible=@slope==true endheading bool param slope caption="Apply slope?" default=false endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=5 enum="smallest |z|""smallest |real(z)|"\ "smallest |imag(z)|""smallest summ(z)""smallest |atan(z)|"\ "smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam param xfer caption="Height Transfer" default=0 enum="linear" "log" "sqrt" "cuberoot" "exp" "sqr" "cube" "sin" "cos" "tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.25 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Heading caption="Perturbers Section z1" visible=(@show1) Endheading param @show1 caption="Perturbation Section" default=false endparam param pertx_c caption="Select c|x" enum="x+c""x-c""x*c" default=2 visible=(@show1) endparam param perty_c caption="Select c|y" enum="y+c""y-c""y*c" default=2 visible=(@show1) endparam param pertnewx_c caption="Select c|newx" enum="newx+c""newx-c""newx*c" default=2 visible=(@show1) endparam param pertnewy_c caption="Select c|newy" enum="newy+c""newy-c""newy*c" default=2 visible=(@show1) endparam param pertz1_c caption="Select c|z1" enum="z1+c""z1-c""z1*c" default=2 visible=(@show1) endparam param p31 caption="Perturbation x" default=(0.0,0.0) visible=(@show1) endparam param p32 caption="Perturbation y" default=(0.0,0.0) visible=(@show1) endparam param p26 caption="Perturb. newx" default=(0.0,0.0) visible=(@show1) endparam param p27 caption="Perturb. newy" default=(0.0,0.0) visible=(@show1) endparam param p70 caption="Perturbation z1" default=(0.0,0.0) visible=(@show1) endparam param p40 caption="Parameter c|x" default=(1.0,1.0) visible=(@show1) endparam param p41 caption="Parameter c|y" default=(1.0,1.0) visible=(@show1) endparam param p42 caption="Param. c|newx" default=(1.0,1.0) visible=(@show1) endparam param p43 caption="Param. c|newy" default=(1.0,1.0) visible=(@show1) endparam param p71 caption="Parameter c|z1" default=(1.0,1.0) visible=(@show1) endparam Heading caption="Perturbers Section z2" visible=(@show1) Endheading param pertx1_c caption="Select c|x" enum="x+c""x-c""x*c" default=2 visible=(@show1) endparam param perty1_c caption="Select c|y" enum="y+c""y-c""y*c" default=2 visible=(@show1) endparam param pertnewx1_c caption="Select c|newx1" enum="newx1+c""newx1-c""newx1*c" default=2 visible=(@show1) endparam param pertnewy1_c caption="Select c|newy1" enum="newy1+c""newy1-c""newy1*c" default=2 visible=(@show1) endparam param pertz2_c caption="Select c|z2" enum="z2+c""z2-c""z2*c" default=2 visible=(@show1) endparam param p33 caption="Perturbation x" default=(0.0,0.0) visible=(@show1) endparam param p34 caption="Perturbation y" default=(0.0,0.0) visible=(@show1) endparam param p28 caption="Perturb. newx1" default=(0.0,0.0) visible=(@show1) endparam param p29 caption="Perturb. newy1" default=(0.0,0.0) visible=(@show1) endparam param p72 caption="Perturbation z2" default=(0.0,0.0) visible=(@show1) endparam param p44 caption="Parameter c|x" default=(1.0,1.0) visible=(@show1) endparam param p45 caption="Parameter c|y" default=(1.0,1.0) visible=(@show1) endparam param p46 caption="Param. c|newx1" default=(1.0,1.0) visible=(@show1) endparam param p47 caption="Param. c|newy1" default=(1.0,1.0) visible=(@show1) endparam param p73 caption="Parameter c|z2" default=(1.0,1.0) visible=(@show1) endparam Heading caption="Perturbers Section z3" visible=(@show1) Endheading param pertz3_c caption="Select c|z3" enum="z3+c""z3-c""z3*c" default=2 visible=(@show1) endparam param p30 caption="Perturbation z3" default=(0.0,0.0) visible=(@show1) endparam param p48 caption="Parameter c|z3" default=(1.0,1.0) visible=(@show1) endparam Heading caption="Mixers Section" visible=(@mixer==true) Endheading param mixer caption="Able Mixers Section" default=false endparam param mixnewx caption="Mixer newx" enum="newx+newx1""newx-newx1""newx*newx1""newx/newx1""newx+newy"\ "newx-newy""newx*newy""newx/newy""newx+newy1""newx-newy1"\ "newx*newy1""newx/newy1""newx+z1""newx-z1""newx*z1""newx/z1"\ "newx+z2""newx-z2""newx*z2""newx/z2""newx+z3""newx-z3""newx*z3"\ "newx/z3" default=0 visible=(@mixer==true) endparam param mixnewy caption="Mixer newy" enum="newy+newx""newy-newx""newy*newx""newy/newx""newy+newx1"\ "newy-newx1""newy*newx1""newy/newx1""newy+newy1""newy-newy1"\ "newy*newy1""newy/newy1""newy+z1""newy-z1""newy*z1""newy/z1"\ "newy+z2""newy-z2""newy*z2""newy/z2""newy+z3""newy-z3""newy*z3"\ "newy/z3" default=0 visible=(@mixer==true) endparam param mixnewx1 caption="Mixer newx1" enum="newx1+newx""newx1-newx""newx1*newx""newx1/newx""newx1+newy"\ "newx1-newy""newx1*newy""newx1/newy""newx1+newy1""newx1-newy1"\ "newx1*newy1""newx1/newy1""newx1+z1""newx1-z1""newx1*z1""newx1/z1"\ "newx1+z2""newx1-z2""newx1*z2""newx1/z2""newx1+z3""newx1-z3""newx1*z3"\ "newx1/z3" default=0 visible=(@mixer==true) endparam param mixnewy1 caption="Mixer newy1" enum="newy1+newx""newy1-newx""newy1*newx""newy1/newx""newy1+newx1"\ "newy1-newx1""newy1*newx1""newy1/newx1""newy1+newy""newy1-newy"\ "newy1*newy""newy1/newy""newy1+z1""newy1-z1""newy1*z1""newy1/z1"\ "newy1+z2""newy1-z2""newy1*z2""newy1/z2""newy1+z3""newy1-z3""newy1*z3"\ "newy1/z3" default=0 visible=(@mixer==true) endparam param opselz1 caption="Mixer z1" enum="z1=z1""z1=z1+z2""z1=z1*z2""z1=z1/z2"\ "z1=z1+z3""z1=z1*z3""z1=z1/z3" default=0 visible=(@mixer==true) endparam param opselz2 caption="Mixer z2" enum="z2=z2""z2=z2+z1""z2=z2*z1""z2=z2/z1"\ "z2=z2+z3""z2=z2*z3""z2=z2/z3" default=0 visible=(@mixer==true) endparam param opselz3 caption="Mixer z3" enum="z3=z3""z3=z3+z1""z3=z3*z1""z3=z3/z1"\ "z3=z3+z2""z3=z3*z2""z3=z3/z2" default=0 visible=(@mixer==true) endparam param p60 caption="Exponent newx" default=(1.0,0.0) visible=(@mixer==true) endparam param p61 caption="Parameter newx" default=(1.0,0.0) visible=(@mixer==true) endparam param p62 caption="Exponent newx1" default=(1.0,0.0) visible=(@mixer==true) endparam param p63 caption="Parameter newx1" default=(1.0,0.0) visible=(@mixer==true) endparam param p64 caption="Exponent newy" default=(1.0,0.0) visible=(@mixer==true) endparam param p65 caption="Parameter newy" default=(1.0,0.0) visible=(@mixer==true) endparam param p66 caption="Exponent newy1" default=(1.0,0.0) visible=(@mixer==true) endparam param p67 caption="Parameter newy1" default=(1.0,0.0) visible=(@mixer==true) endparam param p52 caption="Parameter 1|z1" default=(1.0,1.0) visible=(@opselz2==1)||(@opselz2==2)||(@opselz2==3)&&(@mixer==true) endparam param p74 caption="Parameter 2|z1" default=(1.0,1.0) visible=(@opselz3==1)||(@opselz3==2)||(@opselz3==3)&&(@mixer==true) endparam param p50 caption="Parameter 1|z2" default=(1.0,1.0) visible=(@opselz1==1)||(@opselz1==2)||(@opselz1==3)&&(@mixer==true) endparam param p75 caption="Parameter z2" default=(1.0,1.0) visible=(@opselz3==1)||(@opselz3==2)||(@opselz3==3)&&(@mixer==true) endparam param p57 caption="Parameter 1|z3" default=(1.0,1.0) visible=(@opselz1==4)||(@opselz1==5)||(@opselz1==6)&&(@mixer==true) endparam param p58 caption="Parameter 2|z3" default=(1.0,1.0) visible=(@opselz2==4)||(@opselz2==5)||(@opselz2==6)&&(@mixer==true) endparam func fmixnewx caption="Function newx" default=ident() visible=(@mixer==true) endfunc func fmixnewy caption="Function newy" default=ident() visible=(@mixer==true) endfunc func fmixnewx1 caption="Function newx1" default=ident() visible=(@mixer==true) endfunc func fmixnewy1 caption="Function newy1" default=ident() visible=(@mixer==true) endfunc func fz14 caption="Function 1|z1" default=ident() visible=(@opselz2==1)||(@opselz2==2)||(@opselz2==3)&&(@mixer==true) endfunc func fz10 caption="Function 2|z1" default=ident() visible=(@opselz3==1)||(@opselz3==2)||(@opselz3==3)&&(@mixer==true) endfunc func fz12 caption="Function 1|z2" default=ident() visible=(@opselz1==1)||(@opselz1==2)||(@opselz1==3)&&(@mixer==true) endfunc func fz2 caption="Function 2|z2" default=ident() visible=(@opselz3==4)||(@opselz3==5)||(@opselz3==6)&&(@mixer==true) endfunc func fz15 caption="Function 1|z3" default=ident() visible=(@opselz1==4)||(@opselz1==5)||(@opselz1==6)&&(@mixer==true) endfunc func fz16 caption="Function 2|z3" default=ident() visible=(@opselz2==4)||(@opselz2==5)||(@opselz2==6)&&(@mixer==true) endfunc Heading caption="Section z1" Endheading param show2 caption="Section z1" default=false endparam param newx caption="Start newx" enum="x+y""x*y""x/y""y/x""z+x""z+y""z*x""z*y""z+x+y""z*x+y""z+x*y"\ "z*y+x""z*x*y""z*(x+y)""z/x+y""z+x/y""z/y+x""z/x*y""z/y*x"\ "z/(x+y)""z/x/y""z""x""y" default=8 visible=(@show2) endparam param newy caption="Start newy" enum="x+y""x*y""x/y""y/x""z+x""z+y""z*x""z*y""z+x+y""z*x+y""z+x*y"\ "z*y+x""z*x*y""z*(x+y)""z/x+y""z+x/y""z/y+x""z/x*y""z/y*x"\ "z/(x+y)""z/x/y""z""x""y" default=21 visible=(@show2) endparam param newxc caption="C in newx" enum="newx+c""newx-c""newx*c""newx/c" default=1 visible=(@show2) endparam param newyc caption="C in newy" enum="newy+c""newy-c""newy*c""newy/c" default=1 visible=(@show2) endparam param newxy caption="Select z1" enum="newx+newy""newx-newy""newx*newy""newx/newy" default=1 visible=(@show2) endparam param mode_x caption="Mode x" enum="x""|x|""atan2(x)" default=0 visible=(@show2) endparam param mode_y caption="Mode y" enum="y""|y|""atan2(y)" default=0 visible=(@show2) endparam param mode_newx caption="Mode newx" enum="newx""real(newx)""imag(newx)""|newx|""atan2(newx)" default=0 visible=(@show2) endparam param mode_newy caption="Mode newy" enum="newy""real(newy)""imag(newy)""|newy|""atan2(newy)" default=0 visible=(@show2) endparam param modez1 caption="Mode z1" enum="z1""real(z1)""imag(z1)""|z1|""atan2(z1)" default=0 visible=(@show2) endparam param p7 caption="Parameter 1|x" default=(1.0,1.0) visible=(@show2) endparam param p53 caption="Parameter 2|x" default=(1.0,1.0) visible=(@show2) endparam param p8 caption="Parameter 1|y" default=(1.0,1.0) visible=(@show2) endparam param p54 caption="Parameter 2|y" default=(1.0,1.0) visible=(@show2) endparam param p17 caption="Exponent newx" default=(1.0,0.0) visible=(@show2) endparam param p1 caption="Parameter newx" default=(1.0,0.0) visible=(@show2) endparam param p18 caption="Exponent newy" default=(1.0,0.0) visible=(@show2) endparam param p2 caption="Parameter newy" default=(1.0,0.0) visible=(@show2) endparam param p38 caption="Parameter newx|c" default=(1.0,1.0) visible=(@show2) endparam param p21 caption="Parameter newy|c" default=(1.0,1.0) visible=(@show2) endparam param p5 caption="Exponent z" default=(1.0,0.0) visible=(@show2) endparam param p6 caption="Parameter z" default=(1.0,0.0) visible=(@show2) endparam param p49 caption="Parameter z1" default=(1.0,1.0) visible=(@show2) endparam func fx0 caption="Function 1|x" default=ident() visible=(@show2) endfunc func fx caption="Function 2|x" default=ident() visible=(@show2) endfunc func fy0 caption="Function 1|y" default=ident() visible=(@show2) endfunc func fy caption="Function 2|y" default=ident() visible=(@show2) endfunc func fnewx caption="Function newx" default=ident() visible=(@show2) endfunc func fnewy caption="Function newy" default=ident() visible=(@show2) endfunc func fz caption="Function z" default=ident() visible=(@show2) endfunc func fz11 caption="Function z1" default=ident() visible=(@show2) endfunc func fnc caption="Init Function c" default=ident() visible=(@show2) endfunc Heading caption="Section z2" Endheading param show3 caption="Section z2" default=false endparam param newx1 caption="Start newx1" enum="x+y""x*y""x/y""y/x""z+x""z+y""z*x""z*y""z+x+y""z*x+y""z+x*y"\ "z*y+x""z*x*y""z*(x+y)""z/x+y""z+x/y""z/y+x""z/x*y""z/y*x"\ "z/(x+y)""z/x/y""z""x""y" default=23 visible=(@show3) endparam param newy1 caption="Start newy1" enum="x+y""x*y""x/y""y/x""z+x""z+y""z*x""z*y""z+x+y""z*x+y""z+x*y"\ "z*y+x""z*x*y""z*(x+y)""z/x+y""z+x/y""z/y+x""z/x*y""z/y*x"\ "z/(x+y)""z/x/y""z""x""y" default=22 visible=(@show3) endparam param newx1c caption="C in newx1" enum="newx1+c""newx1-c""newx1*c""newx1/c" default=1 visible=(@show3) endparam param newy1c caption="C in newy1" enum="newy1+c""newy1-c""newy1*c""newy1/c" default=1 visible=(@show3) endparam param newxy1 caption="Select z2" enum="newx1+newy1""newx1-newy1""newx1*newy1""newx1/newy1" default=1 visible=(@show3) endparam param mode_x1 caption="Mode x" enum="x""|x|""atan2(x)" default=0 visible=(@show3) endparam param mode_y1 caption="Mode y" enum="y""|y|""atan2(y)" default=0 visible=(@show3) endparam param mode_newx1 caption="Mode newx1" enum="newx1""real(newx1)""imag(newx1)""|newx1|""atan2(newx1)" default=0 visible=(@show3) endparam param mode_newy1 caption="Mode newy1" enum="newy1""real(newy1)""imag(newy1)""|newy1|""atan2(newy1)" default=0 visible=(@show3) endparam param modez2 caption="Mode z2" enum="z2""real(z2)""imag(z2)""|z2|""atan2(z2)" default=0 visible=(@show3) endparam param p9 caption="Parameter 1|x" default=(1.0,1.0) visible=(@show3) endparam param p55 caption="Parameter 2|x" default=(1.0,1.0) visible=(@show3) endparam param p10 caption="Parameter 1|y" default=(1.0,1.0) visible=(@show3) endparam param p56 caption="Parameter 2|y" default=(1.0,1.0) visible=(@show3) endparam param p19 caption="Exponent newx1" default=(1.0,0.0) visible=(@show3) endparam param p3 caption="Parameter newx1" default=(1.0,0.0) visible=(@show3) endparam param p20 caption="Exponent newy1" default=(1.0,0.0) visible=(@show3) endparam param p4 caption="Parameter newy1" default=(1.0,0.0) visible=(@show3) endparam param p39 caption="Param. newx1|c" default=(1.0,1.0) visible=(@show3) endparam param p22 caption="Param. newy1|c" default=(1.0,1.0) visible=(@show3) endparam param p11 caption="Exponent z" default=(1.0,0.0) visible=(@show3) endparam param p12 caption="Parameter z" default=(1.0,0.0) visible=(@show3) endparam param p51 caption="Parameter z2" default=(1.0,1.0) visible=(@show3) endparam func fx3 caption="Function 1|x" default=ident() visible=(@show3) endfunc func fx1 caption="Function 2|x" default=ident() visible=(@show3) endfunc func fy3 caption="Function 1|y" default=conj() visible=(@show3) endfunc func fy1 caption="Function 2|y" default=ident() visible=(@show3) endfunc func fnewx1 caption="Function newx1" default=ident() visible=(@show3) endfunc func fnewy1 caption="Function newy1" default=ident() visible=(@show3) endfunc func fz1 caption="Function z" default=ident() visible=(@show3) endfunc func fz13 caption="Function z2" default=ident() visible=(@show3) endfunc Heading caption="Section z3" Endheading param show4 caption="Section z3" default=false endparam param opz3c caption="Select c" enum="z3=z3+c""z3=z3-c""z3=z3*c""z3=z3/c" default=1 visible=(@show4) endparam param mode_x2 caption="Mode x" enum="x""|x|""atan2(x)" default=0 visible=(@show4) endparam param mode_y2 caption="Mode y" enum="y""|y|""atan2(y)" default=0 visible=(@show4) endparam param modez3 caption="Mode z3" enum="z3""real(z3)""imag(z3)""|z3|""atan2(z3)" default=0 visible=(@show4) endparam param p14 caption="Parameter 1|x" default=(1.0,1.0) visible=(@show4) endparam param p16 caption="Parameter 2|x" default=(1.0,1.0) visible=(@show4) endparam param p15 caption="Parameter 1|y" default=(1.0,1.0) visible=(@show4) endparam param p25 caption="Parameter 2|y" default=(1.0,1.0) visible=(@show4) endparam param p23 caption="Exponent z" default=(1.0,0.0) visible=(@show4) endparam param p24 caption="Parameter z" default=(1.0,0.0) visible=(@show4) endparam param p59 caption="Parameter z3" default=(1.0,1.0) visible=(@show4) endparam param p13 caption="Parameter 1|c" default=(1.0,1.0) visible=(@show4) endparam param p68 caption="Parameter 2|c" default=(1.0,0.0) visible=(@show4) endparam func fx2 caption="Function 1|x" default=ident() visible=(@show4) endfunc func fx21 caption="Function 2|x" default=ident() visible=(@show4) endfunc func fy2 caption="Function 1|y" default=ident() visible=(@show4) endfunc func fy21 caption="Function 2|y" default=ident() visible=(@show4) endfunc func fz3 caption="Function z" default=ident() visible=(@show4) endfunc func fz33 caption="Function z3" default=ident() visible=(@show4) endfunc Heading caption="Final Section" Endheading param show5 caption="Final Section" default=false endparam param varmode caption="Final Mode" enum="Normal""Allows Julia Variant" default=0 visible=(@show5) endparam param oplastc caption="Final c" enum="+""-""*""/" default=1 visible=(@show5) endparam param pow caption="Final Exponent" default=(1.0,0.0) visible=(@show5) endparam param p35 caption="Parameter z1" default=(1.0,1.0) visible=(@show5) endparam param p36 caption="Parameter z2" default=(1.0,1.0) visible=(@show5) endparam param p37 caption="Parameter z3" default=(1.0,1.0) visible=(@show5) endparam param p69 caption="Parameter c" default=(1.0,1.0) visible=(@show5) endparam func fza caption="Function z1" default=ident() visible=(@show5) endfunc func fzb caption="Function z2" default=ident() visible=(@show5) endfunc func fzc caption="Function z3" default=ident() visible=(@show5) endfunc param version caption="version" default=1.0 visible=false endparam Switch: type="SlopeBarney-5" startseed=pixel bailout=@bailout n_count=@n_count pertx_c=@pertx_c perty_c=@perty_c pertnewx_c=@pertnewx_c pertnewy_c=@pertnewy_c pertx1_c=@pertx1_c perty1_c=@perty1_c pertnewx1_c=@pertnewx1_c pertnewy1_c=@pertnewy1_c pertz1_c=@pertz1_c pertz2_c=@pertz2_c pertz3_c=@pertz3_c newx=@newx newy=@newy newx1=@newx1 newy1=@newy1 newxy=@newxy newxy1=@newxy1 newxc=@newxc newyc=@newyc newx1c=@newx1c newy1c=@newy1c opselz1=@opselz1 opselz2=@opselz2 opselz3=@opselz3 opz3c=@opz3c varmode=@varmode modez1=@modez1 modez2=@modez2 modez3=@modez3 mode_x=@mode_x mode_y=@mode_y mode_newx=@mode_newx mode_newy=@mode_newy mode_x1=@mode_x1 mode_y1=@mode_y1 mode_newx1=@mode_newx1 mode_newy1=@mode_newy1 mode_x2=@mode_x2 mode_y2=@mode_y2 mixer=@mixer mixnewx=@mixnewx mixnewx1=@mixnewx1 mixnewy=@mixnewy mixnewy1=@mixnewy1 oplastc=@oplastc julvarza=@julvarza julvarzb=@julvarzb julvarzc=@julvarzc freq=@freq p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 p8=@p8 p9=@p9 p10=@p10 p11=@p11 p12=@p12 p13=@p13 p14=@p14 p15=@p15 p16=@p16 p17=@p17 p18=@p18 p19=@p19 p20=@p20 p21=@p21 p22=@p22 p23=@p23 p24=@p24 p25=@p25 p26=@p26 p27=@p27 p28=@p28 p29=@p29 p30=@p30 p31=@p31 p32=@p32 p33=@p33 p34=@p34 p35=@p35 p36=@p36 p37=@p37 p38=@p38 p39=@p39 p40=@p40 p41=@p41 p42=@p42 p43=@p43 p44=@p44 p45=@p45 p46=@p46 p47=@p47 p48=@p48 p49=@p49 p50=@p50 p51=@p51 p52=@p52 p53=@p53 p54=@p54 p55=@p55 p56=@p56 p57=@p57 p58=@p58 p59=@p59 p60=@p60 p61=@p61 p62=@p62 p63=@p63 p64=@p64 p65=@p65 p66=@p66 p67=@p67 p68=@p68 p69=@p69 p70=@p70 p71=@p71 p72=@p72 p73=@p73 p74=@p74 p75=@p75 pza=@pza pza1=@pza1 pzb=@pzb pzb1=@pzb1 pzc=@pzc pzc1=@pzc1 fnewx=@fnewx fnewy=@fnewy fnewx1=@fnewx1 fnewy1=@fnewy1 fmixnewx=@fmixnewx fmixnewy=@fmixnewy fmixnewx1=@fmixnewx1 fmixnewy1=@fmixnewy1 fnc=@fnc fz=@fz fz1=@fz1 fz2=@fz2 fz3=@fz3 fz10=@fz10 fz11=@fz11 fz12=@fz12 fz13=@fz13 fz14=@fz14 fz15=@fz15 fz16=@fz16 fz33=@fz33 fx0=@fx0 fy0=@fy0 fx=@fx fy=@fy fx1=@fx1 fy1=@fy1 fx2=@fx2 fy2=@fy2 fx3=@fx3 fy3=@fy3 fx21=@fx21 fy21=@fy21 fza=@fza fzb=@fzb fzc=@fzc fza1=@fza1 fzb1=@fzb1 fzc1=@fzc1 mode=@switchmode switchmode=@mode center=@swcenter scale=@swscale show=@show show1=@show1 show2=@show2 show3=@show3 show4=@show4 show5=@show5 show6=@show6 version=version slope=@slope offset=@offset pow=@pow zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter } SlopeBarney-6 { ;Similar at Barney-4 but with a different development of the loop. ;Section z1: ;Similar at "Section z1" in Barney-4 but with the possibility ;to operate also with a c=pixel variable. ;Section z2: ;Based on z2=newx+newy defined from the mix of x and y and other two variables ;xa, ya,it's similar at Barney-4 but with a different ;development of the loop. ;Section z3: ;Based on z=(z*c)-\*\/(z-c) ;Final Section: ;Based on z=c-(z1+z2+z3) with differents parameters,it's a similar section of Barney-4. ;For the general structure of all the sections can be read the hints in Barney-4. ;Andrea Spinozzi(February2005) Init: c=@fn21(pixel) c1=c+@offset c2=c+flip(@offset) z4=@startseed z5=z4 z6=z4 ;------------------------------------- z11=@startseed z12=@startseed z13=@startseed z21=@startseed z22=@startseed z23=@startseed z31=@startseed z32=@startseed z33=@startseed za1=@startseed za2=@startseed za3=@startseed zb1=@startseed zb2=@startseed zb3=@startseed zc1=@startseed zc2=@startseed zc3=@startseed zd1=@startseed zd2=@startseed zd3=@startseed float x11=0.0 float x12=0.0 float x13=0.0 float y11=0.0 float y12=0.0 float y13=0.0 float newx1=0.0 float newx2=0.0 float newx3=0.0 float newy1=0.0 float newy2=0.0 float newy3=0.0 float x21=0.0 float x22=0.0 float x23=0.0 float y21=0.0 float y22=0.0 float y23=0.0 float xa1=0.0 float xa2=0.0 float xa3=0.0 float ya1=0.0 float ya2=0.0 float ya3=0.0 int i=0 n=0 ;------------------------------------- ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 if (@mode=="Julia") z4=pixel z5=z4+@offset z6=z4+flip(@offset) c=@fn21(@startseed) c1=c c2=c if (@julvarza==0) za1=z4 za2=z5 za3=z6 elseif (@julvarza==1) za1=real(z4) za2=real(z5) za3=real(z6) elseif (@julvarza==2) za1=imag(z4) za2=imag(z5) za3=imag(z6) elseif (@julvarza==3) za1=|z4| za2=|z5| za3=|z6| elseif (@julvarza==4) za1=atan2(z4) za2=atan2(z5) za3=atan2(z6) endif za1=@fn24(za1)^@p63*@p64 za2=@fn24(za2)^@p63*@p64 za3=@fn24(za3)^@p63*@p64 if (@julvarzb==0) zb1=z4 zb2=z5 zb3=z6 elseif (@julvarzb==1) zb1=real(z4) zb2=real(z5) zb3=real(z6) elseif (@julvarzb==2) zb1=imag(z4) zb2=imag(z5) zb3=imag(z6) elseif (@julvarzb==3) zb1=|z4| zb2=|z5| zb3=|z6| elseif (@julvarzb==4) zb1=atan2(z4) zb2=atan2(z5) zb3=atan2(z6) endif zb1=@fn24(zb1)^@p65*@p66 zb2=@fn24(zb2)^@p65*@p66 zb3=@fn24(zb3)^@p65*@p66 if (@julvarzc==0) zc1=z4 zc2=z5 zc3=z6 elseif (@julvarzc==1) zc1=real(z4) zc2=real(z5) zc3=real(z6) elseif (@julvarzc==2) zc1=imag(z4) zc2=imag(z5) zc3=imag(z6) elseif (@julvarzc==3) zc1=|z4| zc2=|z5| zc3=|z6| elseif (@julvarzc==4) zc1=atan2(z4) zc2=atan2(z5) zc3=atan2(z6) endif zc1=@fn24(zc1)^@p67*@p68 zc2=@fn24(zc2)^@p67*@p68 zc3=@fn24(zc3)^@p67*@p68 if @scale!=1.0 z4=z4/@scale z5=z5/@scale z6=z6/@scale endif if @center!=(0,0) z4=z4+@center z5=z5+@center z6=z6+@center endif endif Loop: i=i+1 if (i%@freq==0) x11=real(fn2(z4))^real(p1)*imag(p1) x12=real(fn2(z5))^real(p1)*imag(p1) x13=real(fn2(z6))^real(p1)*imag(p1) y11=real(flip(fn2(z4)))^real(@p42)*imag(@p42) y12=real(flip(fn2(z5)))^real(@p42)*imag(@p42) y13=real(flip(fn2(z6)))^real(@p42)*imag(@p42) z4=fn1(z4)^@p26*@p49 z5=fn1(z5)^@p26*@p49 z6=fn1(z6)^@p26*@p49 if (x11>=0 && x12>=0 && x13>=0) if (@pertc_x==0) x11=x11-real(p2)+real(c) x12=x12-real(p2)+real(c1) x13=x13-real(p2)+real(c2) elseif (@pertc_x==1) x11=x11-real(p2)-real(c) x12=x12-real(p2)-real(c1) x13=x13-real(p2)-real(c2) elseif (@pertc_x==2) x11=x11-real(p2)*real(c) x12=x12-real(p2)*real(c1) x13=x13-real(p2)*real(c2) endif else if (@pertc_x==0) x11=x11+imag(p2)+real(c) x12=x12+imag(p2)+real(c1) x13=x13+imag(p2)+real(c2) elseif (@pertc_x==1) x11=x11+imag(p2)-real(c) x12=x12+imag(p2)-real(c1) x13=x13+imag(p2)-real(c2) elseif (@pertc_x==2) x11=x11+imag(p2)*real(c) x12=x12+imag(p2)*real(c1) x13=x13+imag(p2)*real(c2) endif endif if (y11>=0 && y12>=0 && y13>=0) if (@pertc_y==0) y11=y11-real(p3)+real(c) y12=y12-real(p3)+real(c1) y13=y13-real(p3)+real(c2) elseif (@pertc_y==1) y11=y11-real(p3)-real(c) y12=y12-real(p3)-real(c1) y13=y13-real(p3)-real(c2) elseif (@pertc_y==2) y11=y11-real(p3)*real(c) y12=y12-real(p3)*real(c1) y13=y13-real(p3)*real(c2) endif else if (@pertc_y==0) y11=y11+imag(p3)+real(c) y12=y12+imag(p3)+real(c1) y13=y13+imag(p3)+real(c2) elseif (@pertc_y==1) y11=y11+imag(p3)-real(c) y12=y12+imag(p3)-real(c1) y13=y13+imag(p3)-real(c2) elseif (@pertc_y==2) y11=y11+imag(p3)*real(c) y12=y12+imag(p3)*real(c1) y13=y13+imag(p3)*real(c2) endif endif if (@opz1==0) z11=@fn5(x11)^@p43*p6+@fn6(y11)^@p44*@p29 z12=@fn5(x12)^@p43*p6+@fn6(y12)^@p44*@p29 z13=@fn5(x13)^@p43*p6+@fn6(y13)^@p44*@p29 elseif (@opz1==1) z11=@fn5(x11)^@p43*p6*@fn6(y11)^@p44*@p29 z12=@fn5(x12)^@p43*p6*@fn6(y12)^@p44*@p29 z13=@fn5(x13)^@p43*p6*@fn6(y13)^@p44*@p29 elseif (@opz1==2) z11=@fn5(x11)^@p43*p6/@fn6(y11)^@p44*@p29 z12=@fn5(x12)^@p43*p6/@fn6(y12)^@p44*@p29 z13=@fn5(x13)^@p43*p6/@fn6(y13)^@p44*@p29 elseif (@opz1==3) z11=@fn6(y11)^@p44*@p29/@fn5(x11)^@p43*p6 z12=@fn6(y12)^@p44*@p29/@fn5(x12)^@p43*p6 z13=@fn6(y13)^@p44*@p29/@fn5(x13)^@p43*p6 elseif (@opz1==4) z11=@fn4(z4)^p4*p5+@fn5(x11)^@p43*p6 z12=@fn4(z5)^p4*p5+@fn5(x12)^@p43*p6 z13=@fn4(z6)^p4*p5+@fn5(x13)^@p43*p6 elseif (@opz1==5) z11=@fn4(z4)^p4*p5+@fn6(y11)^@p44*@p29 z12=@fn4(z5)^p4*p5+@fn6(y12)^@p44*@p29 z13=@fn4(z6)^p4*p5+@fn6(y13)^@p44*@p29 elseif (@opz1==6) z11=@fn4(z4)^p4*p5*@fn5(x11)^@p43*p6 z12=@fn4(z5)^p4*p5*@fn5(x12)^@p43*p6 z13=@fn4(z6)^p4*p5*@fn5(x13)^@p43*p6 elseif (@opz1==7) z11=@fn4(z4)^p4*p5*@fn6(y11)^@p44*@p29 z12=@fn4(z5)^p4*p5*@fn6(y12)^@p44*@p29 z13=@fn4(z6)^p4*p5*@fn6(y13)^@p44*@p29 elseif (@opz1==8) z11=@fn4(z4)^p4*p5+@fn5(x11)^@p43*p6+@fn6(y11)^@p44*@p29 z12=@fn4(z5)^p4*p5+@fn5(x12)^@p43*p6+@fn6(y12)^@p44*@p29 z13=@fn4(z6)^p4*p5+@fn5(x13)^@p43*p6+@fn6(y13)^@p44*@p29 elseif (@opz1==9) z11=@fn4(z4)^p4*p5*@fn5(x11)^@p43*p6+@fn6(y11)^@p44*@p29 z12=@fn4(z5)^p4*p5*@fn5(x12)^@p43*p6+@fn6(y12)^@p44*@p29 z13=@fn4(z6)^p4*p5*@fn5(x13)^@p43*p6+@fn6(y13)^@p44*@p29 elseif (@opz1==10) z11=@fn4(z4)^p4*p5+@fn5(x11)^@p43*p6*@fn6(y11)^@p44*@p29 z12=@fn4(z5)^p4*p5+@fn5(x12)^@p43*p6*@fn6(y12)^@p44*@p29 z13=@fn4(z6)^p4*p5+@fn5(x13)^@p43*p6*@fn6(y13)^@p44*@p29 elseif (@opz1==11) z11=@fn4(z4)^p4*p5*@fn6(y11)^@p44*@p29+@fn5(x11)^@p43*p6 z12=@fn4(z5)^p4*p5*@fn6(y12)^@p44*@p29+@fn5(x12)^@p43*p6 z13=@fn4(z6)^p4*p5*@fn6(y13)^@p44*@p29+@fn5(x13)^@p43*p6 elseif (@opz1==12) z11=@fn4(z4)^p4*p5*@fn5(x11)^@p43*p6*@fn6(y11)^@p44*@p29 z12=@fn4(z5)^p4*p5*@fn5(x12)^@p43*p6*@fn6(y12)^@p44*@p29 z13=@fn4(z6)^p4*p5*@fn5(x13)^@p43*p6*@fn6(y13)^@p44*@p29 elseif (@opz1==13) z11=@fn4(z4)^p4*p5*(@fn5(x11)^@p43*p6+@fn6(y11)^@p44*@p29) z12=@fn4(z5)^p4*p5*(@fn5(x12)^@p43*p6+@fn6(y12)^@p44*@p29) z13=@fn4(z6)^p4*p5*(@fn5(x13)^@p43*p6+@fn6(y13)^@p44*@p29) elseif (@opz1==14) z11=@fn4(z4)^p4*p5/@fn5(x11)^@p43*p6+@fn6(y11)^@p44*@p29 z12=@fn4(z5)^p4*p5/@fn5(x12)^@p43*p6+@fn6(y12)^@p44*@p29 z13=@fn4(z6)^p4*p5/@fn5(x13)^@p43*p6+@fn6(y13)^@p44*@p29 elseif (@opz1==15) z11=@fn4(z4)^p4*p5+@fn5(x11)^@p43*p6/@fn6(y11)^@p44*@p29 z12=@fn4(z5)^p4*p5+@fn5(x12)^@p43*p6/@fn6(y12)^@p44*@p29 z13=@fn4(z6)^p4*p5+@fn5(x13)^@p43*p6/@fn6(y13)^@p44*@p29 elseif (@opz1==16) z11=@fn4(z4)^p4*p5/@fn6(y11)^@p44*@p29+@fn5(x11)^@p43*p6 z12=@fn4(z5)^p4*p5/@fn6(y12)^@p44*@p29+@fn5(x12)^@p43*p6 z13=@fn4(z6)^p4*p5/@fn6(y13)^@p44*@p29+@fn5(x13)^@p43*p6 elseif (@opz1==17) z11=@fn4(z4)^p4*p5/@fn5(x11)^@p43*p6*@fn6(y11)^@p44*@p29 z12=@fn4(z5)^p4*p5/@fn5(x12)^@p43*p6*@fn6(y12)^@p44*@p29 z13=@fn4(z6)^p4*p5/@fn5(x13)^@p43*p6*@fn6(y13)^@p44*@p29 elseif (@opz1==18) z11=@fn4(z4)^p4*p5/@fn6(y11)^@p44*@p29*@fn5(x11)^@p43*p6 z12=@fn4(z5)^p4*p5/@fn6(y12)^@p44*@p29*@fn5(x12)^@p43*p6 z13=@fn4(z6)^p4*p5/@fn6(y13)^@p44*@p29*@fn5(x13)^@p43*p6 elseif (@opz1==19) z11=@fn4(z4)^p4*p5/(@fn5(x11)^@p43*p6+@fn6(y11)^@p44*@p29) z12=@fn4(z5)^p4*p5/(@fn5(x12)^@p43*p6+@fn6(y12)^@p44*@p29) z13=@fn4(z6)^p4*p5/(@fn5(x13)^@p43*p6+@fn6(y13)^@p44*@p29) elseif (@opz1==20) z11=@fn4(z4)^p4*p5/@fn5(x11)^@p43*p6/@fn6(y11)^@p44*@p29 z12=@fn4(z5)^p4*p5/@fn5(x12)^@p43*p6/@fn6(y12)^@p44*@p29 z13=@fn4(z6)^p4*p5/@fn5(x13)^@p43*p6/@fn6(y13)^@p44*@p29 elseif (@opz1==21) z11=@fn4(z4)^p4*p5 z12=@fn4(z5)^p4*p5 z13=@fn4(z6)^p4*p5 elseif (@opz1==22) z11=@fn5(x11)^@p43*p6 z12=@fn5(x12)^@p43*p6 z13=@fn5(x13)^@p43*p6 elseif (@opz1==23) z11=@fn6(y11)^@p44*@p29 z12=@fn6(y12)^@p44*@p29 z13=@fn6(y13)^@p44*@p29 endif z11=@fn20(z11)^@p60*@p20 z12=@fn20(z12)^@p60*@p20 z13=@fn20(z13)^@p60*@p20 if (@mixer==true) if (@mixer_z1==0) z11=z11+@fn31(z21)^real(@p50)*imag(@p50) z12=z12+@fn31(z22)^real(@p50)*imag(@p50) z13=z13+@fn31(z23)^real(@p50)*imag(@p50) elseif (@mixer_z1==1) z11=z11*@fn31(z21)^real(@p50)*imag(@p50) z12=z12*@fn31(z22)^real(@p50)*imag(@p50) z13=z13*@fn31(z23)^real(@p50)*imag(@p50) elseif (@mixer_z1==2) z11=z11/@fn31(z21)^real(@p50)*imag(@p50) z12=z12/@fn31(z22)^real(@p50)*imag(@p50) z13=z13/@fn31(z23)^real(@p50)*imag(@p50) elseif (@mixer_z1==3) z11=z11+@fn32(z31)^real(@p51)*imag(@p51) z12=z12+@fn32(z32)^real(@p51)*imag(@p51) z13=z13+@fn32(z33)^real(@p51)*imag(@p51) elseif (@mixer_z1==4) z11=z11*@fn32(z31)^real(@p51)*imag(@p51) z12=z12*@fn32(z32)^real(@p51)*imag(@p51) z13=z13*@fn32(z33)^real(@p51)*imag(@p51) elseif (@mixer_z1==5) z11=z11/@fn32(z31)^real(@p51)*imag(@p51) z12=z12/@fn32(z32)^real(@p51)*imag(@p51) z13=z13/@fn32(z33)^real(@p51)*imag(@p51) endif endif if (@opselcz1==0) z11=z11 z12=z12 z13=z13 elseif (@opselcz1==1) z11=z11+c z12=z12+c1 z13=z13+c2 elseif (@opselcz1==2) z11=z11-c z12=z12-c1 z13=z13-c2 elseif (@opselcz1==3) z11=z11*c z12=z12*c1 z13=z13*c2 elseif (@opselcz1==4) z11=z11/c z12=z12/c1 z13=z13/c2 endif if (real(z11)>=0 && real(z12)>=0 && real(z13)>=0) if (@pertc_z1==0) z11=z11-@p28+c z12=z12-@p28+c1 z13=z13-@p28+c2 elseif (@pertc_z1==1) z11=z11-@p28-c z12=z12-@p28-c1 z13=z13-@p28-c2 elseif (@pertc_z1==2) z11=z11-@p28*c z12=z12-@p28*c1 z13=z13-@p28*c2 endif else if (@pertc_z1==0) z11=z11+@p28+c z12=z12+@p28+c1 z13=z13+@p28+c2 elseif (@pertc_z1==1) z11=z11+@p28-c z12=z12+@p28-c1 z13=z13+@p28-c2 elseif (@pertc_z1==2) z11=z11+@p28*c z12=z12+@p28*c1 z13=z13+@p28*c2 endif endif if (@opz11==0) z11=z11 z12=z12 z13=z13 elseif (@opz11==1) z11=real(z11) z12=real(z12) z13=real(z13) elseif (@opz11==2) z11=imag(z11) z12=imag(z12) z13=imag(z13) elseif (@opz11==3) z11=|z11| z12=|z12| z13=|z13| elseif (@opz11==4) z11=atan2(z11) z12=atan2(z12) z13=atan2(z13) endif ;------------------------------we're finished z1 and start z2--------------------------- x11=real(x11)^real(@p56)*imag(@p56) x12=real(x12)^real(@p56)*imag(@p56) x13=real(x13)^real(@p56)*imag(@p56) y11=real(y11)^real(@p57)*imag(@p57) y12=real(y12)^real(@p57)*imag(@p57) y13=real(y13)^real(@p57)*imag(@p57) if (@newx==0) newx1=xa1 newx2=xa2 newx3=xa3 elseif (@newx==1) newx1=x11+xa1 newx2=x12+xa2 newx3=x13+xa3 elseif (@newx==2) newx1=x11*xa1 newx2=x12*xa2 newx3=x13*xa3 endif if (@newy==0) newy1=ya1 newy2=ya2 newy3=ya3 elseif (@newy==1) newy1=y11+ya1 newy2=y12+ya2 newy3=y13+ya3 elseif (@newy==2) newy1=y11*ya1 newy2=y12*ya2 newy3=y13*ya3 endif if (@selcnewx==0) newx1=newx1 newx2=newx2 newx3=newx3 elseif (@selcnewx==1) newx1=newx1+real(c) newx2=newx2+real(c1) newx3=newx3+real(c2) elseif (@selcnewx==2) newx1=newx1-real(c) newx2=newx2-real(c1) newx3=newx3-real(c2) elseif (@selcnewx==3) newx1=newx1*real(c) newx2=newx2*real(c1) newx3=newx3*real(c2) elseif (@selcnewx==4) newx1=newx1/real(c) newx2=newx2/real(c1) newx3=newx3/real(c2) elseif (@selcnewx==5) newx1=newx1+imag(c) newx2=newx2+imag(c1) newx3=newx3+imag(c2) elseif (@selcnewx==6) newx1=newx1-imag(c) newx2=newx2-imag(c1) newx3=newx3-imag(c2) elseif (@selcnewx==7) newx1=newx1*imag(c) newx2=newx2*imag(c1) newx3=newx3*imag(c2) elseif (@selcnewx==8) newx1=newx1/imag(c) newx2=newx2/imag(c1) newx3=newx3/imag(c2) endif if (@selcnewy==0) newy1=newy1 newy2=newy2 newy3=newy3 elseif (@selcnewy==1) newy1=newy1+real(c) newy2=newy2+real(c1) newy3=newy3+real(c2) elseif (@selcnewy==2) newy1=newy1-real(c) newy2=newy2-real(c1) newy3=newy3-real(c2) elseif (@selcnewy==3) newy1=newy1*real(c) newy2=newy2*real(c1) newy3=newy3*real(c2) elseif (@selcnewy==4) newy1=newy1/real(c) newy2=newy2/real(c1) newy3=newy3/real(c2) elseif (@selcnewy==5) newy1=newy1+imag(c) newy2=newy2+imag(c1) newy3=newy3+imag(c2) elseif (@selcnewy==6) newy1=newy1-imag(c) newy2=newy2-imag(c1) newy3=newy3-imag(c2) elseif (@selcnewy==7) newy1=newy1*imag(c) newy2=newy2*imag(c1) newy3=newy3*imag(c2) elseif (@selcnewy==8) newy1=newy1/imag(c) newy2=newy2/imag(c1) newy3=newy3/imag(c2) endif if (newx1>=0 && newx2>=0 && newx3>=0) if (@pertc_newx==0) newx1=newx1-real(@p45)+real(c) newx2=newx2-real(@p45)+real(c1) newx3=newx3-real(@p45)+real(c2) elseif (@pertc_newx==1) newx1=newx1-real(@p45)-real(c) newx2=newx2-real(@p45)-real(c1) newx3=newx3-real(@p45)-real(c2) elseif (@pertc_newx==2) newx1=newx1-real(@p45)*real(c) newx2=newx2-real(@p45)*real(c1) newx3=newx3-real(@p45)*real(c2) endif else if (@pertc_newx==0) newx1=newx1+imag(@p45)+real(c) newx2=newx2+imag(@p45)+real(c1) newx3=newx3+imag(@p45)+real(c2) elseif (@pertc_newx==1) newx1=newx1+imag(@p45)-real(c) newx2=newx2+imag(@p45)-real(c1) newx3=newx3+imag(@p45)-real(c2) elseif (@pertc_newx==2) newx1=newx1+imag(@p45)*real(c) newx2=newx2+imag(@p45)*real(c1) newx3=newx3+imag(@p45)*real(c2) endif endif if (newy1>=0 && newy2>=0 && newy3>=0) if (@pertc_newy==0) newy1=newy1-real(@p46)+real(c) newy2=newy2-real(@p46)+real(c1) newy3=newy3-real(@p46)+real(c2) elseif (@pertc_newy==1) newy1=newy1-real(@p46)-real(c) newy2=newy2-real(@p46)-real(c1) newy3=newy3-real(@p46)-real(c2) elseif (@pertc_newy==2) newy1=newy1-real(@p46)*real(c) newy2=newy2-real(@p46)*real(c1) newy3=newy3-real(@p46)*real(c2) endif else if (@pertc_newy==0) newy1=newy1+imag(@p46)+real(c) newy2=newy2+imag(@p46)+real(c1) newy3=newy3+imag(@p46)+real(c2) elseif (@pertc_newy==1) newy1=newy1+imag(@p46)-real(c) newy2=newy2+imag(@p46)-real(c1) newy3=newy3+imag(@p46)-real(c2) elseif (@pertc_newy==2) newy1=newy1+imag(@p46)*real(c) newy2=newy2+imag(@p46)*real(c1) newy3=newy3+imag(@p46)*real(c2) endif endif if (@mode_newx==0) newx1=real(newx1) newx2=real(newx2) newx3=real(newx3) elseif (@mode_newx==1) newx1=imag(newx1) newx2=imag(newx2) newx3=imag(newx3) elseif (@mode_newx==2) newx1=|newx1| newx2=|newx2| newx3=|newx3| elseif (@mode_newx==3) newx1=atan2(newx1) newx2=atan2(newx2) newx3=atan2(newx3) endif if (@mode_newy==0) newy1=real(newy1) newy2=real(newy2) newy3=real(newy3) elseif (@mode_newy==1) newy1=imag(newy1) newy2=imag(newy2) newy3=imag(newy3) elseif (@mode_newy==2) newy1=|newy1| newy2=|newy2| newy3=|newy3| elseif (@mode_newy==3) newy1=atan2(newy1) newy2=atan2(newy2) newy3=atan2(newy3) endif if (@opselxa==0) xa1=x11^real(@p58)*imag(@p58) xa2=x12^real(@p58)*imag(@p58) xa3=x13^real(@p58)*imag(@p58) elseif (@opselxa==1) xa1=y11^real(@p59)*imag(@p59) xa2=y12^real(@p59)*imag(@p59) xa3=y13^real(@p59)*imag(@p59) elseif (@opselxa==2) xa1=x11^real(@p58)*imag(@p58)+y11^real(@p59)*imag(@p59) xa2=x12^real(@p58)*imag(@p58)+y12^real(@p59)*imag(@p59) xa3=x13^real(@p58)*imag(@p58)+y13^real(@p59)*imag(@p59) elseif (@opselxa==3) xa1=x11^real(@p58)*imag(@p58)*y11^real(@p59)*imag(@p59) xa2=x12^real(@p58)*imag(@p58)*y12^real(@p59)*imag(@p59) xa3=x13^real(@p58)*imag(@p58)*y13^real(@p59)*imag(@p59) endif if (@opselya==0) ya1=x11^real(@p58)*imag(@p58) ya2=x12^real(@p58)*imag(@p58) ya3=x13^real(@p58)*imag(@p58) elseif (@opselya==1) ya1=y11^real(@p59)*imag(@p59) ya2=y12^real(@p59)*imag(@p59) ya3=y13^real(@p59)*imag(@p59) elseif (@opselya==2) ya1=x11^real(@p58)*imag(@p58)+y11^real(@p59)*imag(@p59) ya2=x12^real(@p58)*imag(@p58)+y12^real(@p59)*imag(@p59) ya3=x13^real(@p58)*imag(@p58)+y13^real(@p59)*imag(@p59) elseif (@opselya==3) ya1=x11^real(@p58)*imag(@p58)*y11^real(@p59)*imag(@p59) ya2=x12^real(@p58)*imag(@p58)*y12^real(@p59)*imag(@p59) ya3=x13^real(@p58)*imag(@p58)*y13^real(@p59)*imag(@p59) endif if (@selcxa==0) xa1=real(@fn15(xa1))^real(@p35)*imag(@p35) xa2=real(@fn15(xa2))^real(@p35)*imag(@p35) xa3=real(@fn15(xa3))^real(@p35)*imag(@p35) elseif (@selcxa==1) xa1=real(@fn15(xa1))^real(@p35)*imag(@p35)+real(c) xa2=real(@fn15(xa2))^real(@p35)*imag(@p35)+real(c1) xa3=real(@fn15(xa3))^real(@p35)*imag(@p35)+real(c2) elseif (@selcxa==2) xa1=real(@fn15(xa1))^real(@p35)*imag(@p35)-real(c) xa2=real(@fn15(xa2))^real(@p35)*imag(@p35)-real(c1) xa3=real(@fn15(xa3))^real(@p35)*imag(@p35)-real(c2) elseif (@selcxa==3) xa1=real(@fn15(xa1))^real(@p35)*imag(@p35)*real(c) xa2=real(@fn15(xa2))^real(@p35)*imag(@p35)*real(c1) xa3=real(@fn15(xa3))^real(@p35)*imag(@p35)*real(c2) elseif (@selcxa==4) xa1=real(@fn15(xa1))^real(@p35)*imag(@p35)/real(c) xa2=real(@fn15(xa2))^real(@p35)*imag(@p35)/real(c1) xa3=real(@fn15(xa3))^real(@p35)*imag(@p35)/real(c2) elseif (@selcxa==5) xa1=real(@fn15(xa1))^real(@p35)*imag(@p35)+imag(c) xa2=real(@fn15(xa2))^real(@p35)*imag(@p35)+imag(c1) xa3=real(@fn15(xa3))^real(@p35)*imag(@p35)+imag(c2) elseif (@selcxa==6) xa1=real(@fn15(xa1))^real(@p35)*imag(@p35)-imag(c) xa2=real(@fn15(xa2))^real(@p35)*imag(@p35)-imag(c1) xa3=real(@fn15(xa3))^real(@p35)*imag(@p35)-imag(c2) elseif (@selcxa==7) xa1=real(@fn15(xa1))^real(@p35)*imag(@p35)*imag(c) xa2=real(@fn15(xa2))^real(@p35)*imag(@p35)*imag(c1) xa3=real(@fn15(xa3))^real(@p35)*imag(@p35)*imag(c2) elseif (@selcxa==8) xa1=real(@fn15(xa1))^real(@p35)*imag(@p35)/imag(c) xa2=real(@fn15(xa2))^real(@p35)*imag(@p35)/imag(c1) xa3=real(@fn15(xa3))^real(@p35)*imag(@p35)/imag(c2) endif if (@selcya==0) ya1=real(@fn11(ya1))^real(@p36)*imag(@p36) ya2=real(@fn11(ya2))^real(@p36)*imag(@p36) ya3=real(@fn11(ya3))^real(@p36)*imag(@p36) elseif (@selcya==1) ya1=real(@fn11(ya1))^real(@p36)*imag(@p36)+real(c) ya2=real(@fn11(ya2))^real(@p36)*imag(@p36)+real(c1) ya3=real(@fn11(ya3))^real(@p36)*imag(@p36)+real(c2) elseif (@selcya==2) ya1=real(@fn11(ya1))^real(@p36)*imag(@p36)-real(c) ya2=real(@fn11(ya2))^real(@p36)*imag(@p36)-real(c1) ya3=real(@fn11(ya3))^real(@p36)*imag(@p36)-real(c2) elseif (@selcya==3) ya1=real(@fn11(ya1))^real(@p36)*imag(@p36)*real(c) ya2=real(@fn11(ya2))^real(@p36)*imag(@p36)*real(c1) ya3=real(@fn11(ya3))^real(@p36)*imag(@p36)*real(c2) elseif (@selcya==4) ya1=real(@fn11(ya1))^real(@p36)*imag(@p36)/real(c) ya2=real(@fn11(ya2))^real(@p36)*imag(@p36)/real(c1) ya3=real(@fn11(ya3))^real(@p36)*imag(@p36)/real(c2) elseif (@selcya==5) ya1=real(@fn11(ya1))^real(@p36)*imag(@p36)+imag(c) ya2=real(@fn11(ya2))^real(@p36)*imag(@p36)+imag(c1) ya3=real(@fn11(ya3))^real(@p36)*imag(@p36)+imag(c2) elseif (@selcya==6) ya1=real(@fn11(ya1))^real(@p36)*imag(@p36)-imag(c) ya2=real(@fn11(ya2))^real(@p36)*imag(@p36)-imag(c1) ya3=real(@fn11(ya3))^real(@p36)*imag(@p36)-imag(c2) elseif (@selcya==7) ya1=real(@fn11(ya1))^real(@p36)*imag(@p36)*imag(c) ya2=real(@fn11(ya2))^real(@p36)*imag(@p36)*imag(c1) ya3=real(@fn11(ya3))^real(@p36)*imag(@p36)*imag(c2) elseif (@selcya==8) ya1=real(@fn11(ya1))^real(@p36)*imag(@p36)/imag(c) ya2=real(@fn11(ya2))^real(@p36)*imag(@p36)/imag(c1) ya3=real(@fn11(ya3))^real(@p36)*imag(@p36)/imag(c2) endif if (xa1>=0 && xa2>=0 && xa3>=0) if (@pertc_xa==0) xa1=xa1-real(@p47)+real(c) xa2=xa2-real(@p47)+real(c1) xa3=xa3-real(@p47)+real(c2) elseif (@pertc_xa==1) xa1=xa1-real(@p47)-real(c) xa2=xa2-real(@p47)-real(c1) xa3=xa3-real(@p47)-real(c2) elseif (@pertc_xa==2) xa1=xa1-real(@p47)*real(c) xa2=xa2-real(@p47)*real(c1) xa3=xa3-real(@p47)*real(c2) endif else if (@pertc_xa==0) xa1=xa1+imag(@p47)+real(c) xa2=xa2+imag(@p47)+real(c1) xa3=xa3+imag(@p47)+real(c2) elseif (@pertc_xa==1) xa1=xa1+imag(@p47)-real(c) xa2=xa2+imag(@p47)-real(c1) xa3=xa3+imag(@p47)-real(c2) elseif (@pertc_xa==2) xa1=xa1+imag(@p47)*real(c) xa2=xa2+imag(@p47)*real(c1) xa3=xa3+imag(@p47)*real(c2) endif endif if (ya1>=0 && ya2>=0 && ya3>=0) if (@pertc_ya==0) ya1=ya1-real(@p48)+real(c) ya2=ya2-real(@p48)+real(c1) ya3=ya3-real(@p48)+real(c2) elseif (@pertc_ya==1) ya1=ya1-real(@p48)-real(c) ya2=ya2-real(@p48)-real(c1) ya3=ya3-real(@p48)-real(c2) elseif (@pertc_ya==2) ya1=ya1-real(@p48)*real(c) ya2=ya2-real(@p48)*real(c1) ya3=ya3-real(@p48)*real(c2) endif else if (@pertc_ya==0) ya1=ya1+imag(@p48)+real(c) ya2=ya2+imag(@p48)+real(c1) ya3=ya3+imag(@p48)+real(c2) elseif (@pertc_ya==1) ya1=ya1+imag(@p48)-real(c) ya2=ya2+imag(@p48)-real(c1) ya3=ya3+imag(@p48)-real(c2) elseif (@pertc_ya==2) ya1=ya1+imag(@p48)*real(c) ya2=ya2+imag(@p48)*real(c1) ya3=ya3+imag(@p48)*real(c2) endif endif if (@mode_xa==0) xa1=real(xa1) xa2=real(xa2) xa3=real(xa3) elseif (@mode_xa==1) xa1=imag(xa1) xa2=imag(xa2) xa3=imag(xa3) elseif (@mode_xa==2) xa1=|xa1| xa2=|xa2| xa3=|xa3| elseif (@mode_xa==3) xa1=atan2(xa1) xa2=atan2(xa2) xa3=atan2(xa3) endif if (@mode_ya==0) ya1=real(ya1) ya2=real(ya2) ya3=real(ya3) elseif (@mode_ya==1) ya1=imag(ya1) ya2=imag(ya2) ya3=imag(ya3) elseif (@mode_ya==2) ya1=|ya1| ya2=|ya2| ya3=|ya3| elseif (@mode_ya==3) ya1=atan2(ya1) ya2=atan2(ya2) ya3=atan2(ya3) endif if (@selxy==false) x21=newx1 x22=newx2 x23=newx3 y21=newy1 y22=newy2 y23=newy3 endif if (@opz21==0) z21=(@fn7(x21)^real(@p12)+@fn8(y21)^imag(@p12))*@p7 z22=(@fn7(x22)^real(@p12)+@fn8(y22)^imag(@p12))*@p7 z23=(@fn7(x23)^real(@p12)+@fn8(y23)^imag(@p12))*@p7 elseif (@opz21==1) z21=(@fn7(x21)^real(@p12)-@fn8(y21)^imag(@p12))*@p7 z22=(@fn7(x22)^real(@p12)-@fn8(y22)^imag(@p12))*@p7 z23=(@fn7(x23)^real(@p12)-@fn8(y23)^imag(@p12))*@p7 elseif (@opz21==2) z21=(@fn7(x21)^real(@p12)*@fn8(y21)^imag(@p12))*@p7 z22=(@fn7(x22)^real(@p12)*@fn8(y22)^imag(@p12))*@p7 z23=(@fn7(x23)^real(@p12)*@fn8(y23)^imag(@p12))*@p7 endif z21=(z21-@p30*@fn9(x21)^@p8*@p9)*c z22=(z22-@p30*@fn9(x22)^@p8*@p9)*c1 z23=(z23-@p30*@fn9(x23)^@p8*@p9)*c2 if (@selxy==true) x21=newx1 x22=newx2 x23=newx3 y21=newy1 y22=newy2 y23=newy3 endif z21=@fn10(z21)^@p61*@p10 z22=@fn10(z22)^@p61*@p10 z23=@fn10(z23)^@p61*@p10 if (@mixer==true) if (@mixer_z2==0) z21=z21+@fn33(z11)^real(@p52)*imag(@p52) z22=z22+@fn33(z12)^real(@p52)*imag(@p52) z23=z23+@fn33(z13)^real(@p52)*imag(@p52) elseif (@mixer_z2==1) z21=z21*@fn33(z11)^real(@p52)*imag(@p52) z22=z22*@fn33(z12)^real(@p52)*imag(@p52) z23=z23*@fn33(z13)^real(@p52)*imag(@p52) elseif (@mixer_z2==2) z21=z21/@fn33(z11)^real(@p52)*imag(@p52) z22=z22/@fn33(z12)^real(@p52)*imag(@p52) z23=z23/@fn33(z13)^real(@p52)*imag(@p52) elseif (@mixer_z2==3) z21=z21+@fn34(z31)^real(@p53)*imag(@p53) z22=z22+@fn34(z32)^real(@p53)*imag(@p53) z23=z23+@fn34(z33)^real(@p53)*imag(@p53) elseif (@mixer_z2==4) z21=z21*@fn34(z31)^real(@p53)*imag(@p53) z22=z22*@fn34(z32)^real(@p53)*imag(@p53) z23=z23*@fn34(z33)^real(@p53)*imag(@p53) elseif (@mixer_z2==5) z21=z21/@fn34(z31)^real(@p53)*imag(@p53) z22=z22/@fn34(z32)^real(@p53)*imag(@p53) z23=z23/@fn34(z33)^real(@p53)*imag(@p53) endif endif if (@opz22==0) z21=z21+@fn30(c)*@p31 z22=z22+@fn30(c1)*@p31 z23=z23+@fn30(c2)*@p31 elseif (@opz22==1) z21=z21-@fn30(c)*@p31 z22=z22-@fn30(c1)*@p31 z23=z23-@fn30(c2)*@p31 elseif (@opz22==2) z21=z21*@fn30(c)*@p31 z22=z22*@fn30(c1)*@p31 z23=z23*@fn30(c2)*@p31 elseif (@opz22==3) z21=z21/@fn30(c)*@p31 z22=z22/@fn30(c1)*@p31 z23=z23/@fn30(c2)*@p31 endif if (real(z21)>=0 && real(z22)>=0 && real(z23)>=0) if (@pertc_z2==0) z21=z21-@p11+c z22=z22-@p11+c1 z23=z23-@p11+c2 elseif (@pertc_z1==1) z21=z21-@p11-c z22=z22-@p11-c1 z23=z23-@p11-c2 elseif (@pertc_z1==2) z21=z21-@p11*c z22=z22-@p11*c1 z23=z23-@p11*c2 endif else if (@pertc_z2==0) z21=z21+@p11+c z22=z22+@p11+c1 z23=z23+@p11+c2 elseif (@pertc_z1==1) z21=z21+@p11-c z22=z22+@p11-c1 z23=z23+@p11-c2 elseif (@pertc_z1==2) z21=z21+@p11*c z22=z22+@p11*c1 z23=z23+@p11*c2 endif endif if (@opz24==0) z21=z21 z22=z22 z23=z23 elseif (@opz24==1) z21=real(z21) z22=real(z22) z23=real(z23) elseif (@opz24==2) z21=imag(z21) z22=imag(z22) z23=imag(z23) elseif (@opz24==3) z21=|z21| z22=|z22| z23=|z23| elseif (@opz24==4) z21=atan2(z21) z22=atan2(z22) z23=atan2(z23) endif else z21=(1.0,0.0) z22=(1.0,0.0) z23=(1.0,0.0) endif ;------------------------------we're finished z2 and start z3--------------------------- if (@opselz3==0) z31=(@fn12(z4)*@p13*@fn23(c)^@p24*@p23)-(@fn13(z4)^@p14*@p19-c+@p41) z32=(@fn12(z5)*@p13*@fn23(c1)^@p24*@p23)-(@fn13(z5)^@p14*@p19-c1+@p41) z33=(@fn12(z6)*@p13*@fn23(c2)^@p24*@p23)-(@fn13(z6)^@p14*@p19-c2+@p41) elseif (@opselz3==1) z31=(@fn12(z4)*@p13*@fn23(c)^@p24*@p23)*(@fn13(z4)^@p14*@p19-c+@p41) z32=(@fn12(z5)*@p13*@fn23(c1)^@p24*@p23)*(@fn13(z5)^@p14*@p19-c1+@p41) z33=(@fn12(z6)*@p13*@fn23(c2)^@p24*@p23)*(@fn13(z6)^@p14*@p19-c2+@p41) elseif (@opselz3==2) z31=(@fn12(z4)*@p13*@fn23(c)^@p24*@p23)/(@fn13(z4)^@p14*@p19-c+@p41) z32=(@fn12(z5)*@p13*@fn23(c1)^@p24*@p23)/(@fn13(z5)^@p14*@p19-c1+@p41) z33=(@fn12(z6)*@p13*@fn23(c2)^@p24*@p23)/(@fn13(z6)^@p14*@p19-c2+@p41) endif z31=@fn14(z31)^@p62*@p37 z32=@fn14(z32)^@p62*@p37 z33=@fn14(z33)^@p62*@p37 if (@mixer==true) if (@mixer_z3==0) z31=z31+@fn35(z11)^real(@p54)*imag(@p54) z32=z32+@fn35(z12)^real(@p54)*imag(@p54) z33=z33+@fn35(z13)^real(@p54)*imag(@p54) elseif (@mixer_z3==1) z31=z31*@fn35(z11)^real(@p54)*imag(@p54) z32=z32*@fn35(z12)^real(@p54)*imag(@p54) z33=z33*@fn35(z13)^real(@p54)*imag(@p54) elseif (@mixer_z3==2) z31=z31/@fn35(z11)^real(@p54)*imag(@p54) z32=z32/@fn35(z12)^real(@p54)*imag(@p54) z33=z33/@fn35(z13)^real(@p54)*imag(@p54) elseif (@mixer_z3==3) z31=z31+@fn36(z21)^real(@p55)*imag(@p55) z32=z32+@fn36(z22)^real(@p55)*imag(@p55) z33=z33+@fn36(z23)^real(@p55)*imag(@p55) elseif (@mixer_z3==4) z31=z31*@fn36(z21)^real(@p55)*imag(@p55) z32=z32*@fn36(z22)^real(@p55)*imag(@p55) z33=z33*@fn36(z23)^real(@p55)*imag(@p55) elseif (@mixer_z3==5) z31=z31/@fn36(z21)^real(@p55)*imag(@p55) z32=z32/@fn36(z22)^real(@p55)*imag(@p55) z33=z33/@fn36(z23)^real(@p55)*imag(@p55) endif endif if (real(z31)>=0 && real(z32)>=0 && real(z33)>=0) if (@pertc_z3==0) z31=z31-@p25+c z32=z32-@p25+c1 z33=z33-@p25+c2 elseif (@pertc_z3==1) z31=z31-@p25-c z32=z32-@p25-c1 z33=z33-@p25-c2 elseif (@pertc_z3==2) z31=z31-@p25*c z32=z32-@p25*c1 z33=z33-@p25*c2 endif else if (@pertc_z3==0) z31=z31+@p25+c z32=z32+@p25+c1 z33=z33+@p25+c2 elseif (@pertc_z3==1) z31=z31+@p25-c z32=z32+@p25-c1 z33=z33+@p25-c2 elseif (@pertc_z3==2) z31=z31+@p25*c z32=z32+@p25*c1 z33=z33+@p25*c2 endif endif if (@opz3==0) z31=z31 z32=z32 z33=z33 elseif (@opz3==1) z31=real(z31) z32=real(z32) z33=real(z33) elseif (@opz3==2) z31=imag(z31) z32=imag(z32) z33=imag(z33) elseif (@opz3==3) z31=|z31| z32=|z32| z33=|z33| elseif (@opz3==4) z31=atan2(z31) z32=atan2(z32) z33=atan2(z33) endif ;------------------------------we're finished z3 and start the Final Section------------ if (@selvar==0) za1=(@fn16(z11)^@p15*@p32)-@fn22(c)+@p18 za2=(@fn16(z12)^@p15*@p32)-@fn22(c1)+@p18 za3=(@fn16(z13)^@p15*@p32)-@fn22(c2)+@p18 zb1=(@fn17(z21)^@p16*@p33)-@fn22(c)+@p18 zb2=(@fn17(z22)^@p16*@p33)-@fn22(c1)+@p18 zb3=(@fn17(z23)^@p16*@p33)-@fn22(c2)+@p18 zc1=(@fn18(z31)^@p17*@p34)-@fn22(c)+@p18 zc2=(@fn18(z32)^@p17*@p34)-@fn22(c1)+@p18 zc3=(@fn18(z33)^@p17*@p34)-@fn22(c2)+@p18 endif if (@opzd==0) zd1=@fn29(c)^real(@p21)*imag(@p21)+((za1*@p38)+(zb1*@p39)+(zc1*@p40)) zd2=@fn29(c1)^real(@p21)*imag(@p21)+((za2*@p38)+(zb2*@p39)+(zc2*@p40)) zd3=@fn29(c2)^real(@p21)*imag(@p21)+((za3*@p38)+(zb3*@p39)+(zc3*@p40)) elseif (@opzd==1) zd1=@fn29(c)^real(@p21)*imag(@p21)-((za1*@p38)+(zb1*@p39)+(zc1*@p40)) zd2=@fn29(c1)^real(@p21)*imag(@p21)-((za2*@p38)+(zb2*@p39)+(zc2*@p40)) zd3=@fn29(c2)^real(@p21)*imag(@p21)-((za3*@p38)+(zb3*@p39)+(zc3*@p40)) elseif (@opzd==2) zd1=@fn29(c)^real(@p21)*imag(@p21)*((za1*@p38)+(zb1*@p39)+(zc1*@p40)) zd2=@fn29(c1)^real(@p21)*imag(@p21)*((za2*@p38)+(zb2*@p39)+(zc2*@p40)) zd3=@fn29(c2)^real(@p21)*imag(@p21)*((za3*@p38)+(zb3*@p39)+(zc3*@p40)) endif if (@opfin==0) z4=zd1-c*@p22 z5=zd2-c1*@p22 z6=zd3-c2*@p22 elseif (@opfin==1) z4=z4+(zd1-c*@p22) z5=z5+(zd2-c1*@p22) z6=z6+(zd3-c2*@p22) elseif (@opfin==2) z4=z4-(zd1-c*@p22) z5=z5-(zd2-c1*@p22) z6=z6-(zd3-c2*@p22) elseif (@opfin==3) z4=z4*(zd1-c*@p22) z5=z5*(zd2-c1*@p22) z6=z6*(zd3-c2*@p22) endif if (@selvar==1) za1=(@fn16(z11)^@p15*@p32)-@fn22(c)+@p18 za2=(@fn16(z12)^@p15*@p32)-@fn22(c1)+@p18 za3=(@fn16(z13)^@p15*@p32)-@fn22(c2)+@p18 zb1=(@fn17(z21)^@p16*@p33)-@fn22(c)+@p18 zb2=(@fn17(z22)^@p16*@p33)-@fn22(c1)+@p18 zb3=(@fn17(z23)^@p16*@p33)-@fn22(c2)+@p18 zc1=(@fn18(z31)^@p17*@p34)-@fn22(c)+@p18 zc2=(@fn18(z32)^@p17*@p34)-@fn22(c1)+@p18 zc3=(@fn18(z33)^@p17*@p34)-@fn22(c2)+@p18 endif if (real(z4)>=0 && real(z5)>=0 && real(z6)>=0) if (@pertc_zfin==0) z4=z4-@p27+c z5=z5-@p27+c1 z6=z6-@p27+c2 elseif (@pertc_zfin==1) z4=z4-@p27-c z5=z5-@p27-c1 z6=z6-@p27-c2 elseif (@pertc_zfin==2) z4=z4-@p27*c z5=z5-@p27*c1 z6=z6-@p27*c2 endif else if (@pertc_zfin==0) z4=z4+@p27+c z5=z5+@p27+c1 z6=z6+@p27+c2 elseif (@pertc_zfin==1) z4=z4+@p27-c z5=z5+@p27-c1 z6=z6+@p27-c2 elseif (@pertc_zfin==2) z4=z4+@p27*c z5=z5+@p27*c1 z6=z6+@p27*c2 endif endif c=@fn19(c) c1=@fn19(c1) c2=@fn19(c2) if (@n_count>=0) n=@n_count*i endif z4=z4^@pow z5=z5^@pow z6=z6^@pow ;------------------------------we're finished the Final Section and start the slope------ if (@slope == true) ;;;; process slope if (@zmode == 5) iterexp1 = iterexp1 + exp(-cabs(z4)) iterexp2 = iterexp2 + exp(-cabs(z5)) iterexp3 = iterexp3 + exp(-cabs(z6)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z4|; get current distances from origin d2 = |z5| d3 = |z6| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z4)); get current distances from the i axis d2 = abs(real(z5)) d3 = abs(real(z6)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z4)); get current distances from the r axis d2 = abs(imag(z5)) d3 = abs(imag(z6)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z4))+abs(imag(z4)); get current distances from the i axis d2 = abs(real(z5))+abs(imag(z5)) d3 = abs(real(z6))+abs(imag(z6)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z4)); get current angles d2 = abs(atan2(z5)) d3 = abs(atan2(z6)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if (@bailout < |z4+n| || \ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 4) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 5) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector ELSE; didn't compute z this time z = z4; use primary iteration value to keep periodicity working endif else z = z4 endif if (@bailout < |z4+n|) ; we're done done = 0 endif Bailout: done>0 Default: title="Barney-6" maxiter=500 method=multipass periodicity=0 magn=0.8 Heading caption="Mandelbrot Mode" visible=(@mode==0) Endheading Heading caption="Julia Mode" visible=(@mode==1) Endheading param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 visible=false endparam param SwitchMode caption="Select Switch" enum="Mandelbrot""Julia" default=1 visible=false endparam param bailout caption="Bailout Value" default=1.0e5 min=0.0 endparam param n_count caption="Iter Counter" default=0.0 min=0.0 endparam param freq caption="Frequency" default=1.0 min=0.0 endparam param startseed caption="StartSeed" default=(1.5,0.0) endparam Heading caption="Switch Section" visible=(@show) Endheading param @show caption="Switch Section" default=false endparam param swscale caption="Magnification" default=0.8 visible=(@show) endparam param swcenter caption="Switch Center" default=(0.0,0.0) visible=(@show) endparam param scale caption="Magnification Reset" default=1.0 visible=(@show) endparam param center caption="Center Reset" default=(0.0,0.0) visible=(@show) endparam Heading caption="Julia Variant Section" visible=(@show1)&&(@selvar==1) Endheading param @show1 caption="Julia Variant" default=false visible=(@selvar==1) endparam param julvarza caption="Variant z1" enum="pixel""real(pixel)""imag(pixel)""|pixel|""atan2(pixel)" default=0 visible=(@show1)&&(@selvar==1) endparam param julvarzb caption="Variant z2" enum="pixel""real(pixel)""imag(pixel)""|pixel|""atan2(pixel)" default=0 visible=(@show1)&&(@selvar==1) endparam param julvarzc caption="Variant z3" enum="pixel""real(pixel)""imag(pixel)""|pixel|""atan2(pixel)" default=0 visible=(@show1)&&(@selvar==1) endparam param p63 caption="Exponent z1" default=(1.0,0.0) visible=(@show1)&&(@selvar==1) endparam param p64 caption="Multiplier z1" default=(1.0,0.0) visible=(@show1)&&(@selvar==1) endparam param p65 caption="Exponent z2" default=(1.0,0.0) visible=(@show1)&&(@selvar==1) endparam param p66 caption="Multiplier z2" default=(1.0,0.0) visible=(@show1)&&(@selvar==1) endparam param p67 caption="Exponent z3" default=(1.0,0.0) visible=(@show1)&&(@selvar==1) endparam param p68 caption="Multiplier z3" default=(1.0,0.0) visible=(@show1)&&(@selvar==1) endparam func fn24 caption="Function z1" default=ident() visible=(@show1)&&(@selvar==1) endfunc func fn25 caption="Function z2" default=ident() visible=(@show1)&&(@selvar==1) endfunc func fn26 caption="Function z3" default=ident() visible=(@show1)&&(@selvar==1) endfunc Heading caption="Slope Parameters" visible=@slope==true Endheading bool param slope caption="Apply slope?" default=false endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=5 enum="smallest |z|""smallest |real(z)|"\ "smallest |imag(z)|""smallest summ(z)""smallest |atan(z)|"\ "smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam param xfer caption="Height Transfer" default=0 enum="linear" "log" "sqrt" "cuberoot" "exp" "sqr" "cube" "sin" "cos" "tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.25 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Heading caption="Perturbers Section z1" visible=(@show2) Endheading param @show2 caption="Perturbation Sections" default=false endparam param pertc_x caption="Select c in x" enum="x+c""x-c""x*c" default=2 visible=(@show2) endparam param pertc_y caption="Select c in y" enum="y+c""y-c""y*c" default=2 visible=(@show2) endparam param pertc_z1 caption="Select c in z1" enum="z1+c""z1-c""z1*c" default=2 visible=(@show2) endparam param p2 caption="Perturbation x" default=(0.0,0.0) visible=(@show2) endparam param p3 caption="Perturbation y" default=(0.0,0.0) visible=(@show2) endparam param p28 caption="Perturbation z1" default=(0.0,0.0) visible=(@show2) endparam Heading caption="Perturbers Section z2" visible=(@show2) Endheading param pertc_z2 caption="Select c in z2" enum="z2+c""z2-c""z2*c" default=2 visible=(@show2) endparam param pertc_newx caption="Select c in newx" enum="newx+c""newx-c""newx*c" default=2 visible=(@show2) endparam param pertc_newy caption="Select c in newy" enum="newy+c""newy-c""newy*c" default=2 visible=(@show2) endparam param pertc_xa caption="Select c in xa" enum="xa+c""xa-c""xa*c" default=2 visible=(@show2) endparam param pertc_ya caption="Select c in ya" enum="ya+c""ya-c""ya*c" default=2 visible=(@show2) endparam param p45 caption="Perturbation newx" default=(0.0,0.0) visible=(@show2) endparam param p46 caption="Perturbation newy" default=(0.0,0.0) visible=(@show2) endparam param p47 caption="Perturbation xa" default=(0.0,0.0) visible=(@show2) endparam param p48 caption="Perturbation ya" default=(0.0,0.0) visible=(@show2) endparam param p11 caption="Perturbation z2" default=(0.0,0.0) visible=(@show2) endparam Heading caption="Perturbers Section z3" visible=(@show2) Endheading param pertc_z3 caption="Select c in z3" enum="z3+c""z3-c""z3*c" default=2 visible=(@show2) endparam param p25 caption="Perturbation z3" default=(0.0,0.0) visible=(@show2) endparam Heading caption="Final Perturbers" visible=(@show2) Endheading param pertc_zfin caption="Select c in Final z" enum="z+c""z-c""z*c" default=2 visible=(@show2) endparam param p27 caption="Final Perturbation" default=(0.0,0.0) visible=(@show2) endparam Heading caption="Mixers Section" visible=(@mixer==true) Endheading param mixer caption="Able Mixers Section" default=false endparam param mixer_z1 caption="Mixer z1" enum="z1+z2""z1*z2""z1/z2""z1+z3""z1*z3""z1/z3" default=0 visible=(@mixer==true) endparam param mixer_z2 caption="Mixer z2" enum="z2+z1""z2*z1""z2/z1""z2+z3""z2*z3""z2/z3" default=0 visible=(@mixer==true) endparam param mixer_z3 caption="Mixer z3" enum="z3+z1""z3*z1""z3/z1""z3+z2""z3*z2""z3/z2" default=0 visible=(@mixer==true) endparam param p52 caption="Parameter 1|z1" default=(1.0,1.0) visible=(@mixer_z2==0)||(@mixer_z2==1)||(@mixer_z2==2)&&(@mixer==true) endparam param p54 caption="Parameter 2|z1" default=(1.0,1.0) visible=(@mixer_z3==0)||(@mixer_z3==1)||(@mixer_z3==2)&&(@mixer==true) endparam param p50 caption="Parameter 1|z2" default=(1.0,1.0) visible=(@mixer_z1==0)||(@mixer_z1==1)||(@mixer_z1==2)&&(@mixer==true) endparam param p55 caption="Parameter 2|z2" default=(1.0,1.0) visible=(@mixer_z3==3)||(@mixer_z3==4)||(@mixer_z3==5)&&(@mixer==true) endparam param p51 caption="Parameter 1|z3" default=(1.0,1.0) visible=(@mixer_z1==3)||(@mixer_z1==4)||(@mixer_z1==5)&&(@mixer==true) endparam param p53 caption="Parameter 2|z3" default=(1.0,1.0) visible=(@mixer_z2==3)||(@mixer_z2==4)||(@mixer_z2==5)&&(@mixer==true) endparam func fn33 caption="Function 1|z1" default=ident() visible=(@mixer_z2==0)||(@mixer_z2==1)||(@mixer_z2==2)&&(@mixer==true) endfunc func fn35 caption="Function 2|z1" default=ident() visible=(@mixer_z3==0)||(@mixer_z3==1)||(@mixer_z3==2)&&(@mixer==true) endfunc func fn31 caption="Function 1|z2" default=ident() visible=(@mixer_z1==0)||(@mixer_z1==1)||(@mixer_z1==2)&&(@mixer==true) endfunc func fn36 caption="Function 2|z2" default=ident() visible=(@mixer_z3==3)||(@mixer_z3==4)||(@mixer_z3==5)&&(@mixer==true) endfunc func fn32 caption="Function 1|z3" default=ident() visible=(@mixer_z1==3)||(@mixer_z1==4)||(@mixer_z1==5)&&(@mixer==true) endfunc func fn34 caption="Function 2|z3" default=ident() visible=(@mixer_z2==3)||(@mixer_z2==4)||(@mixer_z2==5)&&(@mixer==true) endfunc Heading caption="Section z1" Endheading param @show3 caption="Section z1" default=false endparam param opz1 caption="Start z1" enum="x+y""x*y""x/y""y/x""z+x""z+y""z*x""z*y""z+x+y""z*x+y""z+x*y"\ "z*y+x""z*x*y""z*(x+y)""z/x+y""z+x/y""z/y+x""z/x*y""z/y*x"\ "z/(x+y)""z/x/y""z""x""y" default=21 visible=(@show3) endparam param opselcz1 caption="Select c in z1" enum="z1""z1+c""z1-c""z1*c""z1/c" default=1 visible=(@show3) endparam param opz11 caption="Mode z1" enum="z1""real(z1)""imag(z1)""|z1|""atan2(z1)" default=0 visible=(@show3) endparam param p43 caption="Exponent x" default=(1.0,0.0) visible=(@show3) endparam param p1 caption="Parameter 1|x" default=(1.0,1.0) visible=(@show3) endparam param p6 caption="Parameter 2|x" default=(1.0,0.0) visible=(@show3) endparam param p44 caption="Exponent y" default=(1.0,0.0) visible=(@show3) endparam param p42 caption="Parameter 1|y" default=(1.0,1.0) visible=(@show3) endparam param p29 caption="Parameter 2|y" default=(1.0,0.0) visible=(@show3) endparam param p26 caption="Exponent 1|z" default=(1.0,0.0) visible=(@show3) endparam param p4 caption="Exponent 2|z" default=(1.0,0.0) visible=(@show3) endparam param p49 caption="Parameter 1|z" default=(1.0,0.0) visible=(@show3) endparam param p5 caption="Parameter 2|z" default=(1.0,0.0) visible=(@show3) endparam param p60 caption="Exponent z1" default=(1.0,0.0) visible=(@show3) endparam param p20 caption="Parameter z1" default=(1.0,0.0) visible=(@show3) endparam func fn21 caption="Init Function c" default=ident() visible=(@show3) endfunc func fn2 caption="Function 1|x" default=ident() visible=(@show3) endfunc func fn5 caption="Function 2|x" default=ident() visible=(@show3) endfunc func fn3 caption="Function 1|y" default=ident() visible=(@show3) endfunc func fn6 caption="Function 2|y" default=cos() visible=(@show3) endfunc func fn1 caption="Function 1|z" default=ident() visible=(@show3) endfunc func fn4 caption="Function 2|z" default=ident() visible=(@show3) endfunc func fn20 caption="Function z1" default=ident() visible=(@show3) endfunc Heading caption="Section z2" Endheading param @show4 caption="Section z2" default=false endparam param selxy caption="Change Mode" default=false visible=(@show4) endparam param newx caption="Select newx" enum="xa""x+xa""x*xa" default=1 visible=(@show4) endparam param newy caption="Select newy" enum="ya""y+ya""y*ya" default=1 visible=(@show4) endparam param opselxa caption="Select xa" enum="x""y""x+y""x*y" default=1 visible=(@show4) endparam param opselya caption="Select ya" enum="x""y""x+y""x*y" default=1 visible=(@show4) endparam param selcxa caption="Select c in xa" enum="xa""xa+real(c)""xa-real(c)""xa*real(c)""xa/real(c)"\ "xa+imag(c)""xa-imag(c)""xa*imag(c)""xa/imag(c)" default=0 visible=(@show4) endparam param selcya caption="Select c in ya" enum="ya""ya+real(c)""ya-real(c)""ya*real(c)""ya/real(c)"\ "ya+imag(c)""ya-imag(c)""ya*imag(c)""ya/imag(c)" default=0 visible=(@show4) endparam param selcnewx caption="Select c in newx" enum="newx""newx+real(c)""newx-real(c)""newx*real(c)""newx/real(c)"\ "newx+imag(c)""newx-imag(c)""newx*imag(c)""newx/imag(c)" default=0 visible=(@show4) endparam param selcnewy caption="Select c in newy" enum="newy""newy+real(c)""newy-real(c)""newy*real(c)""newy/real(c)"\ "newy+imag(c)""newy-imag(c)""newy*imag(c)""newy/imag(c)" default=0 visible=(@show4) endparam param opz21 caption="Select z2" enum="z2=newx+newy""z2=newx-newy""z2=newx*newy" default=0 visible=(@show4) endparam param opz22 caption="Select c in z2" enum="z2+c""z2-c""z2*c""z2/c" default=0 visible=(@show4) endparam param mode_newx caption="Mode newx" enum="real(newx)""imag(newx)""|newx|""atan2(newx)" default=0 visible=(@show4) endparam param mode_newy caption="Mode newy" enum="real(newy)""imag(newy)""|newy|""atan2(newy)" default=0 visible=(@show4) endparam param mode_xa caption="Mode xa" enum="real(xa)""imag(xa)""|xa|""atan2(xa)" default=0 visible=(@show4) endparam param mode_ya caption="Mode ya" enum="real(ya)""imag(ya)""|ya|""atan2(ya)" default=0 visible=(@show4) endparam param opz24 caption="Mode z2" enum="z2""real(z2)""imag(z2)""|z2|""atan2(z2)" default=0 visible=(@show4) endparam param p56 caption="Param. 1|x" default=(1.0,1.0) visible=(@show4) endparam param p58 caption="Param. 2|x" default=(1.0,1.0) visible=(@show4) endparam param p57 caption="Param. 1|y" default=(1.0,1.0) visible=(@show4) endparam param p59 caption="Param. 2|y" default=(1.0,1.0) visible=(@show4) endparam param p35 caption="Param. xa" default=(1.0,1.0) visible=(@show4) endparam param p36 caption="Param. ya" default=(1.0,1.0) visible=(@show4) endparam param p12 caption="Exp. newx|newy" default=(1.0,1.0) visible=(@show4) endparam param p8 caption="Exponent newx" default=(1.0,0.0) visible=(@show4) endparam param p9 caption="Param. 1|newx" default=(1.0,0.0) visible=(@show4) endparam param p30 caption="Param. 2|newx" default=(2.0,1.0) visible=(@show4) endparam param p61 caption="Exponent z2" default=(1.0,0.0) visible=(@show4) endparam param p7 caption="Param. 1|z2" default=(1.0,0.0) visible=(@show4) endparam param p10 caption="Param. 2|z2" default=(1.0,0.0) visible=(@show4) endparam param p31 caption="Parameter c" default=(1.0,0.0) visible=(@show4) endparam func fn15 caption="Function xa" default=ident() visible=(@show4) endfunc func fn11 caption="Function ya" default=ident() visible=(@show4) endfunc func fn7 caption="Function 1|newx" default=ident() visible=(@show4) endfunc func fn9 caption="Function 2|newx" default=ident() visible=(@show4) endfunc func fn8 caption="Function newy" default=ident() visible=(@show4) endfunc func fn10 caption="Function z2" default=ident() visible=(@show4) endfunc func fn30 caption="Function c" default=ident() visible=(@show4) endfunc Heading caption="Section z3" Endheading param @show5 caption="Section z3" default=false endparam param opselz3 caption="Operator z3" enum="-""*""/" default=0 visible=(@show5) endparam param opz3 caption="Mode z3" enum="z3""real(z3)""imag(z3)""|z3|""atan2(z3)" default=0 visible=(@show5) endparam param p14 caption="Exponent|z" default=(1.0,0.0) visible=(@show5) endparam param p13 caption="Parameter 1|z" default=(2.0,1.0) visible=(@show5) endparam param p19 caption="Parameter 2|z" default=(1.0,0.0) visible=(@show5) endparam param p24 caption="Exponent c" default=(1.0,0.0) visible=(@show5) endparam param p23 caption="Parameter 1|c" default=(1.0,0.0) visible=(@show5) endparam param p41 caption="Parameter 2|c" default=(2.0,0.0) visible=(@show5) endparam param p62 caption="Exponent z3" default=(1.0,0.0) visible=(@show5) endparam param p37 caption="Parameter z3" default=(1.0,0.0) visible=(@show5) endparam func fn12 caption="Function 1|z" default=ident() visible=(@show5) endfunc func fn13 caption="Function 2|z" default=ident() visible=(@show5) endfunc func fn14 caption="Function z3" default=ident() visible=(@show5) endfunc func fn23 caption="Function c" default=ident() visible=(@show5) endfunc Heading caption="Final Section" Endheading param @show6 caption="Final Section" default=false endparam param selvar caption="Final Mode" enum="Normal""Allows Julia Variant" default=0 visible=(@show6) endparam param opzd caption="Final c" enum="c+""c-""c*" default=1 visible=(@show6) endparam param opfin caption="Final z" enum="Normal""z+""z-""z*" default=0 visible=(@show6) endparam param p15 caption="Exponent z1" default=(1.0,0.0) visible=(@show6) endparam param p38 caption="Parameter 1|z1" default=(1.0,0.0) visible=(@show6) endparam param p32 caption="Parameter 2|z1" default=(1.0,0.0) visible=(@show6) endparam param p16 caption="Exponent z2" default=(1.0,0.0) visible=(@show6) endparam param p39 caption="Parameter 1|z2" default=(1.0,0.0) visible=(@show6) endparam param p33 caption="Parameter 2|z2" default=(1.0,0.0) visible=(@show6) endparam param p17 caption="Exponent z3" default=(1.0,0.0) visible=(@show6) endparam param p40 caption="Parameter 1|z3" default=(1.0,0.0) visible=(@show6) endparam param p34 caption="Parameter 2|z3" default=(1.0,0.0) visible=(@show6) endparam param pow caption="Global Exponent" default=(1.0,0.0) visible=(@show6) endparam param p21 caption="Param. 1|c" default=(1.0,1.0) visible=(@show6) endparam param p18 caption="Param. 2|c" default=(0.0,0.0) visible=(@show6) endparam param p22 caption="Param. 3|c" default=(2.0,0.0) visible=(@show6) endparam func fn16 caption="Function z1" default=ident() visible=(@show6) endfunc func fn17 caption="Function z2" default=ident() visible=(@show6) endfunc func fn18 caption="Function z3" default=ident() visible=(@show6) endfunc func fn19 caption="Function 1|c" default=ident() visible=(@show6) endfunc func fn22 caption="Function 2|c" default=ident() visible=(@show6) endfunc func fn29 caption="Function 3|c" default=ident() visible=(@show6) endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="SlopeBarney-6" startseed=pixel bailout=@bailout n_count=@n_count freq=@freq pertc_x=@pertc_x pertc_y=@pertc_y pertc_z1=@pertc_z1 pertc_z2=@pertc_z2 pertc_z3=@pertc_z3 pertc_newx=@pertc_newx pertc_newy=@pertc_newy pertc_xa=@pertc_xa pertc_ya=@pertc_ya opz1=@opz1 opz11=@opz11 opz21=@opz21 opz22=@opz22 opz24=@opz24 opz3=@opz3 opselz3=@opselz3 newx=@newx newy=@newy opselcz1=@opselcz1 opselxa=@opselxa opselya=@opselya selcxa=@selcxa selcya=@selcya selcnewx=@selcnewx selcnewy=@selcnewy selxy=@selxy selvar=@selvar opzd=@opzd mode_xa=@mode_xa mode_ya=@mode_ya mode_newx=@mode_newx mode_newy=@mode_newy mixer_z1=@mixer_z1 mixer_z2=@mixer_z2 mixer_z3=@mixer_z3 julvarx2=@julvarx2 julvary2=@julvary2 julvarza=@julvarza julvarzb=@julvarzb julvarzc=@julvarzc opfin=@opfin p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 p8=@p8 p9=@p9 p10=@p10 p11=@p11 p12=@p12 p13=@p13 p14=@p14 p15=@p15 p16=@p16 p17=@p17 p18=@p18 p19=@p19 p20=@p20 p21=@p21 p22=@p22 p23=@p23 p24=@p24 p25=@p25 p26=@p26 p27=@p27 p28=@p28 p29=@p29 p30=@p30 p31=@p31 p32=@p32 p33=@p33 p34=@p34 p35=@p35 p36=@p36 p37=@p37 p38=@p38 p39=@p39 p40=@p40 p41=@p41 p42=@p42 p43=@p43 p44=@p44 p45=@p45 p46=@p46 p47=@p47 p48=@p48 p49=@p49 p50=@p50 p51=@p51 p52=@p52 p53=@p53 p54=@p54 p55=@p55 p56=@p56 p57=@p57 p58=@p58 p59=@p59 p60=@p60 p61=@p61 p62=@p62 p63=@p63 p64=@p64 p65=@p65 p66=@p66 p67=@p67 p68=@p68 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 fn8=@fn8 fn9=@fn9 fn10=@fn10 fn11=@fn11 fn12=@fn12 fn13=@fn13 fn14=@fn14 fn15=@fn15 fn16=@fn16 fn17=@fn17 fn18=@fn18 fn19=@fn19 fn20=@fn20 fn21=@fn21 fn22=@fn22 fn23=@fn23 fn24=@fn24 fn25=@fn25 fn26=@fn26 fn29=@fn29 fn30=@fn30 fn31=@fn31 fn32=@fn32 fn33=@fn33 fn34=@fn34 fn35=@fn35 fn36=@fn36 mode=@switchmode switchmode=@mode scale=@swscale center=@swcenter show=@show show1=@show1 show2=@show2 show3=@show3 show4=@show4 show5=@show5 show6=@show6 mixer=@mixer version=@version slope=@slope offset=@offset pow=@pow zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter } As-BarnsleyM1_Zpower { ;Based on a formula from, Miscfrm.frm, in the orgform collection. ;AndreaSpinozzi(July2004) Init: z =(0.0,0.0) c =(0.0,0.0) z1=(0.0,0.0) z2=(0.0,0.0) z3=(0.0,0.0) x =p1+2.0 float a=4.0 if (@mode=="Mandelbrot") complex z=@start complex c=pixel elseif (@mode=="Julia") complex z=pixel complex c=@seed endif Loop: if @select==0 z=z elseif @select==1 z=z+c elseif @select==2 z=z-c elseif @select==3 z=z*c elseif @select==4 z=z/c elseif @select==5 z=z*z+c elseif @select==6 z=z+z*z+c elseif @select==7 z=(z+c)+(real(z)+imag(z)) elseif @select==8 z=(z-c)+(real(z)+imag(z)) elseif @select==9 z=(z*c)+(real(z)+imag(z)) endif if (@op==0) if(real(z)>=0) z=fn3(z-1)*fn2(c) else z=fn3(z+1)*fn2(c) endif elseif (@op==1) if(real(z)<0) z=fn3(1-z)*fn2(c) else z=fn3(z+1)*fn2(c) endif elseif (@op==2) if(imag(z)>=0) z=fn3(z-1)*fn2(c) else z=fn3(z+1)*fn2(c) endif elseif (@op==3) if(imag(z)<0) z=fn3(1-z)*fn2(c) else z=fn3(z-1)*fn2(c) endif elseif (@op==4) if(real(z)<0) z=fn3(z-1)*fn2(c) else z=fn3(-1-z)*fn2(c) endif elseif (@op==5) if(imag(z)<0) z=fn3(z-1)*fn2(c) else z=fn3(1+z)*fn2(c) endif endif z1=fn1(z)^x+p2 if (@op1==0) z2=@fn6(z) elseif (@op1==1) z2=@fn6(z)+c elseif (@op1==2) z2=@fn6(z)-c*c elseif (@op1==3) z2=@fn6(z)+c*c*c elseif (@op1==4) z2=@fn6(z)+c*c-z*c endif z3=fn4(z1)*p3 if (@op2==0) z=(@fn5(z3)+z2/a)+p4 elseif (@op2==1) z=(@fn5(z3)-z2/a)+p4 endif Bailout: |z|<=@bailout Default: title="BarnsleyM1_Zpower" method=multipass periodicity=0 maxiter=500 magn=0.8 Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="Current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param bailout caption="Bailout Value" default=64.0 endparam Heading caption="Operators and Parameters" Endheading param start caption="Start Value" default=(0.0,0.0) visible=(@mode=="Mandelbrot") endparam param seed caption="Seed Value" default=(0.0,0.0) visible=(@mode=="Julia") endparam param select caption="Select z" enum="z""z+c""z-c""z*c""z/c""z*z+c""z+z*z+c"\ "(z+c)+(re|im)""(z-c)+(re|im)""(z*c)+(re|im)" default=0 endparam param op caption="Plane z" enum="1""2""3""4""5""6" default=0 endparam param op1 caption="Final 1" enum="1""2""3""4""5" default=0 endparam param op2 caption="Final 2" enum="+""-" default=0 endparam param p1 caption="Parameter 1" default=(0.0,0.0) endparam param p2 caption="Parameter 2" default=(0.0,0.0) endparam param p3 caption="Parameter 3" default=(1.0,0.0) endparam param p4 caption="Parameter 4" default=(0.0,0.0) endparam param version caption="Version" default=1.0 visible=false endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=sqrt() endfunc func fn5 caption="Function 5" default=ident() endfunc func fn6 caption="Function 6" default=zero() endfunc Switch: type="As-BarnsleyM1_Zpower" seed=#pixel bailout=@bailout mode=@switchmode switchmode=@mode select=@select op=@op op1=@op1 op2=@op2 p1=@p1 p2=@p2 p3=@p3 p4=@p4 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 version=@version } BigBrot-J { ;Andrea Spinozzi(Updated Aug2004) Init: z=pixel c=@seed x=c*z w=fn1(@p1*z)+fn2(@p2*z)*@power j=@fn6(p6*z)+@fn7(@p7*z)*@power1 Loop: if @invert == true z=1/z endif if @change == "c+z" x=(@fn5(c-@p5)+fn4(z-@p4)) elseif @change == "c-z" x=(@fn5(c-@p5)-fn4(z-@p4)) elseif @change == "z-c" x=(fn4(z-@p4)-@fn5(c-@p5)) elseif @change == "c*z" x=(@fn5(c-@p5)*fn4(z-@p4)) elseif @change == "c/z" x=(@fn5(c-@p5)/fn4(z-@p4)) elseif @change == "z/c" x=(fn4(z-@p4)/@fn5(c-@p5)) elseif @change == "c^z" x=(@fn5(c-@p5)^fn4(z-@p4)) elseif @change == "z^c" x=(fn4(z-@p4)^@fn5(c-@p5)) elseif @change == "c+z+z" x=(@fn5(c-@p5)+fn4(z-@p4)+fn4(z-@p4)) elseif @change == "c-z-z" x=(@fn5(c-@p5)-fn4(z-@p4)-fn4(z-@p4)) elseif @change == "z-c-z" x=(fn4(z-@p4)-@fn5(c-@p5)-fn4(z-@p4)) elseif @change == "-c-z-z" x=(-@fn5(z-@p5)-fn4(c-@p4)-fn4(z-@p4)) elseif @change == "c*z*z" x=(@fn5(c-@p5)*fn4(z-@p4)*fn4(z-@p4)) elseif @change == "c/z/z" x=(@fn5(c-@p5)/fn4(z-@p4)/fn4(z-@p4)) elseif @change == "z/c/z" x=(fn4(z-@p4)/@fn5(c-@p5)/fn4(z-@p4)) elseif @change == "z/z/c" x=(fn4(z-@p4)/fn4(c-@p4)/@fn5(z-@p5)) elseif @change == "c^z^z" x=(@fn5(c-@p5)^fn4(z-@p4)^fn4(z-@p4)) elseif @change == "z^c^z" x=(fn4(z-@p4)^@fn5(c-@p5)^fn4(z-@p4)) elseif @change == "z^z^c" x=(fn4(z-@p4)^fn4(c-@p4)^@fn5(z-@p5)) endif if @op1 == "+" if @type1 == "+" w=(@fn1(@p1*z)+@fn2(@p2*z))+@power elseif @type1 == "-" w=(@fn1(@p1*z)+@fn2(@p2*z))-@power elseif @type1 == "*" w=(@fn1(@p1*z)+@fn2(@p2*z))*@power elseif @type1 == "/" w=(@fn1(@p1*z)+@fn2(@p2*z))/@power elseif @type1 == "^" w=(@fn1(@p1*z)+@fn2(@p2*z))^@power endif elseif @op1 == "-" if @type1 == "+" w=(@fn1(@p1*z)-@fn2(@p2*z))+@power elseif @type1 == "-" w=(@fn1(@p1*z)-@fn2(@p2*z))-@power elseif @type1 == "*" w=(@fn1(@p1*z)-@fn2(@p2*z))*@power elseif @type1 == "/" w=(@fn1(@p1*z)-@fn2(@p2*z))/@power elseif @type1 == "^" w=(@fn1(@p1*z)-@fn2(@p2*z))^@power endif elseif @op1 == "*" if @type1 == "+" w=(@fn1(@p1*z)*@fn2(@p2*z))+@power elseif @type1 == "-" w=(@fn1(@p1*z)*@fn2(@p2*z))-@power elseif @type1 == "*" w=(@fn1(@p1*z)*@fn2(@p2*z))*@power elseif @type1 == "/" w=(@fn1(@p1*z)*@fn2(@p2*z))/@power elseif @type1 == "^" w=(@fn1(@p1*z)*@fn2(@p2*z))^@power endif elseif @op1 == "/" if @type1 == "+" w=(@fn1(@p1*z)/@fn2(@p2*z))+@power elseif @type1 == "-" w=(@fn1(@p1*z)/@fn2(@p2*z))-@power elseif @type1 == "*" w=(@fn1(@p1*z)/@fn2(@p2*z))*@power elseif @type1 == "/" w=(@fn1(@p1*z)/@fn2(@p2*z))/@power elseif @type1 == "^" w=(@fn1(@p1*z)/@fn2(@p2*z))^@power endif elseif @op1 == "^" if @type1 == "+" w=(@fn1(@p1*z)^@fn2(@p2*z))+@power elseif @type1 == "-" w=(@fn1(@p1*z)^@fn2(@p2*z))-@power elseif @type1 == "*" w=(@fn1(@p1*z)^@fn2(@p2*z))*@power elseif @type1 == "/" w=(@fn1(@p1*z)^@fn2(@p2*z))/@power elseif @type1 == "^" w=(@fn1(@p1*z)^@fn2(@p2*z))^@power endif endif if @op2 == "+" if @type2 == "+" j=(@fn6(@p6*z)+@fn7(@p7*z))+@power1 elseif @type2 == "-" j=(@fn6(@p6*z)+@fn7(@p7*z))-@power1 elseif @type2 == "*" j=(@fn6(@p6*z)+@fn7(@p7*z))*@power1 elseif @type2 == "/" j=(@fn6(@p6*z)+@fn7(@p7*z))/@power1 elseif @type2 == "^" j=(@fn6(@p6*z)+@fn7(@p7*z))^@power1 endif elseif @op2 == "-" if @type2 == "+" j=(@fn6(@p6*z)-@fn7(@p7*z))+@power1 elseif @type2 == "-" j=(@fn6(@p6*z)-@fn7(@p7*z))-@power1 elseif @type2 == "*" j=(@fn6(@p6*z)-@fn7(@p7*z))*@power1 elseif @type2 == "/" j=(@fn6(@p6*z)-@fn7(@p7*z))/@power1 elseif @type2 == "^" j=(@fn6(@p6*z)-@fn7(@p7*z))^@power1 endif elseif @op2 == "*" if @type2 == "+" j=(@fn6(@p6*z)*@fn7(@p7*z))+@power1 elseif @type2 == "-" j=(@fn6(@p6*z)*@fn7(@p7*z))-@power1 elseif @type2 == "*" j=(@fn6(@p6*z)*@fn7(@p7*z))*@power1 elseif @type2 == "/" j=(@fn6(@p6*z)*@fn7(@p7*z))/@power1 elseif @type2 == "^" j=(@fn6(@p6*z)*@fn7(@p7*z))^@power1 endif elseif @op2 == "/" if @type2 == "+" j=(@fn6(@p6*z)/@fn7(@p7*z))+@power1 elseif @type2 == "-" j=(@fn6(@p6*z)/@fn7(@p7*z))-@power1 elseif @type2 == "*" j=(@fn6(@p6*z)/@fn7(@p7*z))*@power1 elseif @type2 == "/" j=(@fn6(@p6*z)/@fn7(@p7*z))/@power1 elseif @type2 == "^" j=(@fn6(@p6*z)/@fn7(@p7*z))^@power1 endif elseif @op2 == "^" if @type2 == "+" j=(@fn6(@p6*z)^@fn7(@p7*z))+@power1 elseif @type2 == "-" j=(@fn6(@p6*z)^@fn7(@p7*z))-@power1 elseif @type2 == "*" j=(@fn6(@p6*z)^@fn7(@p7*z))*@power1 elseif @type2 == "/" j=(@fn6(@p6*z)^@fn7(@p7*z))/@power1 elseif @type2 == "^" j=(@fn6(@p6*z)^@fn7(@p7*z))^@power1 endif endif if @op3 == "+" if @type3 == "+" z=@power*(fn3(z-@p3)+(w+x)) elseif @type3 == "-" z=@power*(fn3(z-@p3)+(w-x)) elseif @type3 == "*" z=@power*(fn3(z-@p3)+(w*x)) elseif @type3 == "/" z=@power*(fn3(z-@p3)+(w/x)) elseif @type3 == "^" z=@power*(fn3(z-@p3)+(w^x)) endif elseif @op3 == "-" if @type3 == "+" z=@power*(fn3(z-@p3)-(w+x)) elseif @type3 == "-" z=@power*(fn3(z-@p3)-(w-x)) elseif @type3 == "*" z=@power*(fn3(z-@p3)-(w*x)) elseif @type3 == "/" z=@power*(fn3(z-@p3)-(w/x)) elseif @type3 == "^" z=@power*(fn3(z-@p3)-(w^x)) endif elseif @op3 == "*" if @type3 == "+" z=@power*(fn3(z-@p3)*(w+x)) elseif @type3 == "-" z=@power*(fn3(z-@p3)*(w-x)) elseif @type3 == "*" z=@power*(fn3(z-@p3)*(w*x)) elseif @type3 == "/" z=@power*(fn3(z-@p3)*(w/x)) elseif @type3 == "^" z=@power*(fn3(z-@p3)*(w^x)) endif elseif @op3 == "/" if @type3 == "+" z=@power*(fn3(z-@p3)/(w+x)) elseif @type3 == "-" z=@power*(fn3(z-@p3)/(w-x)) elseif @type3 == "*" z=@power*(fn3(z-@p3)/(w*x)) elseif @type3 == "/" z=@power*(fn3(z-@p3)/(w/x)) elseif @type3 == "^" z=@power*(fn3(z-@p3)/(w^x)) endif elseif @op3 == "^" if @type3 == "+" z=@power*(fn3(z-@p3)^(w+x)) elseif @type3 == "-" z=@power*(fn3(z-@p3)^(w-x)) elseif @type3 == "*" z=@power*(fn3(z-@p3)^(w*x)) elseif @type3 == "/" z=@power*(fn3(z-@p3)^(w/x)) elseif @type3 == "^" z=@power*(fn3(z-@p3)^(w^x)) endif endif if @op4 == "+" if @type4 == "+" z=@power1*(fn3(z+@p3)+(j+x)) elseif @type4 == "-" z=@power1*(fn3(z+@p3)+(j-x)) elseif @type4 == "*" z=@power1*(fn3(z+@p3)+(j*x)) elseif @type4 == "/" z=@power1*(fn3(z+@p3)+(j/x)) elseif @type4 == "^" z=@power1*(fn3(z+@p3)+(j^x)) endif elseif @op4 == "-" if @type4 == "+" z=@power*(fn3(z+@p3)-(j+x)) elseif @type4 == "-" z=@power*(fn3(z+@p3)-(j-x)) elseif @type4 == "*" z=@power1*(fn3(z+@p3)-(j*x)) elseif @type4 == "/" z=@power1*(fn3(z+@p3)-(j/x)) elseif @type4 == "^" z=@power1*(fn3(z+@p3)-(j^x)) endif elseif @op4 == "*" if @type4 == "+" z=@power1*(fn3(z+@p3)*(j+x)) elseif @type4 == "-" z=@power1*(fn3(z+@p3)*(j-x)) elseif @type4 == "*" z=@power1*(fn3(z+@p3)*(j*x)) elseif @type4 == "/" z=@power1*(fn3(z+@p3)*(j/x)) elseif @type4 == "^" z=@power1*(fn3(z+@p3)*(j^x)) endif elseif @op4 == "/" if @type4 == "+" z=@power1*(fn3(z+@p3)/(j+x)) elseif @type4 == "-" z=@power1*(fn3(z+@p3)/(j-x)) elseif @type4 == "*" z=@power1*(fn3(z+@p3)/(j*x)) elseif @type4 == "/" z=@power1*(fn3(z+@p3)/(j/x)) elseif @type4 == "^" z=@power1*(fn3(z+@p3)/(j^x)) endif elseif @op4 == "^" if @type4 == "+" z=@power1*(fn3(z+@p3)^(j+x)) elseif @type4 == "-" z=@power1*(fn3(z+@p3)^(j-x)) elseif @type4 == "*" z=@power1*(fn3(z+@p3)^(j*x)) elseif @type4 == "/" z=@power1*(fn3(z+@p3)^(j/x)) elseif @type4 == "^" z=@power1*(fn3(z+@p3)^(j^x)) endif endif Bailout: |z| <= @bailout Default: title="BigBrot-J" center=(0.0,0.0) magn=0.8 maxiter=250 method=multipass periodicity=0 float param bailout caption="Bailout Value" default=64.0 min=0.0 endparam heading caption="Operators and Parameters" endheading complex param seed caption="Seed Value" default=(0.9765625,0.671875) endparam param change caption="Change" enum="c+z""c-z""z-c""c*z""c/z"\ "z/c""c^z""z^c""c+z+z""c-z-z""z-c-z"\ "-c-z-z""c*z*z""c/z/z""z/c/z""z/z/c""c^z^z""z^c^z""z^z^c" default=4 endparam param type1 caption="Type 1" enum="+""-""*""/""^" default=2 endparam param type2 caption="Type 2" enum="+""-""*""/""^" default=2 endparam param type3 caption="Type 3" enum="+""-""*""/""^" default=2 endparam param type4 caption="Type 4" enum="+""-""*""/""^" default=2 endparam param op1 caption="Operator 1" enum="+""-""*""/""^" default=2 endparam param op2 caption="Operator 2" enum="+""-""*""/""^" default=1 endparam param op3 caption="Operator 3" enum="+""-""*""/""^" default=2 endparam param op4 caption="Operator 4" enum="+""-""*""/""^" default=0 endparam complex param p1 caption="Parameter 1" default=(1.0,0.0) endparam complex param p2 caption="Parameter 2" default=(1.0,0.0) endparam complex param p3 caption="Parameter 3" default=(1.0,0.0) endparam complex param p4 caption="Parameter 4" default=(1.0,0.0) endparam complex param p5 caption="Parameter 5" default=(1.0,0.0) endparam complex param p6 caption="Parameter 6" default=(1.0,0.0) endparam complex param p7 caption="Parameter 7" default=(1.0,0.0) endparam complex param power caption="Parameter 8" default=(1.0,0.0) endparam complex param power1 caption="Parameter 9" default=(1.0,0.0) endparam param invert caption="Invert Z" default=false endparam heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc func fn6 caption="Function 6" default=ident() endfunc func fn7 caption="Function 7" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="BigBrot-M" bailout=@bailout @seed=#pixel fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 power=@power power1=@power1 change=@change invert=@invert type1=@type1 type2=@type2 type3=@type3 type4=@type4 op1=@op1 op2=@op2 op3=@op3 op4=@op4 version=@version } BigBrot-M { ;Thanks To Toby Marshall ;Andrea Spinozzi(Updated Aug2004) Init: z=@start c=pixel x=c*z w=fn1(@p1*z)+fn2(@p2*z)+@power j=@fn6(@p6*z)+@fn7(@p7*z)+@power1 Loop: if @invert == true z=1/z endif if @change == "c+z" x=(@fn5(c-@p5)+fn4(z-@p4)) elseif @change == "c-z" x=(@fn5(c-@p5)-fn4(z-@p4)) elseif @change == "z-c" x=(fn4(z-@p4)-@fn5(c-@p5)) elseif @change == "c*z" x=(@fn5(c-@p5)*fn4(z-@p4)) elseif @change == "c/z" x=(@fn5(c-@p5)/fn4(z-@p4)) elseif @change == "z/c" x=(fn4(z-@p4)/@fn5(c-@p5)) elseif @change == "c^z" x=(@fn5(c-@p5)^fn4(z-@p4)) elseif @change == "z^c" x=(fn4(z-@p4)^@fn5(c-@p5)) elseif @change == "c+z+z" x=(@fn5(c-@p5)+fn4(z-@p4)+fn4(z-@p4)) elseif @change == "c-z-z" x=(@fn5(c-@p5)-fn4(z-@p4)-fn4(z-@p4)) elseif @change == "z-c-z" x=(fn4(z-@p4)-@fn5(c-@p5)-fn4(z-@p4)) elseif @change == "-c-z-z" x=(-@fn5(z-@p5)-fn4(c-@p4)-fn4(z-@p4)) elseif @change == "c*z*z" x=(@fn5(c-@p5)*fn4(z-@p4)*fn4(z-@p4)) elseif @change == "c/z/z" x=(@fn5(c-@p5)/fn4(z-@p4)/fn4(z-@p4)) elseif @change == "z/c/z" x=(fn4(z-@p4)/@fn5(c-@p5)/fn4(z-@p4)) elseif @change == "z/z/c" x=(fn4(z-@p4)/fn4(c-@p4)/@fn5(z-@p5)) elseif @change == "c^z^z" x=(@fn5(c-@p5)^fn4(z-@p4)^fn4(z-@p4)) elseif @change == "z^c^z" x=(fn4(z-@p4)^@fn5(c-@p5)^fn4(z-@p4)) elseif @change == "z^z^c" x=(fn4(z-@p4)^fn4(c-@p4)^@fn5(z-@p5)) endif if @op1 == "+" if @type1 == "+" w=(@fn1(@p1*z)+@fn2(@p2*z))+@power elseif @type1 == "-" w=(@fn1(@p1*z)+@fn2(@p2*z))-@power elseif @type1 == "*" w=(@fn1(@p1*z)+@fn2(@p2*z))*@power elseif @type1 == "/" w=(@fn1(@p1*z)+@fn2(@p2*z))/@power elseif @type1 == "^" w=(@fn1(@p1*z)+@fn2(@p2*z))^@power endif elseif @op1 == "-" if @type1 == "+" w=(@fn1(@p1*z)-@fn2(@p2*z))+@power elseif @type1 == "-" w=(@fn1(@p1*z)-@fn2(@p2*z))-@power elseif @type1 == "*" w=(@fn1(@p1*z)-@fn2(@p2*z))*@power elseif @type1 == "/" w=(@fn1(@p1*z)-@fn2(@p2*z))/@power elseif @type1 == "^" w=(@fn1(@p1*z)-@fn2(@p2*z))^@power endif elseif @op1 == "*" if @type1 == "+" w=(@fn1(@p1*z)*@fn2(@p2*z))+@power elseif @type1 == "-" w=(@fn1(@p1*z)*@fn2(@p2*z))-@power elseif @type1 == "*" w=(@fn1(@p1*z)*@fn2(@p2*z))*@power elseif @type1 == "/" w=(@fn1(@p1*z)*@fn2(@p2*z))/@power elseif @type1 == "^" w=(@fn1(@p1*z)*@fn2(@p2*z))^@power endif elseif @op1 == "/" if @type1 == "+" w=(@fn1(@p1*z)/@fn2(@p2*z))+@power elseif @type1 == "-" w=(@fn1(@p1*z)/@fn2(@p2*z))-@power elseif @type1 == "*" w=(@fn1(@p1*z)/@fn2(@p2*z))*@power elseif @type1 == "/" w=(@fn1(@p1*z)/@fn2(@p2*z))/@power elseif @type1 == "^" w=(@fn1(@p1*z)/@fn2(@p2*z))^@power endif elseif @op1 == "^" if @type1 == "+" w=(@fn1(@p1*z)^@fn2(@p2*z))+@power elseif @type1 == "-" w=(@fn1(@p1*z)^@fn2(@p2*z))-@power elseif @type1 == "*" w=(@fn1(@p1*z)^@fn2(@p2*z))*@power elseif @type1 == "/" w=(@fn1(@p1*z)^@fn2(@p2*z))/@power elseif @type1 == "^" w=(@fn1(@p1*z)^@fn2(@p2*z))^@power endif endif if @op2 == "+" if @type2 == "+" j=(@fn6(@p6*z)+@fn7(@p7*z))+@power1 elseif @type2 == "-" j=(@fn6(@p6*z)+@fn7(@p7*z))-@power1 elseif @type2 == "*" j=(@fn6(@p6*z)+@fn7(@p7*z))*@power1 elseif @type2 == "/" j=(@fn6(@p6*z)+@fn7(@p7*z))/@power1 elseif @type2 == "^" j=(@fn6(@p6*z)+@fn7(@p7*z))^@power1 endif elseif @op2 == "-" if @type2 == "+" j=(@fn6(@p6*z)-@fn7(@p7*z))+@power1 elseif @type2 == "-" j=(@fn6(@p6*z)-@fn7(@p7*z))-@power1 elseif @type2 == "*" j=(@fn6(@p6*z)-@fn7(@p7*z))*@power1 elseif @type2 == "/" j=(@fn6(@p6*z)-@fn7(@p7*z))/@power1 elseif @type2 == "^" j=(@fn6(@p6*z)-@fn7(@p7*z))^@power1 endif elseif @op2 == "*" if @type2 == "+" j=(@fn6(@p6*z)*@fn7(@p7*z))+@power1 elseif @type2 == "-" j=(@fn6(@p6*z)*@fn7(@p7*z))-@power1 elseif @type2 == "*" j=(@fn6(@p6*z)*@fn7(@p7*z))*@power1 elseif @type2 == "/" j=(@fn6(@p6*z)*@fn7(@p7*z))/@power1 elseif @type2 == "^" j=(@fn6(@p6*z)*@fn7(@p7*z))^@power1 endif elseif @op2 == "/" if @type2 == "+" j=(@fn6(@p6*z)/@fn7(@p7*z))+@power1 elseif @type2 == "-" j=(@fn6(@p6*z)/@fn7(@p7*z))-@power1 elseif @type2 == "*" j=(@fn6(@p6*z)/@fn7(@p7*z))*@power1 elseif @type2 == "/" j=(@fn6(@p6*z)/@fn7(@p7*z))/@power1 elseif @type2 == "^" j=(@fn6(@p6*z)/@fn7(@p7*z))^@power1 endif elseif @op2 == "^" if @type2 == "+" j=(@fn6(@p6*z)^@fn7(@p7*z))+@power1 elseif @type2 == "-" j=(@fn6(@p6*z)^@fn7(@p7*z))-@power1 elseif @type2 == "*" j=(@fn6(@p6*z)^@fn7(@p7*z))*@power1 elseif @type2 == "/" j=(@fn6(@p6*z)^@fn7(@p7*z))/@power1 elseif @type2 == "^" j=(@fn6(@p6*z)^@fn7(@p7*z))^@power1 endif endif if @op3 == "+" if @type3 == "+" z=@power*(fn3(z-@p3)+(w+x)) elseif @type3 == "-" z=@power*(fn3(z-@p3)+(w-x)) elseif @type3 == "*" z=@power*(fn3(z-@p3)+(w*x)) elseif @type3 == "/" z=@power*(fn3(z-@p3)+(w/x)) elseif @type3 == "^" z=@power*(fn3(z-@p3)+(w^x)) endif elseif @op3 == "-" if @type3 == "+" z=@power*(fn3(z-@p3)-(w+x)) elseif @type3 == "-" z=@power*(fn3(z-@p3)-(w-x)) elseif @type3 == "*" z=@power*(fn3(z-@p3)-(w*x)) elseif @type3 == "/" z=@power*(fn3(z-@p3)-(w/x)) elseif @type3 == "^" z=@power*(fn3(z-@p3)-(w^x)) endif elseif @op3 == "*" if @type3 == "+" z=@power*(fn3(z-@p3)*(w+x)) elseif @type3 == "-" z=@power*(fn3(z-@p3)*(w-x)) elseif @type3 == "*" z=@power*(fn3(z-@p3)*(w*x)) elseif @type3 == "/" z=@power*(fn3(z-@p3)*(w/x)) elseif @type3 == "^" z=@power*(fn3(z-@p3)*(w^x)) endif elseif @op3 == "/" if @type3 == "+" z=@power*(fn3(z-@p3)/(w+x)) elseif @type3 == "-" z=@power*(fn3(z-@p3)/(w-x)) elseif @type3 == "*" z=@power*(fn3(z-@p3)/(w*x)) elseif @type3 == "/" z=@power*(fn3(z-@p3)/(w/x)) elseif @type3 == "^" z=@power*(fn3(z-@p3)/(w^x)) endif elseif @op3 == "^" if @type3 == "+" z=@power*(fn3(z-@p3)^(w+x)) elseif @type3 == "-" z=@power*(fn3(z-@p3)^(w-x)) elseif @type3 == "*" z=@power*(fn3(z-@p3)^(w*x)) elseif @type3 == "/" z=@power*(fn3(z-@p3)^(w/x)) elseif @type3 == "^" z=@power*(fn3(z-@p3)^(w^x)) endif endif if @op4 == "+" if @type4 == "+" z=@power1*(fn3(z+@p3)+(j+x)) elseif @type4 == "-" z=@power1*(fn3(z+@p3)+(j-x)) elseif @type4 == "*" z=@power1*(fn3(z+@p3)+(j*x)) elseif @type4 == "/" z=@power1*(fn3(z+@p3)+(j/x)) elseif @type4 == "^" z=@power1*(fn3(z+@p3)+(j^x)) endif elseif @op4 == "-" if @type4 == "+" z=@power*(fn3(z+@p3)-(j+x)) elseif @type4 == "-" z=@power*(fn3(z+@p3)-(j-x)) elseif @type4 == "*" z=@power1*(fn3(z+@p3)-(j*x)) elseif @type4 == "/" z=@power1*(fn3(z+@p3)-(j/x)) elseif @type4 == "^" z=@power1*(fn3(z+@p3)-(j^x)) endif elseif @op4 == "*" if @type4 == "+" z=@power1*(fn3(z+@p3)*(j+x)) elseif @type4 == "-" z=@power1*(fn3(z+@p3)*(j-x)) elseif @type4 == "*" z=@power1*(fn3(z+@p3)*(j*x)) elseif @type4 == "/" z=@power1*(fn3(z+@p3)*(j/x)) elseif @type4 == "^" z=@power1*(fn3(z+@p3)*(j^x)) endif elseif @op4 == "/" if @type4 == "+" z=@power1*(fn3(z+@p3)/(j+x)) elseif @type4 == "-" z=@power1*(fn3(z+@p3)/(j-x)) elseif @type4 == "*" z=@power1*(fn3(z+@p3)/(j*x)) elseif @type4 == "/" z=@power1*(fn3(z+@p3)/(j/x)) elseif @type4 == "^" z=@power1*(fn3(z+@p3)/(j^x)) endif elseif @op4 == "^" if @type4 == "+" z=@power1*(fn3(z+@p3)^(j+x)) elseif @type4 == "-" z=@power1*(fn3(z+@p3)^(j-x)) elseif @type4 == "*" z=@power1*(fn3(z+@p3)^(j*x)) elseif @type4 == "/" z=@power1*(fn3(z+@p3)^(j/x)) elseif @type4 == "^" z=@power1*(fn3(z+@p3)^(j^x)) endif endif Bailout: |z| < @bailout Default: title="BigBrot-M" center=(0.0,0.0) magn=0.8 maxiter=250 method=multipass periodicity=0 float param bailout caption="Bailout Value" default=64.0 min=0.0 endparam heading caption="Operators and Parameters" endheading complex param start caption="Init Z" default=(0.5,0.0) endparam param change caption="Change" enum="c+z""c-z""z-c""c*z""c/z"\ "z/c""c^z""z^c""c+z+z""c-z-z""z-c-z"\ "-c-z-z""c*z*z""c/z/z""z/c/z""z/z/c""c^z^z""z^c^z""z^z^c" default=4 endparam param type1 caption="Type 1" enum="+""-""*""/""^" default=2 endparam param type2 caption="Type 2" enum="+""-""*""/""^" default=2 endparam param type3 caption="Type 3" enum="+""-""*""/""^" default=2 endparam param type4 caption="Type 4" enum="+""-""*""/""^" default=2 endparam param op1 caption="Operator 1" enum="+""-""*""/""^" default=2 endparam param op2 caption="Operator 2" enum="+""-""*""/""^" default=1 endparam param op3 caption="Operator 3" enum="+""-""*""/""^" default=2 endparam param op4 caption="Operator 4" enum="+""-""*""/""^" default=0 endparam complex param p1 caption="Parameter 1" default=(1.0,0.0) endparam complex param p2 caption="Parameter 2" default=(1.0,0.0) endparam complex param p3 caption="Parameter 3" default=(1.0,0.0) endparam complex param p4 caption="Parameter 4" default=(1.0,0.0) endparam complex param p5 caption="Parameter 5" default=(1.0,0.0) endparam complex param p6 caption="Parameter 6" default=(1.0,0.0) endparam complex param p7 caption="Parameter 7" default=(1.0,0.0) endparam complex param power caption="Parameter 8" default=(1.0,0.0) endparam complex param power1 caption="Parameter 9" default=(1.0,0.0) endparam param invert caption="Invert Z" default=false endparam heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc func fn6 caption="Function 6" default=ident() endfunc func fn7 caption="Function 7" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="BigBrot-J" bailout=@bailout @seed=#pixel fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 power=@power power1=@power1 change=@change invert=@invert type1=@type1 type2=@type2 type3=@type3 type4=@type4 op1=@op1 op2=@op2 op3=@op3 op4=@op4 version=@version } Brotshapes { ;Andrea Spinozzi and Ronnie Jay Sefton. Init: z=#pixel c=1+z f=z Loop: f=fn1(c+sin(c+1)) z=z*z+#pixel+(c)+f a=1 b=2 c=sin(2)+a a=sin(b)*2 b=sin(a) c=sin(b)+tan(a)*2 Bailout: |z| <= @bailout Default: title="Brotshapes" center=(-1.0,0.0) magn=0.7 param bailout caption="Bailout" default=1.0e24 min=0.0 endparam } C-CplxSpiralBullet { ;Based on a formula of Julhack ;Andrea Spinozzi(July2004) Init: complex z=(0.0,0.0) complex c=(0.0,0.0) pzr=real(p3) pzi=imag(p3) p=p1 if (@mode=="Mandelbrot") z=pixel c=pixel elseif (@mode=="Julia") z=pixel c=@seed endif Loop: if (@op1==0) if (@op==0) z=fn1(c*p2)/fn2(z^pzr)+p c=fn2(z^pzi)*fn1(c*p2)-p elseif (@op==1) z=fn1(c*c*p2)/fn2(z^pzr)+p c=fn2(z^pzi)*fn1(c*c*p2)-p elseif (@op==2) z=fn1(c*p2)/fn2((z*z)^pzr)+p c=fn2((z*z)^pzi)*fn1(c*p2)-p elseif (@op==3) z=fn1(c*c*p2)/fn2((z*z*z)^pzr)+p c=fn2((z*z-z)^pzi)*fn1(c*c*p2)-p elseif (@op==4) z=fn1(c*c*p2)/fn2((z*z*z)^pzr)+p c=fn2((z-z*z)^pzi)*fn1(c*c*p2)-p elseif (@op==5) z=fn1(c*c*c*p2)/fn2((z*z*z)^pzr)+p c=fn2((z*z-z)^pzi)*fn1(c*c*c*p2)-p endif elseif (@op1==1) if (@op==0) z=fn1((z*z)^pzr)+fn2(c*p2) c=(fn1((z*z)^pzi)/fn2(c*p2))+p elseif (@op==1) z=fn1((z-z*z)^pzr)+fn2(c*p2) c=(fn1((z-z*z)^pzi)/fn2(c*p2))+p elseif (@op==2) z=fn1((z-z*z)^pzr)-fn2(c*p2) c=(fn1((z-z*z)^pzi)*fn2(c*p2))+p elseif (@op==3) z=fn1((z+z*z)^pzr)+fn2(c*p2) c=(fn1((z+z*z)^pzi)/fn2(c*p2))+p elseif (@op==4) z=fn1((z*z*z)^pzr)+fn2(c*p2) c=(fn1((z*z*z)^pzi)/fn2(c*p2))+p elseif (@op==5) z=fn1((z*z*z)^pzr)-fn2(c*p2) c=(fn1((z*z*z)^pzi)-fn2(c*p2))+p endif elseif (@op1==2) if (@op==0) z=fn1((z*z)^pzr)+fn2(c*p2)+p c=(fn1((z*z)^pzi)/fn2(c*p2)) elseif (@op==1) z=fn1((z-z*z)^pzr)+fn2(c*p2)+p c=(fn1((z-z*z)^pzi)/fn2(c*p2)) elseif (@op==2) z=fn1((z-z*z)^pzr)-fn2(c*p2)+p c=(fn1((z-z*z)^pzi)*fn2(c*p2)) elseif (@op==3) z=fn1((z+z*z)^pzr)+fn2(c*p2)+p c=(fn1((z+z*z)^pzi)/fn2(c*p2)) elseif (@op==4) z=fn1((z*z*z)^pzr)+fn2(c*p2)+p c=(fn1((z*z*z)^pzi)/fn2(c*p2)) elseif (@op==5) z=fn1((z*z*z)^pzr)-fn2(c*p2)+p c=(fn1((z*z*z)^pzi)-fn2(c*p2)) endif elseif (@op1==3) if (@op==0) z=fn1((z*z)^pzr)+fn2(c*p2)+p c=(fn1((z)^pzi)/fn2(c*p2))*p elseif (@op==1) z=fn1((z-z*z)^pzr)+fn2(c*p2)+p c=(fn1((z*z-z)^pzi)/fn2(c*p2))*p elseif (@op==2) z=fn1((z-z*z)^pzr)-fn2(c*p2)+p c=(fn1((z-z*z)^pzi)*fn2(c*p2))*p elseif (@op==3) z=fn1((z+z*z)^pzr)+fn2(c*p2)+p c=(fn1((z+z*z)^pzi)/fn2(c*p2))*p elseif (@op==4) z=fn1((z*z*z)^pzr)+fn2(c*p2)+p c=(fn1((z*z*z)^pzi)/fn2(c*p2))*p elseif (@op==5) z=fn1((z*z*z)^pzr)-fn2(c*p2)+p c=(fn1((z*z*z)^pzi)-fn2(c*p2))*p endif endif z=fn3(z) Bailout: |z|<=@bailout Default: title="C-CplxSpiralBullet" maxiter=500 method=multipass periodicity=0 Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="Current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param bailout caption="Bailout Value" default=1.0e6 endparam Heading caption="Operators and Parameters" Endheading param seed caption="Seed Value" default=(0.0,0.0) visible=(@mode=="Julia") endparam param op1 caption="Operator 1" enum="1""2""3""4" default=0 endparam param op caption="Operator 2" enum="1""2""3""4""5""6" default=0 endparam param p1 caption="Parameter 1" default=(0.4,0.0) endparam param p2 caption="Parameter 2" default=(1.0,0.0) endparam param p3 caption="pzr,pzi" default=(1.0,1.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="C-CplxSpiralBullet" seed=#pixel bailout=@bailout op=@op op1=@op1 p1=@p1 p2=@p2 p3=@p3 fn1=@fn1 fn2=@fn2 fn3=@fn3 mode=@switchmode switchmode=@mode version=@version } ChaoticBrot { ;Andrea Spinozzi(May2004) Init: complex z=(0.0,0.0) complex c=(0.0,0.0) complex x=(0.0,0.0) complex y=(0.0,0.0) complex x1=(0.0,0.0) complex y1=(0.0,0.0) p1r=real(p1) p1i=imag(p1) p2r=real(p2) p2i=imag(p2) p3r=real(p3) p3i=imag(p3) p4r=real(p4) p4i=imag(p4) p5r=real(@p5) p5i=imag(@p5) p6r=real(@p6) p6i=imag(@p6) if (@mode=="Mandelbrot") z=@start c=pixel elseif @mode=="Julia" z=pixel c=@seed endif Loop: z=fn1(z) c=fn2(c) if @opx==0 x=((sqr(z)^p1r)+(sqr(z)^p1i))^p5r elseif @opx==1 x=((sqr(z)^p1r)-(sqr(z)^p1i))^p5r elseif @opx==2 x=((sqr(z)^p1r)*(sqr(z)^p1i))^p5r elseif @opx==3 x=((sqr(z)^p1r)/(sqr(z)^p1i))^p5r elseif @opx==4 x=((sqr(flip(z))^p1r)/(sqr(flip(z))^p1i))^p5r endif if @opx1==0 x1=((fn3(x)^p3r)+(fn3(x)^p3i))^p6r elseif @opx1==1 x1=((fn3(x)^p3r)-(fn3(x)^p3i))^p6r elseif @opx1==2 x1=((fn3(x)^p3r)*(fn3(x)^p3i))^p6r elseif @opx1==3 x1=((fn3(x)^p3r)/(fn3(x)^p3i))^p6r elseif @opx1==4 x1=((fn3(flip(x))^p3r)/(fn3(flip(x))^p3i))^p6r endif x1=@fn5(x1) if @opy==0 y=((sqr(z)^p2r)+(sqr(z)^p2i))^p5i elseif @opy==1 y=((sqr(z)^p2r)-(sqr(z)^p2i))^p5i elseif @opy==2 y=((sqr(z)^p2r)*(sqr(z)^p2i))^p5i elseif @opy==3 y=((sqr(z)^p2r)/(sqr(z)^p2i))^p5i elseif @opy==4 y=((sqr(flip(z))^p2r)/(sqr(flip(z))^p2i))^p5i endif if @opy1==0 y1=((fn4(y)^p4r)+(fn4(y)^p4i))^p6i elseif @opy1==1 y1=((fn4(y)^p4r)-(fn4(y)^p4i))^p6i elseif @opy1==2 y1=((fn4(y)^p4r)*(fn4(y)^p4i))^p6i elseif @opy1==3 y1=((fn4(y)^p4r)/(fn4(y)^p4i))^p6i elseif @opy1==4 y1=((fn4(flip(y))^p4r)/(fn4(flip(y))^p4i))^p6i endif y1=@fn6(y1) if @SelectResult==0 if @opyy1==0 if @opxx1==0 if @opc==0 if @opz==0 z=((x+y)+(x1+y1))+c elseif @opz==1 z=((x+y)-(x1+y1))+c elseif @opz==2 z=((x+y)*(x1+y1))+c elseif @opz==3 z=((x+y)/(x1+y1))+c endif elseif @opc==1 if @opz==0 z=((x+y)+(x1+y1))-c elseif @opz==1 z=((x+y)-(x1+y1))-c elseif @opz==2 z=((x+y)*(x1+y1))-c elseif @opz==3 z=((x+y)/(x1+y1))-c endif elseif @opc==2 if @opz==0 z=((x+y)+(x1+y1))*c elseif @opz==1 z=((x+y)-(x1+y1))*c elseif @opz==2 z=((x+y)*(x1+y1))*c elseif @opz==3 z=((x+y)/(x1+y1))*c endif elseif @opc==3 if @opz==0 z=((x+y)+(x1+y1))/c elseif @opz==1 z=((x+y)-(x1+y1))/c elseif @opz==2 z=((x+y)*(x1+y1))/c elseif @opz==3 z=((x+y)/(x1+y1))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((x-y)+(x1+y1))+c elseif @opz==1 z=((x-y)-(x1+y1))+c elseif @opz==2 z=((x-y)*(x1+y1))+c elseif @opz==3 z=((x-y)/(x1+y1))+c endif elseif @opc==1 if @opz==0 z=((x-y)+(x1+y1))-c elseif @opz==1 z=((x-y)-(x1+y1))-c elseif @opz==2 z=((x-y)*(x1+y1))-c elseif @opz==3 z=((x-y)/(x1+y1))-c endif elseif @opc==2 if @opz==0 z=((x-y)+(x1+y1))*c elseif @opz==1 z=((x-y)-(x1+y1))*c elseif @opz==2 z=((x-y)*(x1+y1))*c elseif @opz==3 z=((x-y)/(x1+y1))*c endif elseif @opc==3 if @opz==0 z=((x-y)+(x1+y1))/c elseif @opz==1 z=((x-y)-(x1+y1))/c elseif @opz==2 z=((x-y)*(x1+y1))/c elseif @opz==3 z=((x-y)/(x1+y1))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((x*y)+(x1+y1))+c elseif @opz==1 z=((x*y)-(x1+y1))+c elseif @opz==2 z=((x*y)*(x1+y1))+c elseif @opz==3 z=((x*y)/(x1+y1))+c endif elseif @opc==1 if @opz==0 z=((x*y)+(x1+y1))-c elseif @opz==1 z=((x*y)-(x1+y1))-c elseif @opz==2 z=((x*y)*(x1+y1))-c elseif @opz==3 z=((x*y)/(x1+y1))-c endif elseif @opc==2 if @opz==0 z=((x*y)+(x1+y1))*c elseif @opz==1 z=((x*y)-(x1+y1))*c elseif @opz==2 z=((x*y)*(x1+y1))*c elseif @opz==3 z=((x*y)/(x1+y1))*c endif elseif @opc==3 if @opz==0 z=((x*y)+(x1+y1))/c elseif @opz==1 z=((x*y)-(x1+y1))/c elseif @opz==2 z=((x*y)*(x1+y1))/c elseif @opz==3 z=((x*y)/(x1+y1))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((x/y)+(x1+y1))+c elseif @opz==1 z=((x/y)-(x1+y1))+c elseif @opz==2 z=((x/y)*(x1+y1))+c elseif @opz==3 z=((x/y)/(x1+y1))+c endif elseif @opc==1 if @opz==0 z=((x/y)+(x1+y1))-c elseif @opz==1 z=((x/y)-(x1+y1))-c elseif @opz==2 z=((x/y)*(x1+y1))-c elseif @opz==3 z=((x/y)/(x1+y1))-c endif elseif @opc==2 if @opz==0 z=((x/y)+(x1+y1))*c elseif @opz==1 z=((x/y)-(x1+y1))*c elseif @opz==2 z=((x/y)*(x1+y1))*c elseif @opz==3 z=((x/y)/(x1+y1))*c endif elseif @opc==3 if @opz==0 z=((x/y)+(x1+y1))/c elseif @opz==1 z=((x/y)-(x1+y1))/c elseif @opz==2 z=((x/y)*(x1+y1))/c elseif @opz==3 z=((x/y)/(x1+y1))/c endif endif endif elseif @opyy1==1 if @opxx1==0 if @opc==0 if @opz==0 z=((x+y)+(x1-y1))+c elseif @opz==1 z=((x+y)-(x1-y1))+c elseif @opz==2 z=((x+y)*(x1-y1))+c elseif @opz==3 z=((x+y)/(x1-y1))+c endif elseif @opc==1 if @opz==0 z=((x+y)+(x1-y1))-c elseif @opz==1 z=((x+y)-(x1-y1))-c elseif @opz==2 z=((x+y)*(x1-y1))-c elseif @opz==3 z=((x+y)/(x1-y1))-c endif elseif @opc==2 if @opz==0 z=((x+y)+(x1-y1))*c elseif @opz==1 z=((x+y)-(x1-y1))*c elseif @opz==2 z=((x+y)*(x1-y1))*c elseif @opz==3 z=((x+y)/(x1-y1))*c endif elseif @opc==3 if @opz==0 z=((x+y)+(x1-y1))/c elseif @opz==1 z=((x+y)-(x1-y1))/c elseif @opz==2 z=((x+y)*(x1-y1))/c elseif @opz==3 z=((x+y)/(x1-y1))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((x-y)+(x1-y1))+c elseif @opz==1 z=((x-y)-(x1-y1))+c elseif @opz==2 z=((x-y)*(x1-y1))+c elseif @opz==3 z=((x-y)/(x1-y1))+c endif elseif @opc==1 if @opz==0 z=((x-y)+(x1-y1))-c elseif @opz==1 z=((x-y)-(x1-y1))-c elseif @opz==2 z=((x-y)*(x1-y1))-c elseif @opz==3 z=((x-y)/(x1-y1))-c endif elseif @opc==2 if @opz==0 z=((x-y)+(x1-y1))*c elseif @opz==1 z=((x-y)-(x1-y1))*c elseif @opz==2 z=((x-y)*(x1-y1))*c elseif @opz==3 z=((x-y)/(x1-y1))*c endif elseif @opc==3 if @opz==0 z=((x-y)+(x1-y1))/c elseif @opz==1 z=((x-y)-(x1-y1))/c elseif @opz==2 z=((x-y)*(x1-y1))/c elseif @opz==3 z=((x-y)/(x1-y1))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((x*y)+(x1-y1))+c elseif @opz==1 z=((x*y)-(x1-y1))+c elseif @opz==2 z=((x*y)*(x1-y1))+c elseif @opz==3 z=((x*y)/(x1-y1))+c endif elseif @opc==1 if @opz==0 z=((x*y)+(x1-y1))-c elseif @opz==1 z=((x*y)-(x1-y1))-c elseif @opz==2 z=((x*y)*(x1-y1))-c elseif @opz==3 z=((x*y)/(x1-y1))-c endif elseif @opc==2 if @opz==0 z=((x*y)+(x1-y1))*c elseif @opz==1 z=((x*y)-(x1-y1))*c elseif @opz==2 z=((x*y)*(x1-y1))*c elseif @opz==3 z=((x*y)/(x1-y1))*c endif elseif @opc==3 if @opz==0 z=((x*y)+(x1-y1))/c elseif @opz==1 z=((x*y)-(x1-y1))/c elseif @opz==2 z=((x*y)*(x1-y1))/c elseif @opz==3 z=((x*y)/(x1-y1))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((x/y)+(x1-y1))+c elseif @opz==1 z=((x/y)-(x1-y1))+c elseif @opz==2 z=((x/y)*(x1-y1))+c elseif @opz==3 z=((x/y)/(x1-y1))+c endif elseif @opc==1 if @opz==0 z=((x/y)+(x1-y1))-c elseif @opz==1 z=((x/y)-(x1-y1))-c elseif @opz==2 z=((x/y)*(x1-y1))-c elseif @opz==3 z=((x/y)/(x1-y1))-c endif elseif @opc==2 if @opz==0 z=((x/y)+(x1-y1))*c elseif @opz==1 z=((x/y)-(x1-y1))*c elseif @opz==2 z=((x/y)*(x1-y1))*c elseif @opz==3 z=((x/y)/(x1-y1))*c endif elseif @opc==3 if @opz==0 z=((x/y)+(x1-y1))/c elseif @opz==1 z=((x/y)-(x1-y1))/c elseif @opz==2 z=((x/y)*(x1-y1))/c elseif @opz==3 z=((x/y)/(x1-y1))/c endif endif endif elseif @opyy1==2 if @opxx1==0 if @opc==0 if @opz==0 z=((x+y)+(x1*y1))+c elseif @opz==1 z=((x+y)-(x1*y1))+c elseif @opz==2 z=((x+y)*(x1*y1))+c elseif @opz==3 z=((x+y)/(x1*y1))+c endif elseif @opc==1 if @opz==0 z=((x+y)+(x1*y1))-c elseif @opz==1 z=((x+y)-(x1*y1))-c elseif @opz==2 z=((x+y)*(x1*y1))-c elseif @opz==3 z=((x+y)/(x1*y1))-c endif elseif @opc==2 if @opz==0 z=((x+y)+(x1*y1))*c elseif @opz==1 z=((x+y)-(x1*y1))*c elseif @opz==2 z=((x+y)*(x1*y1))*c elseif @opz==3 z=((x+y)/(x1*y1))*c endif elseif @opc==3 if @opz==0 z=((x+y)+(x1*y1))/c elseif @opz==1 z=((x+y)-(x1*y1))/c elseif @opz==2 z=((x+y)*(x1*y1))/c elseif @opz==3 z=((x+y)/(x1*y1))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((x-y)+(x1*y1))+c elseif @opz==1 z=((x-y)-(x1*y1))+c elseif @opz==2 z=((x-y)*(x1*y1))+c elseif @opz==3 z=((x-y)/(x1*y1))+c endif elseif @opc==1 if @opz==0 z=((x-y)+(x1*y1))-c elseif @opz==1 z=((x-y)-(x1*y1))-c elseif @opz==2 z=((x-y)*(x1*y1))-c elseif @opz==3 z=((x-y)/(x1*y1))-c endif elseif @opc==2 if @opz==0 z=((x-y)+(x1*y1))*c elseif @opz==1 z=((x-y)-(x1*y1))*c elseif @opz==2 z=((x-y)*(x1*y1))*c elseif @opz==3 z=((x-y)/(x1*y1))*c endif elseif @opc==3 if @opz==0 z=((x-y)+(x1*y1))/c elseif @opz==1 z=((x-y)-(x1*y1))/c elseif @opz==2 z=((x-y)*(x1*y1))/c elseif @opz==3 z=((x-y)/(x1*y1))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((x*y)+(x1*y1))+c elseif @opz==1 z=((x*y)-(x1*y1))+c elseif @opz==2 z=((x*y)*(x1*y1))+c elseif @opz==3 z=((x*y)/(x1*y1))+c endif elseif @opc==1 if @opz==0 z=((x*y)+(x1*y1))-c elseif @opz==1 z=((x*y)-(x1*y1))-c elseif @opz==2 z=((x*y)*(x1*y1))-c elseif @opz==3 z=((x*y)/(x1*y1))-c endif elseif @opc==2 if @opz==0 z=((x*y)+(x1*y1))*c elseif @opz==1 z=((x*y)-(x1*y1))*c elseif @opz==2 z=((x*y)*(x1*y1))*c elseif @opz==3 z=((x*y)/(x1*y1))*c endif elseif @opc==3 if @opz==0 z=((x*y)+(x1*y1))/c elseif @opz==1 z=((x*y)-(x1*y1))/c elseif @opz==2 z=((x*y)*(x1*y1))/c elseif @opz==3 z=((x*y)/(x1*y1))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((x/y)+(x1*y1))+c elseif @opz==1 z=((x/y)-(x1*y1))+c elseif @opz==2 z=((x/y)*(x1*y1))+c elseif @opz==3 z=((x/y)/(x1*y1))+c endif elseif @opc==1 if @opz==0 z=((x/y)+(x1*y1))-c elseif @opz==1 z=((x/y)-(x1*y1))-c elseif @opz==2 z=((x/y)*(x1*y1))-c elseif @opz==3 z=((x/y)/(x1*y1))-c endif elseif @opc==2 if @opz==0 z=((x/y)+(x1*y1))*c elseif @opz==1 z=((x/y)-(x1*y1))*c elseif @opz==2 z=((x/y)*(x1*y1))*c elseif @opz==3 z=((x/y)/(x1*y1))*c endif elseif @opc==3 if @opz==0 z=((x/y)+(x1*y1))/c elseif @opz==1 z=((x/y)-(x1*y1))/c elseif @opz==2 z=((x/y)*(x1*y1))/c elseif @opz==3 z=((x/y)/(x1*y1))/c endif endif endif elseif @opyy1==3 if @opxx1==0 if @opc==0 if @opz==0 z=((x+y)+(x1/y1))+c elseif @opz==1 z=((x+y)-(x1/y1))+c elseif @opz==2 z=((x+y)*(x1/y1))+c elseif @opz==3 z=((x+y)/(x1/y1))+c endif elseif @opc==1 if @opz==0 z=((x+y)+(x1/y1))-c elseif @opz==1 z=((x+y)-(x1/y1))-c elseif @opz==2 z=((x+y)*(x1/y1))-c elseif @opz==3 z=((x+y)/(x1/y1))-c endif elseif @opc==2 if @opz==0 z=((x+y)+(x1/y1))*c elseif @opz==1 z=((x+y)-(x1/y1))*c elseif @opz==2 z=((x+y)*(x1/y1))*c elseif @opz==3 z=((x+y)/(x1/y1))*c endif elseif @opc==3 if @opz==0 z=((x+y)+(x1/y1))/c elseif @opz==1 z=((x+y)-(x1/y1))/c elseif @opz==2 z=((x+y)*(x1/y1))/c elseif @opz==3 z=((x+y)/(x1/y1))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((x-y)+(x1/y1))+c elseif @opz==1 z=((x-y)-(x1/y1))+c elseif @opz==2 z=((x-y)*(x1/y1))+c elseif @opz==3 z=((x-y)/(x1/y1))+c endif elseif @opc==1 if @opz==0 z=((x-y)+(x1/y1))-c elseif @opz==1 z=((x-y)-(x1/y1))-c elseif @opz==2 z=((x-y)*(x1/y1))-c elseif @opz==3 z=((x-y)/(x1/y1))-c endif elseif @opc==2 if @opz==0 z=((x-y)+(x1/y1))*c elseif @opz==1 z=((x-y)-(x1/y1))*c elseif @opz==2 z=((x-y)*(x1/y1))*c elseif @opz==3 z=((x-y)/(x1/y1))*c endif elseif @opc==3 if @opz==0 z=((x-y)+(x1/y1))/c elseif @opz==1 z=((x-y)-(x1/y1))/c elseif @opz==2 z=((x-y)*(x1/y1))/c elseif @opz==3 z=((x-y)/(x1/y1))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((x*y)+(x1/y1))+c elseif @opz==1 z=((x*y)-(x1/y1))+c elseif @opz==2 z=((x*y)*(x1/y1))+c elseif @opz==3 z=((x*y)/(x1/y1))+c endif elseif @opc==1 if @opz==0 z=((x*y)+(x1/y1))-c elseif @opz==1 z=((x*y)-(x1/y1))-c elseif @opz==2 z=((x*y)*(x1/y1))-c elseif @opz==3 z=((x*y)/(x1/y1))-c endif elseif @opc==2 if @opz==0 z=((x*y)+(x1/y1))*c elseif @opz==1 z=((x*y)-(x1/y1))*c elseif @opz==2 z=((x*y)*(x1/y1))*c elseif @opz==3 z=((x*y)/(x1/y1))*c endif elseif @opc==3 if @opz==0 z=((x*y)+(x1/y1))/c elseif @opz==1 z=((x*y)-(x1/y1))/c elseif @opz==2 z=((x*y)*(x1/y1))/c elseif @opz==3 z=((x*y)/(x1/y1))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((x/y)+(x1/y1))+c elseif @opz==1 z=((x/y)-(x1/y1))+c elseif @opz==2 z=((x/y)*(x1/y1))+c elseif @opz==3 z=((x/y)/(x1/y1))+c endif elseif @opc==1 if @opz==0 z=((x/y)+(x1/y1))-c elseif @opz==1 z=((x/y)-(x1/y1))-c elseif @opz==2 z=((x/y)*(x1/y1))-c elseif @opz==3 z=((x/y)/(x1/y1))-c endif elseif @opc==2 if @opz==0 z=((x/y)+(x1/y1))*c elseif @opz==1 z=((x/y)-(x1/y1))*c elseif @opz==2 z=((x/y)*(x1/y1))*c elseif @opz==3 z=((x/y)/(x1/y1))*c endif elseif @opc==3 if @opz==0 z=((x/y)+(x1/y1))/c elseif @opz==1 z=((x/y)-(x1/y1))/c elseif @opz==2 z=((x/y)*(x1/y1))/c elseif @opz==3 z=((x/y)/(x1/y1))/c endif endif endif endif elseif @SelectResult==1 if @opyy1==0 if @opxx1==0 if @opc==0 if @opz==0 z=((x1+y)+(x+y1))+c elseif @opz==1 z=((x1+y)-(x+y1))+c elseif @opz==2 z=((x1+y)*(x+y1))+c elseif @opz==3 z=((x1+y)/(x+y1))+c endif elseif @opc==1 if @opz==0 z=((x1+y)+(x+y1))-c elseif @opz==1 z=((x1+y)-(x+y1))-c elseif @opz==2 z=((x1+y)*(x+y1))-c elseif @opz==3 z=((x1+y)/(x+y1))-c endif elseif @opc==2 if @opz==0 z=((x1+y)+(x+y1))*c elseif @opz==1 z=((x1+y)-(x+y1))*c elseif @opz==2 z=((x1+y)*(x+y1))*c elseif @opz==3 z=((x1+y)/(x+y1))*c endif elseif @opc==3 if @opz==0 z=((x1+y)+(x+y1))/c elseif @opz==1 z=((x1+y)-(x+y1))/c elseif @opz==2 z=((x1+y)*(x+y1))/c elseif @opz==3 z=((x1+y)/(x+y1))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((x1-y)+(x+y1))+c elseif @opz==1 z=((x1-y)-(x+y1))+c elseif @opz==2 z=((x1-y)*(x+y1))+c elseif @opz==3 z=((x1-y)/(x+y1))+c endif elseif @opc==1 if @opz==0 z=((x1-y)+(x+y1))-c elseif @opz==1 z=((x1-y)-(x+y1))-c elseif @opz==2 z=((x1-y)*(x+y1))-c elseif @opz==3 z=((x1-y)/(x+y1))-c endif elseif @opc==2 if @opz==0 z=((x1-y)+(x+y1))*c elseif @opz==1 z=((x1-y)-(x+y1))*c elseif @opz==2 z=((x1-y)*(x+y1))*c elseif @opz==3 z=((x1-y)/(x+y1))*c endif elseif @opc==3 if @opz==0 z=((x1-y)+(x+y1))/c elseif @opz==1 z=((x1-y)-(x+y1))/c elseif @opz==2 z=((x1-y)*(x+y1))/c elseif @opz==3 z=((x1-y)/(x+y1))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((x1*y)+(x+y1))+c elseif @opz==1 z=((x1*y)-(x+y1))+c elseif @opz==2 z=((x1*y)*(x+y1))+c elseif @opz==3 z=((x1*y)/(x+y1))+c endif elseif @opc==1 if @opz==0 z=((x1*y)+(x+y1))-c elseif @opz==1 z=((x1*y)-(x+y1))-c elseif @opz==2 z=((x1*y)*(x+y1))-c elseif @opz==3 z=((x1*y)/(x+y1))-c endif elseif @opc==2 if @opz==0 z=((x1*y)+(x+y1))*c elseif @opz==1 z=((x1*y)-(x+y1))*c elseif @opz==2 z=((x1*y)*(x+y1))*c elseif @opz==3 z=((x1*y)/(x+y1))*c endif elseif @opc==3 if @opz==0 z=((x1*y)+(x+y1))/c elseif @opz==1 z=((x1*y)-(x+y1))/c elseif @opz==2 z=((x1*y)*(x+y1))/c elseif @opz==3 z=((x1*y)/(x+y1))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((x1/y)+(x+y1))+c elseif @opz==1 z=((x1/y)-(x+y1))+c elseif @opz==2 z=((x1/y)*(x+y1))+c elseif @opz==3 z=((x1/y)/(x+y1))+c endif elseif @opc==1 if @opz==0 z=((x1/y)+(x+y1))-c elseif @opz==1 z=((x1/y)-(x+y1))-c elseif @opz==2 z=((x1/y)*(x+y1))-c elseif @opz==3 z=((x1/y)/(x+y1))-c endif elseif @opc==2 if @opz==0 z=((x1/y)+(x+y1))*c elseif @opz==1 z=((x1/y)-(x+y1))*c elseif @opz==2 z=((x1/y)*(x+y1))*c elseif @opz==3 z=((x1/y)/(x+y1))*c endif elseif @opc==3 if @opz==0 z=((x1/y)+(x+y1))/c elseif @opz==1 z=((x1/y)-(x+y1))/c elseif @opz==2 z=((x1/y)*(x+y1))/c elseif @opz==3 z=((x1/y)/(x+y1))/c endif endif endif elseif @opyy1==1 if @opxx1==0 if @opc==0 if @opz==0 z=((x1+y)+(x-y1))+c elseif @opz==1 z=((x1+y)-(x-y1))+c elseif @opz==2 z=((x1+y)*(x-y1))+c elseif @opz==3 z=((x1+y)/(x-y1))+c endif elseif @opc==1 if @opz==0 z=((x1+y)+(x-y1))-c elseif @opz==1 z=((x1+y)-(x-y1))-c elseif @opz==2 z=((x1+y)*(x-y1))-c elseif @opz==3 z=((x1+y)/(x-y1))-c endif elseif @opc==2 if @opz==0 z=((x1+y)+(x-y1))*c elseif @opz==1 z=((x1+y)-(x-y1))*c elseif @opz==2 z=((x1+y)*(x-y1))*c elseif @opz==3 z=((x1+y)/(x-y1))*c endif elseif @opc==3 if @opz==0 z=((x1+y)+(x-y1))/c elseif @opz==1 z=((x1+y)-(x-y1))/c elseif @opz==2 z=((x1+y)*(x-y1))/c elseif @opz==3 z=((x1+y)/(x-y1))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((x1-y)+(x-y1))+c elseif @opz==1 z=((x1-y)-(x-y1))+c elseif @opz==2 z=((x1-y)*(x-y1))+c elseif @opz==3 z=((x1-y)/(x-y1))+c endif elseif @opc==1 if @opz==0 z=((x1-y)+(x-y1))-c elseif @opz==1 z=((x1-y)-(x-y1))-c elseif @opz==2 z=((x1-y)*(x-y1))-c elseif @opz==3 z=((x1-y)/(x-y1))-c endif elseif @opc==2 if @opz==0 z=((x1-y)+(x-y1))*c elseif @opz==1 z=((x1-y)-(x-y1))*c elseif @opz==2 z=((x1-y)*(x-y1))*c elseif @opz==3 z=((x1-y)/(x-y1))*c endif elseif @opc==3 if @opz==0 z=((x1-y)+(x-y1))/c elseif @opz==1 z=((x1-y)-(x-y1))/c elseif @opz==2 z=((x1-y)*(x-y1))/c elseif @opz==3 z=((x1-y)/(x-y1))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((x1*y)+(x-y1))+c elseif @opz==1 z=((x1*y)-(x-y1))+c elseif @opz==2 z=((x1*y)*(x-y1))+c elseif @opz==3 z=((x1*y)/(x-y1))+c endif elseif @opc==1 if @opz==0 z=((x1*y)+(x-y1))-c elseif @opz==1 z=((x1*y)-(x-y1))-c elseif @opz==2 z=((x1*y)*(x-y1))-c elseif @opz==3 z=((x1*y)/(x-y1))-c endif elseif @opc==2 if @opz==0 z=((x1*y)+(x-y1))*c elseif @opz==1 z=((x1*y)-(x-y1))*c elseif @opz==2 z=((x1*y)*(x-y1))*c elseif @opz==3 z=((x1*y)/(x-y1))*c endif elseif @opc==3 if @opz==0 z=((x1*y)+(x-y1))/c elseif @opz==1 z=((x1*y)-(x-y1))/c elseif @opz==2 z=((x1*y)*(x-y1))/c elseif @opz==3 z=((x1*y)/(x-y1))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((x1/y)+(x-y1))+c elseif @opz==1 z=((x1/y)-(x-y1))+c elseif @opz==2 z=((x1/y)*(x-y1))+c elseif @opz==3 z=((x1/y)/(x-y1))+c endif elseif @opc==1 if @opz==0 z=((x1/y)+(x-y1))-c elseif @opz==1 z=((x1/y)-(x-y1))-c elseif @opz==2 z=((x1/y)*(x-y1))-c elseif @opz==3 z=((x1/y)/(x-y1))-c endif elseif @opc==2 if @opz==0 z=((x1/y)+(x-y1))*c elseif @opz==1 z=((x1/y)-(x-y1))*c elseif @opz==2 z=((x1/y)*(x-y1))*c elseif @opz==3 z=((x1/y)/(x-y1))*c endif elseif @opc==3 if @opz==0 z=((x1/y)+(x-y1))/c elseif @opz==1 z=((x1/y)-(x-y1))/c elseif @opz==2 z=((x1/y)*(x-y1))/c elseif @opz==3 z=((x1/y)/(x-y1))/c endif endif endif elseif @opyy1==2 if @opxx1==0 if @opc==0 if @opz==0 z=((x1+y)+(x*y1))+c elseif @opz==1 z=((x1+y)-(x*y1))+c elseif @opz==2 z=((x1+y)*(x*y1))+c elseif @opz==3 z=((x1+y)/(x*y1))+c endif elseif @opc==1 if @opz==0 z=((x1+y)+(x*y1))-c elseif @opz==1 z=((x1+y)-(x*y1))-c elseif @opz==2 z=((x1+y)*(x*y1))-c elseif @opz==3 z=((x1+y)/(x*y1))-c endif elseif @opc==2 if @opz==0 z=((x1+y)+(x*y1))*c elseif @opz==1 z=((x1+y)-(x*y1))*c elseif @opz==2 z=((x1+y)*(x*y1))*c elseif @opz==3 z=((x1+y)/(x*y1))*c endif elseif @opc==3 if @opz==0 z=((x1+y)+(x*y1))/c elseif @opz==1 z=((x1+y)-(x*y1))/c elseif @opz==2 z=((x1+y)*(x*y1))/c elseif @opz==3 z=((x1+y)/(x*y1))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((x1-y)+(x*y1))+c elseif @opz==1 z=((x1-y)-(x*y1))+c elseif @opz==2 z=((x1-y)*(x*y1))+c elseif @opz==3 z=((x1-y)/(x*y1))+c endif elseif @opc==1 if @opz==0 z=((x1-y)+(x*y1))-c elseif @opz==1 z=((x1-y)-(x*y1))-c elseif @opz==2 z=((x1-y)*(x*y1))-c elseif @opz==3 z=((x1-y)/(x*y1))-c endif elseif @opc==2 if @opz==0 z=((x1-y)+(x*y1))*c elseif @opz==1 z=((x1-y)-(x*y1))*c elseif @opz==2 z=((x1-y)*(x*y1))*c elseif @opz==3 z=((x1-y)/(x*y1))*c endif elseif @opc==3 if @opz==0 z=((x1-y)+(x*y1))/c elseif @opz==1 z=((x1-y)-(x*y1))/c elseif @opz==2 z=((x1-y)*(x*y1))/c elseif @opz==3 z=((x1-y)/(x*y1))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((x1*y)+(x*y1))+c elseif @opz==1 z=((x1*y)-(x*y1))+c elseif @opz==2 z=((x1*y)*(x*y1))+c elseif @opz==3 z=((x1*y)/(x*y1))+c endif elseif @opc==1 if @opz==0 z=((x1*y)+(x*y1))-c elseif @opz==1 z=((x1*y)-(x*y1))-c elseif @opz==2 z=((x1*y)*(x*y1))-c elseif @opz==3 z=((x1*y)/(x*y1))-c endif elseif @opc==2 if @opz==0 z=((x1*y)+(x*y1))*c elseif @opz==1 z=((x1*y)-(x*y1))*c elseif @opz==2 z=((x1*y)*(x*y1))*c elseif @opz==3 z=((x1*y)/(x*y1))*c endif elseif @opc==3 if @opz==0 z=((x1*y)+(x*y1))/c elseif @opz==1 z=((x1*y)-(x*y1))/c elseif @opz==2 z=((x1*y)*(x*y1))/c elseif @opz==3 z=((x1*y)/(x*y1))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((x1/y)+(x*y1))+c elseif @opz==1 z=((x1/y)-(x*y1))+c elseif @opz==2 z=((x1/y)*(x*y1))+c elseif @opz==3 z=((x1/y)/(x*y1))+c endif elseif @opc==1 if @opz==0 z=((x1/y)+(x*y1))-c elseif @opz==1 z=((x1/y)-(x*y1))-c elseif @opz==2 z=((x1/y)*(x*y1))-c elseif @opz==3 z=((x1/y)/(x*y1))-c endif elseif @opc==2 if @opz==0 z=((x1/y)+(x*y1))*c elseif @opz==1 z=((x1/y)-(x*y1))*c elseif @opz==2 z=((x1/y)*(x*y1))*c elseif @opz==3 z=((x1/y)/(x*y1))*c endif elseif @opc==3 if @opz==0 z=((x1/y)+(x*y1))/c elseif @opz==1 z=((x1/y)-(x*y1))/c elseif @opz==2 z=((x1/y)*(x*y1))/c elseif @opz==3 z=((x1/y)/(x*y1))/c endif endif endif elseif @opyy1==3 if @opxx1==0 if @opc==0 if @opz==0 z=((x1+y)+(x/y1))+c elseif @opz==1 z=((x1+y)-(x/y1))+c elseif @opz==2 z=((x1+y)*(x/y1))+c elseif @opz==3 z=((x1+y)/(x/y1))+c endif elseif @opc==1 if @opz==0 z=((x1+y)+(x/y1))-c elseif @opz==1 z=((x1+y)-(x/y1))-c elseif @opz==2 z=((x1+y)*(x/y1))-c elseif @opz==3 z=((x1+y)/(x/y1))-c endif elseif @opc==2 if @opz==0 z=((x1+y)+(x/y1))*c elseif @opz==1 z=((x1+y)-(x/y1))*c elseif @opz==2 z=((x1+y)*(x/y1))*c elseif @opz==3 z=((x1+y)/(x/y1))*c endif elseif @opc==3 if @opz==0 z=((x1+y)+(x/y1))/c elseif @opz==1 z=((x1+y)-(x/y1))/c elseif @opz==2 z=((x1+y)*(x/y1))/c elseif @opz==3 z=((x1+y)/(x/y1))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((x1-y)+(x/y1))+c elseif @opz==1 z=((x1-y)-(x/y1))+c elseif @opz==2 z=((x1-y)*(x/y1))+c elseif @opz==3 z=((x1-y)/(x/y1))+c endif elseif @opc==1 if @opz==0 z=((x1-y)+(x/y1))-c elseif @opz==1 z=((x1-y)-(x/y1))-c elseif @opz==2 z=((x1-y)*(x/y1))-c elseif @opz==3 z=((x1-y)/(x/y1))-c endif elseif @opc==2 if @opz==0 z=((x1-y)+(x/y1))*c elseif @opz==1 z=((x1-y)-(x/y1))*c elseif @opz==2 z=((x1-y)*(x/y1))*c elseif @opz==3 z=((x1-y)/(x/y1))*c endif elseif @opc==3 if @opz==0 z=((x1-y)+(x/y1))/c elseif @opz==1 z=((x1-y)-(x/y1))/c elseif @opz==2 z=((x1-y)*(x/y1))/c elseif @opz==3 z=((x1-y)/(x/y1))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((x1*y)+(x/y1))+c elseif @opz==1 z=((x1*y)-(x/y1))+c elseif @opz==2 z=((x1*y)*(x/y1))+c elseif @opz==3 z=((x1*y)/(x/y1))+c endif elseif @opc==1 if @opz==0 z=((x1*y)+(x/y1))-c elseif @opz==1 z=((x1*y)-(x/y1))-c elseif @opz==2 z=((x1*y)*(x/y1))-c elseif @opz==3 z=((x1*y)/(x/y1))-c endif elseif @opc==2 if @opz==0 z=((x1*y)+(x/y1))*c elseif @opz==1 z=((x1*y)-(x/y1))*c elseif @opz==2 z=((x1*y)*(x/y1))*c elseif @opz==3 z=((x1*y)/(x/y1))*c endif elseif @opc==3 if @opz==0 z=((x1*y)+(x/y1))/c elseif @opz==1 z=((x1*y)-(x/y1))/c elseif @opz==2 z=((x1*y)*(x/y1))/c elseif @opz==3 z=((x1*y)/(x/y1))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((x1/y)+(x/y1))+c elseif @opz==1 z=((x1/y)-(x/y1))+c elseif @opz==2 z=((x1/y)*(x/y1))+c elseif @opz==3 z=((x1/y)/(x/y1))+c endif elseif @opc==1 if @opz==0 z=((x1/y)+(x/y1))-c elseif @opz==1 z=((x1/y)-(x/y1))-c elseif @opz==2 z=((x1/y)*(x/y1))-c elseif @opz==3 z=((x1/y)/(x/y1))-c endif elseif @opc==2 if @opz==0 z=((x1/y)+(x/y1))*c elseif @opz==1 z=((x1/y)-(x/y1))*c elseif @opz==2 z=((x1/y)*(x/y1))*c elseif @opz==3 z=((x1/y)/(x/y1))*c endif elseif @opc==3 if @opz==0 z=((x1/y)+(x/y1))/c elseif @opz==1 z=((x1/y)-(x/y1))/c elseif @opz==2 z=((x1/y)*(x/y1))/c elseif @opz==3 z=((x1/y)/(x/y1))/c endif endif endif endif elseif @SelectResult==2 if @opyy1==0 if @opxx1==0 if @opc==0 if @opz==0 z=((x+y1)+(x1+y))+c elseif @opz==1 z=((x+y1)-(x1+y))+c elseif @opz==2 z=((x+y1)*(x1+y))+c elseif @opz==3 z=((x+y1)/(x1+y))+c endif elseif @opc==1 if @opz==0 z=((x+y1)+(x1+y))-c elseif @opz==1 z=((x+y1)-(x1+y))-c elseif @opz==2 z=((x+y1)*(x1+y))-c elseif @opz==3 z=((x+y1)/(x1+y))-c endif elseif @opc==2 if @opz==0 z=((x+y1)+(x1+y))*c elseif @opz==1 z=((x+y1)-(x1+y))*c elseif @opz==2 z=((x+y1)*(x1+y))*c elseif @opz==3 z=((x+y1)/(x1+y))*c endif elseif @opc==3 if @opz==0 z=((x+y1)+(x1+y))/c elseif @opz==1 z=((x+y1)-(x1+y))/c elseif @opz==2 z=((x+y1)*(x1+y))/c elseif @opz==3 z=((x+y1)/(x1+y))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((x-y1)+(x1+y))+c elseif @opz==1 z=((x-y1)-(x1+y))+c elseif @opz==2 z=((x-y1)*(x1+y))+c elseif @opz==3 z=((x-y1)/(x1+y))+c endif elseif @opc==1 if @opz==0 z=((x-y1)+(x1+y))-c elseif @opz==1 z=((x-y1)-(x1+y))-c elseif @opz==2 z=((x-y1)*(x1+y))-c elseif @opz==3 z=((x-y1)/(x1+y))-c endif elseif @opc==2 if @opz==0 z=((x-y1)+(x1+y))*c elseif @opz==1 z=((x-y1)-(x1+y))*c elseif @opz==2 z=((x-y1)*(x1+y))*c elseif @opz==3 z=((x-y1)/(x1+y))*c endif elseif @opc==3 if @opz==0 z=((x-y1)+(x1+y))/c elseif @opz==1 z=((x-y1)-(x1+y))/c elseif @opz==2 z=((x-y1)*(x1+y))/c elseif @opz==3 z=((x-y1)/(x1+y))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((x*y1)+(x1+y))+c elseif @opz==1 z=((x*y1)-(x1+y))+c elseif @opz==2 z=((x*y1)*(x1+y))+c elseif @opz==3 z=((x*y1)/(x1+y))+c endif elseif @opc==1 if @opz==0 z=((x*y1)+(x1+y))-c elseif @opz==1 z=((x*y1)-(x1+y))-c elseif @opz==2 z=((x*y1)*(x1+y))-c elseif @opz==3 z=((x*y1)/(x1+y))-c endif elseif @opc==2 if @opz==0 z=((x*y1)+(x1+y))*c elseif @opz==1 z=((x*y1)-(x1+y))*c elseif @opz==2 z=((x*y1)*(x1+y))*c elseif @opz==3 z=((x*y1)/(x1+y))*c endif elseif @opc==3 if @opz==0 z=((x*y1)+(x1+y))/c elseif @opz==1 z=((x*y1)-(x1+y))/c elseif @opz==2 z=((x*y1)*(x1+y))/c elseif @opz==3 z=((x*y1)/(x1+y))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((x/y1)+(x1+y))+c elseif @opz==1 z=((x/y1)-(x1+y))+c elseif @opz==2 z=((x/y1)*(x1+y))+c elseif @opz==3 z=((x/y1)/(x1+y))+c endif elseif @opc==1 if @opz==0 z=((x/y1)+(x1+y))-c elseif @opz==1 z=((x/y1)-(x1+y))-c elseif @opz==2 z=((x/y1)*(x1+y))-c elseif @opz==3 z=((x/y1)/(x1+y))-c endif elseif @opc==2 if @opz==0 z=((x/y1)+(x1+y))*c elseif @opz==1 z=((x/y1)-(x1+y))*c elseif @opz==2 z=((x/y1)*(x1+y))*c elseif @opz==3 z=((x/y1)/(x1+y))*c endif elseif @opc==3 if @opz==0 z=((x/y1)+(x1+y))/c elseif @opz==1 z=((x/y1)-(x1+y))/c elseif @opz==2 z=((x/y1)*(x1+y))/c elseif @opz==3 z=((x/y1)/(x1+y))/c endif endif endif elseif @opyy1==1 if @opxx1==0 if @opc==0 if @opz==0 z=((x+y1)+(x1-y))+c elseif @opz==1 z=((x+y1)-(x1-y))+c elseif @opz==2 z=((x+y1)*(x1-y))+c elseif @opz==3 z=((x+y1)/(x1-y))+c endif elseif @opc==1 if @opz==0 z=((x+y1)+(x1-y))-c elseif @opz==1 z=((x+y1)-(x1-y))-c elseif @opz==2 z=((x+y1)*(x1-y))-c elseif @opz==3 z=((x+y1)/(x1-y))-c endif elseif @opc==2 if @opz==0 z=((x+y1)+(x1-y))*c elseif @opz==1 z=((x+y1)-(x1-y))*c elseif @opz==2 z=((x+y1)*(x1-y))*c elseif @opz==3 z=((x+y1)/(x1-y))*c endif elseif @opc==3 if @opz==0 z=((x+y1)+(x1-y))/c elseif @opz==1 z=((x+y1)-(x1-y))/c elseif @opz==2 z=((x+y1)*(x1-y))/c elseif @opz==3 z=((x+y1)/(x1-y))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((x-y1)+(x1-y))+c elseif @opz==1 z=((x-y1)-(x1-y))+c elseif @opz==2 z=((x-y1)*(x1-y))+c elseif @opz==3 z=((x-y1)/(x1-y))+c endif elseif @opc==1 if @opz==0 z=((x-y1)+(x1-y))-c elseif @opz==1 z=((x-y1)-(x1-y))-c elseif @opz==2 z=((x-y1)*(x1-y))-c elseif @opz==3 z=((x-y1)/(x1-y))-c endif elseif @opc==2 if @opz==0 z=((x-y1)+(x1-y))*c elseif @opz==1 z=((x-y1)-(x1-y))*c elseif @opz==2 z=((x-y1)*(x1-y))*c elseif @opz==3 z=((x-y1)/(x1-y))*c endif elseif @opc==3 if @opz==0 z=((x-y1)+(x1-y))/c elseif @opz==1 z=((x-y1)-(x1-y))/c elseif @opz==2 z=((x-y1)*(x1-y))/c elseif @opz==3 z=((x-y1)/(x1-y))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((x*y1)+(x1-y))+c elseif @opz==1 z=((x*y1)-(x1-y))+c elseif @opz==2 z=((x*y1)*(x1-y))+c elseif @opz==3 z=((x*y1)/(x1-y))+c endif elseif @opc==1 if @opz==0 z=((x*y1)+(x1-y))-c elseif @opz==1 z=((x*y1)-(x1-y))-c elseif @opz==2 z=((x*y1)*(x1-y))-c elseif @opz==3 z=((x*y1)/(x1-y))-c endif elseif @opc==2 if @opz==0 z=((x*y1)+(x1-y))*c elseif @opz==1 z=((x*y1)-(x1-y))*c elseif @opz==2 z=((x*y1)*(x1-y))*c elseif @opz==3 z=((x*y1)/(x1-y))*c endif elseif @opc==3 if @opz==0 z=((x*y1)+(x1-y))/c elseif @opz==1 z=((x*y1)-(x1-y))/c elseif @opz==2 z=((x*y1)*(x1-y))/c elseif @opz==3 z=((x*y1)/(x1-y))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((x/y1)+(x1-y))+c elseif @opz==1 z=((x/y1)-(x1-y))+c elseif @opz==2 z=((x/y1)*(x1-y))+c elseif @opz==3 z=((x/y1)/(x1-y))+c endif elseif @opc==1 if @opz==0 z=((x/y1)+(x1-y))-c elseif @opz==1 z=((x/y1)-(x1-y))-c elseif @opz==2 z=((x/y1)*(x1-y))-c elseif @opz==3 z=((x/y1)/(x1-y))-c endif elseif @opc==2 if @opz==0 z=((x/y1)+(x1-y))*c elseif @opz==1 z=((x/y1)-(x1-y))*c elseif @opz==2 z=((x/y1)*(x1-y))*c elseif @opz==3 z=((x/y1)/(x1-y))*c endif elseif @opc==3 if @opz==0 z=((x/y1)+(x1-y))/c elseif @opz==1 z=((x/y1)-(x1-y))/c elseif @opz==2 z=((x/y1)*(x1-y))/c elseif @opz==3 z=((x/y1)/(x1-y))/c endif endif endif elseif @opyy1==2 if @opxx1==0 if @opc==0 if @opz==0 z=((x+y1)+(x1*y))+c elseif @opz==1 z=((x+y1)-(x1*y))+c elseif @opz==2 z=((x+y1)*(x1*y))+c elseif @opz==3 z=((x+y1)/(x1*y))+c endif elseif @opc==1 if @opz==0 z=((x+y1)+(x1*y))-c elseif @opz==1 z=((x+y1)-(x1*y))-c elseif @opz==2 z=((x+y1)*(x1*y))-c elseif @opz==3 z=((x+y1)/(x1*y))-c endif elseif @opc==2 if @opz==0 z=((x+y1)+(x1*y))*c elseif @opz==1 z=((x+y1)-(x1*y))*c elseif @opz==2 z=((x+y1)*(x1*y))*c elseif @opz==3 z=((x+y1)/(x1*y))*c endif elseif @opc==3 if @opz==0 z=((x+y1)+(x1*y))/c elseif @opz==1 z=((x+y1)-(x1*y))/c elseif @opz==2 z=((x+y1)*(x1*y))/c elseif @opz==3 z=((x+y1)/(x1*y))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((x-y1)+(x1*y))+c elseif @opz==1 z=((x-y1)-(x1*y))+c elseif @opz==2 z=((x-y1)*(x1*y))+c elseif @opz==3 z=((x-y1)/(x1*y))+c endif elseif @opc==1 if @opz==0 z=((x-y1)+(x1*y))-c elseif @opz==1 z=((x-y1)-(x1*y))-c elseif @opz==2 z=((x-y1)*(x1*y))-c elseif @opz==3 z=((x-y1)/(x1*y))-c endif elseif @opc==2 if @opz==0 z=((x-y1)+(x1*y))*c elseif @opz==1 z=((x-y1)-(x1*y))*c elseif @opz==2 z=((x-y1)*(x1*y))*c elseif @opz==3 z=((x-y1)/(x1*y))*c endif elseif @opc==3 if @opz==0 z=((x-y1)+(x1*y))/c elseif @opz==1 z=((x-y1)-(x1*y))/c elseif @opz==2 z=((x-y1)*(x1*y))/c elseif @opz==3 z=((x-y1)/(x1*y))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((x*y1)+(x1*y))+c elseif @opz==1 z=((x*y1)-(x1*y))+c elseif @opz==2 z=((x*y1)*(x1*y))+c elseif @opz==3 z=((x*y1)/(x1*y))+c endif elseif @opc==1 if @opz==0 z=((x*y1)+(x1*y))-c elseif @opz==1 z=((x*y1)-(x1*y))-c elseif @opz==2 z=((x*y1)*(x1*y))-c elseif @opz==3 z=((x*y1)/(x1*y))-c endif elseif @opc==2 if @opz==0 z=((x*y1)+(x1*y))*c elseif @opz==1 z=((x*y1)-(x1*y))*c elseif @opz==2 z=((x*y1)*(x1*y))*c elseif @opz==3 z=((x*y1)/(x1*y))*c endif elseif @opc==3 if @opz==0 z=((x*y1)+(x1*y))/c elseif @opz==1 z=((x*y1)-(x1*y))/c elseif @opz==2 z=((x*y1)*(x1*y))/c elseif @opz==3 z=((x*y1)/(x1*y))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((x/y1)+(x1*y))+c elseif @opz==1 z=((x/y1)-(x1*y))+c elseif @opz==2 z=((x/y1)*(x1*y))+c elseif @opz==3 z=((x/y1)/(x1*y))+c endif elseif @opc==1 if @opz==0 z=((x/y1)+(x1*y))-c elseif @opz==1 z=((x/y1)-(x1*y))-c elseif @opz==2 z=((x/y1)*(x1*y))-c elseif @opz==3 z=((x/y1)/(x1*y))-c endif elseif @opc==2 if @opz==0 z=((x/y1)+(x1*y))*c elseif @opz==1 z=((x/y1)-(x1*y))*c elseif @opz==2 z=((x/y1)*(x1*y))*c elseif @opz==3 z=((x/y1)/(x1*y))*c endif elseif @opc==3 if @opz==0 z=((x/y1)+(x1*y))/c elseif @opz==1 z=((x/y1)-(x1*y))/c elseif @opz==2 z=((x/y1)*(x1*y))/c elseif @opz==3 z=((x/y1)/(x1*y))/c endif endif endif elseif @opyy1==3 if @opxx1==0 if @opc==0 if @opz==0 z=((x+y1)+(x1/y))+c elseif @opz==1 z=((x+y1)-(x1/y))+c elseif @opz==2 z=((x+y1)*(x1/y))+c elseif @opz==3 z=((x+y1)/(x1/y))+c endif elseif @opc==1 if @opz==0 z=((x+y1)+(x1/y))-c elseif @opz==1 z=((x+y1)-(x1/y))-c elseif @opz==2 z=((x+y1)*(x1/y))-c elseif @opz==3 z=((x+y1)/(x1/y))-c endif elseif @opc==2 if @opz==0 z=((x+y1)+(x1/y))*c elseif @opz==1 z=((x+y1)-(x1/y))*c elseif @opz==2 z=((x+y1)*(x1/y))*c elseif @opz==3 z=((x+y1)/(x1/y))*c endif elseif @opc==3 if @opz==0 z=((x+y1)+(x1/y))/c elseif @opz==1 z=((x+y1)-(x1/y))/c elseif @opz==2 z=((x+y1)*(x1/y))/c elseif @opz==3 z=((x+y1)/(x1/y))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((x-y1)+(x1/y))+c elseif @opz==1 z=((x-y1)-(x1/y))+c elseif @opz==2 z=((x-y1)*(x1/y))+c elseif @opz==3 z=((x-y1)/(x1/y))+c endif elseif @opc==1 if @opz==0 z=((x-y1)+(x1/y))-c elseif @opz==1 z=((x-y1)-(x1/y))-c elseif @opz==2 z=((x-y1)*(x1/y))-c elseif @opz==3 z=((x-y1)/(x1/y))-c endif elseif @opc==2 if @opz==0 z=((x-y1)+(x1/y))*c elseif @opz==1 z=((x-y1)-(x1/y))*c elseif @opz==2 z=((x-y1)*(x1/y))*c elseif @opz==3 z=((x-y1)/(x1/y))*c endif elseif @opc==3 if @opz==0 z=((x-y1)+(x1/y))/c elseif @opz==1 z=((x-y1)-(x1/y))/c elseif @opz==2 z=((x-y1)*(x1/y))/c elseif @opz==3 z=((x-y1)/(x1/y))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((x*y1)+(x1/y))+c elseif @opz==1 z=((x*y1)-(x1/y))+c elseif @opz==2 z=((x*y1)*(x1/y))+c elseif @opz==3 z=((x*y1)/(x1/y))+c endif elseif @opc==1 if @opz==0 z=((x*y1)+(x1/y))-c elseif @opz==1 z=((x*y1)-(x1/y))-c elseif @opz==2 z=((x*y1)*(x1/y))-c elseif @opz==3 z=((x*y1)/(x1/y))-c endif elseif @opc==2 if @opz==0 z=((x*y1)+(x1/y))*c elseif @opz==1 z=((x*y1)-(x1/y))*c elseif @opz==2 z=((x*y1)*(x1/y))*c elseif @opz==3 z=((x*y1)/(x1/y))*c endif elseif @opc==3 if @opz==0 z=((x*y1)+(x1/y))/c elseif @opz==1 z=((x*y1)-(x1/y))/c elseif @opz==2 z=((x*y1)*(x1/y))/c elseif @opz==3 z=((x*y1)/(x1/y))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((x/y1)+(x1/y))+c elseif @opz==1 z=((x/y1)-(x1/y))+c elseif @opz==2 z=((x/y1)*(x1/y))+c elseif @opz==3 z=((x/y1)/(x1/y))+c endif elseif @opc==1 if @opz==0 z=((x/y1)+(x1/y))-c elseif @opz==1 z=((x/y1)-(x1/y))-c elseif @opz==2 z=((x/y1)*(x1/y))-c elseif @opz==3 z=((x/y1)/(x1/y))-c endif elseif @opc==2 if @opz==0 z=((x/y1)+(x1/y))*c elseif @opz==1 z=((x/y1)-(x1/y))*c elseif @opz==2 z=((x/y1)*(x1/y))*c elseif @opz==3 z=((x/y1)/(x1/y))*c endif elseif @opc==3 if @opz==0 z=((x/y1)+(x1/y))/c elseif @opz==1 z=((x/y1)-(x1/y))/c elseif @opz==2 z=((x/y1)*(x1/y))/c elseif @opz==3 z=((x/y1)/(x1/y))/c endif endif endif endif elseif @SelectResult==3 if @opyy1==0 if @opxx1==0 if @opc==0 if @opz==0 z=((x1+y1)+(x+y))+c elseif @opz==1 z=((x1+y1)-(x+y))+c elseif @opz==2 z=((x1+y1)*(x+y))+c elseif @opz==3 z=((x1+y1)/(x+y))+c endif elseif @opc==1 if @opz==0 z=((x1+y1)+(x+y))-c elseif @opz==1 z=((x1+y1)-(x+y))-c elseif @opz==2 z=((x1+y1)*(x+y))-c elseif @opz==3 z=((x1+y1)/(x+y))-c endif elseif @opc==2 if @opz==0 z=((x1+y1)+(x+y))*c elseif @opz==1 z=((x1+y1)-(x+y))*c elseif @opz==2 z=((x1+y1)*(x+y))*c elseif @opz==3 z=((x1+y1)/(x+y))*c endif elseif @opc==3 if @opz==0 z=((x1+y1)+(x+y))/c elseif @opz==1 z=((x1+y1)-(x+y))/c elseif @opz==2 z=((x1+y1)*(x+y))/c elseif @opz==3 z=((x1+y1)/(x+y))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((x1-y1)+(x+y))+c elseif @opz==1 z=((x1-y1)-(x+y))+c elseif @opz==2 z=((x1-y1)*(x+y))+c elseif @opz==3 z=((x1-y1)/(x+y))+c endif elseif @opc==1 if @opz==0 z=((x1-y1)+(x+y))-c elseif @opz==1 z=((x1-y1)-(x+y))-c elseif @opz==2 z=((x1-y1)*(x+y))-c elseif @opz==3 z=((x1-y1)/(x+y))-c endif elseif @opc==2 if @opz==0 z=((x1-y1)+(x+y))*c elseif @opz==1 z=((x1-y1)-(x+y))*c elseif @opz==2 z=((x1-y1)*(x+y))*c elseif @opz==3 z=((x1-y1)/(x+y))*c endif elseif @opc==3 if @opz==0 z=((x1-y1)+(x+y))/c elseif @opz==1 z=((x1-y1)-(x+y))/c elseif @opz==2 z=((x1-y1)*(x+y))/c elseif @opz==3 z=((x1-y1)/(x+y))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((x1*y1)+(x+y))+c elseif @opz==1 z=((x1*y1)-(x+y))+c elseif @opz==2 z=((x1*y1)*(x+y))+c elseif @opz==3 z=((x1*y1)/(x+y))+c endif elseif @opc==1 if @opz==0 z=((x1*y1)+(x+y))-c elseif @opz==1 z=((x1*y1)-(x+y))-c elseif @opz==2 z=((x1*y1)*(x+y))-c elseif @opz==3 z=((x1*y1)/(x+y))-c endif elseif @opc==2 if @opz==0 z=((x1*y1)+(x+y))*c elseif @opz==1 z=((x1*y1)-(x+y))*c elseif @opz==2 z=((x1*y1)*(x+y))*c elseif @opz==3 z=((x1*y1)/(x+y))*c endif elseif @opc==3 if @opz==0 z=((x1*y1)+(x+y))/c elseif @opz==1 z=((x1*y1)-(x+y))/c elseif @opz==2 z=((x1*y1)*(x+y))/c elseif @opz==3 z=((x1*y1)/(x+y))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((x1/y1)+(x+y))+c elseif @opz==1 z=((x1/y1)-(x+y))+c elseif @opz==2 z=((x1/y1)*(x+y))+c elseif @opz==3 z=((x1/y1)/(x+y))+c endif elseif @opc==1 if @opz==0 z=((x1/y1)+(x+y))-c elseif @opz==1 z=((x1/y1)-(x+y))-c elseif @opz==2 z=((x1/y1)*(x+y))-c elseif @opz==3 z=((x1/y1)/(x+y))-c endif elseif @opc==2 if @opz==0 z=((x1/y1)+(x+y))*c elseif @opz==1 z=((x1/y1)-(x+y))*c elseif @opz==2 z=((x1/y1)*(x+y))*c elseif @opz==3 z=((x1/y1)/(x+y))*c endif elseif @opc==3 if @opz==0 z=((x1/y1)+(x+y))/c elseif @opz==1 z=((x1/y1)-(x+y))/c elseif @opz==2 z=((x1/y1)*(x+y))/c elseif @opz==3 z=((x1/y1)/(x+y))/c endif endif endif elseif @opyy1==1 if @opxx1==0 if @opc==0 if @opz==0 z=((x1+y1)+(x-y))+c elseif @opz==1 z=((x1+y1)-(x-y))+c elseif @opz==2 z=((x1+y1)*(x-y))+c elseif @opz==3 z=((x1+y1)/(x-y))+c endif elseif @opc==1 if @opz==0 z=((x1+y1)+(x-y))-c elseif @opz==1 z=((x1+y1)-(x-y))-c elseif @opz==2 z=((x1+y1)*(x-y))-c elseif @opz==3 z=((x1+y1)/(x-y))-c endif elseif @opc==2 if @opz==0 z=((x1+y1)+(x-y))*c elseif @opz==1 z=((x1+y1)-(x-y))*c elseif @opz==2 z=((x1+y1)*(x-y))*c elseif @opz==3 z=((x1+y1)/(x-y))*c endif elseif @opc==3 if @opz==0 z=((x1+y1)+(x-y))/c elseif @opz==1 z=((x1+y1)-(x-y))/c elseif @opz==2 z=((x1+y1)*(x-y))/c elseif @opz==3 z=((x1+y1)/(x-y))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((x1-y1)+(x-y))+c elseif @opz==1 z=((x1-y1)-(x-y))+c elseif @opz==2 z=((x1-y1)*(x-y))+c elseif @opz==3 z=((x1-y1)/(x-y))+c endif elseif @opc==1 if @opz==0 z=((x1-y1)+(x-y))-c elseif @opz==1 z=((x1-y1)-(x-y))-c elseif @opz==2 z=((x1-y1)*(x-y))-c elseif @opz==3 z=((x1-y1)/(x-y))-c endif elseif @opc==2 if @opz==0 z=((x1-y1)+(x-y))*c elseif @opz==1 z=((x1-y1)-(x-y))*c elseif @opz==2 z=((x1-y1)*(x-y))*c elseif @opz==3 z=((x1-y1)/(x-y))*c endif elseif @opc==3 if @opz==0 z=((x1-y1)+(x-y))/c elseif @opz==1 z=((x1-y1)-(x-y))/c elseif @opz==2 z=((x1-y1)*(x-y))/c elseif @opz==3 z=((x1-y1)/(x-y))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((x1*y1)+(x-y))+c elseif @opz==1 z=((x1*y1)-(x-y))+c elseif @opz==2 z=((x1*y1)*(x-y))+c elseif @opz==3 z=((x1*y1)/(x-y))+c endif elseif @opc==1 if @opz==0 z=((x1*y1)+(x-y))-c elseif @opz==1 z=((x1*y1)-(x-y))-c elseif @opz==2 z=((x1*y1)*(x-y))-c elseif @opz==3 z=((x1*y1)/(x-y))-c endif elseif @opc==2 if @opz==0 z=((x1*y1)+(x-y))*c elseif @opz==1 z=((x1*y1)-(x-y))*c elseif @opz==2 z=((x1*y1)*(x-y))*c elseif @opz==3 z=((x1*y1)/(x-y))*c endif elseif @opc==3 if @opz==0 z=((x1*y1)+(x-y))/c elseif @opz==1 z=((x1*y1)-(x-y))/c elseif @opz==2 z=((x1*y1)*(x-y))/c elseif @opz==3 z=((x1*y1)/(x-y))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((x1/y1)+(x-y))+c elseif @opz==1 z=((x1/y1)-(x-y))+c elseif @opz==2 z=((x1/y1)*(x-y))+c elseif @opz==3 z=((x1/y1)/(x-y))+c endif elseif @opc==1 if @opz==0 z=((x1/y1)+(x-y))-c elseif @opz==1 z=((x1/y1)-(x-y))-c elseif @opz==2 z=((x1/y1)*(x-y))-c elseif @opz==3 z=((x1/y1)/(x-y))-c endif elseif @opc==2 if @opz==0 z=((x1/y1)+(x-y))*c elseif @opz==1 z=((x1/y1)-(x-y))*c elseif @opz==2 z=((x1/y1)*(x-y))*c elseif @opz==3 z=((x1/y1)/(x-y))*c endif elseif @opc==3 if @opz==0 z=((x1/y1)+(x-y))/c elseif @opz==1 z=((x1/y1)-(x-y))/c elseif @opz==2 z=((x1/y1)*(x-y))/c elseif @opz==3 z=((x1/y1)/(x-y))/c endif endif endif elseif @opyy1==2 if @opxx1==0 if @opc==0 if @opz==0 z=((x1+y1)+(x*y))+c elseif @opz==1 z=((x1+y1)-(x*y))+c elseif @opz==2 z=((x1+y1)*(x*y))+c elseif @opz==3 z=((x1+y1)/(x*y))+c endif elseif @opc==1 if @opz==0 z=((x1+y1)+(x*y))-c elseif @opz==1 z=((x1+y1)-(x*y))-c elseif @opz==2 z=((x1+y1)*(x*y))-c elseif @opz==3 z=((x1+y1)/(x*y))-c endif elseif @opc==2 if @opz==0 z=((x1+y1)+(x*y))*c elseif @opz==1 z=((x1+y1)-(x*y))*c elseif @opz==2 z=((x1+y1)*(x*y))*c elseif @opz==3 z=((x1+y1)/(x*y))*c endif elseif @opc==3 if @opz==0 z=((x1+y1)+(x*y))/c elseif @opz==1 z=((x1+y1)-(x*y))/c elseif @opz==2 z=((x1+y1)*(x*y))/c elseif @opz==3 z=((x1+y1)/(x*y))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((x1-y1)+(x*y))+c elseif @opz==1 z=((x1-y1)-(x*y))+c elseif @opz==2 z=((x1-y1)*(x*y))+c elseif @opz==3 z=((x1-y1)/(x*y))+c endif elseif @opc==1 if @opz==0 z=((x1-y1)+(x*y))-c elseif @opz==1 z=((x1-y1)-(x*y))-c elseif @opz==2 z=((x1-y1)*(x*y))-c elseif @opz==3 z=((x1-y1)/(x*y))-c endif elseif @opc==2 if @opz==0 z=((x1-y1)+(x*y))*c elseif @opz==1 z=((x1-y1)-(x*y))*c elseif @opz==2 z=((x1-y1)*(x*y))*c elseif @opz==3 z=((x1-y1)/(x*y))*c endif elseif @opc==3 if @opz==0 z=((x1-y1)+(x*y))/c elseif @opz==1 z=((x1-y1)-(x*y))/c elseif @opz==2 z=((x1-y1)*(x*y))/c elseif @opz==3 z=((x1-y1)/(x*y))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((x1*y1)+(x*y))+c elseif @opz==1 z=((x1*y1)-(x*y))+c elseif @opz==2 z=((x1*y1)*(x*y))+c elseif @opz==3 z=((x1*y1)/(x*y))+c endif elseif @opc==1 if @opz==0 z=((x1*y1)+(x*y))-c elseif @opz==1 z=((x1*y1)-(x*y))-c elseif @opz==2 z=((x1*y1)*(x*y))-c elseif @opz==3 z=((x1*y1)/(x*y))-c endif elseif @opc==2 if @opz==0 z=((x1*y1)+(x*y))*c elseif @opz==1 z=((x1*y1)-(x*y))*c elseif @opz==2 z=((x1*y1)*(x*y))*c elseif @opz==3 z=((x1*y1)/(x*y))*c endif elseif @opc==3 if @opz==0 z=((x1*y1)+(x*y))/c elseif @opz==1 z=((x1*y1)-(x*y))/c elseif @opz==2 z=((x1*y1)*(x*y))/c elseif @opz==3 z=((x1*y1)/(x*y))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((x1/y1)+(x*y))+c elseif @opz==1 z=((x1/y1)-(x*y))+c elseif @opz==2 z=((x1/y1)*(x*y))+c elseif @opz==3 z=((x1/y1)/(x*y))+c endif elseif @opc==1 if @opz==0 z=((x1/y1)+(x*y))-c elseif @opz==1 z=((x1/y1)-(x*y))-c elseif @opz==2 z=((x1/y1)*(x*y))-c elseif @opz==3 z=((x1/y1)/(x*y))-c endif elseif @opc==2 if @opz==0 z=((x1/y1)+(x*y))*c elseif @opz==1 z=((x1/y1)-(x*y))*c elseif @opz==2 z=((x1/y1)*(x*y))*c elseif @opz==3 z=((x1/y1)/(x*y))*c endif elseif @opc==3 if @opz==0 z=((x1/y1)+(x*y))/c elseif @opz==1 z=((x1/y1)-(x*y))/c elseif @opz==2 z=((x1/y1)*(x*y))/c elseif @opz==3 z=((x1/y1)/(x*y))/c endif endif endif elseif @opyy1==3 if @opxx1==0 if @opc==0 if @opz==0 z=((x1+y1)+(x/y))+c elseif @opz==1 z=((x1+y1)-(x/y))+c elseif @opz==2 z=((x1+y1)*(x/y))+c elseif @opz==3 z=((x1+y1)/(x/y))+c endif elseif @opc==1 if @opz==0 z=((x1+y1)+(x/y))-c elseif @opz==1 z=((x1+y1)-(x/y))-c elseif @opz==2 z=((x1+y1)*(x/y))-c elseif @opz==3 z=((x1+y1)/(x/y))-c endif elseif @opc==2 if @opz==0 z=((x1+y1)+(x/y))*c elseif @opz==1 z=((x1+y1)-(x/y))*c elseif @opz==2 z=((x1+y1)*(x/y))*c elseif @opz==3 z=((x1+y1)/(x/y))*c endif elseif @opc==3 if @opz==0 z=((x1+y1)+(x/y))/c elseif @opz==1 z=((x1+y1)-(x/y))/c elseif @opz==2 z=((x1+y1)*(x/y))/c elseif @opz==3 z=((x1+y1)/(x/y))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((x1-y1)+(x/y))+c elseif @opz==1 z=((x1-y1)-(x/y))+c elseif @opz==2 z=((x1-y1)*(x/y))+c elseif @opz==3 z=((x1-y1)/(x/y))+c endif elseif @opc==1 if @opz==0 z=((x1-y1)+(x/y))-c elseif @opz==1 z=((x1-y1)-(x/y))-c elseif @opz==2 z=((x1-y1)*(x/y))-c elseif @opz==3 z=((x1-y1)/(x/y))-c endif elseif @opc==2 if @opz==0 z=((x1-y1)+(x/y))*c elseif @opz==1 z=((x1-y1)-(x/y))*c elseif @opz==2 z=((x1-y1)*(x/y))*c elseif @opz==3 z=((x1-y1)/(x/y))*c endif elseif @opc==3 if @opz==0 z=((x1-y1)+(x/y))/c elseif @opz==1 z=((x1-y1)-(x/y))/c elseif @opz==2 z=((x1-y1)*(x/y))/c elseif @opz==3 z=((x1-y1)/(x/y))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((x1*y1)+(x/y))+c elseif @opz==1 z=((x1*y1)-(x/y))+c elseif @opz==2 z=((x1*y1)*(x/y))+c elseif @opz==3 z=((x1*y1)/(x/y))+c endif elseif @opc==1 if @opz==0 z=((x1*y1)+(x/y))-c elseif @opz==1 z=((x1*y1)-(x/y))-c elseif @opz==2 z=((x1*y1)*(x/y))-c elseif @opz==3 z=((x1*y1)/(x/y))-c endif elseif @opc==2 if @opz==0 z=((x1*y1)+(x/y))*c elseif @opz==1 z=((x1*y1)-(x/y))*c elseif @opz==2 z=((x1*y1)*(x/y))*c elseif @opz==3 z=((x1*y1)/(x/y))*c endif elseif @opc==3 if @opz==0 z=((x1*y1)+(x/y))/c elseif @opz==1 z=((x1*y1)-(x/y))/c elseif @opz==2 z=((x1*y1)*(x/y))/c elseif @opz==3 z=((x1*y1)/(x/y))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((x1/y1)+(x/y))+c elseif @opz==1 z=((x1/y1)-(x/y))+c elseif @opz==2 z=((x1/y1)*(x/y))+c elseif @opz==3 z=((x1/y1)/(x/y))+c endif elseif @opc==1 if @opz==0 z=((x1/y1)+(x/y))-c elseif @opz==1 z=((x1/y1)-(x/y))-c elseif @opz==2 z=((x1/y1)*(x/y))-c elseif @opz==3 z=((x1/y1)/(x/y))-c endif elseif @opc==2 if @opz==0 z=((x1/y1)+(x/y))*c elseif @opz==1 z=((x1/y1)-(x/y))*c elseif @opz==2 z=((x1/y1)*(x/y))*c elseif @opz==3 z=((x1/y1)/(x/y))*c endif elseif @opc==3 if @opz==0 z=((x1/y1)+(x/y))/c elseif @opz==1 z=((x1/y1)-(x/y))/c elseif @opz==2 z=((x1/y1)*(x/y))/c elseif @opz==3 z=((x1/y1)/(x/y))/c endif endif endif endif elseif @SelectResult==4 if @opyy1==0 if @opxx1==0 if @opc==0 if @opz==0 z=((y+x)+(y1+x1))+c elseif @opz==1 z=((y+x)-(y1+x1))+c elseif @opz==2 z=((y+x)*(y1+x1))+c elseif @opz==3 z=((y+x)/(y1+x1))+c endif elseif @opc==1 if @opz==0 z=((y+x)+(y1+x1))-c elseif @opz==1 z=((y+x)-(y1+x1))-c elseif @opz==2 z=((y+x)*(y1+x1))-c elseif @opz==3 z=((y+x)/(y1+x1))-c endif elseif @opc==2 if @opz==0 z=((y+x)+(y1+x1))*c elseif @opz==1 z=((y+x)-(y1+x1))*c elseif @opz==2 z=((y+x)*(y1+x1))*c elseif @opz==3 z=((y+x)/(y1+x1))*c endif elseif @opc==3 if @opz==0 z=((y+x)+(y1+x1))/c elseif @opz==1 z=((y+x)-(y1+x1))/c elseif @opz==2 z=((y+x)*(y1+x1))/c elseif @opz==3 z=((y+x)/(y1+x1))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((y-x)+(y1+x1))+c elseif @opz==1 z=((y-x)-(y1+x1))+c elseif @opz==2 z=((y-x)*(y1+x1))+c elseif @opz==3 z=((y-x)/(y1+x1))+c endif elseif @opc==1 if @opz==0 z=((y-x)+(y1+x1))-c elseif @opz==1 z=((y-x)-(y1+x1))-c elseif @opz==2 z=((y-x)*(y1+x1))-c elseif @opz==3 z=((y-x)/(y1+x1))-c endif elseif @opc==2 if @opz==0 z=((y-x)+(y1+x1))*c elseif @opz==1 z=((y-x)-(y1+x1))*c elseif @opz==2 z=((y-x)*(y1+x1))*c elseif @opz==3 z=((y-x)/(y1+x1))*c endif elseif @opc==3 if @opz==0 z=((y-x)+(y1+x1))/c elseif @opz==1 z=((y-x)-(y1+x1))/c elseif @opz==2 z=((y-x)*(y1+x1))/c elseif @opz==3 z=((y-x)/(y1+x1))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((y*x)+(y1+x1))+c elseif @opz==1 z=((y*x)-(y1+x1))+c elseif @opz==2 z=((y*x)*(y1+x1))+c elseif @opz==3 z=((y*x)/(y1+x1))+c endif elseif @opc==1 if @opz==0 z=((y*x)+(y1+x1))-c elseif @opz==1 z=((y*x)-(y1+x1))-c elseif @opz==2 z=((y*x)*(y1+x1))-c elseif @opz==3 z=((y*x)/(y1+x1))-c endif elseif @opc==2 if @opz==0 z=((y*x)+(y1+x1))*c elseif @opz==1 z=((y*x)-(y1+x1))*c elseif @opz==2 z=((y*x)*(y1+x1))*c elseif @opz==3 z=((y*x)/(y1+x1))*c endif elseif @opc==3 if @opz==0 z=((y*x)+(y1+x1))/c elseif @opz==1 z=((y*x)-(y1+x1))/c elseif @opz==2 z=((y*x)*(y1+x1))/c elseif @opz==3 z=((y*x)/(y1+x1))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((y/x)+(y1+x1))+c elseif @opz==1 z=((y/x)-(y1+x1))+c elseif @opz==2 z=((y/x)*(y1+x1))+c elseif @opz==3 z=((y/x)/(y1+x1))+c endif elseif @opc==1 if @opz==0 z=((y/x)+(y1+x1))-c elseif @opz==1 z=((y/x)-(y1+x1))-c elseif @opz==2 z=((y/x)*(y1+x1))-c elseif @opz==3 z=((y/x)/(y1+x1))-c endif elseif @opc==2 if @opz==0 z=((y/x)+(y1+x1))*c elseif @opz==1 z=((y/x)-(y1+x1))*c elseif @opz==2 z=((y/x)*(y1+x1))*c elseif @opz==3 z=((y/x)/(y1+x1))*c endif elseif @opc==3 if @opz==0 z=((y/x)+(y1+x1))/c elseif @opz==1 z=((y/x)-(y1+x1))/c elseif @opz==2 z=((y/x)*(y1+x1))/c elseif @opz==3 z=((y/x)/(y1+x1))/c endif endif endif elseif @opyy1==1 if @opxx1==0 if @opc==0 if @opz==0 z=((y+x)+(y1-x1))+c elseif @opz==1 z=((y+x)-(y1-x1))+c elseif @opz==2 z=((y+x)*(y1-x1))+c elseif @opz==3 z=((y+x)/(y1-x1))+c endif elseif @opc==1 if @opz==0 z=((y+x)+(y1-x1))-c elseif @opz==1 z=((y+x)-(y1-x1))-c elseif @opz==2 z=((y+x)*(y1-x1))-c elseif @opz==3 z=((y+x)/(y1-x1))-c endif elseif @opc==2 if @opz==0 z=((y+x)+(y1-x1))*c elseif @opz==1 z=((y+x)-(y1-x1))*c elseif @opz==2 z=((y+x)*(y1-x1))*c elseif @opz==3 z=((y+x)/(y1-x1))*c endif elseif @opc==3 if @opz==0 z=((y+x)+(y1-x1))/c elseif @opz==1 z=((y+x)-(y1-x1))/c elseif @opz==2 z=((y+x)*(y1-x1))/c elseif @opz==3 z=((y+x)/(y1-x1))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((y-x)+(y1-x1))+c elseif @opz==1 z=((y-x)-(y1-x1))+c elseif @opz==2 z=((y-x)*(y1-x1))+c elseif @opz==3 z=((y-x)/(y1-x1))+c endif elseif @opc==1 if @opz==0 z=((y-x)+(y1-x1))-c elseif @opz==1 z=((y-x)-(y1-x1))-c elseif @opz==2 z=((y-x)*(y1-x1))-c elseif @opz==3 z=((y-x)/(y1-x1))-c endif elseif @opc==2 if @opz==0 z=((y-x)+(y1-x1))*c elseif @opz==1 z=((y-x)-(y1-x1))*c elseif @opz==2 z=((y-x)*(y1-x1))*c elseif @opz==3 z=((y-x)/(y1-x1))*c endif elseif @opc==3 if @opz==0 z=((y-x)+(y1-x1))/c elseif @opz==1 z=((y-x)-(y1-x1))/c elseif @opz==2 z=((y-x)*(y1-x1))/c elseif @opz==3 z=((y-x)/(y1-x1))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((y*x)+(y1-x1))+c elseif @opz==1 z=((y*x)-(y1-x1))+c elseif @opz==2 z=((y*x)*(y1-x1))+c elseif @opz==3 z=((y*x)/(y1-x1))+c endif elseif @opc==1 if @opz==0 z=((y*x)+(y1-x1))-c elseif @opz==1 z=((y*x)-(y1-x1))-c elseif @opz==2 z=((y*x)*(y1-x1))-c elseif @opz==3 z=((y*x)/(y1-x1))-c endif elseif @opc==2 if @opz==0 z=((y*x)+(y1-x1))*c elseif @opz==1 z=((y*x)-(y1-x1))*c elseif @opz==2 z=((y*x)*(y1-x1))*c elseif @opz==3 z=((y*x)/(y1-x1))*c endif elseif @opc==3 if @opz==0 z=((y*x)+(y1-x1))/c elseif @opz==1 z=((y*x)-(y1-x1))/c elseif @opz==2 z=((y*x)*(y1-x1))/c elseif @opz==3 z=((y*x)/(y1-x1))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((y/x)+(y1-x1))+c elseif @opz==1 z=((y/x)-(y1-x1))+c elseif @opz==2 z=((y/x)*(y1-x1))+c elseif @opz==3 z=((y/x)/(y1-x1))+c endif elseif @opc==1 if @opz==0 z=((y/x)+(y1-x1))-c elseif @opz==1 z=((y/x)-(y1-x1))-c elseif @opz==2 z=((y/x)*(y1-x1))-c elseif @opz==3 z=((y/x)/(y1-x1))-c endif elseif @opc==2 if @opz==0 z=((y/x)+(y1-x1))*c elseif @opz==1 z=((y/x)-(y1-x1))*c elseif @opz==2 z=((y/x)*(y1-x1))*c elseif @opz==3 z=((y/x)/(y1-x1))*c endif elseif @opc==3 if @opz==0 z=((y/x)+(y1-x1))/c elseif @opz==1 z=((y/x)-(y1-x1))/c elseif @opz==2 z=((y/x)*(y1-x1))/c elseif @opz==3 z=((y/x)/(y1-x1))/c endif endif endif elseif @opyy1==2 if @opxx1==0 if @opc==0 if @opz==0 z=((y+x)+(y1*x1))+c elseif @opz==1 z=((y+x)-(y1*x1))+c elseif @opz==2 z=((y+x)*(y1*x1))+c elseif @opz==3 z=((y+x)/(y1*x1))+c endif elseif @opc==1 if @opz==0 z=((y+x)+(y1*x1))-c elseif @opz==1 z=((y+x)-(y1*x1))-c elseif @opz==2 z=((y+x)*(y1*x1))-c elseif @opz==3 z=((y+x)/(y1*x1))-c endif elseif @opc==2 if @opz==0 z=((y+x)+(y1*x1))*c elseif @opz==1 z=((y+x)-(y1*x1))*c elseif @opz==2 z=((y+x)*(y1*x1))*c elseif @opz==3 z=((y+x)/(y1*x1))*c endif elseif @opc==3 if @opz==0 z=((y+x)+(y1*x1))/c elseif @opz==1 z=((y+x)-(y1*x1))/c elseif @opz==2 z=((y+x)*(y1*x1))/c elseif @opz==3 z=((y+x)/(y1*x1))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((y-x)+(y1*x1))+c elseif @opz==1 z=((y-x)-(y1*x1))+c elseif @opz==2 z=((y-x)*(y1*x1))+c elseif @opz==3 z=((y-x)/(y1*x1))+c endif elseif @opc==1 if @opz==0 z=((y-x)+(y1*x1))-c elseif @opz==1 z=((y-x)-(y1*x1))-c elseif @opz==2 z=((y-x)*(y1*x1))-c elseif @opz==3 z=((y-x)/(y1*x1))-c endif elseif @opc==2 if @opz==0 z=((y-x)+(y1*x1))*c elseif @opz==1 z=((y-x)-(y1*x1))*c elseif @opz==2 z=((y-x)*(y1*x1))*c elseif @opz==3 z=((y-x)/(y1*x1))*c endif elseif @opc==3 if @opz==0 z=((y-x)+(y1*x1))/c elseif @opz==1 z=((y-x)-(y1*x1))/c elseif @opz==2 z=((y-x)*(y1*x1))/c elseif @opz==3 z=((y-x)/(y1*x1))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((y*x)+(y1*x1))+c elseif @opz==1 z=((y*x)-(y1*x1))+c elseif @opz==2 z=((y*x)*(y1*x1))+c elseif @opz==3 z=((y*x)/(y1*x1))+c endif elseif @opc==1 if @opz==0 z=((y*x)+(y1*x1))-c elseif @opz==1 z=((y*x)-(y1*x1))-c elseif @opz==2 z=((y*x)*(y1*x1))-c elseif @opz==3 z=((y*x)/(y1*x1))-c endif elseif @opc==2 if @opz==0 z=((y*x)+(y1*x1))*c elseif @opz==1 z=((y*x)-(y1*x1))*c elseif @opz==2 z=((y*x)*(y1*x1))*c elseif @opz==3 z=((y*x)/(y1*x1))*c endif elseif @opc==3 if @opz==0 z=((y*x)+(y1*x1))/c elseif @opz==1 z=((y*x)-(y1*x1))/c elseif @opz==2 z=((y*x)*(y1*x1))/c elseif @opz==3 z=((y*x)/(y1*x1))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((y/x)+(y1*x1))+c elseif @opz==1 z=((y/x)-(y1*x1))+c elseif @opz==2 z=((y/x)*(y1*x1))+c elseif @opz==3 z=((y/x)/(y1*x1))+c endif elseif @opc==1 if @opz==0 z=((y/x)+(y1*x1))-c elseif @opz==1 z=((y/x)-(y1*x1))-c elseif @opz==2 z=((y/x)*(y1*x1))-c elseif @opz==3 z=((y/x)/(y1*x1))-c endif elseif @opc==2 if @opz==0 z=((y/x)+(y1*x1))*c elseif @opz==1 z=((y/x)-(y1*x1))*c elseif @opz==2 z=((y/x)*(y1*x1))*c elseif @opz==3 z=((y/x)/(y1*x1))*c endif elseif @opc==3 if @opz==0 z=((y/x)+(y1*x1))/c elseif @opz==1 z=((y/x)-(y1*x1))/c elseif @opz==2 z=((y/x)*(y1*x1))/c elseif @opz==3 z=((y/x)/(y1*x1))/c endif endif endif elseif @opyy1==3 if @opxx1==0 if @opc==0 if @opz==0 z=((y+x)+(y1/x1))+c elseif @opz==1 z=((y+x)-(y1/x1))+c elseif @opz==2 z=((y+x)*(y1/x1))+c elseif @opz==3 z=((y+x)/(y1/x1))+c endif elseif @opc==1 if @opz==0 z=((y+x)+(y1/x1))-c elseif @opz==1 z=((y+x)-(y1/x1))-c elseif @opz==2 z=((y+x)*(y1/x1))-c elseif @opz==3 z=((y+x)/(y1/x1))-c endif elseif @opc==2 if @opz==0 z=((y+x)+(y1/x1))*c elseif @opz==1 z=((y+x)-(y1/x1))*c elseif @opz==2 z=((y+x)*(y1/x1))*c elseif @opz==3 z=((y+x)/(y1/x1))*c endif elseif @opc==3 if @opz==0 z=((y+x)+(y1/x1))/c elseif @opz==1 z=((y+x)-(y1/x1))/c elseif @opz==2 z=((y+x)*(y1/x1))/c elseif @opz==3 z=((y+x)/(y1/x1))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((y-x)+(y1/x1))+c elseif @opz==1 z=((y-x)-(y1/x1))+c elseif @opz==2 z=((y-x)*(y1/x1))+c elseif @opz==3 z=((y-x)/(y1/x1))+c endif elseif @opc==1 if @opz==0 z=((y-x)+(y1/x1))-c elseif @opz==1 z=((y-x)-(y1/x1))-c elseif @opz==2 z=((y-x)*(y1/x1))-c elseif @opz==3 z=((y-x)/(y1/x1))-c endif elseif @opc==2 if @opz==0 z=((y-x)+(y1/x1))*c elseif @opz==1 z=((y-x)-(y1/x1))*c elseif @opz==2 z=((y-x)*(y1/x1))*c elseif @opz==3 z=((y-x)/(y1/x1))*c endif elseif @opc==3 if @opz==0 z=((y-x)+(y1/x1))/c elseif @opz==1 z=((y-x)-(y1/x1))/c elseif @opz==2 z=((y-x)*(y1/x1))/c elseif @opz==3 z=((y-x)/(y1/x1))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((y*x)+(y1/x1))+c elseif @opz==1 z=((y*x)-(y1/x1))+c elseif @opz==2 z=((y*x)*(y1/x1))+c elseif @opz==3 z=((y*x)/(y1/x1))+c endif elseif @opc==1 if @opz==0 z=((y*x)+(y1/x1))-c elseif @opz==1 z=((y*x)-(y1/x1))-c elseif @opz==2 z=((y*x)*(y1/x1))-c elseif @opz==3 z=((y*x)/(y1/x1))-c endif elseif @opc==2 if @opz==0 z=((y*x)+(y1/x1))*c elseif @opz==1 z=((y*x)-(y1/x1))*c elseif @opz==2 z=((y*x)*(y1/x1))*c elseif @opz==3 z=((y*x)/(y1/x1))*c endif elseif @opc==3 if @opz==0 z=((y*x)+(y1/x1))/c elseif @opz==1 z=((y*x)-(y1/x1))/c elseif @opz==2 z=((y*x)*(y1/x1))/c elseif @opz==3 z=((y*x)/(y1/x1))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((y/x)+(y1/x1))+c elseif @opz==1 z=((y/x)-(y1/x1))+c elseif @opz==2 z=((y/x)*(y1/x1))+c elseif @opz==3 z=((y/x)/(y1/x1))+c endif elseif @opc==1 if @opz==0 z=((y/x)+(y1/x1))-c elseif @opz==1 z=((y/x)-(y1/x1))-c elseif @opz==2 z=((y/x)*(y1/x1))-c elseif @opz==3 z=((y/x)/(y1/x1))-c endif elseif @opc==2 if @opz==0 z=((y/x)+(y1/x1))*c elseif @opz==1 z=((y/x)-(y1/x1))*c elseif @opz==2 z=((y/x)*(y1/x1))*c elseif @opz==3 z=((y/x)/(y1/x1))*c endif elseif @opc==3 if @opz==0 z=((y/x)+(y1/x1))/c elseif @opz==1 z=((y/x)-(y1/x1))/c elseif @opz==2 z=((y/x)*(y1/x1))/c elseif @opz==3 z=((y/x)/(y1/x1))/c endif endif endif endif elseif @SelectResult==5 if @opyy1==0 if @opxx1==0 if @opc==0 if @opz==0 z=((y1+x)+(y+x1))+c elseif @opz==1 z=((y1+x)-(y+x1))+c elseif @opz==2 z=((y1+x)*(y+x1))+c elseif @opz==3 z=((y1+x)/(y+x1))+c endif elseif @opc==1 if @opz==0 z=((y1+x)+(y+x1))-c elseif @opz==1 z=((y1+x)-(y+x1))-c elseif @opz==2 z=((y1+x)*(y+x1))-c elseif @opz==3 z=((y1+x)/(y+x1))-c endif elseif @opc==2 if @opz==0 z=((y1+x)+(y+x1))*c elseif @opz==1 z=((y1+x)-(y+x1))*c elseif @opz==2 z=((y1+x)*(y+x1))*c elseif @opz==3 z=((y1+x)/(y+x1))*c endif elseif @opc==3 if @opz==0 z=((y1+x)+(y+x1))/c elseif @opz==1 z=((y1+x)-(y+x1))/c elseif @opz==2 z=((y1+x)*(y+x1))/c elseif @opz==3 z=((y1+x)/(y+x1))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((y1-x)+(y+x1))+c elseif @opz==1 z=((y1-x)-(y+x1))+c elseif @opz==2 z=((y1-x)*(y+x1))+c elseif @opz==3 z=((y1-x)/(y+x1))+c endif elseif @opc==1 if @opz==0 z=((y1-x)+(y+x1))-c elseif @opz==1 z=((y1-x)-(y+x1))-c elseif @opz==2 z=((y1-x)*(y+x1))-c elseif @opz==3 z=((y1-x)/(y+x1))-c endif elseif @opc==2 if @opz==0 z=((y1-x)+(y+x1))*c elseif @opz==1 z=((y1-x)-(y+x1))*c elseif @opz==2 z=((y1-x)*(y+x1))*c elseif @opz==3 z=((y1-x)/(y+x1))*c endif elseif @opc==3 if @opz==0 z=((y1-x)+(y+x1))/c elseif @opz==1 z=((y1-x)-(y+x1))/c elseif @opz==2 z=((y1-x)*(y+x1))/c elseif @opz==3 z=((y1-x)/(y+x1))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((y1*x)+(y+x1))+c elseif @opz==1 z=((y1*x)-(y+x1))+c elseif @opz==2 z=((y1*x)*(y+x1))+c elseif @opz==3 z=((y1*x)/(y+x1))+c endif elseif @opc==1 if @opz==0 z=((y1*x)+(y+x1))-c elseif @opz==1 z=((y1*x)-(y+x1))-c elseif @opz==2 z=((y1*x)*(y+x1))-c elseif @opz==3 z=((y1*x)/(y+x1))-c endif elseif @opc==2 if @opz==0 z=((y1*x)+(y+x1))*c elseif @opz==1 z=((y1*x)-(y+x1))*c elseif @opz==2 z=((y1*x)*(y+x1))*c elseif @opz==3 z=((y1*x)/(y+x1))*c endif elseif @opc==3 if @opz==0 z=((y1*x)+(y+x1))/c elseif @opz==1 z=((y1*x)-(y+x1))/c elseif @opz==2 z=((y1*x)*(y+x1))/c elseif @opz==3 z=((y1*x)/(y+x1))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((y1/x)+(y+x1))+c elseif @opz==1 z=((y1/x)-(y+x1))+c elseif @opz==2 z=((y1/x)*(y+x1))+c elseif @opz==3 z=((y1/x)/(y+x1))+c endif elseif @opc==1 if @opz==0 z=((y1/x)+(y+x1))-c elseif @opz==1 z=((y1/x)-(y+x1))-c elseif @opz==2 z=((y1/x)*(y+x1))-c elseif @opz==3 z=((y1/x)/(y+x1))-c endif elseif @opc==2 if @opz==0 z=((y1/x)+(y+x1))*c elseif @opz==1 z=((y1/x)-(y+x1))*c elseif @opz==2 z=((y1/x)*(y+x1))*c elseif @opz==3 z=((y1/x)/(y+x1))*c endif elseif @opc==3 if @opz==0 z=((y1/x)+(y+x1))/c elseif @opz==1 z=((y1/x)-(y+x1))/c elseif @opz==2 z=((y1/x)*(y+x1))/c elseif @opz==3 z=((y1/x)/(y+x1))/c endif endif endif elseif @opyy1==1 if @opxx1==0 if @opc==0 if @opz==0 z=((y1+x)+(y-x1))+c elseif @opz==1 z=((y1+x)-(y-x1))+c elseif @opz==2 z=((y1+x)*(y-x1))+c elseif @opz==3 z=((y1+x)/(y-x1))+c endif elseif @opc==1 if @opz==0 z=((y1+x)+(y-x1))-c elseif @opz==1 z=((y1+x)-(y-x1))-c elseif @opz==2 z=((y1+x)*(y-x1))-c elseif @opz==3 z=((y1+x)/(y-x1))-c endif elseif @opc==2 if @opz==0 z=((y1+x)+(y-x1))*c elseif @opz==1 z=((y1+x)-(y-x1))*c elseif @opz==2 z=((y1+x)*(y-x1))*c elseif @opz==3 z=((y1+x)/(y-x1))*c endif elseif @opc==3 if @opz==0 z=((y1+x)+(y-x1))/c elseif @opz==1 z=((y1+x)-(y-x1))/c elseif @opz==2 z=((y1+x)*(y-x1))/c elseif @opz==3 z=((y1+x)/(y-x1))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((y1-x)+(y-x1))+c elseif @opz==1 z=((y1-x)-(y-x1))+c elseif @opz==2 z=((y1-x)*(y-x1))+c elseif @opz==3 z=((y1-x)/(y-x1))+c endif elseif @opc==1 if @opz==0 z=((y1-x)+(y-x1))-c elseif @opz==1 z=((y1-x)-(y-x1))-c elseif @opz==2 z=((y1-x)*(y-x1))-c elseif @opz==3 z=((y1-x)/(y-x1))-c endif elseif @opc==2 if @opz==0 z=((y1-x)+(y-x1))*c elseif @opz==1 z=((y1-x)-(y-x1))*c elseif @opz==2 z=((y1-x)*(y-x1))*c elseif @opz==3 z=((y1-x)/(y-x1))*c endif elseif @opc==3 if @opz==0 z=((y1-x)+(y-x1))/c elseif @opz==1 z=((y1-x)-(y-x1))/c elseif @opz==2 z=((y1-x)*(y-x1))/c elseif @opz==3 z=((y1-x)/(y-x1))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((y1*x)+(y-x1))+c elseif @opz==1 z=((y1*x)-(y-x1))+c elseif @opz==2 z=((y1*x)*(y-x1))+c elseif @opz==3 z=((y1*x)/(y-x1))+c endif elseif @opc==1 if @opz==0 z=((y1*x)+(y-x1))-c elseif @opz==1 z=((y1*x)-(y-x1))-c elseif @opz==2 z=((y1*x)*(y-x1))-c elseif @opz==3 z=((y1*x)/(y-x1))-c endif elseif @opc==2 if @opz==0 z=((y1*x)+(y-x1))*c elseif @opz==1 z=((y1*x)-(y-x1))*c elseif @opz==2 z=((y1*x)*(y-x1))*c elseif @opz==3 z=((y1*x)/(y-x1))*c endif elseif @opc==3 if @opz==0 z=((y1*x)+(y-x1))/c elseif @opz==1 z=((y1*x)-(y-x1))/c elseif @opz==2 z=((y1*x)*(y-x1))/c elseif @opz==3 z=((y1*x)/(y-x1))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((y1/x)+(y-x1))+c elseif @opz==1 z=((y1/x)-(y-x1))+c elseif @opz==2 z=((y1/x)*(y-x1))+c elseif @opz==3 z=((y1/x)/(y-x1))+c endif elseif @opc==1 if @opz==0 z=((y1/x)+(y-x1))-c elseif @opz==1 z=((y1/x)-(y-x1))-c elseif @opz==2 z=((y1/x)*(y-x1))-c elseif @opz==3 z=((y1/x)/(y-x1))-c endif elseif @opc==2 if @opz==0 z=((y1/x)+(y-x1))*c elseif @opz==1 z=((y1/x)-(y-x1))*c elseif @opz==2 z=((y1/x)*(y-x1))*c elseif @opz==3 z=((y1/x)/(y-x1))*c endif elseif @opc==3 if @opz==0 z=((y1/x)+(y-x1))/c elseif @opz==1 z=((y1/x)-(y-x1))/c elseif @opz==2 z=((y1/x)*(y-x1))/c elseif @opz==3 z=((y1/x)/(y-x1))/c endif endif endif elseif @opyy1==2 if @opxx1==0 if @opc==0 if @opz==0 z=((y1+x)+(y*x1))+c elseif @opz==1 z=((y1+x)-(y*x1))+c elseif @opz==2 z=((y1+x)*(y*x1))+c elseif @opz==3 z=((y1+x)/(y*x1))+c endif elseif @opc==1 if @opz==0 z=((y1+x)+(y*x1))-c elseif @opz==1 z=((y1+x)-(y*x1))-c elseif @opz==2 z=((y1+x)*(y*x1))-c elseif @opz==3 z=((y1+x)/(y*x1))-c endif elseif @opc==2 if @opz==0 z=((y1+x)+(y*x1))*c elseif @opz==1 z=((y1+x)-(y*x1))*c elseif @opz==2 z=((y1+x)*(y*x1))*c elseif @opz==3 z=((y1+x)/(y*x1))*c endif elseif @opc==3 if @opz==0 z=((y1+x)+(y*x1))/c elseif @opz==1 z=((y1+x)-(y*x1))/c elseif @opz==2 z=((y1+x)*(y*x1))/c elseif @opz==3 z=((y1+x)/(y*x1))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((y1-x)+(y*x1))+c elseif @opz==1 z=((y1-x)-(y*x1))+c elseif @opz==2 z=((y1-x)*(y*x1))+c elseif @opz==3 z=((y1-x)/(y*x1))+c endif elseif @opc==1 if @opz==0 z=((y1-x)+(y*x1))-c elseif @opz==1 z=((y1-x)-(y*x1))-c elseif @opz==2 z=((y1-x)*(y*x1))-c elseif @opz==3 z=((y1-x)/(y*x1))-c endif elseif @opc==2 if @opz==0 z=((y1-x)+(y*x1))*c elseif @opz==1 z=((y1-x)-(y*x1))*c elseif @opz==2 z=((y1-x)*(y*x1))*c elseif @opz==3 z=((y1-x)/(y*x1))*c endif elseif @opc==3 if @opz==0 z=((y1-x)+(y*x1))/c elseif @opz==1 z=((y1-x)-(y*x1))/c elseif @opz==2 z=((y1-x)*(y*x1))/c elseif @opz==3 z=((y1-x)/(y*x1))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((y1*x)+(y*x1))+c elseif @opz==1 z=((y1*x)-(y*x1))+c elseif @opz==2 z=((y1*x)*(y*x1))+c elseif @opz==3 z=((y1*x)/(y*x1))+c endif elseif @opc==1 if @opz==0 z=((y1*x)+(y*x1))-c elseif @opz==1 z=((y1*x)-(y*x1))-c elseif @opz==2 z=((y1*x)*(y*x1))-c elseif @opz==3 z=((y1*x)/(y*x1))-c endif elseif @opc==2 if @opz==0 z=((y1*x)+(y*x1))*c elseif @opz==1 z=((y1*x)-(y*x1))*c elseif @opz==2 z=((y1*x)*(y*x1))*c elseif @opz==3 z=((y1*x)/(y*x1))*c endif elseif @opc==3 if @opz==0 z=((y1*x)+(y*x1))/c elseif @opz==1 z=((y1*x)-(y*x1))/c elseif @opz==2 z=((y1*x)*(y*x1))/c elseif @opz==3 z=((y1*x)/(y*x1))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((y1/x)+(y*x1))+c elseif @opz==1 z=((y1/x)-(y*x1))+c elseif @opz==2 z=((y1/x)*(y*x1))+c elseif @opz==3 z=((y1/x)/(y*x1))+c endif elseif @opc==1 if @opz==0 z=((y1/x)+(y*x1))-c elseif @opz==1 z=((y1/x)-(y*x1))-c elseif @opz==2 z=((y1/x)*(y*x1))-c elseif @opz==3 z=((y1/x)/(y*x1))-c endif elseif @opc==2 if @opz==0 z=((y1/x)+(y*x1))*c elseif @opz==1 z=((y1/x)-(y*x1))*c elseif @opz==2 z=((y1/x)*(y*x1))*c elseif @opz==3 z=((y1/x)/(y*x1))*c endif elseif @opc==3 if @opz==0 z=((y1/x)+(y*x1))/c elseif @opz==1 z=((y1/x)-(y*x1))/c elseif @opz==2 z=((y1/x)*(y*x1))/c elseif @opz==3 z=((y1/x)/(y*x1))/c endif endif endif elseif @opyy1==3 if @opxx1==0 if @opc==0 if @opz==0 z=((y1+x)+(y/x1))+c elseif @opz==1 z=((y1+x)-(y/x1))+c elseif @opz==2 z=((y1+x)*(y/x1))+c elseif @opz==3 z=((y1+x)/(y/x1))+c endif elseif @opc==1 if @opz==0 z=((y1+x)+(y/x1))-c elseif @opz==1 z=((y1+x)-(y/x1))-c elseif @opz==2 z=((y1+x)*(y/x1))-c elseif @opz==3 z=((y1+x)/(y/x1))-c endif elseif @opc==2 if @opz==0 z=((y1+x)+(y/x1))*c elseif @opz==1 z=((y1+x)-(y/x1))*c elseif @opz==2 z=((y1+x)*(y/x1))*c elseif @opz==3 z=((y1+x)/(y/x1))*c endif elseif @opc==3 if @opz==0 z=((y1+x)+(y/x1))/c elseif @opz==1 z=((y1+x)-(y/x1))/c elseif @opz==2 z=((y1+x)*(y/x1))/c elseif @opz==3 z=((y1+x)/(y/x1))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((y1-x)+(y/x1))+c elseif @opz==1 z=((y1-x)-(y/x1))+c elseif @opz==2 z=((y1-x)*(y/x1))+c elseif @opz==3 z=((y1-x)/(y/x1))+c endif elseif @opc==1 if @opz==0 z=((y1-x)+(y/x1))-c elseif @opz==1 z=((y1-x)-(y/x1))-c elseif @opz==2 z=((y1-x)*(y/x1))-c elseif @opz==3 z=((y1-x)/(y/x1))-c endif elseif @opc==2 if @opz==0 z=((y1-x)+(y/x1))*c elseif @opz==1 z=((y1-x)-(y/x1))*c elseif @opz==2 z=((y1-x)*(y/x1))*c elseif @opz==3 z=((y1-x)/(y/x1))*c endif elseif @opc==3 if @opz==0 z=((y1-x)+(y/x1))/c elseif @opz==1 z=((y1-x)-(y/x1))/c elseif @opz==2 z=((y1-x)*(y/x1))/c elseif @opz==3 z=((y1-x)/(y/x1))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((y1*x)+(y/x1))+c elseif @opz==1 z=((y1*x)-(y/x1))+c elseif @opz==2 z=((y1*x)*(y/x1))+c elseif @opz==3 z=((y1*x)/(y/x1))+c endif elseif @opc==1 if @opz==0 z=((y1*x)+(y/x1))-c elseif @opz==1 z=((y1*x)-(y/x1))-c elseif @opz==2 z=((y1*x)*(y/x1))-c elseif @opz==3 z=((y1*x)/(y/x1))-c endif elseif @opc==2 if @opz==0 z=((y1*x)+(y/x1))*c elseif @opz==1 z=((y1*x)-(y/x1))*c elseif @opz==2 z=((y1*x)*(y/x1))*c elseif @opz==3 z=((y1*x)/(y/x1))*c endif elseif @opc==3 if @opz==0 z=((y1*x)+(y/x1))/c elseif @opz==1 z=((y1*x)-(y/x1))/c elseif @opz==2 z=((y1*x)*(y/x1))/c elseif @opz==3 z=((y1*x)/(y/x1))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((y1/x)+(y/x1))+c elseif @opz==1 z=((y1/x)-(y/x1))+c elseif @opz==2 z=((y1/x)*(y/x1))+c elseif @opz==3 z=((y1/x)/(y/x1))+c endif elseif @opc==1 if @opz==0 z=((y1/x)+(y/x1))-c elseif @opz==1 z=((y1/x)-(y/x1))-c elseif @opz==2 z=((y1/x)*(y/x1))-c elseif @opz==3 z=((y1/x)/(y/x1))-c endif elseif @opc==2 if @opz==0 z=((y1/x)+(y/x1))*c elseif @opz==1 z=((y1/x)-(y/x1))*c elseif @opz==2 z=((y1/x)*(y/x1))*c elseif @opz==3 z=((y1/x)/(y/x1))*c endif elseif @opc==3 if @opz==0 z=((y1/x)+(y/x1))/c elseif @opz==1 z=((y1/x)-(y/x1))/c elseif @opz==2 z=((y1/x)*(y/x1))/c elseif @opz==3 z=((y1/x)/(y/x1))/c endif endif endif endif elseif @SelectResult==6 if @opyy1==0 if @opxx1==0 if @opc==0 if @opz==0 z=((y+x1)+(y1+x))+c elseif @opz==1 z=((y+x1)-(y1+x))+c elseif @opz==2 z=((y+x1)*(y1+x))+c elseif @opz==3 z=((y+x1)/(y1+x))+c endif elseif @opc==1 if @opz==0 z=((y+x1)+(y1+x))-c elseif @opz==1 z=((y+x1)-(y1+x))-c elseif @opz==2 z=((y+x1)*(y1+x))-c elseif @opz==3 z=((y+x1)/(y1+x))-c endif elseif @opc==2 if @opz==0 z=((y+x1)+(y1+x))*c elseif @opz==1 z=((y+x1)-(y1+x))*c elseif @opz==2 z=((y+x1)*(y1+x))*c elseif @opz==3 z=((y+x1)/(y1+x))*c endif elseif @opc==3 if @opz==0 z=((y+x1)+(y1+x))/c elseif @opz==1 z=((y+x1)-(y1+x))/c elseif @opz==2 z=((y+x1)*(y1+x))/c elseif @opz==3 z=((y+x1)/(y1+x))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((y-x1)+(y1+x))+c elseif @opz==1 z=((y-x1)-(y1+x))+c elseif @opz==2 z=((y-x1)*(y1+x))+c elseif @opz==3 z=((y-x1)/(y1+x))+c endif elseif @opc==1 if @opz==0 z=((y-x1)+(y1+x))-c elseif @opz==1 z=((y-x1)-(y1+x))-c elseif @opz==2 z=((y-x1)*(y1+x))-c elseif @opz==3 z=((y-x1)/(y1+x))-c endif elseif @opc==2 if @opz==0 z=((y-x1)+(y1+x))*c elseif @opz==1 z=((y-x1)-(y1+x))*c elseif @opz==2 z=((y-x1)*(y1+x))*c elseif @opz==3 z=((y-x1)/(y1+x))*c endif elseif @opc==3 if @opz==0 z=((y-x1)+(y1+x))/c elseif @opz==1 z=((y-x1)-(y1+x))/c elseif @opz==2 z=((y-x1)*(y1+x))/c elseif @opz==3 z=((y-x1)/(y1+x))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((y*x1)+(y1+x))+c elseif @opz==1 z=((y*x1)-(y1+x))+c elseif @opz==2 z=((y*x1)*(y1+x))+c elseif @opz==3 z=((y*x1)/(y1+x))+c endif elseif @opc==1 if @opz==0 z=((y*x1)+(y1+x))-c elseif @opz==1 z=((y*x1)-(y1+x))-c elseif @opz==2 z=((y*x1)*(y1+x))-c elseif @opz==3 z=((y*x1)/(y1+x))-c endif elseif @opc==2 if @opz==0 z=((y*x1)+(y1+x))*c elseif @opz==1 z=((y*x1)-(y1+x))*c elseif @opz==2 z=((y*x1)*(y1+x))*c elseif @opz==3 z=((y*x1)/(y1+x))*c endif elseif @opc==3 if @opz==0 z=((y*x1)+(y1+x))/c elseif @opz==1 z=((y*x1)-(y1+x))/c elseif @opz==2 z=((y*x1)*(y1+x))/c elseif @opz==3 z=((y*x1)/(y1+x))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((y/x1)+(y1+x))+c elseif @opz==1 z=((y/x1)-(y1+x))+c elseif @opz==2 z=((y/x1)*(y1+x))+c elseif @opz==3 z=((y/x1)/(y1+x))+c endif elseif @opc==1 if @opz==0 z=((y/x1)+(y1+x))-c elseif @opz==1 z=((y/x1)-(y1+x))-c elseif @opz==2 z=((y/x1)*(y1+x))-c elseif @opz==3 z=((y/x1)/(y1+x))-c endif elseif @opc==2 if @opz==0 z=((y/x1)+(y1+x))*c elseif @opz==1 z=((y/x1)-(y1+x))*c elseif @opz==2 z=((y/x1)*(y1+x))*c elseif @opz==3 z=((y/x1)/(y1+x))*c endif elseif @opc==3 if @opz==0 z=((y/x1)+(y1+x))/c elseif @opz==1 z=((y/x1)-(y1+x))/c elseif @opz==2 z=((y/x1)*(y1+x))/c elseif @opz==3 z=((y/x1)/(y1+x))/c endif endif endif elseif @opyy1==1 if @opxx1==0 if @opc==0 if @opz==0 z=((y+x1)+(y1-x))+c elseif @opz==1 z=((y+x1)-(y1-x))+c elseif @opz==2 z=((y+x1)*(y1-x))+c elseif @opz==3 z=((y+x1)/(y1-x))+c endif elseif @opc==1 if @opz==0 z=((y+x1)+(y1-x))-c elseif @opz==1 z=((y+x1)-(y1-x))-c elseif @opz==2 z=((y+x1)*(y1-x))-c elseif @opz==3 z=((y+x1)/(y1-x))-c endif elseif @opc==2 if @opz==0 z=((y+x1)+(y1-x))*c elseif @opz==1 z=((y+x1)-(y1-x))*c elseif @opz==2 z=((y+x1)*(y1-x))*c elseif @opz==3 z=((y+x1)/(y1-x))*c endif elseif @opc==3 if @opz==0 z=((y+x1)+(y1-x))/c elseif @opz==1 z=((y+x1)-(y1-x))/c elseif @opz==2 z=((y+x1)*(y1-x))/c elseif @opz==3 z=((y+x1)/(y1-x))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((y-x1)+(y1-x))+c elseif @opz==1 z=((y-x1)-(y1-x))+c elseif @opz==2 z=((y-x1)*(y1-x))+c elseif @opz==3 z=((y-x1)/(y1-x))+c endif elseif @opc==1 if @opz==0 z=((y-x1)+(y1-x))-c elseif @opz==1 z=((y-x1)-(y1-x))-c elseif @opz==2 z=((y-x1)*(y1-x))-c elseif @opz==3 z=((y-x1)/(y1-x))-c endif elseif @opc==2 if @opz==0 z=((y-x1)+(y1-x))*c elseif @opz==1 z=((y-x1)-(y1-x))*c elseif @opz==2 z=((y-x1)*(y1-x))*c elseif @opz==3 z=((y-x1)/(y1-x))*c endif elseif @opc==3 if @opz==0 z=((y-x1)+(y1-x))/c elseif @opz==1 z=((y-x1)-(y1-x))/c elseif @opz==2 z=((y-x1)*(y1-x))/c elseif @opz==3 z=((y-x1)/(y1-x))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((y*x1)+(y1-x))+c elseif @opz==1 z=((y*x1)-(y1-x))+c elseif @opz==2 z=((y*x1)*(y1-x))+c elseif @opz==3 z=((y*x1)/(y1-x))+c endif elseif @opc==1 if @opz==0 z=((y*x1)+(y1-x))-c elseif @opz==1 z=((y*x1)-(y1-x))-c elseif @opz==2 z=((y*x1)*(y1-x))-c elseif @opz==3 z=((y*x1)/(y1-x))-c endif elseif @opc==2 if @opz==0 z=((y*x1)+(y1-x))*c elseif @opz==1 z=((y*x1)-(y1-x))*c elseif @opz==2 z=((y*x1)*(y1-x))*c elseif @opz==3 z=((y*x1)/(y1-x))*c endif elseif @opc==3 if @opz==0 z=((y*x1)+(y1-x))/c elseif @opz==1 z=((y*x1)-(y1-x))/c elseif @opz==2 z=((y*x1)*(y1-x))/c elseif @opz==3 z=((y*x1)/(y1-x))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((y/x1)+(y1-x))+c elseif @opz==1 z=((y/x1)-(y1-x))+c elseif @opz==2 z=((y/x1)*(y1-x))+c elseif @opz==3 z=((y/x1)/(y1-x))+c endif elseif @opc==1 if @opz==0 z=((y/x1)+(y1-x))-c elseif @opz==1 z=((y/x1)-(y1-x))-c elseif @opz==2 z=((y/x1)*(y1-x))-c elseif @opz==3 z=((y/x1)/(y1-x))-c endif elseif @opc==2 if @opz==0 z=((y/x1)+(y1-x))*c elseif @opz==1 z=((y/x1)-(y1-x))*c elseif @opz==2 z=((y/x1)*(y1-x))*c elseif @opz==3 z=((y/x1)/(y1-x))*c endif elseif @opc==3 if @opz==0 z=((y/x1)+(y1-x))/c elseif @opz==1 z=((y/x1)-(y1-x))/c elseif @opz==2 z=((y/x1)*(y1-x))/c elseif @opz==3 z=((y/x1)/(y1-x))/c endif endif endif elseif @opyy1==2 if @opxx1==0 if @opc==0 if @opz==0 z=((y+x1)+(y1*x))+c elseif @opz==1 z=((y+x1)-(y1*x))+c elseif @opz==2 z=((y+x1)*(y1*x))+c elseif @opz==3 z=((y+x1)/(y1*x))+c endif elseif @opc==1 if @opz==0 z=((y+x1)+(y1*x))-c elseif @opz==1 z=((y+x1)-(y1*x))-c elseif @opz==2 z=((y+x1)*(y1*x))-c elseif @opz==3 z=((y+x1)/(y1*x))-c endif elseif @opc==2 if @opz==0 z=((y+x1)+(y1*x))*c elseif @opz==1 z=((y+x1)-(y1*x))*c elseif @opz==2 z=((y+x1)*(y1*x))*c elseif @opz==3 z=((y+x1)/(y1*x))*c endif elseif @opc==3 if @opz==0 z=((y+x1)+(y1*x))/c elseif @opz==1 z=((y+x1)-(y1*x))/c elseif @opz==2 z=((y+x1)*(y1*x))/c elseif @opz==3 z=((y+x1)/(y1*x))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((y-x1)+(y1*x))+c elseif @opz==1 z=((y-x1)-(y1*x))+c elseif @opz==2 z=((y-x1)*(y1*x))+c elseif @opz==3 z=((y-x1)/(y1*x))+c endif elseif @opc==1 if @opz==0 z=((y-x1)+(y1*x))-c elseif @opz==1 z=((y-x1)-(y1*x))-c elseif @opz==2 z=((y-x1)*(y1*x))-c elseif @opz==3 z=((y-x1)/(y1*x))-c endif elseif @opc==2 if @opz==0 z=((y-x1)+(y1*x))*c elseif @opz==1 z=((y-x1)-(y1*x))*c elseif @opz==2 z=((y-x1)*(y1*x))*c elseif @opz==3 z=((y-x1)/(y1*x))*c endif elseif @opc==3 if @opz==0 z=((y-x1)+(y1*x))/c elseif @opz==1 z=((y-x1)-(y1*x))/c elseif @opz==2 z=((y-x1)*(y1*x))/c elseif @opz==3 z=((y-x1)/(y1*x))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((y*x1)+(y1*x))+c elseif @opz==1 z=((y*x1)-(y1*x))+c elseif @opz==2 z=((y*x1)*(y1*x))+c elseif @opz==3 z=((y*x1)/(y1*x))+c endif elseif @opc==1 if @opz==0 z=((y*x1)+(y1*x))-c elseif @opz==1 z=((y*x1)-(y1*x))-c elseif @opz==2 z=((y*x1)*(y1*x))-c elseif @opz==3 z=((y*x1)/(y1*x))-c endif elseif @opc==2 if @opz==0 z=((y*x1)+(y1*x))*c elseif @opz==1 z=((y*x1)-(y1*x))*c elseif @opz==2 z=((y*x1)*(y1*x))*c elseif @opz==3 z=((y*x1)/(y1*x))*c endif elseif @opc==3 if @opz==0 z=((y*x1)+(y1*x))/c elseif @opz==1 z=((y*x1)-(y1*x))/c elseif @opz==2 z=((y*x1)*(y1*x))/c elseif @opz==3 z=((y*x1)/(y1*x))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((y/x1)+(y1*x))+c elseif @opz==1 z=((y/x1)-(y1*x))+c elseif @opz==2 z=((y/x1)*(y1*x))+c elseif @opz==3 z=((y/x1)/(y1*x))+c endif elseif @opc==1 if @opz==0 z=((y/x1)+(y1*x))-c elseif @opz==1 z=((y/x1)-(y1*x))-c elseif @opz==2 z=((y/x1)*(y1*x))-c elseif @opz==3 z=((y/x1)/(y1*x))-c endif elseif @opc==2 if @opz==0 z=((y/x1)+(y1*x))*c elseif @opz==1 z=((y/x1)-(y1*x))*c elseif @opz==2 z=((y/x1)*(y1*x))*c elseif @opz==3 z=((y/x1)/(y1*x))*c endif elseif @opc==3 if @opz==0 z=((y/x1)+(y1*x))/c elseif @opz==1 z=((y/x1)-(y1*x))/c elseif @opz==2 z=((y/x1)*(y1*x))/c elseif @opz==3 z=((y/x1)/(y1*x))/c endif endif endif elseif @opyy1==3 if @opxx1==0 if @opc==0 if @opz==0 z=((y+x1)+(y1/x))+c elseif @opz==1 z=((y+x1)-(y1/x))+c elseif @opz==2 z=((y+x1)*(y1/x))+c elseif @opz==3 z=((y+x1)/(y1/x))+c endif elseif @opc==1 if @opz==0 z=((y+x1)+(y1/x))-c elseif @opz==1 z=((y+x1)-(y1/x))-c elseif @opz==2 z=((y+x1)*(y1/x))-c elseif @opz==3 z=((y+x1)/(y1/x))-c endif elseif @opc==2 if @opz==0 z=((y+x1)+(y1/x))*c elseif @opz==1 z=((y+x1)-(y1/x))*c elseif @opz==2 z=((y+x1)*(y1/x))*c elseif @opz==3 z=((y+x1)/(y1/x))*c endif elseif @opc==3 if @opz==0 z=((y+x1)+(y1/x))/c elseif @opz==1 z=((y+x1)-(y1/x))/c elseif @opz==2 z=((y+x1)*(y1/x))/c elseif @opz==3 z=((y+x1)/(y1/x))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((y-x1)+(y1/x))+c elseif @opz==1 z=((y-x1)-(y1/x))+c elseif @opz==2 z=((y-x1)*(y1/x))+c elseif @opz==3 z=((y-x1)/(y1/x))+c endif elseif @opc==1 if @opz==0 z=((y-x1)+(y1/x))-c elseif @opz==1 z=((y-x1)-(y1/x))-c elseif @opz==2 z=((y-x1)*(y1/x))-c elseif @opz==3 z=((y-x1)/(y1/x))-c endif elseif @opc==2 if @opz==0 z=((y-x1)+(y1/x))*c elseif @opz==1 z=((y-x1)-(y1/x))*c elseif @opz==2 z=((y-x1)*(y1/x))*c elseif @opz==3 z=((y-x1)/(y1/x))*c endif elseif @opc==3 if @opz==0 z=((y-x1)+(y1/x))/c elseif @opz==1 z=((y-x1)-(y1/x))/c elseif @opz==2 z=((y-x1)*(y1/x))/c elseif @opz==3 z=((y-x1)/(y1/x))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((y*x1)+(y1/x))+c elseif @opz==1 z=((y*x1)-(y1/x))+c elseif @opz==2 z=((y*x1)*(y1/x))+c elseif @opz==3 z=((y*x1)/(y1/x))+c endif elseif @opc==1 if @opz==0 z=((y*x1)+(y1/x))-c elseif @opz==1 z=((y*x1)-(y1/x))-c elseif @opz==2 z=((y*x1)*(y1/x))-c elseif @opz==3 z=((y*x1)/(y1/x))-c endif elseif @opc==2 if @opz==0 z=((y*x1)+(y1/x))*c elseif @opz==1 z=((y*x1)-(y1/x))*c elseif @opz==2 z=((y*x1)*(y1/x))*c elseif @opz==3 z=((y*x1)/(y1/x))*c endif elseif @opc==3 if @opz==0 z=((y*x1)+(y1/x))/c elseif @opz==1 z=((y*x1)-(y1/x))/c elseif @opz==2 z=((y*x1)*(y1/x))/c elseif @opz==3 z=((y*x1)/(y1/x))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((y/x1)+(y1/x))+c elseif @opz==1 z=((y/x1)-(y1/x))+c elseif @opz==2 z=((y/x1)*(y1/x))+c elseif @opz==3 z=((y/x1)/(y1/x))+c endif elseif @opc==1 if @opz==0 z=((y/x1)+(y1/x))-c elseif @opz==1 z=((y/x1)-(y1/x))-c elseif @opz==2 z=((y/x1)*(y1/x))-c elseif @opz==3 z=((y/x1)/(y1/x))-c endif elseif @opc==2 if @opz==0 z=((y/x1)+(y1/x))*c elseif @opz==1 z=((y/x1)-(y1/x))*c elseif @opz==2 z=((y/x1)*(y1/x))*c elseif @opz==3 z=((y/x1)/(y1/x))*c endif elseif @opc==3 if @opz==0 z=((y/x1)+(y1/x))/c elseif @opz==1 z=((y/x1)-(y1/x))/c elseif @opz==2 z=((y/x1)*(y1/x))/c elseif @opz==3 z=((y/x1)/(y1/x))/c endif endif endif endif elseif @SelectResult==7 if @opyy1==0 if @opxx1==0 if @opc==0 if @opz==0 z=((y1+x1)+(y+x))+c elseif @opz==1 z=((y1+x1)-(y+x))+c elseif @opz==2 z=((y1+x1)*(y+x))+c elseif @opz==3 z=((y1+x1)/(y+x))+c endif elseif @opc==1 if @opz==0 z=((y1+x1)+(y+x))-c elseif @opz==1 z=((y1+x1)-(y+x))-c elseif @opz==2 z=((y1+x1)*(y+x))-c elseif @opz==3 z=((y1+x1)/(y+x))-c endif elseif @opc==2 if @opz==0 z=((y1+x1)+(y+x))*c elseif @opz==1 z=((y1+x1)-(y+x))*c elseif @opz==2 z=((y1+x1)*(y+x))*c elseif @opz==3 z=((y1+x1)/(y+x))*c endif elseif @opc==3 if @opz==0 z=((y1+x1)+(y+x))/c elseif @opz==1 z=((y1+x1)-(y+x))/c elseif @opz==2 z=((y1+x1)*(y+x))/c elseif @opz==3 z=((y1+x1)/(y+x))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((y1-x1)+(y+x))+c elseif @opz==1 z=((y1-x1)-(y+x))+c elseif @opz==2 z=((y1-x1)*(y+x))+c elseif @opz==3 z=((y1-x1)/(y+x))+c endif elseif @opc==1 if @opz==0 z=((y1-x1)+(y+x))-c elseif @opz==1 z=((y1-x1)-(y+x))-c elseif @opz==2 z=((y1-x1)*(y+x))-c elseif @opz==3 z=((y1-x1)/(y+x))-c endif elseif @opc==2 if @opz==0 z=((y1-x1)+(y+x))*c elseif @opz==1 z=((y1-x1)-(y+x))*c elseif @opz==2 z=((y1-x1)*(y+x))*c elseif @opz==3 z=((y1-x1)/(y+x))*c endif elseif @opc==3 if @opz==0 z=((y1-x1)+(y+x))/c elseif @opz==1 z=((y1-x1)-(y+x))/c elseif @opz==2 z=((y1-x1)*(y+x))/c elseif @opz==3 z=((y1-x1)/(y+x))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((y1*x1)+(y+x))+c elseif @opz==1 z=((y1*x1)-(y+x))+c elseif @opz==2 z=((y1*x1)*(y+x))+c elseif @opz==3 z=((y1*x1)/(y+x))+c endif elseif @opc==1 if @opz==0 z=((y1*x1)+(y+x))-c elseif @opz==1 z=((y1*x1)-(y+x))-c elseif @opz==2 z=((y1*x1)*(y+x))-c elseif @opz==3 z=((y1*x1)/(y+x))-c endif elseif @opc==2 if @opz==0 z=((y1*x1)+(y+x))*c elseif @opz==1 z=((y1*x1)-(y+x))*c elseif @opz==2 z=((y1*x1)*(y+x))*c elseif @opz==3 z=((y1*x1)/(y+x))*c endif elseif @opc==3 if @opz==0 z=((y1*x1)+(y+x))/c elseif @opz==1 z=((y1*x1)-(y+x))/c elseif @opz==2 z=((y1*x1)*(y+x))/c elseif @opz==3 z=((y1*x1)/(y+x))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((y1/x1)+(y+x))+c elseif @opz==1 z=((y1/x1)-(y+x))+c elseif @opz==2 z=((y1/x1)*(y+x))+c elseif @opz==3 z=((y1/x1)/(y+x))+c endif elseif @opc==1 if @opz==0 z=((y1/x1)+(y+x))-c elseif @opz==1 z=((y1/x1)-(y+x))-c elseif @opz==2 z=((y1/x1)*(y+x))-c elseif @opz==3 z=((y1/x1)/(y+x))-c endif elseif @opc==2 if @opz==0 z=((y1/x1)+(y+x))*c elseif @opz==1 z=((y1/x1)-(y+x))*c elseif @opz==2 z=((y1/x1)*(y+x))*c elseif @opz==3 z=((y1/x1)/(y+x))*c endif elseif @opc==3 if @opz==0 z=((y1/x1)+(y+x))/c elseif @opz==1 z=((y1/x1)-(y+x))/c elseif @opz==2 z=((y1/x1)*(y+x))/c elseif @opz==3 z=((y1/x1)/(y+x))/c endif endif endif elseif @opyy1==1 if @opxx1==0 if @opc==0 if @opz==0 z=((y1+x1)+(y-x))+c elseif @opz==1 z=((y1+x1)-(y-x))+c elseif @opz==2 z=((y1+x1)*(y-x))+c elseif @opz==3 z=((y1+x1)/(y-x))+c endif elseif @opc==1 if @opz==0 z=((y1+x1)+(y-x))-c elseif @opz==1 z=((y1+x1)-(y-x))-c elseif @opz==2 z=((y1+x1)*(y-x))-c elseif @opz==3 z=((y1+x1)/(y-x))-c endif elseif @opc==2 if @opz==0 z=((y1+x1)+(y-x))*c elseif @opz==1 z=((y1+x1)-(y-x))*c elseif @opz==2 z=((y1+x1)*(y-x))*c elseif @opz==3 z=((y1+x1)/(y-x))*c endif elseif @opc==3 if @opz==0 z=((y1+x1)+(y-x))/c elseif @opz==1 z=((y1+x1)-(y-x))/c elseif @opz==2 z=((y1+x1)*(y-x))/c elseif @opz==3 z=((y1+x1)/(y-x))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((y1-x1)+(y-x))+c elseif @opz==1 z=((y1-x1)-(y-x))+c elseif @opz==2 z=((y1-x1)*(y-x))+c elseif @opz==3 z=((y1-x1)/(y-x))+c endif elseif @opc==1 if @opz==0 z=((y1-x1)+(y-x))-c elseif @opz==1 z=((y1-x1)-(y-x))-c elseif @opz==2 z=((y1-x1)*(y-x))-c elseif @opz==3 z=((y1-x1)/(y-x))-c endif elseif @opc==2 if @opz==0 z=((y1-x1)+(y-x))*c elseif @opz==1 z=((y1-x1)-(y-x))*c elseif @opz==2 z=((y1-x1)*(y-x))*c elseif @opz==3 z=((y1-x1)/(y-x))*c endif elseif @opc==3 if @opz==0 z=((y1-x1)+(y-x))/c elseif @opz==1 z=((y1-x1)-(y-x))/c elseif @opz==2 z=((y1-x1)*(y-x))/c elseif @opz==3 z=((y1-x1)/(y-x))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((y1*x1)+(y-x))+c elseif @opz==1 z=((y1*x1)-(y-x))+c elseif @opz==2 z=((y1*x1)*(y-x))+c elseif @opz==3 z=((y1*x1)/(y-x))+c endif elseif @opc==1 if @opz==0 z=((y1*x1)+(y-x))-c elseif @opz==1 z=((y1*x1)-(y-x))-c elseif @opz==2 z=((y1*x1)*(y-x))-c elseif @opz==3 z=((y1*x1)/(y-x))-c endif elseif @opc==2 if @opz==0 z=((y1*x1)+(y-x))*c elseif @opz==1 z=((y1*x1)-(y-x))*c elseif @opz==2 z=((y1*x1)*(y-x))*c elseif @opz==3 z=((y1*x1)/(y-x))*c endif elseif @opc==3 if @opz==0 z=((y1*x1)+(y-x))/c elseif @opz==1 z=((y1*x1)-(y-x))/c elseif @opz==2 z=((y1*x1)*(y-x))/c elseif @opz==3 z=((y1*x1)/(y-x))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((y1/x1)+(y-x))+c elseif @opz==1 z=((y1/x1)-(y-x))+c elseif @opz==2 z=((y1/x1)*(y-x))+c elseif @opz==3 z=((y1/x1)/(y-x))+c endif elseif @opc==1 if @opz==0 z=((y1/x1)+(y-x))-c elseif @opz==1 z=((y1/x1)-(y-x))-c elseif @opz==2 z=((y1/x1)*(y-x))-c elseif @opz==3 z=((y1/x1)/(y-x))-c endif elseif @opc==2 if @opz==0 z=((y1/x1)+(y-x))*c elseif @opz==1 z=((y1/x1)-(y-x))*c elseif @opz==2 z=((y1/x1)*(y-x))*c elseif @opz==3 z=((y1/x1)/(y-x))*c endif elseif @opc==3 if @opz==0 z=((y1/x1)+(y-x))/c elseif @opz==1 z=((y1/x1)-(y-x))/c elseif @opz==2 z=((y1/x1)*(y-x))/c elseif @opz==3 z=((y1/x1)/(y-x))/c endif endif endif elseif @opyy1==2 if @opxx1==0 if @opc==0 if @opz==0 z=((y1+x1)+(y*x))+c elseif @opz==1 z=((y1+x1)-(y*x))+c elseif @opz==2 z=((y1+x1)*(y*x))+c elseif @opz==3 z=((y1+x1)/(y*x))+c endif elseif @opc==1 if @opz==0 z=((y1+x1)+(y*x))-c elseif @opz==1 z=((y1+x1)-(y*x))-c elseif @opz==2 z=((y1+x1)*(y*x))-c elseif @opz==3 z=((y1+x1)/(y*x))-c endif elseif @opc==2 if @opz==0 z=((y1+x1)+(y*x))*c elseif @opz==1 z=((y1+x1)-(y*x))*c elseif @opz==2 z=((y1+x1)*(y*x))*c elseif @opz==3 z=((y1+x1)/(y*x))*c endif elseif @opc==3 if @opz==0 z=((y1+x1)+(y*x))/c elseif @opz==1 z=((y1+x1)-(y*x))/c elseif @opz==2 z=((y1+x1)*(y*x))/c elseif @opz==3 z=((y1+x1)/(y*x))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((y1-x1)+(y*x))+c elseif @opz==1 z=((y1-x1)-(y*x))+c elseif @opz==2 z=((y1-x1)*(y*x))+c elseif @opz==3 z=((y1-x1)/(y*x))+c endif elseif @opc==1 if @opz==0 z=((y1-x1)+(y*x))-c elseif @opz==1 z=((y1-x1)-(y*x))-c elseif @opz==2 z=((y1-x1)*(y*x))-c elseif @opz==3 z=((y1-x1)/(y*x))-c endif elseif @opc==2 if @opz==0 z=((y1-x1)+(y*x))*c elseif @opz==1 z=((y1-x1)-(y*x))*c elseif @opz==2 z=((y1-x1)*(y*x))*c elseif @opz==3 z=((y1-x1)/(y*x))*c endif elseif @opc==3 if @opz==0 z=((y1-x1)+(y*x))/c elseif @opz==1 z=((y1-x1)-(y*x))/c elseif @opz==2 z=((y1-x1)*(y*x))/c elseif @opz==3 z=((y1-x1)/(y*x))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((y1*x1)+(y*x))+c elseif @opz==1 z=((y1*x1)-(y*x))+c elseif @opz==2 z=((y1*x1)*(y*x))+c elseif @opz==3 z=((y1*x1)/(y*x))+c endif elseif @opc==1 if @opz==0 z=((y1*x1)+(y*x))-c elseif @opz==1 z=((y1*x1)-(y*x))-c elseif @opz==2 z=((y1*x1)*(y*x))-c elseif @opz==3 z=((y1*x1)/(y*x))-c endif elseif @opc==2 if @opz==0 z=((y1*x1)+(y*x))*c elseif @opz==1 z=((y1*x1)-(y*x))*c elseif @opz==2 z=((y1*x1)*(y*x))*c elseif @opz==3 z=((y1*x1)/(y*x))*c endif elseif @opc==3 if @opz==0 z=((y1*x1)+(y*x))/c elseif @opz==1 z=((y1*x1)-(y*x))/c elseif @opz==2 z=((y1*x1)*(y*x))/c elseif @opz==3 z=((y1*x1)/(y*x))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((y1/x1)+(y*x))+c elseif @opz==1 z=((y1/x1)-(y*x))+c elseif @opz==2 z=((y1/x1)*(y*x))+c elseif @opz==3 z=((y1/x1)/(y*x))+c endif elseif @opc==1 if @opz==0 z=((y1/x1)+(y*x))-c elseif @opz==1 z=((y1/x1)-(y*x))-c elseif @opz==2 z=((y1/x1)*(y*x))-c elseif @opz==3 z=((y1/x1)/(y*x))-c endif elseif @opc==2 if @opz==0 z=((y1/x1)+(y*x))*c elseif @opz==1 z=((y1/x1)-(y*x))*c elseif @opz==2 z=((y1/x1)*(y*x))*c elseif @opz==3 z=((y1/x1)/(y*x))*c endif elseif @opc==3 if @opz==0 z=((y1/x1)+(y*x))/c elseif @opz==1 z=((y1/x1)-(y*x))/c elseif @opz==2 z=((y1/x1)*(y*x))/c elseif @opz==3 z=((y1/x1)/(y*x))/c endif endif endif elseif @opyy1==3 if @opxx1==0 if @opc==0 if @opz==0 z=((y1+x1)+(y/x))+c elseif @opz==1 z=((y1+x1)-(y/x))+c elseif @opz==2 z=((y1+x1)*(y/x))+c elseif @opz==3 z=((y1+x1)/(y/x))+c endif elseif @opc==1 if @opz==0 z=((y1+x1)+(y/x))-c elseif @opz==1 z=((y1+x1)-(y/x))-c elseif @opz==2 z=((y1+x1)*(y/x))-c elseif @opz==3 z=((y1+x1)/(y/x))-c endif elseif @opc==2 if @opz==0 z=((y1+x1)+(y/x))*c elseif @opz==1 z=((y1+x1)-(y/x))*c elseif @opz==2 z=((y1+x1)*(y/x))*c elseif @opz==3 z=((y1+x1)/(y/x))*c endif elseif @opc==3 if @opz==0 z=((y1+x1)+(y/x))/c elseif @opz==1 z=((y1+x1)-(y/x))/c elseif @opz==2 z=((y1+x1)*(y/x))/c elseif @opz==3 z=((y1+x1)/(y/x))/c endif endif elseif @opxx1==1 if @opc==0 if @opz==0 z=((y1-x1)+(y/x))+c elseif @opz==1 z=((y1-x1)-(y/x))+c elseif @opz==2 z=((y1-x1)*(y/x))+c elseif @opz==3 z=((y1-x1)/(y/x))+c endif elseif @opc==1 if @opz==0 z=((y1-x1)+(y/x))-c elseif @opz==1 z=((y1-x1)-(y/x))-c elseif @opz==2 z=((y1-x1)*(y/x))-c elseif @opz==3 z=((y1-x1)/(y/x))-c endif elseif @opc==2 if @opz==0 z=((y1-x1)+(y/x))*c elseif @opz==1 z=((y1-x1)-(y/x))*c elseif @opz==2 z=((y1-x1)*(y/x))*c elseif @opz==3 z=((y1-x1)/(y/x))*c endif elseif @opc==3 if @opz==0 z=((y1-x1)+(y/x))/c elseif @opz==1 z=((y1-x1)-(y/x))/c elseif @opz==2 z=((y1-x1)*(y/x))/c elseif @opz==3 z=((y1-x1)/(y/x))/c endif endif elseif @opxx1==2 if @opc==0 if @opz==0 z=((y1*x1)+(y/x))+c elseif @opz==1 z=((y1*x1)-(y/x))+c elseif @opz==2 z=((y1*x1)*(y/x))+c elseif @opz==3 z=((y1*x1)/(y/x))+c endif elseif @opc==1 if @opz==0 z=((y1*x1)+(y/x))-c elseif @opz==1 z=((y1*x1)-(y/x))-c elseif @opz==2 z=((y1*x1)*(y/x))-c elseif @opz==3 z=((y1*x1)/(y/x))-c endif elseif @opc==2 if @opz==0 z=((y1*x1)+(y/x))*c elseif @opz==1 z=((y1*x1)-(y/x))*c elseif @opz==2 z=((y1*x1)*(y/x))*c elseif @opz==3 z=((y1*x1)/(y/x))*c endif elseif @opc==3 if @opz==0 z=((y1*x1)+(y/x))/c elseif @opz==1 z=((y1*x1)-(y/x))/c elseif @opz==2 z=((y1*x1)*(y/x))/c elseif @opz==3 z=((y1*x1)/(y/x))/c endif endif elseif @opxx1==3 if @opc==0 if @opz==0 z=((y1/x1)+(y/x))+c elseif @opz==1 z=((y1/x1)-(y/x))+c elseif @opz==2 z=((y1/x1)*(y/x))+c elseif @opz==3 z=((y1/x1)/(y/x))+c endif elseif @opc==1 if @opz==0 z=((y1/x1)+(y/x))-c elseif @opz==1 z=((y1/x1)-(y/x))-c elseif @opz==2 z=((y1/x1)*(y/x))-c elseif @opz==3 z=((y1/x1)/(y/x))-c endif elseif @opc==2 if @opz==0 z=((y1/x1)+(y/x))*c elseif @opz==1 z=((y1/x1)-(y/x))*c elseif @opz==2 z=((y1/x1)*(y/x))*c elseif @opz==3 z=((y1/x1)/(y/x))*c endif elseif @opc==3 if @opz==0 z=((y1/x1)+(y/x))/c elseif @opz==1 z=((y1/x1)-(y/x))/c elseif @opz==2 z=((y1/x1)*(y/x))/c elseif @opz==3 z=((y1/x1)/(y/x))/c endif endif endif endif endif Bailout: |z| <= @bailout Default: Title="ChaoticBrot" center=(0.0,0.0) magn=1.0 angle=90 method=multipass periodicity=0 maxiter=250 Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="Current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param bailout caption="Bailout Value" default=16.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param start caption="Start Value" default=(0.05,0.0) visible=(@mode=="Mandelbrot") endparam param seed caption="Seed Value" default=(0.09375,4.667151539e-19) visible=(@mode=="Julia") endparam param opx caption="Operator x" enum="1""2""3""4""5" default=1 endparam param opx1 caption="Operator x1" enum="1""2""3""4""5" default=0 endparam param opy caption="Operator y" enum="1""2""3""4""5" default=0 endparam param opy1 caption="Operator y1" enum="1""2""3""4""5" default=0 endparam param opxx1 caption="Operator x|x1" enum="1""2""3""4" default=3 endparam param opyy1 caption="Operator y|y1" enum="1""2""3""4" default=0 endparam param opz caption="Oper. (x|x1)(y|y1)" enum="1""2""3""4" default=0 endparam param opc caption="Operator c" enum="1""2""3""4" default=0 endparam param SelectResult caption="Operator Final" enum="1""2""3""4""5""6""7""8" default=0 endparam param p1 caption="Exponent 1(Re|Im)" default=(1.0,0.0) endparam param p2 caption="Exponent 2(Re|Im)" default=(1.0,0.0) endparam param p3 caption="Exponent 3(Re|Im)" default=(1.0,0.0) endparam param p4 caption="Exponent 4(Re|Im)" default=(1.0,0.0) endparam param p5 caption="Exponent 5(Re|Im)" default=(1.0,0.0) endparam param p6 caption="Exponent 6(Re|Im)" default=(1.0,0.0) endparam Heading caption="Functions" Endheading Func fn1 caption="Function 1" default=ident() endfunc Func fn3 caption="Function 2" default=ident() endfunc Func fn4 caption="Function 3" default=ident() endfunc Func fn5 caption="Function 4" default=ident() endfunc Func fn6 caption="Function 5" default=ident() endfunc Func fn2 caption="Function c" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="ChaoticBrot" bailout=@bailout @seed=#pixel opx=@opx opx1=@opx1 opy=@opy opy1=@opy1 opxx1=@opxx1 opyy1=@opyy1 opz=@opz opc=@opc SelectResult=@SelectResult p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 mode=@switchmode switchmode=@mode version=@version } Chaotic-fly { ;Based on the formula "CShell" by Giuseppe Zito. ;http://www.ba.infn.it/~zito/zito.html ;Andrea Spinozzi(Apr2004) Init: z=pixel c=pixel c1=fn3(real(c^p3)) c2=fn4(imag(c^p4)) if @mode=="Julia" z=pixel c=@seed c1=fn3(real(c^p3)) c2=fn4(imag(c^p4)) endif x1=(0.0,0.0) y1=(0.0,0.0) z1=(0.0,0.0) z2=(0.0,0.0) z3=(0.0,0.0) Loop: x=@fn7(real(z)^@p6) y=@fn8(imag(z)^@p7) if @selc==false if @op==0 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(y/x))^p2) endif endif elseif @op==1 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(y/x))^p2) endif endif elseif @op==2 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(y/x))^p2) endif endif elseif @op==3 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x*y))^p2) elseif @opx1==1 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(y/x))^p2) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x+y))^p2) elseif @opx1==1 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x-y))^p2) elseif @opx1==2 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x*y))^p2) elseif @opx1==3 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(y-x))^p2) elseif @opx1==4 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(y/x))^p2) endif endif elseif @op==4 if @opx==0 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x)^p1) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x)^p1) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x)^p1) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x)^p1) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x)^p1) endif elseif @opx==1 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x+x)^p1) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x+x)^p1) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x+x)^p1) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x+x)^p1) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x+x)^p1) endif elseif @opx==2 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x*x)^p1) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x*x)^p1) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x*x)^p1) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x*x)^p1) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x*x)^p1) endif elseif @opx==3 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y)^p1) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y)^p1) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y)^p1) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y)^p1) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y)^p1) endif elseif @opx==4 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y+y)^p1) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y+y)^p1) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y+y)^p1) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y+y)^p1) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y+y)^p1) endif elseif @opx==5 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y*y)^p1) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y*y)^p1) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y*y)^p1) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y*y)^p1) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y*y)^p1) endif elseif @opx==6 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x+y)^p1) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x+y)^p1) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x+y)^p1) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x+y)^p1) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x+y)^p1) endif elseif @opx==7 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x-y)^p1) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x-y)^p1) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x-y)^p1) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x-y)^p1) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x-y)^p1) endif elseif @opx==8 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x*y)^p1) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x*y)^p1) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x*y)^p1) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x*y)^p1) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x*y)^p1) endif elseif @opx==9 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x/y)^p1) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x/y)^p1) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x/y)^p1) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x/y)^p1) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x/y)^p1) endif elseif @opx==10 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y-x)^p1) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y-x)^p1) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y-x)^p1) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y-x)^p1) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y-x)^p1) endif elseif @opx==11 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y/x)^p1) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y/x)^p1) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y/x)^p1) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y/x)^p1) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y/x)^p1) endif endif elseif @op==5 if @opx==0 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x)^p1) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x)^p1) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x)^p1) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x)^p1) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x)^p1) endif elseif @opx==1 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x+x)^p1) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x+x)^p1) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x+x)^p1) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x+x)^p1) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x+x)^p1) endif elseif @opx==2 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x*x)^p1) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x*x)^p1) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x*x)^p1) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x*x)^p1) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x*x)^p1) endif elseif @opx==3 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y)^p1) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y)^p1) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y)^p1) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y)^p1) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y)^p1) endif elseif @opx==4 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y+y)^p1) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y+y)^p1) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y+y)^p1) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y+y)^p1) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y+y)^p1) endif elseif @opx==5 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y*y)^p1) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y*y)^p1) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y*y)^p1) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y*y)^p1) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y*y)^p1) endif elseif @opx==6 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x+y)^p1) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x+y)^p1) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x+y)^p1) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x+y)^p1) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x+y)^p1) endif elseif @opx==7 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x-y)^p1) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x-y)^p1) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x-y)^p1) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x-y)^p1) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x-y)^p1) endif elseif @opx==8 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x*y)^p1) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x*y)^p1) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x*y)^p1) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x*y)^p1) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x*y)^p1) endif elseif @opx==9 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x/y)^p1) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x/y)^p1) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x/y)^p1) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x/y)^p1) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x/y)^p1) endif elseif @opx==10 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y-x)^p1) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y-x)^p1) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y-x)^p1) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y-x)^p1) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y-x)^p1) endif elseif @opx==11 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y/x)^p1) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y/x)^p1) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y/x)^p1) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y/x)^p1) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y/x)^p1) endif endif endif elseif @selc==true if @selc2==0 if @selc1==0 if @op==0 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(y/x))^p2)+(c/z) endif endif elseif @op==1 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(y/x))^p2)+(c/z) endif endif elseif @op==2 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(y/x))^p2)+(c/z) endif endif elseif @op==3 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(y/x))^p2)+(c/z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x+y))^p2)+(c/z) elseif @opx1==1 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x-y))^p2)+(c/z) elseif @opx1==2 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x*y))^p2)+(c/z) elseif @opx1==3 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(y-x))^p2)+(c/z) elseif @opx1==4 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(y/x))^p2)+(c/z) endif endif elseif @op==4 if @opx==0 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x)^p1)+(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x)^p1)+(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x)^p1)+(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x)^p1)+(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x)^p1)+(c/z) endif elseif @opx==1 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x+x)^p1)+(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x+x)^p1)+(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x+x)^p1)+(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x+x)^p1)+(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x+x)^p1)+(c/z) endif elseif @opx==2 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x*x)^p1)+(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x*x)^p1)+(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x*x)^p1)+(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x*x)^p1)+(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x*x)^p1)+(c/z) endif elseif @opx==3 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y)^p1)+(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y)^p1)+(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y)^p1)+(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y)^p1)+(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y)^p1)+(c/z) endif elseif @opx==4 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y+y)^p1)+(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y+y)^p1)+(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y+y)^p1)+(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y+y)^p1)+(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y+y)^p1)+(c/z) endif elseif @opx==5 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y*y)^p1)+(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y*y)^p1)+(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y*y)^p1)+(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y*y)^p1)+(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y*y)^p1)+(c/z) endif elseif @opx==6 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x+y)^p1)+(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x+y)^p1)+(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x+y)^p1)+(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x+y)^p1)+(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x+y)^p1)+(c/z) endif elseif @opx==7 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x-y)^p1)+(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x-y)^p1)+(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x-y)^p1)+(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x-y)^p1)+(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x-y)^p1)+(c/z) endif elseif @opx==8 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x*y)^p1)+(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x*y)^p1)+(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x*y)^p1)+(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x*y)^p1)+(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x*y)^p1)+(c/z) endif elseif @opx==9 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x/y)^p1)+(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x/y)^p1)+(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x/y)^p1)+(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x/y)^p1)+(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x/y)^p1)+(c/z) endif elseif @opx==10 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y-x)^p1)+(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y-x)^p1)+(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y-x)^p1)+(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y-x)^p1)+(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y-x)^p1)+(c/z) endif elseif @opx==11 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y/x)^p1)+(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y/x)^p1)+(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y/x)^p1)+(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y/x)^p1)+(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y/x)^p1)+(c/z) endif endif elseif @op==5 if @opx==0 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x)^p1)+(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x)^p1)+(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x)^p1)+(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x)^p1)+(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x)^p1)+(c/z) endif elseif @opx==1 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x+x)^p1)+(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x+x)^p1)+(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x+x)^p1)+(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x+x)^p1)+(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x+x)^p1)+(c/z) endif elseif @opx==2 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x*x)^p1)+(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x*x)^p1)+(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x*x)^p1)+(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x*x)^p1)+(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x*x)^p1)+(c/z) endif elseif @opx==3 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y)^p1)+(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y)^p1)+(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y)^p1)+(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y)^p1)+(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y)^p1)+(c/z) endif elseif @opx==4 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y+y)^p1)+(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y+y)^p1)+(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y+y)^p1)+(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y+y)^p1)+(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y+y)^p1)+(c/z) endif elseif @opx==5 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y*y)^p1)+(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y*y)^p1)+(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y*y)^p1)+(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y*y)^p1)+(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y*y)^p1)+(c/z) endif elseif @opx==6 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x+y)^p1)+(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x+y)^p1)+(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x+y)^p1)+(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x+y)^p1)+(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x+y)^p1)+(c/z) endif elseif @opx==7 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x-y)^p1)+(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x-y)^p1)+(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x-y)^p1)+(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x-y)^p1)+(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x-y)^p1)+(c/z) endif elseif @opx==8 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x*y)^p1)+(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x*y)^p1)+(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x*y)^p1)+(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x*y)^p1)+(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x*y)^p1)+(c/z) endif elseif @opx==9 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x/y)^p1)+(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x/y)^p1)+(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x/y)^p1)+(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x/y)^p1)+(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x/y)^p1)+(c/z) endif elseif @opx==10 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y-x)^p1)+(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y-x)^p1)+(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y-x)^p1)+(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y-x)^p1)+(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y-x)^p1)+(c/z) endif elseif @opx==11 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y/x)^p1)+(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y/x)^p1)+(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y/x)^p1)+(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y/x)^p1)+(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y/x)^p1)+(c/z) endif endif endif elseif @selc1==1 if @op==0 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(y/x))^p2)-(c/z) endif endif elseif @op==1 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(y/x))^p2)-(c/z) endif endif elseif @op==2 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(y/x))^p2)-(c/z) endif endif elseif @op==3 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(y/x))^p2)-(c/z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x+y))^p2)-(c/z) elseif @opx1==1 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x-y))^p2)-(c/z) elseif @opx1==2 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x*y))^p2)-(c/z) elseif @opx1==3 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(y-x))^p2)-(c/z) elseif @opx1==4 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(y/x))^p2)-(c/z) endif endif elseif @op==4 if @opx==0 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x)^p1)-(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x)^p1)-(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x)^p1)-(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x)^p1)-(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x)^p1)-(c/z) endif elseif @opx==1 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x+x)^p1)-(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x+x)^p1)-(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x+x)^p1)-(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x+x)^p1)-(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x+x)^p1)-(c/z) endif elseif @opx==2 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x*x)^p1)-(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x*x)^p1)-(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x*x)^p1)-(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x*x)^p1)-(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x*x)^p1)-(c/z) endif elseif @opx==3 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y)^p1)-(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y)^p1)-(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y)^p1)-(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y)^p1)-(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y)^p1)-(c/z) endif elseif @opx==4 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y+y)^p1)-(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y+y)^p1)-(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y+y)^p1)-(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y+y)^p1)-(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y+y)^p1)-(c/z) endif elseif @opx==5 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y*y)^p1)-(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y*y)^p1)-(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y*y)^p1)-(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y*y)^p1)-(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y*y)^p1)-(c/z) endif elseif @opx==6 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x+y)^p1)-(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x+y)^p1)-(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x+y)^p1)-(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x+y)^p1)-(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x+y)^p1)-(c/z) endif elseif @opx==7 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x-y)^p1)-(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x-y)^p1)-(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x-y)^p1)-(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x-y)^p1)-(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x-y)^p1)-(c/z) endif elseif @opx==8 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x*y)^p1)-(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x*y)^p1)-(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x*y)^p1)-(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x*y)^p1)-(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x*y)^p1)-(c/z) endif elseif @opx==9 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x/y)^p1)-(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x/y)^p1)-(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x/y)^p1)-(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x/y)^p1)-(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x/y)^p1)-(c/z) endif elseif @opx==10 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y-x)^p1)-(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y-x)^p1)-(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y-x)^p1)-(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y-x)^p1)-(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y-x)^p1)-(c/z) endif elseif @opx==11 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y/x)^p1)-(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y/x)^p1)-(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y/x)^p1)-(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y/x)^p1)-(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y/x)^p1)-(c/z) endif endif elseif @op==5 if @opx==0 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x)^p1)-(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x)^p1)-(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x)^p1)-(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x)^p1)-(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x)^p1)-(c/z) endif elseif @opx==1 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x+x)^p1)-(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x+x)^p1)-(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x+x)^p1)-(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x+x)^p1)-(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x+x)^p1)-(c/z) endif elseif @opx==2 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x*x)^p1)-(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x*x)^p1)-(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x*x)^p1)-(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x*x)^p1)-(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x*x)^p1)-(c/z) endif elseif @opx==3 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y)^p1)-(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y)^p1)-(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y)^p1)-(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y)^p1)-(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y)^p1)-(c/z) endif elseif @opx==4 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y+y)^p1)-(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y+y)^p1)-(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y+y)^p1)-(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y+y)^p1)-(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y+y)^p1)-(c/z) endif elseif @opx==5 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y*y)^p1)-(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y*y)^p1)-(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y*y)^p1)-(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y*y)^p1)-(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y*y)^p1)-(c/z) endif elseif @opx==6 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x+y)^p1)-(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x+y)^p1)-(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x+y)^p1)-(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x+y)^p1)-(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x+y)^p1)-(c/z) endif elseif @opx==7 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x-y)^p1)-(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x-y)^p1)-(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x-y)^p1)-(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x-y)^p1)-(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x-y)^p1)-(c/z) endif elseif @opx==8 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x*y)^p1)-(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x*y)^p1)-(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x*y)^p1)-(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x*y)^p1)-(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x*y)^p1)-(c/z) endif elseif @opx==9 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x/y)^p1)-(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x/y)^p1)-(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x/y)^p1)-(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x/y)^p1)-(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x/y)^p1)-(c/z) endif elseif @opx==10 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y-x)^p1)-(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y-x)^p1)-(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y-x)^p1)-(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y-x)^p1)-(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y-x)^p1)-(c/z) endif elseif @opx==11 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y/x)^p1)-(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y/x)^p1)-(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y/x)^p1)-(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y/x)^p1)-(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y/x)^p1)-(c/z) endif endif endif elseif @selc1==2 if @op==0 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(y/x))^p2)*(c/z) endif endif elseif @op==1 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(y/x))^p2)*(c/z) endif endif elseif @op==2 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(y/x))^p2)*(c/z) endif endif elseif @op==3 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(y/x))^p2)*(c/z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x+y))^p2)*(c/z) elseif @opx1==1 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x-y))^p2)*(c/z) elseif @opx1==2 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x*y))^p2)*(c/z) elseif @opx1==3 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(y-x))^p2)*(c/z) elseif @opx1==4 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(y/x))^p2)*(c/z) endif endif elseif @op==4 if @opx==0 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x)^p1)*(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x)^p1)*(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x)^p1)*(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x)^p1)*(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x)^p1)*(c/z) endif elseif @opx==1 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x+x)^p1)*(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x+x)^p1)*(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x+x)^p1)*(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x+x)^p1)*(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x+x)^p1)*(c/z) endif elseif @opx==2 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x*x)^p1)*(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x*x)^p1)*(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x*x)^p1)*(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x*x)^p1)*(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x*x)^p1)*(c/z) endif elseif @opx==3 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y)^p1)*(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y)^p1)*(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y)^p1)*(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y)^p1)*(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y)^p1)*(c/z) endif elseif @opx==4 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y+y)^p1)*(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y+y)^p1)*(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y+y)^p1)*(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y+y)^p1)*(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y+y)^p1)*(c/z) endif elseif @opx==5 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y*y)^p1)*(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y*y)^p1)*(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y*y)^p1)*(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y*y)^p1)*(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y*y)^p1)*(c/z) endif elseif @opx==6 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x+y)^p1)*(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x+y)^p1)*(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x+y)^p1)*(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x+y)^p1)*(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x+y)^p1)*(c/z) endif elseif @opx==7 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x-y)^p1)*(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x-y)^p1)*(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x-y)^p1)*(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x-y)^p1)*(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x-y)^p1)*(c/z) endif elseif @opx==8 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x*y)^p1)*(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x*y)^p1)*(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x*y)^p1)*(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x*y)^p1)*(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x*y)^p1)*(c/z) endif elseif @opx==9 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x/y)^p1)*(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x/y)^p1)*(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x/y)^p1)*(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x/y)^p1)*(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x/y)^p1)*(c/z) endif elseif @opx==10 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y-x)^p1)*(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y-x)^p1)*(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y-x)^p1)*(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y-x)^p1)*(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y-x)^p1)*(c/z) endif elseif @opx==11 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y/x)^p1)*(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y/x)^p1)*(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y/x)^p1)*(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y/x)^p1)*(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y/x)^p1)*(c/z) endif endif elseif @op==5 if @opx==0 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x)^p1)*(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x)^p1)*(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x)^p1)*(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x)^p1)*(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x)^p1)*(c/z) endif elseif @opx==1 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x+x)^p1)*(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x+x)^p1)*(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x+x)^p1)*(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x+x)^p1)*(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x+x)^p1)*(c/z) endif elseif @opx==2 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x*x)^p1)*(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x*x)^p1)*(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x*x)^p1)*(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x*x)^p1)*(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x*x)^p1)*(c/z) endif elseif @opx==3 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y)^p1)*(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y)^p1)*(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y)^p1)*(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y)^p1)*(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y)^p1)*(c/z) endif elseif @opx==4 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y+y)^p1)*(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y+y)^p1)*(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y+y)^p1)*(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y+y)^p1)*(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y+y)^p1)*(c/z) endif elseif @opx==5 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y*y)^p1)*(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y*y)^p1)*(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y*y)^p1)*(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y*y)^p1)*(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y*y)^p1)*(c/z) endif elseif @opx==6 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x+y)^p1)*(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x+y)^p1)*(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x+y)^p1)*(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x+y)^p1)*(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x+y)^p1)*(c/z) endif elseif @opx==7 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x-y)^p1)*(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x-y)^p1)*(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x-y)^p1)*(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x-y)^p1)*(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x-y)^p1)*(c/z) endif elseif @opx==8 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x*y)^p1)*(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x*y)^p1)*(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x*y)^p1)*(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x*y)^p1)*(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x*y)^p1)*(c/z) endif elseif @opx==9 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x/y)^p1)*(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x/y)^p1)*(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x/y)^p1)*(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x/y)^p1)*(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x/y)^p1)*(c/z) endif elseif @opx==10 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y-x)^p1)*(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y-x)^p1)*(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y-x)^p1)*(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y-x)^p1)*(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y-x)^p1)*(c/z) endif elseif @opx==11 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y/x)^p1)*(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y/x)^p1)*(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y/x)^p1)*(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y/x)^p1)*(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y/x)^p1)*(c/z) endif endif endif elseif @selc1==3 if @op==0 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(y/x))^p2)/(c/z) endif endif elseif @op==1 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(y/x))^p2)/(c/z) endif endif elseif @op==2 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(y/x))^p2)/(c/z) endif endif elseif @op==3 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(y/x))^p2)/(c/z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x+y))^p2)/(c/z) elseif @opx1==1 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x-y))^p2)/(c/z) elseif @opx1==2 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x*y))^p2)/(c/z) elseif @opx1==3 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(y-x))^p2)/(c/z) elseif @opx1==4 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(y/x))^p2)/(c/z) endif endif elseif @op==4 if @opx==0 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x)^p1)/(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x)^p1)/(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x)^p1)/(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x)^p1)/(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x)^p1)/(c/z) endif elseif @opx==1 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x+x)^p1)/(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x+x)^p1)/(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x+x)^p1)/(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x+x)^p1)/(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x+x)^p1)/(c/z) endif elseif @opx==2 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x*x)^p1)/(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x*x)^p1)/(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x*x)^p1)/(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x*x)^p1)/(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x*x)^p1)/(c/z) endif elseif @opx==3 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y)^p1)/(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y)^p1)/(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y)^p1)/(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y)^p1)/(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y)^p1)/(c/z) endif elseif @opx==4 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y+y)^p1)/(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y+y)^p1)/(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y+y)^p1)/(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y+y)^p1)/(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y+y)^p1)/(c/z) endif elseif @opx==5 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y*y)^p1)/(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y*y)^p1)/(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y*y)^p1)/(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y*y)^p1)/(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y*y)^p1)/(c/z) endif elseif @opx==6 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x+y)^p1)/(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x+y)^p1)/(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x+y)^p1)/(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x+y)^p1)/(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x+y)^p1)/(c/z) endif elseif @opx==7 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x-y)^p1)/(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x-y)^p1)/(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x-y)^p1)/(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x-y)^p1)/(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x-y)^p1)/(c/z) endif elseif @opx==8 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x*y)^p1)/(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x*y)^p1)/(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x*y)^p1)/(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x*y)^p1)/(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x*y)^p1)/(c/z) endif elseif @opx==9 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x/y)^p1)/(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x/y)^p1)/(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x/y)^p1)/(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x/y)^p1)/(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x/y)^p1)/(c/z) endif elseif @opx==10 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y-x)^p1)/(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y-x)^p1)/(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y-x)^p1)/(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y-x)^p1)/(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y-x)^p1)/(c/z) endif elseif @opx==11 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y/x)^p1)/(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y/x)^p1)/(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y/x)^p1)/(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y/x)^p1)/(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y/x)^p1)/(c/z) endif endif elseif @op==5 if @opx==0 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x)^p1)/(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x)^p1)/(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x)^p1)/(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x)^p1)/(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x)^p1)/(c/z) endif elseif @opx==1 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x+x)^p1)/(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x+x)^p1)/(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x+x)^p1)/(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x+x)^p1)/(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x+x)^p1)/(c/z) endif elseif @opx==2 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x*x)^p1)/(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x*x)^p1)/(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x*x)^p1)/(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x*x)^p1)/(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x*x)^p1)/(c/z) endif elseif @opx==3 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y)^p1)/(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y)^p1)/(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y)^p1)/(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y)^p1)/(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y)^p1)/(c/z) endif elseif @opx==4 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y+y)^p1)/(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y+y)^p1)/(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y+y)^p1)/(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y+y)^p1)/(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y+y)^p1)/(c/z) endif elseif @opx==5 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y*y)^p1)/(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y*y)^p1)/(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y*y)^p1)/(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y*y)^p1)/(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y*y)^p1)/(c/z) endif elseif @opx==6 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x+y)^p1)/(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x+y)^p1)/(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x+y)^p1)/(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x+y)^p1)/(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x+y)^p1)/(c/z) endif elseif @opx==7 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x-y)^p1)/(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x-y)^p1)/(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x-y)^p1)/(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x-y)^p1)/(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x-y)^p1)/(c/z) endif elseif @opx==8 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x*y)^p1)/(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x*y)^p1)/(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x*y)^p1)/(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x*y)^p1)/(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x*y)^p1)/(c/z) endif elseif @opx==9 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x/y)^p1)/(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x/y)^p1)/(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x/y)^p1)/(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x/y)^p1)/(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x/y)^p1)/(c/z) endif elseif @opx==10 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y-x)^p1)/(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y-x)^p1)/(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y-x)^p1)/(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y-x)^p1)/(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y-x)^p1)/(c/z) endif elseif @opx==11 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y/x)^p1)/(c/z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y/x)^p1)/(c/z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y/x)^p1)/(c/z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y/x)^p1)/(c/z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y/x)^p1)/(c/z) endif endif endif endif elseif @selc2==1 if @selc1==0 if @op==0 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(y/x))^p2)+(c*z) endif endif elseif @op==1 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(y/x))^p2)+(c*z) endif endif elseif @op==2 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(y/x))^p2)+(c*z) endif endif elseif @op==3 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(y/x))^p2)+(c*z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x+y))^p2)+(c*z) elseif @opx1==1 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x-y))^p2)+(c*z) elseif @opx1==2 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x*y))^p2)+(c*z) elseif @opx1==3 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(y-x))^p2)+(c*z) elseif @opx1==4 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(y/x))^p2)+(c*z) endif endif elseif @op==4 if @opx==0 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x)^p1)+(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x)^p1)+(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x)^p1)+(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x)^p1)+(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x)^p1)+(c*z) endif elseif @opx==1 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x+x)^p1)+(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x+x)^p1)+(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x+x)^p1)+(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x+x)^p1)+(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x+x)^p1)+(c*z) endif elseif @opx==2 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x*x)^p1)+(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x*x)^p1)+(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x*x)^p1)+(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x*x)^p1)+(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x*x)^p1)+(c*z) endif elseif @opx==3 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y)^p1)+(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y)^p1)+(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y)^p1)+(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y)^p1)+(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y)^p1)+(c*z) endif elseif @opx==4 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y+y)^p1)+(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y+y)^p1)+(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y+y)^p1)+(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y+y)^p1)+(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y+y)^p1)+(c*z) endif elseif @opx==5 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y*y)^p1)+(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y*y)^p1)+(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y*y)^p1)+(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y*y)^p1)+(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y*y)^p1)+(c*z) endif elseif @opx==6 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x+y)^p1)+(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x+y)^p1)+(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x+y)^p1)+(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x+y)^p1)+(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x+y)^p1)+(c*z) endif elseif @opx==7 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x-y)^p1)+(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x-y)^p1)+(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x-y)^p1)+(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x-y)^p1)+(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x-y)^p1)+(c*z) endif elseif @opx==8 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x*y)^p1)+(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x*y)^p1)+(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x*y)^p1)+(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x*y)^p1)+(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x*y)^p1)+(c*z) endif elseif @opx==9 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x/y)^p1)+(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x/y)^p1)+(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x/y)^p1)+(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x/y)^p1)+(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x/y)^p1)+(c*z) endif elseif @opx==10 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y-x)^p1)+(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y-x)^p1)+(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y-x)^p1)+(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y-x)^p1)+(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y-x)^p1)+(c*z) endif elseif @opx==11 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y/x)^p1)+(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y/x)^p1)+(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y/x)^p1)+(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y/x)^p1)+(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y/x)^p1)+(c*z) endif endif elseif @op==5 if @opx==0 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x)^p1)+(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x)^p1)+(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x)^p1)+(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x)^p1)+(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x)^p1)+(c*z) endif elseif @opx==1 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x+x)^p1)+(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x+x)^p1)+(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x+x)^p1)+(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x+x)^p1)+(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x+x)^p1)+(c*z) endif elseif @opx==2 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x*x)^p1)+(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x*x)^p1)+(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x*x)^p1)+(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x*x)^p1)+(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x*x)^p1)+(c*z) endif elseif @opx==3 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y)^p1)+(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y)^p1)+(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y)^p1)+(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y)^p1)+(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y)^p1)+(c*z) endif elseif @opx==4 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y+y)^p1)+(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y+y)^p1)+(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y+y)^p1)+(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y+y)^p1)+(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y+y)^p1)+(c*z) endif elseif @opx==5 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y*y)^p1)+(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y*y)^p1)+(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y*y)^p1)+(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y*y)^p1)+(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y*y)^p1)+(c*z) endif elseif @opx==6 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x+y)^p1)+(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x+y)^p1)+(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x+y)^p1)+(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x+y)^p1)+(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x+y)^p1)+(c*z) endif elseif @opx==7 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x-y)^p1)+(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x-y)^p1)+(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x-y)^p1)+(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x-y)^p1)+(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x-y)^p1)+(c*z) endif elseif @opx==8 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x*y)^p1)+(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x*y)^p1)+(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x*y)^p1)+(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x*y)^p1)+(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x*y)^p1)+(c*z) endif elseif @opx==9 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x/y)^p1)+(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x/y)^p1)+(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x/y)^p1)+(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x/y)^p1)+(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x/y)^p1)+(c*z) endif elseif @opx==10 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y-x)^p1)+(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y-x)^p1)+(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y-x)^p1)+(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y-x)^p1)+(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y-x)^p1)+(c*z) endif elseif @opx==11 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y/x)^p1)+(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y/x)^p1)+(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y/x)^p1)+(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y/x)^p1)+(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y/x)^p1)+(c*z) endif endif endif elseif @selc1==1 if @op==0 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(y/x))^p2)-(c*z) endif endif elseif @op==1 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(y/x))^p2)-(c*z) endif endif elseif @op==2 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(y/x))^p2)-(c*z) endif endif elseif @op==3 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(y/x))^p2)-(c*z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x+y))^p2)-(c*z) elseif @opx1==1 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x-y))^p2)-(c*z) elseif @opx1==2 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x*y))^p2)-(c*z) elseif @opx1==3 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(y-x))^p2)-(c*z) elseif @opx1==4 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(y/x))^p2)-(c*z) endif endif elseif @op==4 if @opx==0 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x)^p1)-(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x)^p1)-(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x)^p1)-(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x)^p1)-(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x)^p1)-(c*z) endif elseif @opx==1 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x+x)^p1)-(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x+x)^p1)-(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x+x)^p1)-(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x+x)^p1)-(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x+x)^p1)-(c*z) endif elseif @opx==2 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x*x)^p1)-(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x*x)^p1)-(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x*x)^p1)-(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x*x)^p1)-(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x*x)^p1)-(c*z) endif elseif @opx==3 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y)^p1)-(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y)^p1)-(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y)^p1)-(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y)^p1)-(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y)^p1)-(c*z) endif elseif @opx==4 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y+y)^p1)-(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y+y)^p1)-(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y+y)^p1)-(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y+y)^p1)-(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y+y)^p1)-(c*z) endif elseif @opx==5 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y*y)^p1)-(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y*y)^p1)-(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y*y)^p1)-(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y*y)^p1)-(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y*y)^p1)-(c*z) endif elseif @opx==6 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x+y)^p1)-(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x+y)^p1)-(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x+y)^p1)-(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x+y)^p1)-(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x+y)^p1)-(c*z) endif elseif @opx==7 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x-y)^p1)-(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x-y)^p1)-(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x-y)^p1)-(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x-y)^p1)-(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x-y)^p1)-(c*z) endif elseif @opx==8 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x*y)^p1)-(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x*y)^p1)-(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x*y)^p1)-(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x*y)^p1)-(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x*y)^p1)-(c*z) endif elseif @opx==9 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x/y)^p1)-(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x/y)^p1)-(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x/y)^p1)-(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x/y)^p1)-(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x/y)^p1)-(c*z) endif elseif @opx==10 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y-x)^p1)-(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y-x)^p1)-(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y-x)^p1)-(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y-x)^p1)-(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y-x)^p1)-(c*z) endif elseif @opx==11 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y/x)^p1)-(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y/x)^p1)-(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y/x)^p1)-(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y/x)^p1)-(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y/x)^p1)-(c*z) endif endif elseif @op==5 if @opx==0 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x)^p1)-(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x)^p1)-(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x)^p1)-(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x)^p1)-(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x)^p1)-(c*z) endif elseif @opx==1 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x+x)^p1)-(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x+x)^p1)-(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x+x)^p1)-(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x+x)^p1)-(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x+x)^p1)-(c*z) endif elseif @opx==2 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x*x)^p1)-(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x*x)^p1)-(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x*x)^p1)-(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x*x)^p1)-(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x*x)^p1)-(c*z) endif elseif @opx==3 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y)^p1)-(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y)^p1)-(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y)^p1)-(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y)^p1)-(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y)^p1)-(c*z) endif elseif @opx==4 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y+y)^p1)-(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y+y)^p1)-(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y+y)^p1)-(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y+y)^p1)-(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y+y)^p1)-(c*z) endif elseif @opx==5 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y*y)^p1)-(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y*y)^p1)-(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y*y)^p1)-(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y*y)^p1)-(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y*y)^p1)-(c*z) endif elseif @opx==6 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x+y)^p1)-(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x+y)^p1)-(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x+y)^p1)-(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x+y)^p1)-(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x+y)^p1)-(c*z) endif elseif @opx==7 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x-y)^p1)-(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x-y)^p1)-(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x-y)^p1)-(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x-y)^p1)-(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x-y)^p1)-(c*z) endif elseif @opx==8 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x*y)^p1)-(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x*y)^p1)-(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x*y)^p1)-(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x*y)^p1)-(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x*y)^p1)-(c*z) endif elseif @opx==9 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x/y)^p1)-(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x/y)^p1)-(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x/y)^p1)-(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x/y)^p1)-(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x/y)^p1)-(c*z) endif elseif @opx==10 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y-x)^p1)-(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y-x)^p1)-(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y-x)^p1)-(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y-x)^p1)-(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y-x)^p1)-(c*z) endif elseif @opx==11 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y/x)^p1)-(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y/x)^p1)-(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y/x)^p1)-(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y/x)^p1)-(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y/x)^p1)-(c*z) endif endif endif elseif @selc1==2 if @op==0 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(y/x))^p2)*(c*z) endif endif elseif @op==1 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(y/x))^p2)*(c*z) endif endif elseif @op==2 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(y/x))^p2)*(c*z) endif endif elseif @op==3 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(y/x))^p2)*(c*z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x+y))^p2)*(c*z) elseif @opx1==1 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x-y))^p2)*(c*z) elseif @opx1==2 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x*y))^p2)*(c*z) elseif @opx1==3 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(y-x))^p2)*(c*z) elseif @opx1==4 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(y/x))^p2)*(c*z) endif endif elseif @op==4 if @opx==0 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x)^p1)*(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x)^p1)*(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x)^p1)*(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x)^p1)*(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x)^p1)*(c*z) endif elseif @opx==1 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x+x)^p1)*(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x+x)^p1)*(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x+x)^p1)*(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x+x)^p1)*(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x+x)^p1)*(c*z) endif elseif @opx==2 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x*x)^p1)*(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x*x)^p1)*(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x*x)^p1)*(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x*x)^p1)*(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x*x)^p1)*(c*z) endif elseif @opx==3 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y)^p1)*(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y)^p1)*(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y)^p1)*(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y)^p1)*(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y)^p1)*(c*z) endif elseif @opx==4 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y+y)^p1)*(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y+y)^p1)*(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y+y)^p1)*(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y+y)^p1)*(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y+y)^p1)*(c*z) endif elseif @opx==5 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y*y)^p1)*(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y*y)^p1)*(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y*y)^p1)*(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y*y)^p1)*(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y*y)^p1)*(c*z) endif elseif @opx==6 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x+y)^p1)*(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x+y)^p1)*(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x+y)^p1)*(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x+y)^p1)*(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x+y)^p1)*(c*z) endif elseif @opx==7 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x-y)^p1)*(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x-y)^p1)*(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x-y)^p1)*(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x-y)^p1)*(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x-y)^p1)*(c*z) endif elseif @opx==8 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x*y)^p1)*(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x*y)^p1)*(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x*y)^p1)*(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x*y)^p1)*(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x*y)^p1)*(c*z) endif elseif @opx==9 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x/y)^p1)*(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x/y)^p1)*(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x/y)^p1)*(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x/y)^p1)*(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x/y)^p1)*(c*z) endif elseif @opx==10 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y-x)^p1)*(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y-x)^p1)*(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y-x)^p1)*(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y-x)^p1)*(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y-x)^p1)*(c*z) endif elseif @opx==11 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y/x)^p1)*(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y/x)^p1)*(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y/x)^p1)*(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y/x)^p1)*(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y/x)^p1)*(c*z) endif endif elseif @op==5 if @opx==0 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x)^p1)*(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x)^p1)*(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x)^p1)*(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x)^p1)*(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x)^p1)*(c*z) endif elseif @opx==1 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x+x)^p1)*(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x+x)^p1)*(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x+x)^p1)*(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x+x)^p1)*(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x+x)^p1)*(c*z) endif elseif @opx==2 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x*x)^p1)*(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x*x)^p1)*(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x*x)^p1)*(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x*x)^p1)*(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x*x)^p1)*(c*z) endif elseif @opx==3 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y)^p1)*(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y)^p1)*(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y)^p1)*(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y)^p1)*(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y)^p1)*(c*z) endif elseif @opx==4 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y+y)^p1)*(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y+y)^p1)*(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y+y)^p1)*(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y+y)^p1)*(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y+y)^p1)*(c*z) endif elseif @opx==5 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y*y)^p1)*(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y*y)^p1)*(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y*y)^p1)*(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y*y)^p1)*(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y*y)^p1)*(c*z) endif elseif @opx==6 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x+y)^p1)*(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x+y)^p1)*(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x+y)^p1)*(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x+y)^p1)*(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x+y)^p1)*(c*z) endif elseif @opx==7 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x-y)^p1)*(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x-y)^p1)*(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x-y)^p1)*(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x-y)^p1)*(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x-y)^p1)*(c*z) endif elseif @opx==8 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x*y)^p1)*(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x*y)^p1)*(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x*y)^p1)*(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x*y)^p1)*(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x*y)^p1)*(c*z) endif elseif @opx==9 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x/y)^p1)*(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x/y)^p1)*(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x/y)^p1)*(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x/y)^p1)*(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x/y)^p1)*(c*z) endif elseif @opx==10 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y-x)^p1)*(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y-x)^p1)*(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y-x)^p1)*(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y-x)^p1)*(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y-x)^p1)*(c*z) endif elseif @opx==11 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y/x)^p1)*(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y/x)^p1)*(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y/x)^p1)*(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y/x)^p1)*(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y/x)^p1)*(c*z) endif endif endif elseif @selc1==3 if @op==0 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x)^p1)+@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x+x)^p1)+@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x*x)^p1)+@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(y)^p1)+@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(y+y)^p1)+@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(y*y)^p1)+@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x+y)^p1)+@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x-y)^p1)+@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x*y)^p1)+@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x/y)^p1)+@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(y-x)^p1)+@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(y/x)^p1)+@fn10((c1*@fn6(y/x))^p2)/(c*z) endif endif elseif @op==1 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x)^p1)-@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x+x)^p1)-@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x*x)^p1)-@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(y)^p1)-@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(y+y)^p1)-@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(y*y)^p1)-@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x+y)^p1)-@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x-y)^p1)-@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x*y)^p1)-@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x/y)^p1)-@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(y-x)^p1)-@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(y/x)^p1)-@fn10((c1*@fn6(y/x))^p2)/(c*z) endif endif elseif @op==2 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x)^p1)*@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x+x)^p1)*@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x*x)^p1)*@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(y)^p1)*@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(y+y)^p1)*@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(y*y)^p1)*@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x+y)^p1)*@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x-y)^p1)*@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x*y)^p1)*@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x/y)^p1)*@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(y-x)^p1)*@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(y/x)^p1)*@fn10((c1*@fn6(y/x))^p2)/(c*z) endif endif elseif @op==3 if @opx==0 if @opx1==0 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x)^p1)/@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==1 if @opx1==0 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x+x)^p1)/@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==2 if @opx1==0 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x*x)^p1)/@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==3 if @opx1==0 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(y)^p1)/@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==4 if @opx1==0 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(y+y)^p1)/@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==5 if @opx1==0 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(y*y)^p1)/@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==6 if @opx1==0 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x+y)^p1)/@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==7 if @opx1==0 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x-y)^p1)/@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==8 if @opx1==0 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x*y)^p1)/@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==9 if @opx1==0 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(x/y)^p1)/@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==10 if @opx1==0 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(y-x)^p1)/@fn10((c1*@fn6(y/x))^p2)/(c*z) endif elseif @opx==11 if @opx1==0 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x+y))^p2)/(c*z) elseif @opx1==1 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x-y))^p2)/(c*z) elseif @opx1==2 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(x*y))^p2)/(c*z) elseif @opx1==3 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(y-x))^p2)/(c*z) elseif @opx1==4 x1=(@fn5(y/x)^p1)/@fn10((c1*@fn6(y/x))^p2)/(c*z) endif endif elseif @op==4 if @opx==0 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x)^p1)/(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x)^p1)/(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x)^p1)/(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x)^p1)/(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x)^p1)/(c*z) endif elseif @opx==1 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x+x)^p1)/(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x+x)^p1)/(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x+x)^p1)/(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x+x)^p1)/(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x+x)^p1)/(c*z) endif elseif @opx==2 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x*x)^p1)/(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x*x)^p1)/(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x*x)^p1)/(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x*x)^p1)/(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x*x)^p1)/(c*z) endif elseif @opx==3 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y)^p1)/(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y)^p1)/(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y)^p1)/(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y)^p1)/(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y)^p1)/(c*z) endif elseif @opx==4 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y+y)^p1)/(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y+y)^p1)/(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y+y)^p1)/(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y+y)^p1)/(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y+y)^p1)/(c*z) endif elseif @opx==5 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y*y)^p1)/(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y*y)^p1)/(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y*y)^p1)/(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y*y)^p1)/(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y*y)^p1)/(c*z) endif elseif @opx==6 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x+y)^p1)/(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x+y)^p1)/(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x+y)^p1)/(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x+y)^p1)/(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x+y)^p1)/(c*z) endif elseif @opx==7 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x-y)^p1)/(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x-y)^p1)/(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x-y)^p1)/(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x-y)^p1)/(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x-y)^p1)/(c*z) endif elseif @opx==8 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x*y)^p1)/(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x*y)^p1)/(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x*y)^p1)/(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x*y)^p1)/(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x*y)^p1)/(c*z) endif elseif @opx==9 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(x/y)^p1)/(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(x/y)^p1)/(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(x/y)^p1)/(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(x/y)^p1)/(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(x/y)^p1)/(c*z) endif elseif @opx==10 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y-x)^p1)/(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y-x)^p1)/(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y-x)^p1)/(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y-x)^p1)/(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y-x)^p1)/(c*z) endif elseif @opx==11 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)-(@fn5(y/x)^p1)/(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)-(@fn5(y/x)^p1)/(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)-(@fn5(y/x)^p1)/(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)-(@fn5(y/x)^p1)/(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)-(@fn5(y/x)^p1)/(c*z) endif endif elseif @op==5 if @opx==0 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x)^p1)/(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x)^p1)/(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x)^p1)/(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x)^p1)/(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x)^p1)/(c*z) endif elseif @opx==1 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x+x)^p1)/(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x+x)^p1)/(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x+x)^p1)/(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x+x)^p1)/(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x+x)^p1)/(c*z) endif elseif @opx==2 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x*x)^p1)/(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x*x)^p1)/(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x*x)^p1)/(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x*x)^p1)/(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x*x)^p1)/(c*z) endif elseif @opx==3 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y)^p1)/(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y)^p1)/(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y)^p1)/(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y)^p1)/(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y)^p1)/(c*z) endif elseif @opx==4 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y+y)^p1)/(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y+y)^p1)/(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y+y)^p1)/(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y+y)^p1)/(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y+y)^p1)/(c*z) endif elseif @opx==5 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y*y)^p1)/(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y*y)^p1)/(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y*y)^p1)/(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y*y)^p1)/(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y*y)^p1)/(c*z) endif elseif @opx==6 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x+y)^p1)/(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x+y)^p1)/(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x+y)^p1)/(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x+y)^p1)/(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x+y)^p1)/(c*z) endif elseif @opx==7 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x-y)^p1)/(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x-y)^p1)/(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x-y)^p1)/(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x-y)^p1)/(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x-y)^p1)/(c*z) endif elseif @opx==8 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x*y)^p1)/(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x*y)^p1)/(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x*y)^p1)/(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x*y)^p1)/(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x*y)^p1)/(c*z) endif elseif @opx==9 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(x/y)^p1)/(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(x/y)^p1)/(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(x/y)^p1)/(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(x/y)^p1)/(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(x/y)^p1)/(c*z) endif elseif @opx==10 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y-x)^p1)/(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y-x)^p1)/(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y-x)^p1)/(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y-x)^p1)/(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y-x)^p1)/(c*z) endif elseif @opx==11 if @opx1==0 x1=@fn10((c1*@fn6(x+y))^p2)/(@fn5(y/x)^p1)/(c*z) elseif @opx1==1 x1=@fn10((c1*@fn6(x-y))^p2)/(@fn5(y/x)^p1)/(c*z) elseif @opx1==2 x1=@fn10((c1*@fn6(x*y))^p2)/(@fn5(y/x)^p1)/(c*z) elseif @opx1==3 x1=@fn10((c1*@fn6(y-x))^p2)/(@fn5(y/x)^p1)/(c*z) elseif @opx1==4 x1=@fn10((c1*@fn6(y/x))^p2)/(@fn5(y/x)^p1)/(c*z) endif endif endif endif endif endif if @op1==0 if @opy==0 y1=(c2+fn1(x)^p5) elseif @opy==1 y1=(c2+fn1(x+x)^p5) elseif @opy==2 y1=(c2+fn1(x*x)^p5) elseif @opy==3 y1=(c2+fn1(y)^p5) elseif @opy==4 y1=(c2+fn1(y+y)^p5) elseif @opy==5 y1=(c2+fn1(y*y)^p5) elseif @opy==6 y1=(c2+fn1(x+y)^p5) elseif @opy==7 y1=(c2+fn1(x-y)^p5) elseif @opy==8 y1=(c2+fn1(x*y)^p5) elseif @opy==9 y1=(c2+fn1(x/y)^p5) elseif @opy==10 y1=(c2+fn1(y-x)^p5) elseif @opy==11 y1=(c2+fn1(y/x)^p5) endif elseif @op1==1 if @opy==0 y1=(c2-fn1(x)^p5) elseif @opy==1 y1=(c2-fn1(x+x)^p5) elseif @opy==2 y1=(c2-fn1(x*x)^p5) elseif @opy==3 y1=(c2-fn1(y)^p5) elseif @opy==4 y1=(c2-fn1(y+y)^p5) elseif @opy==5 y1=(c2-fn1(y*y)^p5) elseif @opy==6 y1=(c2-fn1(x+y)^p5) elseif @opy==7 y1=(c2-fn1(x-y)^p5) elseif @opy==8 y1=(c2-fn1(x*y)^p5) elseif @opy==9 y1=(c2-fn1(x/y)^p5) elseif @opy==10 y1=(c2-fn1(y-x)^p5) elseif @opy==11 y1=(c2-fn1(y/x)^p5) endif elseif @op1==2 if @opy==0 y1=(c2*fn1(x)^p5) elseif @opy==1 y1=(c2*fn1(x+x)^p5) elseif @opy==2 y1=(c2*fn1(x*x)^p5) elseif @opy==3 y1=(c2*fn1(y)^p5) elseif @opy==4 y1=(c2*fn1(y+y)^p5) elseif @opy==5 y1=(c2*fn1(y*y)^p5) elseif @opy==6 y1=(c2*fn1(x+y)^p5) elseif @opy==7 y1=(c2*fn1(x-y)^p5) elseif @opy==8 y1=(c2*fn1(x*y)^p5) elseif @opy==9 y1=(c2*fn1(x/y)^p5) elseif @opy==10 y1=(c2*fn1(y-x)^p5) elseif @opy==11 y1=(c2*fn1(y/x)^p5) endif elseif @op1==3 if @opy==0 y1=(c2/fn1(x)^p5) elseif @opy==1 y1=(c2/fn1(x+x)^p5) elseif @opy==2 y1=(c2/fn1(x*x)^p5) elseif @opy==3 y1=(c2/fn1(y)^p5) elseif @opy==4 y1=(c2/fn1(y+y)^p5) elseif @opy==5 y1=(c2/fn1(y*y)^p5) elseif @opy==6 y1=(c2/fn1(x+y)^p5) elseif @opy==7 y1=(c2/fn1(x-y)^p5) elseif @opy==8 y1=(c2/fn1(x*y)^p5) elseif @opy==9 y1=(c2/fn1(x/y)^p5) elseif @opy==10 y1=(c2/fn1(y-x)^p5) elseif @opy==11 y1=(c2/fn1(y/x)^p5) endif elseif @op1==4 if @opy==0 y1=(z+c2+fn1(x)^p5) elseif @opy==1 y1=(z+c2+fn1(x+x)^p5) elseif @opy==2 y1=(z+c2+fn1(x*x)^p5) elseif @opy==3 y1=(z+c2+fn1(y)^p5) elseif @opy==4 y1=(z+c2+fn1(y+y)^p5) elseif @opy==5 y1=(z+c2+fn1(y*y)^p5) elseif @opy==6 y1=(z+c2+fn1(x+y)^p5) elseif @opy==7 y1=(z+c2+fn1(x-y)^p5) elseif @opy==8 y1=(z+c2+fn1(x*y)^p5) elseif @opy==9 y1=(z+c2+fn1(x/y)^p5) elseif @opy==10 y1=(z+c2+fn1(y-x)^p5) elseif @opy==11 y1=(z+c2+fn1(y/x)^p5) endif elseif @op1==5 if @opy==0 y1=(z-c2+fn1(x)^p5) elseif @opy==1 y1=(z-c2+fn1(x+x)^p5) elseif @opy==2 y1=(z-c2+fn1(x*x)^p5) elseif @opy==3 y1=(z-c2+fn1(y)^p5) elseif @opy==4 y1=(z-c2+fn1(y+y)^p5) elseif @opy==5 y1=(z-c2+fn1(y*y)^p5) elseif @opy==6 y1=(z-c2+fn1(x+y)^p5) elseif @opy==7 y1=(z-c2+fn1(x-y)^p5) elseif @opy==8 y1=(z-c2+fn1(x*y)^p5) elseif @opy==9 y1=(z-c2+fn1(x/y)^p5) elseif @opy==10 y1=(z-c2+fn1(y-x)^p5) elseif @opy==11 y1=(z-c2+fn1(y/x)^p5) endif elseif @op1==6 if @opy==0 y1=(z*c2+fn1(x)^p5) elseif @opy==1 y1=(z*c2+fn1(x+x)^p5) elseif @opy==2 y1=(z*c2+fn1(x*x)^p5) elseif @opy==3 y1=(z*c2+fn1(y)^p5) elseif @opy==4 y1=(z*c2+fn1(y+y)^p5) elseif @opy==5 y1=(z*c2+fn1(y*y)^p5) elseif @opy==6 y1=(z*c2+fn1(x+y)^p5) elseif @opy==7 y1=(z*c2+fn1(x-y)^p5) elseif @opy==8 y1=(z*c2+fn1(x*y)^p5) elseif @opy==9 y1=(z*c2+fn1(x/y)^p5) elseif @opy==10 y1=(z*c2+fn1(y-x)^p5) elseif @opy==11 y1=(z*c2+fn1(y/x)^p5) endif elseif @op1==7 if @opy==0 y1=(z/c2+fn1(x)^p5) elseif @opy==1 y1=(z/c2+fn1(x+x)^p5) elseif @opy==2 y1=(z/c2+fn1(x*x)^p5) elseif @opy==3 y1=(z/c2+fn1(y)^p5) elseif @opy==4 y1=(z/c2+fn1(y+y)^p5) elseif @opy==5 y1=(z/c2+fn1(y*y)^p5) elseif @opy==6 y1=(z/c2+fn1(x+y)^p5) elseif @opy==7 y1=(z/c2+fn1(x-y)^p5) elseif @opy==8 y1=(z/c2+fn1(x*y)^p5) elseif @opy==9 y1=(z/c2+fn1(x/y)^p5) elseif @opy==10 y1=(z/c2+fn1(y-x)^p5) elseif @opy==11 y1=(z/c2+fn1(y/x)^p5) endif elseif @op1==8 if @opy==0 y1=(z+c2-fn1(x)^p5) elseif @opy==1 y1=(z+c2-fn1(x+x)^p5) elseif @opy==2 y1=(z+c2-fn1(x*x)^p5) elseif @opy==3 y1=(z+c2-fn1(y)^p5) elseif @opy==4 y1=(z+c2-fn1(y+y)^p5) elseif @opy==5 y1=(z+c2-fn1(y*y)^p5) elseif @opy==6 y1=(z+c2-fn1(x+y)^p5) elseif @opy==7 y1=(z+c2-fn1(x-y)^p5) elseif @opy==8 y1=(z+c2-fn1(x*y)^p5) elseif @opy==9 y1=(z+c2-fn1(x/y)^p5) elseif @opy==10 y1=(z+c2-fn1(y-x)^p5) elseif @opy==11 y1=(z+c2-fn1(y/x)^p5) endif elseif @op1==9 if @opy==0 y1=(z-c2-fn1(x)^p5) elseif @opy==1 y1=(z-c2-fn1(x+x)^p5) elseif @opy==2 y1=(z-c2-fn1(x*x)^p5) elseif @opy==3 y1=(z-c2-fn1(y)^p5) elseif @opy==4 y1=(z-c2-fn1(y+y)^p5) elseif @opy==5 y1=(z-c2-fn1(y*y)^p5) elseif @opy==6 y1=(z-c2-fn1(x+y)^p5) elseif @opy==7 y1=(z-c2-fn1(x-y)^p5) elseif @opy==8 y1=(z-c2-fn1(x*y)^p5) elseif @opy==9 y1=(z-c2-fn1(x/y)^p5) elseif @opy==10 y1=(z-c2-fn1(y-x)^p5) elseif @opy==11 y1=(z-c2-fn1(y/x)^p5) endif elseif @op1==10 if @opy==0 y1=(z*c2-fn1(x)^p5) elseif @opy==1 y1=(z*c2-fn1(x+x)^p5) elseif @opy==2 y1=(z*c2-fn1(x*x)^p5) elseif @opy==3 y1=(z*c2-fn1(y)^p5) elseif @opy==4 y1=(z*c2-fn1(y+y)^p5) elseif @opy==5 y1=(z*c2-fn1(y*y)^p5) elseif @opy==6 y1=(z*c2-fn1(x+y)^p5) elseif @opy==7 y1=(z*c2-fn1(x-y)^p5) elseif @opy==8 y1=(z*c2-fn1(x*y)^p5) elseif @opy==9 y1=(z*c2-fn1(x/y)^p5) elseif @opy==10 y1=(z*c2-fn1(y-x)^p5) elseif @opy==11 y1=(z*c2-fn1(y/x)^p5) endif elseif @op1==11 if @opy==0 y1=(z/c2-fn1(x)^p5) elseif @opy==1 y1=(z/c2-fn1(x+x)^p5) elseif @opy==2 y1=(z/c2-fn1(x*x)^p5) elseif @opy==3 y1=(z/c2-fn1(y)^p5) elseif @opy==4 y1=(z/c2-fn1(y+y)^p5) elseif @opy==5 y1=(z/c2-fn1(y*y)^p5) elseif @opy==6 y1=(z/c2-fn1(x+y)^p5) elseif @opy==7 y1=(z/c2-fn1(x-y)^p5) elseif @opy==8 y1=(z/c2-fn1(x*y)^p5) elseif @opy==9 y1=(z/c2-fn1(x/y)^p5) elseif @opy==10 y1=(z/c2-fn1(y-x)^p5) elseif @opy==11 y1=(z/c2-fn1(y/x)^p5) endif elseif @op1==12 if @opy==0 y1=(z+c2*fn1(x)^p5) elseif @opy==1 y1=(z+c2*fn1(x+x)^p5) elseif @opy==2 y1=(z+c2*fn1(x*x)^p5) elseif @opy==3 y1=(z+c2*fn1(y)^p5) elseif @opy==4 y1=(z+c2*fn1(y+y)^p5) elseif @opy==5 y1=(z+c2*fn1(y*y)^p5) elseif @opy==6 y1=(z+c2*fn1(x+y)^p5) elseif @opy==7 y1=(z+c2*fn1(x-y)^p5) elseif @opy==8 y1=(z+c2*fn1(x*y)^p5) elseif @opy==9 y1=(z+c2*fn1(x/y)^p5) elseif @opy==10 y1=(z+c2*fn1(y-x)^p5) elseif @opy==11 y1=(z+c2*fn1(y/x)^p5) endif elseif @op1==13 if @opy==0 y1=(z-c2*fn1(x)^p5) elseif @opy==1 y1=(z-c2*fn1(x+x)^p5) elseif @opy==2 y1=(z-c2*fn1(x*x)^p5) elseif @opy==3 y1=(z-c2*fn1(y)^p5) elseif @opy==4 y1=(z-c2*fn1(y+y)^p5) elseif @opy==5 y1=(z-c2*fn1(y*y)^p5) elseif @opy==6 y1=(z-c2*fn1(x+y)^p5) elseif @opy==7 y1=(z-c2*fn1(x-y)^p5) elseif @opy==8 y1=(z-c2*fn1(x*y)^p5) elseif @opy==9 y1=(z-c2*fn1(x/y)^p5) elseif @opy==10 y1=(z-c2*fn1(y-x)^p5) elseif @opy==11 y1=(z-c2*fn1(y/x)^p5) endif elseif @op1==14 if @opy==0 y1=(z*c2*fn1(x)^p5) elseif @opy==1 y1=(z*c2*fn1(x+x)^p5) elseif @opy==2 y1=(z*c2*fn1(x*x)^p5) elseif @opy==3 y1=(z*c2*fn1(y)^p5) elseif @opy==4 y1=(z*c2*fn1(y+y)^p5) elseif @opy==5 y1=(z*c2*fn1(y*y)^p5) elseif @opy==6 y1=(z*c2*fn1(x+y)^p5) elseif @opy==7 y1=(z*c2*fn1(x-y)^p5) elseif @opy==8 y1=(z*c2*fn1(x*y)^p5) elseif @opy==9 y1=(z*c2*fn1(x/y)^p5) elseif @opy==10 y1=(z*c2*fn1(y-x)^p5) elseif @opy==11 y1=(z*c2*fn1(y/x)^p5) endif elseif @op1==15 if @opy==0 y1=(z/c2*fn1(x)^p5) elseif @opy==1 y1=(z/c2*fn1(x+x)^p5) elseif @opy==2 y1=(z/c2*fn1(x*x)^p5) elseif @opy==3 y1=(z/c2*fn1(y)^p5) elseif @opy==4 y1=(z/c2*fn1(y+y)^p5) elseif @opy==5 y1=(z/c2*fn1(y*y)^p5) elseif @opy==6 y1=(z/c2*fn1(x+y)^p5) elseif @opy==7 y1=(z/c2*fn1(x-y)^p5) elseif @opy==8 y1=(z/c2*fn1(x*y)^p5) elseif @opy==9 y1=(z/c2*fn1(x/y)^p5) elseif @opy==10 y1=(z/c2*fn1(y-x)^p5) elseif @opy==11 y1=(z/c2*fn1(y/x)^p5) endif elseif @op1==16 if @opy==0 y1=(z+c2/fn1(x)^p5) elseif @opy==1 y1=(z+c2/fn1(x+x)^p5) elseif @opy==2 y1=(z+c2/fn1(x*x)^p5) elseif @opy==3 y1=(z+c2/fn1(y)^p5) elseif @opy==4 y1=(z+c2/fn1(y+y)^p5) elseif @opy==5 y1=(z+c2/fn1(y*y)^p5) elseif @opy==6 y1=(z+c2/fn1(x+y)^p5) elseif @opy==7 y1=(z+c2/fn1(x-y)^p5) elseif @opy==8 y1=(z+c2/fn1(x*y)^p5) elseif @opy==9 y1=(z+c2/fn1(x/y)^p5) elseif @opy==10 y1=(z+c2/fn1(y-x)^p5) elseif @opy==11 y1=(z+c2/fn1(y/x)^p5) endif elseif @op1==17 if @opy==0 y1=(z-c2/fn1(x)^p5) elseif @opy==1 y1=(z-c2/fn1(x+x)^p5) elseif @opy==2 y1=(z-c2/fn1(x*x)^p5) elseif @opy==3 y1=(z-c2/fn1(y)^p5) elseif @opy==4 y1=(z-c2/fn1(y+y)^p5) elseif @opy==5 y1=(z-c2/fn1(y*y)^p5) elseif @opy==6 y1=(z-c2/fn1(x+y)^p5) elseif @opy==7 y1=(z-c2/fn1(x-y)^p5) elseif @opy==8 y1=(z-c2/fn1(x*y)^p5) elseif @opy==9 y1=(z-c2/fn1(x/y)^p5) elseif @opy==10 y1=(z-c2/fn1(y-x)^p5) elseif @opy==11 y1=(z-c2/fn1(y/x)^p5) endif elseif @op1==18 if @opy==0 y1=(z*c2/fn1(x)^p5) elseif @opy==1 y1=(z*c2/fn1(x+x)^p5) elseif @opy==2 y1=(z*c2/fn1(x*x)^p5) elseif @opy==3 y1=(z*c2/fn1(y)^p5) elseif @opy==4 y1=(z*c2/fn1(y+y)^p5) elseif @opy==5 y1=(z*c2/fn1(y*y)^p5) elseif @opy==6 y1=(z*c2/fn1(x+y)^p5) elseif @opy==7 y1=(z*c2/fn1(x-y)^p5) elseif @opy==8 y1=(z*c2/fn1(x*y)^p5) elseif @opy==9 y1=(z*c2/fn1(x/y)^p5) elseif @opy==10 y1=(z*c2/fn1(y-x)^p5) elseif @opy==11 y1=(z*c2/fn1(y/x)^p5) endif elseif @op1==19 if @opy==0 y1=(z/c2/fn1(x)^p5) elseif @opy==1 y1=(z/c2/fn1(x+x)^p5) elseif @opy==2 y1=(z/c2/fn1(x*x)^p5) elseif @opy==3 y1=(z/c2/fn1(y)^p5) elseif @opy==4 y1=(z/c2/fn1(y+y)^p5) elseif @opy==5 y1=(z/c2/fn1(y*y)^p5) elseif @opy==6 y1=(z/c2/fn1(x+y)^p5) elseif @opy==7 y1=(z/c2/fn1(x-y)^p5) elseif @opy==8 y1=(z/c2/fn1(x*y)^p5) elseif @opy==9 y1=(z/c2/fn1(x/y)^p5) elseif @opy==10 y1=(z/c2/fn1(y-x)^p5) elseif @opy==11 y1=(z/c2/fn1(y/x)^p5) endif endif if @opz1==0 z1=@fn11(x1)+@fn12(y1) elseif @opz1==1 z1=@fn11(x1)-@fn12(y1) elseif @opz1==2 z1=@fn11(x1)*@fn12(y1) elseif @opz1==3 z1=@fn11(x1)/@fn12(y1) elseif @opz1==4 z1=@fn12(y1)-@fn11(x1) elseif @opz1==5 z1=@fn12(y1)/@fn11(x1) endif if @selectz2==true if @opz2==0 if @opzy2==0 if @opzx2==0 z2=(@fn14(x1)+z)+(@fn15(y1)+z) elseif @opzx2==1 z2=(@fn14(x1)-z)+(@fn15(y1)+z) elseif @opzx2==2 z2=(@fn14(x1)*z)+(@fn15(y1)+z) elseif @opzx2==3 z2=(@fn14(x1)/z)+(@fn15(y1)+z) elseif @opzx2==4 z2=(z-@fn14(x1))+(@fn15(y1)+z) elseif @opzx2==5 z2=(z/@fn14(x1))+(@fn15(y1)+z) endif elseif @opzy2==1 if @opzx2==0 z2=(@fn14(x1)+z)+(@fn15(y1)-z) elseif @opzx2==1 z2=(@fn14(x1)-z)+(@fn15(y1)-z) elseif @opzx2==2 z2=(@fn14(x1)*z)+(@fn15(y1)-z) elseif @opzx2==3 z2=(@fn14(x1)/z)+(@fn15(y1)-z) elseif @opzx2==4 z2=(z-@fn14(x1))+(@fn15(y1)-z) elseif @opzx2==5 z2=(z/@fn14(x1))+(@fn15(y1)-z) endif elseif @opzy2==2 if @opzx2==0 z2=(@fn14(x1)+z)+(@fn15(y1)*z) elseif @opzx2==1 z2=(@fn14(x1)-z)+(@fn15(y1)*z) elseif @opzx2==2 z2=(@fn14(x1)*z)+(@fn15(y1)*z) elseif @opzx2==3 z2=(@fn14(x1)/z)+(@fn15(y1)*z) elseif @opzx2==4 z2=(z-@fn14(x1))+(@fn15(y1)*z) elseif @opzx2==5 z2=(z/@fn14(x1))+(@fn15(y1)*z) endif elseif @opzy2==3 if @opzx2==0 z2=(@fn14(x1)+z)+(@fn15(y1)/z) elseif @opzx2==1 z2=(@fn14(x1)-z)+(@fn15(y1)/z) elseif @opzx2==2 z2=(@fn14(x1)*z)+(@fn15(y1)/z) elseif @opzx2==3 z2=(@fn14(x1)/z)+(@fn15(y1)/z) elseif @opzx2==4 z2=(z-@fn14(x1))+(@fn15(y1)/z) elseif @opzx2==5 z2=(z/@fn14(x1))+(@fn15(y1)/z) endif elseif @opzy2==4 if @opzx2==0 z2=(@fn14(x1)+z)+(z-@fn15(y1)) elseif @opzx2==1 z2=(@fn14(x1)-z)+(z-@fn15(y1)) elseif @opzx2==2 z2=(@fn14(x1)*z)+(z-@fn15(y1)) elseif @opzx2==3 z2=(@fn14(x1)/z)+(z-@fn15(y1)) elseif @opzx2==4 z2=(z-@fn14(x1))+(z-@fn15(y1)) elseif @opzx2==5 z2=(z/@fn14(x1))+(z-@fn15(y1)) endif elseif @opzy2==5 if @opzx2==0 z2=(@fn14(x1)+z)+(z/@fn15(y1)) elseif @opzx2==1 z2=(@fn14(x1)-z)+(z/@fn15(y1)) elseif @opzx2==2 z2=(@fn14(x1)*z)+(z/@fn15(y1)) elseif @opzx2==3 z2=(@fn14(x1)/z)+(z/@fn15(y1)) elseif @opzx2==4 z2=(z-@fn14(x1))+(z/@fn15(y1)) elseif @opzx2==5 z2=(z/@fn14(x1))+(z/@fn15(y1)) endif endif elseif @opz2==1 if @opzy2==0 if @opzx2==0 z2=(@fn14(x1)+z)-(@fn15(y1)+z) elseif @opzx2==1 z2=(@fn14(x1)-z)-(@fn15(y1)+z) elseif @opzx2==2 z2=(@fn14(x1)*z)-(@fn15(y1)+z) elseif @opzx2==3 z2=(@fn14(x1)/z)-(@fn15(y1)+z) elseif @opzx2==4 z2=(z-@fn14(x1))-(@fn15(y1)+z) elseif @opzx2==5 z2=(z/@fn14(x1))-(@fn15(y1)+z) endif elseif @opzy2==1 if @opzx2==0 z2=(@fn14(x1)+z)-(@fn15(y1)-z) elseif @opzx2==1 z2=(@fn14(x1)-z)-(@fn15(y1)-z) elseif @opzx2==2 z2=(@fn14(x1)*z)-(@fn15(y1)-z) elseif @opzx2==3 z2=(@fn14(x1)/z)-(@fn15(y1)-z) elseif @opzx2==4 z2=(z-@fn14(x1))-(@fn15(y1)-z) elseif @opzx2==5 z2=(z/@fn14(x1))-(@fn15(y1)-z) endif elseif @opzy2==2 if @opzx2==0 z2=(@fn14(x1)+z)-(@fn15(y1)*z) elseif @opzx2==1 z2=(@fn14(x1)-z)-(@fn15(y1)*z) elseif @opzx2==2 z2=(@fn14(x1)*z)-(@fn15(y1)*z) elseif @opzx2==3 z2=(@fn14(x1)/z)-(@fn15(y1)*z) elseif @opzx2==4 z2=(z-@fn14(x1))-(@fn15(y1)*z) elseif @opzx2==5 z2=(z/@fn14(x1))-(@fn15(y1)*z) endif elseif @opzy2==3 if @opzx2==0 z2=(@fn14(x1)+z)-(@fn15(y1)/z) elseif @opzx2==1 z2=(@fn14(x1)-z)-(@fn15(y1)/z) elseif @opzx2==2 z2=(@fn14(x1)*z)-(@fn15(y1)/z) elseif @opzx2==3 z2=(@fn14(x1)/z)-(@fn15(y1)/z) elseif @opzx2==4 z2=(z-@fn14(x1))-(@fn15(y1)/z) elseif @opzx2==5 z2=(z/@fn14(x1))-(@fn15(y1)/z) endif elseif @opzy2==4 if @opzx2==0 z2=(@fn14(x1)+z)-(z-@fn15(y1)) elseif @opzx2==1 z2=(@fn14(x1)-z)-(z-@fn15(y1)) elseif @opzx2==2 z2=(@fn14(x1)*z)-(z-@fn15(y1)) elseif @opzx2==3 z2=(@fn14(x1)/z)-(z-@fn15(y1)) elseif @opzx2==4 z2=(z-@fn14(x1))-(z-@fn15(y1)) elseif @opzx2==5 z2=(z/@fn14(x1))-(z-@fn15(y1)) endif elseif @opzy2==5 if @opzx2==0 z2=(@fn14(x1)+z)-(z/@fn15(y1)) elseif @opzx2==1 z2=(@fn14(x1)-z)-(z/@fn15(y1)) elseif @opzx2==2 z2=(@fn14(x1)*z)-(z/@fn15(y1)) elseif @opzx2==3 z2=(@fn14(x1)/z)-(z/@fn15(y1)) elseif @opzx2==4 z2=(z-@fn14(x1))-(z/@fn15(y1)) elseif @opzx2==5 z2=(z/@fn14(x1))-(z/@fn15(y1)) endif endif elseif @opz2==2 if @opzy2==0 if @opzx2==0 z2=(@fn14(x1)+z)*(@fn15(y1)+z) elseif @opzx2==1 z2=(@fn14(x1)-z)*(@fn15(y1)+z) elseif @opzx2==2 z2=(@fn14(x1)*z)*(@fn15(y1)+z) elseif @opzx2==3 z2=(@fn14(x1)/z)*(@fn15(y1)+z) elseif @opzx2==4 z2=(z-@fn14(x1))*(@fn15(y1)+z) elseif @opzx2==5 z2=(z/@fn14(x1))*(@fn15(y1)+z) endif elseif @opzy2==1 if @opzx2==0 z2=(@fn14(x1)+z)*(@fn15(y1)-z) elseif @opzx2==1 z2=(@fn14(x1)-z)*(@fn15(y1)-z) elseif @opzx2==2 z2=(@fn14(x1)*z)*(@fn15(y1)-z) elseif @opzx2==3 z2=(@fn14(x1)/z)*(@fn15(y1)-z) elseif @opzx2==4 z2=(z-@fn14(x1))*(@fn15(y1)-z) elseif @opzx2==5 z2=(z/@fn14(x1))*(@fn15(y1)-z) endif elseif @opzy2==2 if @opzx2==0 z2=(@fn14(x1)+z)*(@fn15(y1)*z) elseif @opzx2==1 z2=(@fn14(x1)-z)*(@fn15(y1)*z) elseif @opzx2==2 z2=(@fn14(x1)*z)*(@fn15(y1)*z) elseif @opzx2==3 z2=(@fn14(x1)/z)*(@fn15(y1)*z) elseif @opzx2==4 z2=(z-@fn14(x1))*(@fn15(y1)*z) elseif @opzx2==5 z2=(z/@fn14(x1))*(@fn15(y1)*z) endif elseif @opzy2==3 if @opzx2==0 z2=(@fn14(x1)+z)*(@fn15(y1)/z) elseif @opzx2==1 z2=(@fn14(x1)-z)*(@fn15(y1)/z) elseif @opzx2==2 z2=(@fn14(x1)*z)*(@fn15(y1)/z) elseif @opzx2==3 z2=(@fn14(x1)/z)*(@fn15(y1)/z) elseif @opzx2==4 z2=(z-@fn14(x1))*(@fn15(y1)/z) elseif @opzx2==5 z2=(z/@fn14(x1))*(@fn15(y1)/z) endif elseif @opzy2==4 if @opzx2==0 z2=(@fn14(x1)+z)*(z-@fn15(y1)) elseif @opzx2==1 z2=(@fn14(x1)-z)*(z-@fn15(y1)) elseif @opzx2==2 z2=(@fn14(x1)*z)*(z-@fn15(y1)) elseif @opzx2==3 z2=(@fn14(x1)/z)*(z-@fn15(y1)) elseif @opzx2==4 z2=(z-@fn14(x1))*(z-@fn15(y1)) elseif @opzx2==5 z2=(z/@fn14(x1))*(z-@fn15(y1)) endif elseif @opzy2==5 if @opzx2==0 z2=(@fn14(x1)+z)*(z/@fn15(y1)) elseif @opzx2==1 z2=(@fn14(x1)-z)*(z/@fn15(y1)) elseif @opzx2==2 z2=(@fn14(x1)*z)*(z/@fn15(y1)) elseif @opzx2==3 z2=(@fn14(x1)/z)*(z/@fn15(y1)) elseif @opzx2==4 z2=(z-@fn14(x1))*(z/@fn15(y1)) elseif @opzx2==5 z2=(z/@fn14(x1))*(z/@fn15(y1)) endif endif elseif @opz2==3 if @opzy2==0 if @opzx2==0 z2=(@fn14(x1)+z)/(@fn15(y1)+z) elseif @opzx2==1 z2=(@fn14(x1)-z)/(@fn15(y1)+z) elseif @opzx2==2 z2=(@fn14(x1)*z)/(@fn15(y1)+z) elseif @opzx2==3 z2=(@fn14(x1)/z)/(@fn15(y1)+z) elseif @opzx2==4 z2=(z-@fn14(x1))/(@fn15(y1)+z) elseif @opzx2==5 z2=(z/@fn14(x1))/(@fn15(y1)+z) endif elseif @opzy2==1 if @opzx2==0 z2=(@fn14(x1)+z)/(@fn15(y1)-z) elseif @opzx2==1 z2=(@fn14(x1)-z)/(@fn15(y1)-z) elseif @opzx2==2 z2=(@fn14(x1)*z)/(@fn15(y1)-z) elseif @opzx2==3 z2=(@fn14(x1)/z)/(@fn15(y1)-z) elseif @opzx2==4 z2=(z-@fn14(x1))/(@fn15(y1)-z) elseif @opzx2==5 z2=(z/@fn14(x1))/(@fn15(y1)-z) endif elseif @opzy2==2 if @opzx2==0 z2=(@fn14(x1)+z)/(@fn15(y1)*z) elseif @opzx2==1 z2=(@fn14(x1)-z)/(@fn15(y1)*z) elseif @opzx2==2 z2=(@fn14(x1)*z)/(@fn15(y1)*z) elseif @opzx2==3 z2=(@fn14(x1)/z)/(@fn15(y1)*z) elseif @opzx2==4 z2=(z-@fn14(x1))/(@fn15(y1)*z) elseif @opzx2==5 z2=(z/@fn14(x1))/(@fn15(y1)*z) endif elseif @opzy2==3 if @opzx2==0 z2=(@fn14(x1)+z)/(@fn15(y1)/z) elseif @opzx2==1 z2=(@fn14(x1)-z)/(@fn15(y1)/z) elseif @opzx2==2 z2=(@fn14(x1)*z)/(@fn15(y1)/z) elseif @opzx2==3 z2=(@fn14(x1)/z)/(@fn15(y1)/z) elseif @opzx2==4 z2=(z-@fn14(x1))/(@fn15(y1)/z) elseif @opzx2==5 z2=(z/@fn14(x1))/(@fn15(y1)/z) endif elseif @opzy2==4 if @opzx2==0 z2=(@fn14(x1)+z)/(z-@fn15(y1)) elseif @opzx2==1 z2=(@fn14(x1)-z)/(z-@fn15(y1)) elseif @opzx2==2 z2=(@fn14(x1)*z)/(z-@fn15(y1)) elseif @opzx2==3 z2=(@fn14(x1)/z)/(z-@fn15(y1)) elseif @opzx2==4 z2=(z-@fn14(x1))/(z-@fn15(y1)) elseif @opzx2==5 z2=(z/@fn14(x1))/(z-@fn15(y1)) endif elseif @opzy2==5 if @opzx2==0 z2=(@fn14(x1)+z)/(z/@fn15(y1)) elseif @opzx2==1 z2=(@fn14(x1)-z)/(z/@fn15(y1)) elseif @opzx2==2 z2=(@fn14(x1)*z)/(z/@fn15(y1)) elseif @opzx2==3 z2=(@fn14(x1)/z)/(z/@fn15(y1)) elseif @opzx2==4 z2=(z-@fn14(x1))/(z/@fn15(y1)) elseif @opzx2==5 z2=(z/@fn14(x1))/(z/@fn15(y1)) endif endif endif elseif @selectz2==false z2=z endif if @opz32==0 if @opz31==0 z3=z+(@fn16(x1)+@fn17(y1)) elseif @opz31==1 z3=z+(@fn16(x1)-@fn17(y1)) elseif @opz31==2 z3=z+(@fn16(x1)*@fn17(y1)) elseif @opz31==3 z3=z+(@fn16(x1)/@fn17(y1)) elseif @opz31==4 z3=z+(@fn17(y1)-@fn16(x1)) elseif @opz31==5 z3=z+(@fn17(y1)/@fn16(x1)) endif elseif @opz32==1 if @opz31==0 z3=z-(@fn16(x1)+@fn17(y1)) elseif @opz31==1 z3=z-(@fn16(x1)-@fn17(y1)) elseif @opz31==2 z3=z-(@fn16(x1)*@fn17(y1)) elseif @opz31==3 z3=z-(@fn16(x1)/@fn17(y1)) elseif @opz31==4 z3=z-(@fn17(y1)-@fn16(x1)) elseif @opz31==5 z3=z-(@fn17(y1)/@fn16(x1)) endif elseif @opz32==2 if @opz31==0 z3=z*(@fn16(x1)+@fn17(y1)) elseif @opz31==1 z3=z*(@fn16(x1)-@fn17(y1)) elseif @opz31==2 z3=z*(@fn16(x1)*@fn17(y1)) elseif @opz31==3 z3=z*(@fn16(x1)/@fn17(y1)) elseif @opz31==4 z3=z*(@fn17(y1)-@fn16(x1)) elseif @opz31==5 z3=z*(@fn17(y1)/@fn16(x1)) endif elseif @opz32==3 if @opz31==0 z3=z/(@fn16(x1)+@fn17(y1)) elseif @opz31==1 z3=z/(@fn16(x1)-@fn17(y1)) elseif @opz31==2 z3=z/(@fn16(x1)*@fn17(y1)) elseif @opz31==3 z3=z/(@fn16(x1)/@fn17(y1)) elseif @opz31==4 z3=z/(@fn17(y1)-@fn16(x1)) elseif @opz31==5 z3=z/(@fn17(y1)/@fn16(x1)) endif elseif @opz32==4 if @opz31==0 z3=(@fn16(x1)+@fn17(y1))-z elseif @opz31==1 z3=(@fn16(x1)-@fn17(y1))-z elseif @opz31==2 z3=(@fn16(x1)*@fn17(y1))-z elseif @opz31==3 z3=(@fn16(x1)/@fn17(y1))-z elseif @opz31==4 z3=(@fn17(y1)-@fn16(x1))-z elseif @opz31==5 z3=(@fn17(y1)/@fn16(x1))-z endif elseif @opz32==5 if @opz31==0 z3=(@fn16(x1)+@fn17(y1))/z elseif @opz31==1 z3=(@fn16(x1)-@fn17(y1))/z elseif @opz31==2 z3=(@fn16(x1)*@fn17(y1))/z elseif @opz31==3 z3=(@fn16(x1)/@fn17(y1))/z elseif @opz31==4 z3=(@fn17(y1)-@fn16(x1))/z elseif @opz31==5 z3=(@fn17(y1)/@fn16(x1))/z endif endif if @selectz3==true if @opz3==0 if @opz==0 z=fn2(z1^@p8)+(@fn9(z2^@p9))+@fn13(z3) elseif @opz==1 z=fn2(z1^@p8)-(@fn9(z2)^@p9)+@fn13(z3) elseif @opz==2 z=fn2(z1^@p8)*(@fn9(z2)^@p9)+@fn13(z3) elseif @opz==3 z=(@fn9(z2)^@p9)-fn2(z1^@p8)+@fn13(z3) elseif @opz==4 z=fn2(z1^@p8)+flip(@fn9(z2^@p9))+@fn13(z3) elseif @opz==5 z=fn2(z1^@p8)-flip(@fn9(z2^@p9))+@fn13(z3) elseif @opz==6 z=flip(@fn9(z2^@p9))-fn2(z1^@p8)+@fn13(z3) endif elseif @opz3==1 if @opz==0 z=fn2(z1^@p8)+(@fn9(z2^@p9))-@fn13(z3) elseif @opz==1 z=fn2(z1^@p8)-(@fn9(z2)^@p9)-@fn13(z3) elseif @opz==2 z=fn2(z1^@p8)*(@fn9(z2)^@p9)-@fn13(z3) elseif @opz==3 z=(@fn9(z2)^@p9)-fn2(z1^@p8)-@fn13(z3) elseif @opz==4 z=fn2(z1^@p8)+flip(@fn9(z2^@p9))-@fn13(z3) elseif @opz==5 z=fn2(z1^@p8)-flip(@fn9(z2^@p9))-@fn13(z3) elseif @opz==6 z=flip(@fn9(z2^@p9))-fn2(z1^@p8)-@fn13(z3) endif elseif @opz3==2 if @opz==0 z=fn2(z1^@p8)+(@fn9(z2^@p9))*@fn13(z3) elseif @opz==1 z=fn2(z1^@p8)-(@fn9(z2)^@p9)*@fn13(z3) elseif @opz==2 z=fn2(z1^@p8)*(@fn9(z2)^@p9)*@fn13(z3) elseif @opz==3 z=(@fn9(z2)^@p9)-fn2(z1^@p8)*@fn13(z3) elseif @opz==4 z=fn2(z1^@p8)+flip(@fn9(z2^@p9))*@fn13(z3) elseif @opz==5 z=fn2(z1^@p8)-flip(@fn9(z2^@p9))*@fn13(z3) elseif @opz==6 z=flip(@fn9(z2^@p9))-fn2(z1^@p8)*@fn13(z3) endif endif elseif @selectz3==false if @opz==0 z=fn2(z1^@p8)+(@fn9(z2^@p9)) elseif @opz==1 z=fn2(z1^@p8)-(@fn9(z2)^@p9) elseif @opz==2 z=fn2(z1^@p8)*(@fn9(z2)^@p9) elseif @opz==3 z=(@fn9(z2)^@p9)-fn2(z1^@p8) elseif @opz==4 z=fn2(z1^@p8)+flip(@fn9(z2^@p9)) elseif @opz==5 z=fn2(z1^@p8)-flip(@fn9(z2^@p9)) elseif @opz==6 z=flip(@fn9(z2^@p9))-fn2(z1^@p8) endif endif Bailout: |z| < @bailout Default: title="Chaotic-fly" center=(0.0,0.0) angle=90 magn=1.0 maxiter=500 periodicity=0 method=multipass Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="Current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param bailout caption="Bailout Value" default=1.0e24 min=0.0 endparam Heading Caption="Variable z2" visible=(@selectz2==true) EndHeading param selectz2 caption="Variable z2" default=false endparam param @opz2 caption="z2 Result" enum="1""2""3""4" default=1 visible=(@selectz2==true) endparam param @opzx2 caption="z2 Newx" enum="1""2""3""4""5""6" default=0 visible=(@selectz2==true) endparam param @opzy2 caption="z2 Newy" enum="1""2""3""4""5""6" default=2 visible=(@selectz2==true) endparam func fn14 caption="Func.1 to z2" default=ident() visible=(@selectz2==true) endfunc func fn15 caption="Func.2 to z2" default=ident() visible=(@selectz2==true) endfunc Heading Caption="Variable z3" visible=(@selectz3==true) EndHeading param selectz3 caption="Variable z3" default=false endparam param @opz3 caption="z3 Result 1" enum="1""2""3" default=0 visible=(@selectz3==true) endparam param @opz31 caption="z3 Result 2" enum="1""2""3""4""5""6" default=3 visible=(@selectz3==true) endparam param @opz32 caption="z3 Result 3" enum="1""2""3""4""5""6" default=2 visible=(@selectz3==true) endparam func fn13 caption="Func.1 to z3" default=ident() visible=(@selectz3==true) endfunc func fn16 caption="Func.2 to z3" default=ident() visible=(@selectz3==true) endfunc func fn17 caption="Func.3 to z3" default=ident() visible=(@selectz3==true) endfunc Heading caption="Operators and Parameters" Endheading param @selc caption="Change Newx" default=false endparam param selc1 caption="Select 1" enum="1""2""3""4" default=3 visible=(@selc==true) endparam param selc2 caption="Select 2" enum="1""2" default=1 visible=(@selc==true) endparam param @op caption="Newx Op.1" enum="1""2""3""4""5""6" default=2 endparam param @opx caption="Newx Op.2" enum="1""2""3""4""5""6""7""8""9""10""11""12" default=5 endparam param @opx1 caption="Newx Op.3" enum="1""2""3""4""5" default=1 endparam param @op1 caption="Newy Op.1" enum="1""2""3""4""5""6""7""8""9""10""11"\ "12""13""14""15""16""17""18""19""20" default=2 endparam param @opy caption="Newy Op.2" enum="1""2""3""4""5""6""7""8""9""10""11""12" default=7 endparam param @opz1 caption="z1 Result" enum="1""2""3""4""5""6" default=1 endparam param @opz caption="Plane z Result" enum="1""2""3""4""5""6""7" default=3 endparam param seed caption="Seed Value" default=(0.0,0.0) visible=(@mode==1) endparam param p6 caption="Param.1 x" default=(1.0,0.0) endparam param p7 caption="Param.2 y" default=(1.0,0.0) endparam param p1 caption="Param.1 Newx" default=(1.0,0.0) endparam param p2 caption="Param.2 Newx" default=(1.0,0.0) endparam param p3 caption="Param.3 Newx" default=(1.0,0.0) endparam param p4 caption="Param.1 Newy" default=(1.0,0.0) endparam param p5 caption="Param.2 Newy" default=(1.0,0.0) endparam param p8 caption="Param.1 z" default=(1.0,0.0) endparam param p9 caption="Param.2 z" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn7 caption="Func.1 to x" default=flip() endfunc func fn8 caption="Func.2 to y" default=ident() endfunc func fn5 caption="Func.1 to Newx" default=ident() endfunc func fn6 caption="Func.2 to Newx" default=cabs() endfunc func fn3 caption="Func.3 to Newx" default=ident() endfunc func fn10 caption="Func.4 to Newx" default=ident() endfunc func fn1 caption="Func.1 to Newy" default=ident() endfunc func fn4 caption="Func.2 to Newy" default=ident() endfunc func fn11 caption="Func.1 to z1" default=ident() endfunc func fn12 caption="Func.2 to z1" default=ident() endfunc func fn2 caption="Func.1 to z" default=ident() endfunc func fn9 caption="Func.2 to z" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Chaotic-fly" seed=#pixel bailout=@bailout p1=@p1 p2=@p2 p3=@p3 p4=@p4 @p5=@p5 @p6=@p6 @p7=@p7 @p8=@p8 @p9=@p9 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 @fn5=@fn5 @fn6=@fn6 @fn7=@fn7 @fn8=@fn8 @fn9=@fn9 @fn10=@fn10 @fn11=@fn11 @fn12=@fn12 @fn13=@fn13 @fn14=@fn14 @fn15=@fn15 @fn16=@fn16 @fn17=@fn17 selc=@selc selc1=@selc1 selc2=@selc2 op=@op op1=@op1 opx=@opx opx1=@opx1 opy=@opy opz=@opz opz1=@opz1 opz2=@opz2 opz3=@opz3 opz31=@opz31 opz32=@opz32 opzx2=@opzx2 opzy2=@opzy2 selectz2=@selectz2 selectz3=@selectz3 mode=@switchmode switchmode=@mode version=@version } ChaoticJulia { ;Andrea Spinozzi(Updated Aug2004) Init: z=pixel Loop: if (@op1 == 0) if (@op2 == 0) if (@op == 0) z=fn2(z)^@power+fn3(@seed)+fn4(z)^p1*fn1(z) elseif (@op == 1) z=fn2(z)^@power-fn3(@seed)+fn4(z)^p1*fn1(z) elseif (@op == 2) z=fn2(z)^@power*fn3(@seed)+fn4(z)^p1*fn1(z) endif elseif (@op2 == 1) if (@op == 0) z=fn2(z)^@power+fn3(@seed)*fn4(z)^p1*fn1(z) elseif (@op == 1) z=fn2(z)^@power-fn3(@seed)*fn4(z)^p1*fn1(z) elseif (@op == 2) z=fn2(z)^@power*fn3(@seed)*fn4(z)^p1*fn1(z) endif endif elseif (@op1 == 1) if (@op2 == 0) if (@op == 0) z=fn2(z)^@power+fn3(@seed)+fn4(z)^p1+fn1(z) elseif (@op == 1) z=fn2(z)^@power-fn3(@seed)+fn4(z)^p1+fn1(z) elseif (@op == 2) z=fn2(z)^@power*fn3(@seed)+fn4(z)^p1+fn1(z) endif elseif (@op2 == 1) if (@op == 0) z=fn2(z)^@power+fn3(@seed)*fn4(z)^p1+fn1(z) elseif (@op == 1) z=fn2(z)^@power-fn3(@seed)*fn4(z)^p1+fn1(z) elseif (@op == 2) z=fn2(z)^@power*fn3(@seed)*fn4(z)^p1+fn1(z) endif endif endif Bailout: |z|<=@bailout Default: Title="ChaoticJulia" periodicity=0 method=multipass maxiter=250 param bailout caption="Bailout Value" default=64.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param op caption="Operator 1" enum="1""2""3" default=0 endparam param op1 caption="Operator 2" enum="1""2" default=0 endparam param op2 caption="Operator 3" enum="1""2" default=0 endparam param seed caption="Seed Value" default=(0.3,0.0) endparam param power caption="Exponent 1" default=(2.0,0.0) endparam param p1 caption="Exponent 2" default=(1.0,0.0) endparam Heading caption="Functions" Endheading Func fn1 caption="Function 1" default=zero() endfunc Func fn2 caption="Function 2" default=ident() endfunc Func fn3 caption="Function 3" default=ident() endfunc Func fn4 caption="Function 4" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="ChaoticJulia-M" seed=#pixel bailout=@bailout power=@power p1=@p1 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 op=@op op1=@op1 op2=@op2 version=@version } ChaoticJulia-M { ;Andrea Spinozzi(Updated Aug2004) Init: z=pixel Loop: if (@op1 == 0) if (@op2 == 0) if (@op == 0) z=fn2(z)^@power+fn3(pixel)+fn4(z)^p1*fn1(z) elseif (@op == 1) z=fn2(z)^@power-fn3(pixel)+fn4(z)^p1*fn1(z) elseif (@op == 2) z=fn2(z)^@power*fn3(pixel)+fn4(z)^p1*fn1(z) endif elseif (@op2 == 1) if (@op == 0) z=fn2(z)^@power+fn3(pixel)*fn4(z)^p1*fn1(z) elseif (@op == 1) z=fn2(z)^@power-fn3(pixel)*fn4(z)^p1*fn1(z) elseif (@op == 2) z=fn2(z)^@power*fn3(pixel)*fn4(z)^p1*fn1(z) endif endif elseif (@op1 == 1) if (@op2 == 0) if (@op == 0) z=fn2(z)^@power+fn3(pixel)+fn4(z)^p1+fn1(z) elseif (@op == 1) z=fn2(z)^@power-fn3(pixel)+fn4(z)^p1+fn1(z) elseif (@op == 2) z=fn2(z)^@power*fn3(pixel)+fn4(z)^p1+fn1(z) endif elseif (@op2 == 1) if (@op == 0) z=fn2(z)^@power+fn3(pixel)*fn4(z)^p1+fn1(z) elseif (@op == 1) z=fn2(z)^@power-fn3(pixel)*fn4(z)^p1+fn1(z) elseif (@op == 2) z=fn2(z)^@power*fn3(pixel)*fn4(z)^p1+fn1(z) endif endif endif Bailout: |z| <= @bailout Default: Title="ChaoticJulia-M" periodicity=0 method=multipass maxiter=250 param bailout caption="Bailout Value" default=64.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param op caption="Operator 1" enum="1""2""3" default=0 endparam param op1 caption="Operator 2" enum="1""2" default=0 endparam param op2 caption="Operator 3" enum="1""2" default=0 endparam param power caption="Exponent 1" default=(2.0,0.0) endparam param p1 caption="Exponent 2" default=(1.0,0.0) endparam Heading caption="Functions" Endheading Func fn1 caption="Function 1" default=zero() endfunc Func fn2 caption="Function 2" default=ident() endfunc Func fn3 caption="Function 3" default=ident() endfunc Func fn4 caption="Function 4" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="ChaoticJulia" seed=#pixel bailout=@bailout power=@power p1=@p1 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 op=@op op1=@op1 op2=@op2 version=@version } ChaoticJuliBrot { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel c=fn1(z)+#pixel d=fn2(z)+@p1 Loop: z=fn3(z^p2)+@fn5(c)*d+fn1(c^p3)+fn2(c^p4) z=fn4(z^p5)^@power+@seed Bailout: |z|<=@bailout Default: title="ChaoticJuliBrot" center=(0.0,0.0) magn=1.0 angle=270 maxiter=250 periodicity=0 method=multipass param bailout caption="Bailout Value" default=64.0 min=0.0 endparam Heading caption="Parameters" Endheading param seed caption="Parameter 1" default=(0.0,0.0) endparam param p1 caption="Parameter 2" default=(1.0,0.0) endparam param power caption="Exponent 1" default=(1.0,0.0) endparam param p2 caption="Exponent 2" default=(2.0,0.0) endparam param p3 caption="Exponent 3" default=(1.0,0.0) endparam param p4 caption="Exponent 4" default=(1.0,0.0) endparam param p5 caption="Exponent 5" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=sqr() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="ChaoticJulibrotJ" seed1=pixel bailout=@bailout seed=@seed power=@power p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 version=@version } ChaoticJuliBrotJ { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel c=fn1(@seed1)+@seed1 d=fn2(@seed1)+@p1 Loop: z=fn3(z^p2)+@fn5(c)*d+fn1(c^p3)+fn2(c^p4) z=fn4(z^p5)^@power+@seed Bailout: |z|<=@bailout Default: title="ChaoticJuliBrotJ" center=(0.0,0.0) magn=1.0 angle=270 maxiter=250 periodicity=0 method=multipass param bailout caption="Bailout Value" default=64.0 min=0.0 endparam Heading caption="Parameters" Endheading param seed1 caption="Seed Value" default=(0.075,8.843023969e-19) endparam param seed caption="Parameter 1" default=(0.0,0.0) endparam param p1 caption="Parameter 2" default=(1.0,0.0) endparam param power caption="Exponent 1" default=(1.0,0.0) endparam param p2 caption="Exponent 2" default=(2.0,0.0) endparam param p3 caption="Exponent 3" default=(2.0,0.0) endparam param p4 caption="Exponent 4" default=(1.0,0.0) endparam param p5 caption="Exponent 5" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="ChaoticJuliBrot" seed1=pixel bailout=@bailout seed=@seed power=@power p1=@p1 p2=p2 p3=p3 p4=@p4 p5=@p5 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 version=@version } ChildBrot-J { ;Andrea Spinozzi(Updated Aug2004) Init: z=pixel c=@seed x=c*z w=fn1(@a*z)+fn2(@b*z) Loop: if @invert == true z=1/z endif if @change == "c+z" x=(@fn5(c-@p1)+fn4(z-@p2)) elseif @change == "c-z" x=(@fn5(c-@p1)-fn4(z-@p2)) elseif @change == "z-c" x=(fn4(z-@p2)-@fn5(c-@p1)) elseif @change == "c*z" x=(@fn5(c-@p1)*fn4(z-@p2)) elseif @change == "c/z" x=(@fn5(c-@p1)/fn4(z-@p2)) elseif @change == "z/c" x=(fn4(z-@p2)/@fn5(c-@p1)) elseif @change == "c^z" x=(@fn5(c-@p1)^fn4(z-@p2)) elseif @change == "z^c" x=(fn4(z-@p2)^@fn5(c-@p1)) endif if @op1 == "+" w=fn1(@a*z)+ fn2(@b*z) elseif @op1 == "-" w=fn1(@a*z)- fn2(@b*z) elseif @op1 == "*" w=fn1(@a*z)* fn2(@b*z) elseif @op1 == "/" w=fn1(@a*z)/ fn2(@b*z) elseif @op1 == "^" w=fn1(@a*z)^ fn2(@b*z) endif if @op2 == "+" if @type == "+" z=fn3(z-@p3)+(w)+(x) elseif @type == "-" z=fn3(z-@p3)+(w)-(x) elseif @type == "*" z=fn3(z-@p3)+(w)*(x) elseif @type == "/" z=fn3(z-@p3)+(w)/(x) elseif @type == "^" z=fn3(z-@p3)+(w)^(x) endif elseif @op2 == "-" if @type == "+" z=fn3(z-@p3)-(w)+(x) elseif @type == "-" z=fn3(z-@p3)-(w)-(x) elseif @type == "*" z=fn3(z-@p3)-(w)*(x) elseif @type == "/" z=fn3(z-@p3)-(w)/(x) elseif @type == "^" z=fn3(z-@p3)-(w)^(x) endif elseif @op2 == "*" if @type == "+" z=fn3(z-@p3)*(w)+(x) elseif @type == "-" z=fn3(z-@p3)*(w)-(x) elseif @type == "*" z=fn3(z-@p3)*(w)*(x) elseif @type == "/" z=fn3(z-@p3)*(w)/(x) elseif @type == "^" z=fn3(z-@p3)*(w)^(x) endif elseif @op2 == "/" if @type == "+" z=fn3(z-@p3)/(w)+(x) elseif @type == "-" z=fn3(z-@p3)/(w)-(x) elseif @type == "*" z=fn3(z-@p3)/(w)*(x) elseif @type == "/" z=fn3(z-@p3)/(w)/(x) elseif @type == "^" z=fn3(z-@p3)/(w)^(x) endif elseif @op2 == "^" if @type == "+" z=fn3(z-@p3)^(w)+(x) elseif @type == "-" z=fn3(z-@p3)^(w)-(x) elseif @type == "*" z=fn3(z-@p3)^(w)*(x) elseif @type == "/" z=fn3(z-@p3)^(w)/(x) elseif @type == "^" z=fn3(z-@p3)^(w)^(x) endif endif Bailout: |z| < @bailout Default: title="ChildBrot-J" angle=90 center=(0.0,0.0) magn=1.0 maxiter=250 method=multipass periodicity=0 param bailout caption="Bailout Value" default=16.0 endparam heading caption="Parameters and Operators" endheading param seed caption="Seed Value" default=(1.45,-0.05) endparam param change caption="Change" enum="c+z""c-z""z-c""c*z""c/z"\ "z/c""c^z""z^c" default=2 endparam param type caption="Type" enum="+""-""*""/""^" default=0 endparam param op1 caption="1st Operator" enum="+""-""*""/""^" default=0 endparam param op2 caption="2nd Operator" enum="+""-""*""/""^" default=2 endparam param a caption="Parameter 1" default=(1.0,0.0) endparam param b caption="Parameter 2" default=(-1.0,0.0) endparam param p1 caption="Parameter 3" default=(0.0,0.0) endparam param p2 caption="Parameter 4" default=(0.0,0.0) endparam param p3 caption="Parameter 5" default=(0.0,0.0) endparam param invert caption="Invert Z" default=false endparam heading caption="Functions" endheading func fn1 caption="Function 1" default=cotan() endfunc func fn2 caption="Function 2" default=exp() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="ChildBrot-M" bailout=@bailout fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 a=@a b=@b p1=@p1 p2=@p2 p3=@p3 change=@change invert=@invert type=@type op1=@op1 op2=@op version=@version } ChildBrot-M { ;All my Thanks to Toby Marshall. ;Andrea Spinozzi(Updated Aug2004) Init: z=@start c=pixel x=c*z w=fn1(@a*z)+fn2(@b*z) Loop: if @invert == true z=1/z endif if @change == "c+z" x=(@fn5(c-@p1)+fn4(z-@p2)) elseif @change == "c-z" x=(@fn5(c-@p1)-fn4(z-@p2)) elseif @change == "z-c" x=(fn4(z-@p2)-@fn5(c-@p1)) elseif @change == "c*z" x=(@fn5(c-@p1)*fn4(z-@p2)) elseif @change == "c/z" x=(@fn5(c-@p1)/fn4(z-@p2)) elseif @change == "z/c" x=(fn4(z-@p2)/@fn5(c-@p1)) elseif @change == "c^z" x=(@fn5(c-@p1)^fn4(z-@p2)) elseif @change == "z^c" x=(fn4(z-@p2)^@fn5(c-@p1)) endif if @op1 == "+" w=fn1(@a*z)+ fn2(@b*z) elseif @op1 == "-" w=fn1(@a*z)- fn2(@b*z) elseif @op1 == "*" w=fn1(@a*z)* fn2(@b*z) elseif @op1 == "/" w=fn1(@a*z)/ fn2(@b*z) elseif @op1 == "^" w=fn1(@a*z)^ fn2(@b*z) endif if @op2 == "+" if @type == "+" z=fn3(z-@p3)+(w)+(x) elseif @type == "-" z=fn3(z-@p3)+(w)-(x) elseif @type == "*" z=fn3(z-@p3)+(w)*(x) elseif @type == "/" z=fn3(z-@p3)+(w)/(x) elseif @type == "^" z=fn3(z-@p3)+(w)^(x) endif elseif @op2 == "-" if @type == "+" z=fn3(z-@p3)-(w)+(x) elseif @type == "-" z=fn3(z-@p3)-(w)-(x) elseif @type == "*" z=fn3(z-@p3)-(w)*(x) elseif @type == "/" z=fn3(z-@p3)-(w)/(x) elseif @type == "^" z=fn3(z-@p3)-(w)^(x) endif elseif @op2 == "*" if @type == "+" z=fn3(z-@p3)*(w)+(x) elseif @type == "-" z=fn3(z-@p3)*(w)-(x) elseif @type == "*" z=fn3(z-@p3)*(w)*(x) elseif @type == "/" z=fn3(z-@p3)*(w)/(x) elseif @type == "^" z=fn3(z-@p3)*(w)^(x) endif elseif @op2 == "/" if @type == "+" z=fn3(z-@p3)/(w)+(x) elseif @type == "-" z=fn3(z-@p3)/(w)-(x) elseif @type == "*" z=fn3(z-@p3)/(w)*(x) elseif @type == "/" z=fn3(z-@p3)/(w)/(x) elseif @type == "^" z=fn3(z-@p3)/(w)^(x) endif elseif @op2 == "^" if @type == "+" z=fn3(z-@p3)^(w)+(x) elseif @type == "-" z=fn3(z-@p3)^(w)-(x) elseif @type == "*" z=fn3(z-@p3)^(w)*(x) elseif @type == "/" z=fn3(z-@p3)^(w)/(x) elseif @type == "^" z=fn3(z-@p3)^(w)^(x) endif endif Bailout: |z| < @bailout Default: title="ChildBrot-M" angle=90 center=(0.0,0.0) magn=1.0 maxiter=250 method=multipass periodicity=0 param bailout caption="Bailout Value" default=16.0 min=0.0 endparam heading caption="Parameters and Operators" endheading complex param start caption="Start Value" default=(0.5,0.0) endparam param change caption="Change" enum="c+z""c-z""z-c""c*z""c/z"\ "z/c""c^z""z^c" default=2 endparam param type caption="Type" enum="+""-""*""/""^" default=0 endparam param op1 caption="1st Operator" enum="+""-""*""/""^" default=0 endparam param op2 caption="2nd Operator" enum="+""-""*""/""^" default=2 endparam param a caption="Parameter 1" default=(1.0,0.0) endparam param b caption="Parameter 2" default=(-1.0,0.0) endparam param p1 caption="Parameter 3" default=(0.0,0.0) endparam param p2 caption="Parameter 4" default=(0.0,0.0) endparam param p3 caption="Parameter 5" default=(0.0,0.0) endparam param invert caption="Invert Z" default=false endparam heading caption="Functions" endheading func fn1 caption="Function 1" default=cotan() endfunc func fn2 caption="Function 2" default=exp() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="ChildBrot-J" bailout=@bailout @seed=#pixel fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 a=@a b=@b p1=@p1 p2=@p2 p3=@p3 change=@change invert=@invert type=@type op1=@op1 op2=@op2 version=@version } ChaoticJuliBrot-J { ;Andrea Spinozzi(Updated Aug2004) Init: z=(0.0,0.0) c=(0.0,0.0) d=(0.0,0.0) if (@variant==0) z=#pixel c=fn1(z)+@seed d=fn2(z)+@p1 elseif (@variant==1) z=#pixel c=fn1(@seed)+@seed d=fn2(z)+@p1 elseif (@variant==2) z=#pixel c=fn1(@seed)+@seed d=fn2(@seed)+@p1 endif Loop: z=fn3(z)^p2+@fn5(c)*d+fn1(z^p3)+fn2(c^p4) z=fn4(z^p5)^@power+@seed Bailout: |z|<=@bailout Default: title="CJuliBrot-J" center=(0.0,0.0) maxiter=250 periodicity=0 method=multipass param bailout caption="Bailout Value" default=64.0 min=0.0 endparam Heading caption="Operator and Parameters" Endheading param variant caption="Init CJuliBrot" enum="1""2""3" default=0 endparam param seed caption="Seed Value" default=(0.325,0.0) endparam param p1 caption="Parameter" default=(0.0,0.0) endparam param power caption="Exponent 1" default=(1.0,0.0) endparam param p2 caption="Exponent 2" default=(2.0,0.0) endparam param p3 caption="Exponent 3" default=(1.0,0.0) endparam param p4 caption="Exponent 4" default=(1.0,0.0) endparam param p5 caption="Exponent 5" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=zero() endfunc func fn2 caption="Function 2" default=zero() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: Type="ChaoticJuliBrot-M" bailout=@bailout seed=#pixel variant=@variant power=@power p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 version=@version } ChaoticJuliBrot-M { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel c=fn1(z)+pixel d=fn2(z)+@p1 Loop: z=fn3(z)^p2+@fn5(c)*d+fn1(z^p3)+fn2(c^p4) z=fn4(z^p5)^@power+pixel Bailout: |z|<=@bailout Default: title="CJuliBrot-M" center=(0.0,0.0) periodicity=0 method=multipass maxiter=250 param bailout caption="Bailout Value" default=64.0 min=0.0 endparam Heading caption="Operator and Parameters" Endheading param variant caption="Switch To CJuliBrot" enum="1""2""3" default=0 endparam param p1 caption="Parameter" default=(0.0,0.0) endparam param power caption="Exponent 1" default=(1.0,0.0) endparam param p2 caption="Exponent 2" default=(2.0,0.0) endparam param p3 caption="Exponent 3" default=(1.0,0.0) endparam param p4 caption="Exponent 4" default=(1.0,0.0) endparam param p5 caption="Exponent 5" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=zero() endfunc func fn2 caption="Function 2" default=zero() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: Type="ChaoticJuliBrot-J" bailout=@bailout seed=#pixel variant=@variant power=@power p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 version=@version } C-ModifiedBrot { ;Andrea Spinozzi(May2004) Init: z =(0.0,0.0) x =(0.0,0.0) y =(0.0,0.0) x1=(0.0,0.0) y1=(0.0,0.0) a =(0.0,0.0) b =(0.0,0.0) d =(0.0,0.0) qzr=(0.0,0.0) qwi=(0.0,0.0) c1r=(0.0,0.0) c1i=(0.0,0.0) p2r=real(p2) p2i=imag(p2) p3r=real(p3) p3i=imag(p3) if (@mode=="Mandelbrot") if (@var==0) x=real(pixel)+p2r y=imag(pixel)+p2i elseif (@var==1) x=@fn7(real(pixel))+p2r y=@fn8(imag(pixel))+p2i endif qzr=real(p1) qwi=imag(p1) c1r=real(pixel) c1i=imag(pixel) elseif (@mode=="Julia") if (@var==0) x=real(pixel)+p2r y=imag(pixel)+p2i elseif (@var==1) x=@fn7(real(pixel))+p2r y=@fn8(imag(pixel))+p2i endif qzr=real(p1) qwi=imag(p1) c1r=real(@seed) c1i=imag(@seed) endif Loop: if (@op==0) a=x*x b=y*y elseif (@op==1) a=x*x*x b=y*y*y endif if (@op1==0) d=x*y elseif (@op1==1) d=(2*x*y) elseif (@op1==2) d=(2*x*y)+(y*y) endif if (@selectloop1==0) if (@selectloop==0) x1=fn1(a^p3r)+fn2(b^p3i)+fn3(c1r) y1=(d)+fn3(c1i) elseif (@selectloop==1) x1=fn1(a^p3r)+fn2(b^p3i)+fn3(c1r) y1=(d)-fn3(c1i) elseif (@selectloop==2) x1=fn1(a^p3r)+fn2(b^p3i)+fn3(c1r) y1=(d)*fn3(c1i) elseif (@selectloop==3) x1=fn1(a^p3r)+fn2(b^p3i)+fn3(c1r) y1=(d)/fn3(c1i) endif elseif (@selectloop1==1) if (@selectloop==0) x1=fn1(a^p3r)-fn2(b^p3i)+fn3(c1r) y1=(d)+fn3(c1i) elseif (@selectloop==1) x1=fn1(a^p3r)-fn2(b^p3i)+fn3(c1r) y1=(d)-fn3(c1i) elseif (@selectloop==2) x1=fn1(a^p3r)-fn2(b^p3i)+fn3(c1r) y1=(d)*fn3(c1i) elseif (@selectloop==3) x1=fn1(a^p3r)-fn2(b^p3i)+fn3(c1r) y1=(d)/fn3(c1i) endif endif x=fn4(x1^qzr) y=@fn5(y1^qwi) if (@flavor==0) z=@fn6(x)+y elseif (@flavor==1) z=@fn6(x)-flip(y) endif Bailout: |x|+|y|<=@bailout Default: title="C-ModifiedBrot" method=multipass periodicity=0 maxiter=250 angle=0.0 Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param bailout caption="Bailout Value" default=64.0 min=0.0 endparam param flavor caption="Flavor" enum="1""2" default= 0 endparam func fn6 caption="Function Flavor" default=ident() endfunc Heading caption="Operators and Parameters" Endheading param var caption="Init Set" enum="Normal""Functions Re|Im" default=0 endparam param op caption="Variable x1" enum="1""2" default=0 endparam param op1 caption="Variable y1" enum="1""2""3" default=2 endparam param selectloop caption="Operator 1" enum="1""2""3""4" default=0 endparam param selectloop1 caption="Operator 2" enum="1""2" default=1 endparam param @seed caption="Julia Param" default=(1.0,1.0) visible=(@mode=="Julia") endparam param p1 caption="Exp 1(Re|Im)" default=(1.0,1.0) endparam param p3 caption="Exp 2(Re|Im)" default=(1.0,1.0) endparam param p2 caption="x|y(Re|Im)" default=(0.0,0.0) endparam Heading caption="Functions" Endheading func fn7 caption="Function x|Re" default=sqr() visible=(@var==1) endfunc func fn8 caption="Function y|Im" default=ident() visible=(@var==1) endfunc func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="C-ModifiedBrot" seed=#pixel bailout=@bailout mode=@switchmode switchmode=@mode selectloop=@selectloop selectloop1=@selectloop1 op=@op op1=@op1 var=@var flavor=@flavor p1=@p1 p2=@p2 p3=@p3 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 fn8=@fn8 version=@version } C-QuarticPhoenix { ;Andrea Spinozzi(June2004) Init: z=(0.0,0.0) z0=(0.0,0.0) z1=(0.0,0.0) z2=(0.0,0.0) z3=(0.0,0.0) p4r=real(p4) p4i=imag(p4) if (@mode=="Mandelbrot") z=@start z0=(0.0,0.0) z1=(0.0,0.0) z2=(0.0,0.0) z3=pixel elseif (@mode=="Julia") if (@variant==0) z=@seed z0=pixel z1=pixel z2=pixel z3=@seed elseif (@variant==1) z=pixel z0=pixel z1=pixel z2=pixel z3=@seed elseif (@variant==2) z=flip(pixel) z0=pixel z1=pixel z2=pixel z3=@seed endif endif Loop: if (@invert==true) z=1/z endif if (@op2==0) if (@op==0) z0=z^p4r*z^p4i+z/2+z3 z1=z^p4r*z^p4i+z2/2+z3^p3 elseif (@op==1) z0=z^p4r*z^p4i-z/2+z3 z1=z^p4r*z^p4i-z2/2+z3^p3 elseif (@op==2) z0=z^p4r*z^p4i*z/2+z3 z1=z^p4r*z^p4i*z2/2+z3^p3 endif elseif (@op2==1) if (@op==0) z0=z^p4r*z^p4i+z/2-z3 z1=z^p4r*z^p4i+z2/2-z3^p3 elseif (@op==1) z0=z^p4r*z^p4i-z/2-z3 z1=z^p4r*z^p4i-z2/2-z3^p3 elseif (@op==2) z0=z^p4r*z^p4i*z/2-z3 z1=z^p4r*z^p4i*z2/2-z3^p3 endif elseif (@op2==2) if (@op==0) z0=z^p4r*z^p4i+z/2*z3 z1=z^p4r*z^p4i+z2/2*z3^p3 elseif (@op==1) z0=z^p4r*z^p4i-z/2*z3 z1=z^p4r*z^p4i-z2/2*z3^p3 elseif (@op==2) z0=z^p4r*z^p4i*z/2*z3 z1=z^p4r*z^p4i*z2/2*z3^p3 endif endif z2=fn1(z+p1)^p2 z3=fn3(z3+p6)^p5 if (@op1==0) z=fn2(z1) elseif (@op1==1) z=fn2(z1)+z2 elseif (@op1==2) z=fn2(z1)-z2 elseif (@op1==3) z=fn2(z1)*z2 elseif (@op1==4) z=fn2(z1)/z2 endif Bailout: |z0|+|z1|+|z2|+|z3|<=@bailout Default: title="C-QuarticPhoenix" center=(0.0,0.0) maxiter=500 periodicity=0 method=multipass Heading caption="Mandelbrot Mode" visible=(@mode=="Mandelbrot") endheading Heading caption="Julia Mode" visible=(@mode=="Julia") endheading param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 visible=false endparam param switchmode caption="switch To..." enum="Mandelbrot""Julia" default=1 visible=false endparam param Bailout caption="Bailout Value" default=1.0e20 min=0.0 endparam Heading caption="Operators and Parameters" endheading param start caption="Start Value" default=(0.0,0.0) visible=(@mode=="Mandelbrot") endparam param seed caption="Seed Value" default=(0.0,0.0) visible=(@mode=="Julia") endparam param invert caption="Invert Z" default=false endparam param variant caption="Julia Variant" enum="1""2""3" default=1 endparam param op caption="Operator 1" enum="1""2""3" default=0 endparam param op1 caption="Operator 2" enum="1""2""3""4""5" default=0 endparam param op2 caption="Operator 3" enum="1""2""3" default=0 endparam param p1 caption="Parameter 1" default=(0.0,0.0) endparam param p6 caption="Parameter 2" default=(0.0,0.0) endparam param p4 caption="Exp (Re|Im)" default=(1.0,1.0) endparam param p2 caption="Exponent 1" default=(1.0,0.0) endparam param p3 caption="Exponent 2" default=(1.0,0.0) endparam param p5 caption="Exponent 3" default=(1.0,0.0) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="C-QuarticPhoenix" @seed=#pixel start=pixel bailout=@bailout invert=@invert op=@op op1=@op1 op2=@op2 variant=@variant p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 fn1=@fn1 fn2=@fn2 fn3=@fn3 mode=@switchmode switchmode=@mode version=@version } C-SquareBrot { ;Andrea Spinozzi(May2004) Init: complex z=(0.0,0.0) complex c=(0.0,0.0) complex x=(0.0,0.0) complex y=(0.0,0.0) complex x1=(0.0,0.0) complex y1=(0.0,0.0) complex z1=(0.0,0.0) complex z2=(0.0,0.0) float a1=0.5 float a2=0.6 float a3=-0.5 p1r=real(p1) p1i=imag(p1) p2r=real(p2) p2i=imag(p2) p3r=real(p3) p3i=imag(p3) if (@mode=="Mandelbrot") z=@start c=pixel elseif @mode=="Julia" z=pixel c=@seed endif Loop: c=fn2(c) if @op1z==0 if @opx==0 x=((sqr(fn1(z)*z))+(sqr(fn1(z)-z)^p1i)) elseif @opx==1 x=((sqr(fn1(z)*z))-(sqr(fn1(z)-z)^p1i)) elseif @opx==2 x=((sqr(fn1(z)*z))*(sqr(fn1(z)-z)^p1i)) endif elseif @op1z==1 if @opx==0 x=((sqr(fn1(z)*z))+(sqr(fn1(z)*z)^p1i)) elseif @opx==1 x=((sqr(fn1(z)*z))-(sqr(fn1(z)*z)^p1i)) elseif @opx==2 x=((sqr(fn1(z)*z))*(sqr(fn1(z)*z)^p1i)) endif endif if @op2x==0 if @op21x==0 if @opx1==0 x1=((((x)+x)^p2i)+(((x)+x)^a1)) elseif @opx1==1 x1=((((x)+x)^p2i)-(((x)+x)^a1)) elseif @opx1==2 x1=((((x)+x)^p2i)*(((x)+x)^a1)) endif elseif @op21x==1 if @opx1==0 x1=((((x)+x)^p2i)+(((x)-x)^a1)) elseif @opx1==1 x1=((((x)+x)^p2i)-(((x)-x)^a1)) elseif @opx1==2 x1=((((x)+x)^p2i)*(((x)-x)^a1)) endif elseif @op21x==2 if @opx1==0 x1=((((x)+x)^p2i)+(((x)*x)^a1)) elseif @opx1==1 x1=((((x)+x)^p2i)-(((x)*x)^a1)) elseif @opx1==2 x1=((((x)+x)^p2i)*(((x)*x)^a1)) endif endif elseif @op2x==1 if @op21x==0 if @opx1==0 x1=((((x)-x)^p2i)+(((x)+x)^a1)) elseif @opx1==1 x1=((((x)-x)^p2i)-(((x)+x)^a1)) elseif @opx1==2 x1=((((x)-x)^p2i)*(((x)+x)^a1)) endif elseif @op21x==1 if @opx1==0 x1=((((x)-x)^p2i)+(((x)/x*x)^a1)) elseif @opx1==1 x1=((((x)-x)^p2i)-(((x)/x*x)^a1)) elseif @opx1==2 x1=((((x)-x)^p2i)*(((x)/x*x)^a1)) endif elseif @op21x==2 if @opx1==0 x1=((((x)-x)^p2i)+(((x)*x)^a1)) elseif @opx1==1 x1=((((x)-x)^p2i)-(((x)*x)^a1)) elseif @opx1==2 x1=((((x)-x)^p2i)*(((x)*x)^a1)) endif endif elseif @op2x==2 if @op21x==0 if @opx1==0 x1=((((x)*x)^p2i)+(((x)/x)^a1)) elseif @opx1==1 x1=((((x)*x)^p2i)-(((x)/x)^a1)) elseif @opx1==2 x1=((((x)*x)^p2i)*(((x)/x)^a1)) endif elseif @op21x==1 if @opx1==0 x1=((((x)*x)^p2i)+(((x)-x)^a1)) elseif @opx1==1 x1=((((x)*x)^p2i)-(((x)-x)^a1)) elseif @opx1==2 x1=((((x)*x)^p2i)*(((x)-x)^a1)) endif elseif @op21x==2 if @opx1==0 x1=((((x)*x)^p2i)+(((x)*x)^a1)) elseif @opx1==1 x1=((((x)*x)^p2i)-(((x)*x)^a1)) elseif @opx1==2 x1=((((x)*x)^p2i)*(((x)*x)^a1)) endif endif endif x1=(x1+z)^p3r if @opy==0 y=(sqr(fn3(z)+z)^a2)^a3 elseif @opy==1 y=(sqr(fn3(z)*z)^a2)^a3 endif if @op3y==0 if @op31y==0 if @opy1==0 y1=(((@fn5(y)+fn4(y))^p2r)+((@fn5(y)+fn4(y))))^p1r elseif @opy1==1 y1=(((@fn5(y)+fn4(y))^p2r)-((@fn5(y)+fn4(y))))^p1r elseif @opy1==2 y1=(((@fn5(y)+fn4(y))^p2r)*((@fn5(y)+fn4(y))))^p1r endif elseif @op31y==1 if @opy1==0 y1=(((@fn5(y)+fn4(y))^p2r)+((@fn5(y)-fn4(y))))^p1r elseif @opy1==1 y1=(((@fn5(y)+fn4(y))^p2r)-((@fn5(y)-fn4(y))))^p1r elseif @opy1==2 y1=(((@fn5(y)+fn4(y))^p2r)*((@fn5(y)-fn4(y))))^p1r endif elseif @op31y==2 if @opy1==0 y1=(((@fn5(y)+fn4(y))^p2r)+((@fn5(y)*fn4(y))))^p1r elseif @opy1==1 y1=(((@fn5(y)+fn4(y))^p2r)-((@fn5(y)*fn4(y))))^p1r elseif @opy1==2 y1=(((@fn5(y)+fn4(y))^p2r)*((@fn5(y)*fn4(y))))^p1r endif endif elseif @op3y==1 if @op31y==0 if @opy1==0 y1=(((@fn5(y)-fn4(y))^p2r)+((@fn5(y)+fn4(y))))^p1r elseif @opy1==1 y1=(((@fn5(y)-fn4(y))^p2r)-((@fn5(y)+fn4(y))))^p1r elseif @opy1==2 y1=(((@fn5(y)-fn4(y))^p2r)*((@fn5(y)+fn4(y))))^p1r endif elseif @op31y==1 if @opy1==0 y1=(((@fn5(y)-fn4(y))^p2r)+((@fn5(y)/y*fn4(y))))^p1r elseif @opy1==1 y1=(((@fn5(y)-fn4(y))^p2r)-((@fn5(y)/y*fn4(y))))^p1r elseif @opy1==2 y1=(((@fn5(y)-fn4(y))^p2r)*((@fn5(y)/y*fn4(y))))^p1r endif elseif @op31y==2 if @opy1==0 y1=(((@fn5(y)-fn4(y))^p2r)+((@fn5(y)*fn4(y))))^p1r elseif @opy1==1 y1=(((@fn5(y)-fn4(y))^p2r)-((@fn5(y)*fn4(y))))^p1r elseif @opy1==2 y1=(((@fn5(y)-fn4(y))^p2r)*((@fn5(y)*fn4(y))))^p1r endif endif elseif @op3y==2 if @op31y==0 if @opy1==0 y1=(((@fn5(y)*fn4(y))^p2r)+((@fn5(y)/y)))^p1r elseif @opy1==1 y1=(((@fn5(y)*fn4(y))^p2r)-((@fn5(y)/y)))^p1r elseif @opy1==2 y1=(((@fn5(y)*fn4(y))^p2r)*((@fn5(y)/y)))^p1r endif elseif @op31y==1 if @opy1==0 y1=(((@fn5(y)*fn4(y))^p2r)+((@fn5(y)-fn4(y))))^p1r elseif @opy1==1 y1=(((@fn5(y)*fn4(y))^p2r)-((@fn5(y)-fn4(y))))^p1r elseif @opy1==2 y1=(((@fn5(y)*fn4(y))^p2r)*((@fn5(y)-fn4(y))))^p1r endif elseif @op31y==2 if @opy1==0 y1=(((@fn5(y)*fn4(y))^p2r)+((@fn5(y)*fn4(y))))^p1r elseif @opy1==1 y1=(((@fn5(y)*fn4(y))^p2r)-((@fn5(y)*fn4(y))))^p1r elseif @opy1==2 y1=(((@fn5(y)*fn4(y))^p2r)*((@fn5(y)*fn4(y))))^p1r endif endif endif if @opzy1==0 y1=(y1+z)^p3i elseif @opzy1==1 y1=(y1-z)^p3i elseif @opzy1==2 y1=(y1*z)^p3i endif if @op2==0 if @op1==0 if @opc==0 if @opz1==0 z1=((x*y)+(x1+y1))+c elseif @opz1==1 z1=((x*y)-(x1+y1))+c endif elseif @opc==1 if @opz1==0 z1=((x*y)+(x1+y1))-c elseif @opz1==1 z1=((x*y)-(x1+y1))-c endif elseif @opc==2 if @opz1==0 z1=((x*y)+(x1+y1))*c elseif @opz1==1 z1=((x*y)-(x1+y1))*c endif elseif @opc==3 if @opz1==0 z1=((x*y)+(x1+y1))/c*z elseif @opz1==1 z1=((x*y)-(x1+y1))/c*z endif endif elseif @op1==1 if @opc==0 if @opz1==0 z1=((y-x/y-x)+(x1+y1))+c elseif @opz1==1 z1=((y-x/y-x)-(x1+y1))+c endif elseif @opc==1 if @opz1==0 z1=((y-x/y-x)+(x1+y1))-c elseif @opz1==1 z1=((y-x/y-x)-(x1+y1))-c endif elseif @opc==2 if @opz1==0 z1=((y-x/y-x)+(x1+y1))*c elseif @opz1==1 z1=((y-x/y-x)-(x1+y1))*c endif elseif @opc==3 if @opz1==0 z1=((y-x/y-x)+(x1+y1))/c*c elseif @opz1==1 z1=((y-x/y-x)-(x1+y1))/c*c endif endif endif elseif @op2==1 if @op1==0 if @opc==0 if @opz1==0 z1=((x*y)+(x1-y1))+c elseif @opz1==1 z1=((x*y)-(x1-y1))+c endif elseif @opc==1 if @opz1==0 z1=((x*y)+(x1-y1))-c elseif @opz1==1 z1=((x*y)-(x1-y1))-c endif elseif @opc==2 if @opz1==0 z1=((x*y)+(x1-y1))*c elseif @opz1==1 z1=((x*y)-(x1-y1))*c endif elseif @opc==3 if @opz1==0 z1=((x*y)+(x1-y1))/c*c elseif @opz1==1 z1=((x*y)-(x1-y1))/c*c endif endif elseif @op1==1 if @opc==0 if @opz1==0 z1=((y-x/y-x)+(x1-y1))+c elseif @opz1==1 z1=((y-x/y-x)-(x1-y1))+c endif elseif @opc==1 if @opz1==0 z1=((y-x/y-x)+(x1-y1))-c elseif @opz1==1 z1=((y-x/y-x)-(x1-y1))-c endif elseif @opc==2 if @opz1==0 z1=((y-x/y-x)+(x1-y1))*c elseif @opz1==1 z1=((y-x/y-x)-(x1-y1))*c endif elseif @opc==3 if @opz1==0 z1=((y-x/y-x)+(x1-y1))/c*c elseif @opz1==1 z1=((y-x/y-x)-(x1-y1))/c*c endif endif endif elseif @op2==2 if @op1==0 if @opc==0 if @opz1==0 z1=((x*y)+(y1-x1))+c elseif @opz1==1 z1=((x*y)-(y1-x1))+c endif elseif @opc==1 if @opz1==0 z1=((x*y)+(y1-x1))-c elseif @opz1==1 z1=((x*y)-(y1-x1))-c endif elseif @opc==2 if @opz1==0 z1=((x*y)+(y1-x1))*c elseif @opz1==1 z1=((x*y)-(y1-x1))*c endif elseif @opc==3 if @opz1==0 z1=((x*y)+(y1-x1))/c*c elseif @opz1==1 z1=((x*y)-(y1-x1))/c*c endif endif elseif @op1==1 if @opc==0 if @opz1==0 z1=((y-x/y-x)+(y1-x1))+c elseif @opz1==1 z1=((y-x/y-x)-(y1-x1))+c endif elseif @opc==1 if @opz1==0 z1=((y-x/y-x)+(y1-x1))-c elseif @opz1==1 z1=((y-x/y-x)-(y1-x1))-c endif elseif @opc==2 if @opz1==0 z1=((y-x/y-x)+(y1-x1))*c elseif @opz1==1 z1=((y-x/y-x)-(y1-x1))*c endif elseif @opc==3 if @opz1==0 z1=((y-x/y-x)+(y1-x1))/c*c elseif @opz1==1 z1=((y-x/y-x)-(y1-x1))/c*c endif endif endif elseif @op2==3 if @op1==0 if @opc==0 if @opz1==0 z1=((x*y)+(x1-y1/x1-y1))+c elseif @opz1==1 z1=((x*y)-(x1-y1/x1-y1))+c endif elseif @opc==1 if @opz1==0 z1=((x*y)+(x1-y1/x1-y1))-c elseif @opz1==1 z1=((x*y)-(x1-y1/x1-y1))-c endif elseif @opc==2 if @opz1==0 z1=((x*y)+(x1-y1/x1-y1))*c elseif @opz1==1 z1=((x*y)-(x1-y1/x1-y1))*c endif elseif @opc==3 if @opz1==0 z1=((x*y)+(x1-y1/x1-y1))/c*c elseif @opz1==1 z1=((x*y)-(x1-y1/x1-y1))/c*c endif endif elseif @op1==1 if @opc==0 if @opz1==0 z1=((y-x/y-x)+(x1-y1/x1-y1))+c elseif @opz1==1 z1=((y-x/y-x)-(x1-y1/x1-y1))+c endif elseif @opc==1 if @opz1==0 z1=((y-x/y-x)+(x1-y1/x1-y1))-c elseif @opz1==1 z1=((y-x/y-x)-(x1-y1/x1-y1))-c endif elseif @opc==2 if @opz1==0 z1=((y-x/y-x)+(x1-y1/x1-y1))*c elseif @opz1==1 z1=((y-x/y-x)-(x1-y1/x1-y1))*c endif elseif @opc==3 if @opz1==0 z1=((y-x/y-x)+(x1-y1/x1-y1))/c*c elseif @opz1==1 z1=((y-x/y-x)-(x1-y1/x1-y1))/c*c endif endif endif endif if @opz2==0 z2=(z1) elseif @opz2==1 z2=(z1*c) elseif @opz2==2 z2=(z1-c) endif z=z2 Bailout: |z| <= @bailout Default: Title="C-SquareBrot" center=(0.0,0.0) magn=1.0 angle=90 method=multipass maxiter=500 Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="Current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param bailout caption="Bailout Value" default=1.0E24 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param start caption="Start Value" default=(1.0,0.0) visible=(@mode=="Mandelbrot") endparam param seed caption="Seed Value" default=(0.09375,4.667151539e-19) visible=(@mode=="Julia") endparam param op1z caption="Operator 1" enum="1""2" default=1 endparam param opx1 caption="Operator 2" enum="1""2""3" default=2 endparam param op2x caption="Operator 3" enum="1""2""3" default=1 endparam param opy caption="Operator 4" enum="1""2" default=1 endparam param opy1 caption="Operator 5" enum="1""2""3" default=0 endparam param op3y caption="Operator 6" enum="1""2""3" default=2 endparam param opzy1 caption="Operator 7" enum="1""2""3" default=0 endparam param op2 caption="Select z1" enum="1""2""3""4" default=1 endparam param op1 caption="Operator z1" enum="1""2" default=0 endparam param opz2 caption="Operator z2" enum="1""2""3" default=0 endparam param @select caption="Add Operators" default=false endparam param opx caption="Operator 8" enum="1""2""3" default=1 visible=(@select==true) endparam param op21x caption="Operator 9" enum="1""2""3" default=2 visible=( @select==true ) endparam param op31y caption="Operator 10" enum="1""2""3" default=1 visible=( @select==true ) endparam param opz1 caption="Operator 11" enum="1""2" default=1 visible=( @select==true) endparam param opc caption="Operator 12" enum="1""2""3""4" default=2 visible=(@select==true) endparam param p1 caption="Exponent 1" default=(0.5,0.5) endparam param p2 caption="Exponent 2" default=(1.0,0.5) endparam param p3 caption="Exponent 3" default=(1.0,1.0) endparam Heading caption="Functions" Endheading Func fn1 caption="Change Func.1 z" default=ident() endfunc Func fn3 caption="Change Func.2 z" default=ident() endfunc Func fn2 caption="Function c" default=ident() endfunc Func fn4 caption="Function 1" default=ident() endfunc Func fn5 caption="Function 2" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="C-SquareBrot" bailout=@bailout @seed=#pixel opx=@opx opx1=@opx1 opy=@opy opy1=@opy1 op1=@op1 op2=@op2 opz1=@opz1 opz2=@opz2 opc=@opc op1z=@op1z op2x=@op2x op21x=@op21x op3y=@op3y op31y=@op31y opzy1=@opzy1 select=@select p1=@p1 p2=@p2 p3=@p3 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 mode=@switchmode switchmode=@mode version=@version } Curve { ;Andrea Spinozzi(Aug2004) Init: z=pixel c=pixel x=fn1(real(c)) y=fn2(imag(c)) float sx=0.0 p4r=real(p4) p4i=imag(p4) int i=0 Loop: if (@sx==0) if (real(x)<0.0 && imag(x)<0.0) sx=1.0 elseif (real(x)>=0.0 && imag(x)>=0.0) sx=1.0 elseif (real(x)>=0.0 && imag(x)<0.0) sx=1.0 elseif (real(x)<0.0 && imag(x)>=0.0) sx=1.0 endif elseif (@sx==1) if (real(x)<0.0 && imag(x)<0.0) sx=-1.0 elseif (real(x)>=0.0 && imag(x)>=0.0) sx=-1.0 elseif (real(x)>=0.0 && imag(x)<0.0) sx=-1.0 elseif (real(x)<0.0 && imag(x)>=0.0) sx=-1.0 endif endif x=real(fn3(x)+p4r) y=real(fn4(y)+p4i) tx=x ty=y if (@op==0) x=@fn5(ty-sx*sqrt(@fn6(p1*tx-p2))) y=@fn7(p3-tx) elseif (@op==1) x=@fn5(ty-sx+sqrt(@fn6(p1*tx-p2))) y=@fn7(p3-tx) elseif (@op==2) x=@fn5(ty-sx-sqrt(@fn6(p1*tx-p2))) y=@fn7(p3-tx) elseif (@op==3) x=@fn5(ty-sx/sqrt(@fn6(p1*tx-p2))) y=@fn7(p3-tx) elseif (@op==4) x=ty-sx*@fn6(@fn5(tx)*cos(p2)+p3-@fn7(tx)*sin(p1+p2+p3)) y=p1-tx elseif (@op==5) x=ty-sx*@fn6(@fn5(tx)*cos(p2)+p3-@fn7(tx)+sin(p1+p2+p3)) y=p1-tx elseif (@op==6) x=ty-sx*@fn6(@fn5(tx)-cos(p2)+p3-@fn7(tx)-sin(p1+p2+p3)) y=p1-tx elseif (@op==7) x=sx-tx-p1*(@fn5(ty+@fn6(p2*(ty+@fn7(p3*ty))))) y=sx-ty+p1*(@fn5(tx+@fn6(p2*(tx+@fn7(p3*tx))))) elseif (@op==8) x=sx-tx-p1*(@fn5(ty+@fn6(p2+(ty+@fn7(p3*ty))))) y=sx-ty+p1*(@fn5(tx+@fn6(p2+(tx+@fn7(p3*tx))))) elseif (@op==9) x=sx-tx-p1*(@fn5(ty-@fn6(p2*(ty+@fn7(p3*ty))))) y=sx-ty+p1*(@fn5(tx-@fn6(p2*(tx+@fn7(p3*tx))))) elseif (@op==10) x=p1+sx-@fn5(ty)+@fn6(tx)*p2 y=@fn7(tx)+p3 elseif (@op==11) x=tx*p1+sx-@fn5(ty)+@fn6(tx)*p2 y=@fn7(tx)+p3 endif if (@inside==true) i=i else i=i+1 endif if (@lastop==0) z=@fn8(x)-@fn9(y) elseif (@lastop==1) z=@fn8(x)+@fn9(y) endif Bailout: |i|<#maxiter Default: title="Curve" maxiter=100 method=multipass periodicity=0 magn=0.8 Heading caption="Operators and Parameters" Endheading param inside caption="Use Inside" default=false endparam param sx caption="Sx sign" enum="+""-" default=0 endparam param op caption="Select Curve" enum="1""2""3""4""5""6""7""8""9""10""11""12" default=0 endparam param lastop caption="Flavor" enum="1""2" default=0 endparam param p1 caption="Parameter 1" default=(0.4,0.0) endparam param p2 caption="Parameter 2" default=(1.0,0.0) endparam param p3 caption="Parameter 3" default=(0.0,0.0) endparam param p4 caption="p4r,p4i" default=(0.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Init Func x" default=ident() endfunc func fn2 caption="Init Func y" default=ident() endfunc func fn3 caption="Loop Func x" default=ident() endfunc func fn4 caption="Loop Func y" default=ident() endfunc func fn5 caption="Function 1" default=ident() endfunc func fn6 caption="Function 2" default=abs() endfunc func fn7 caption="Function 3" default=ident() endfunc func fn8 caption="Last Func x" default=ident() endfunc func fn9 caption="Last Func y" default=flip() endfunc param version caption="Version" default=1.0 visible=false endparam } DaddyBrot { ;Andrea Spinozzi(Updated Aug2004) Init: z=@startSeed c=#pixel x=fn3(z^@c)+fn4(z^@d) d=@fn8(@fn6(z^@e)+@fn7(z^@f))+z w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))+(c+z) if (@Mode4 == "Mandelbrot") z=@startSeed endif if @mode4 == "Julia" z=#pixel c=@startSeed endif Loop: if @invert == true z=1/z endif if @change == "c+z" x=fn3(z^@c)+fn4(z^@d) elseif @change == "c-z" x=fn3(z^@c)-fn4(z^@d) elseif @change == "z-c" x=fn4(z^@d)-fn3(z^@c) elseif @change == "c*z" x=fn3(z^@c)*fn4(z^@d) elseif @change == "c/z" x=fn3(z^@c)/fn4(z^@d) elseif @change == "z/c" x=fn4(z^@d)/fn3(z^@c) elseif @change == "c^z" x=fn3(z^@c)^fn4(z^@d) elseif @change == "z^c" x=fn4(z^@d)^fn3(z^@c) endif if @select == "1" if @type == "+" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)+fn2(z^@b)))^(c^z) endif endif elseif @type == "-" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)+fn2(z^@b)))^(c^z) endif endif elseif @type == "*" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)+fn2(z^@b)))^(c^z) endif endif elseif @type == "/" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)+fn2(z^@b)))^(c^z) endif endif elseif @type == "^" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)+fn2(z^@b)))^(c^z) endif endif endif elseif @select == "2" if @type == "+" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)-fn2(z^@b)))^(c^z) endif endif elseif @type == "-" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)-fn2(z^@b)))^(c^z) endif endif elseif @type == "*" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)-fn2(z^@b)))^(c^z) endif endif elseif @type == "/" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)-fn2(z^@b)))^(c^z) endif endif elseif @type == "^" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)-fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)-fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)-fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn1(z^@a)-fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)-fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)-fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)-fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)-fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn1(z^@a)-fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)-fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)-fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)-fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)-fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn1(z^@a)-fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)-fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)-fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)-fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)-fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn1(z^@a)-fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)-fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)-fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)-fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)-fn2(z^@b)))^(c*z) elseif @type2 == "/" w=(@power^(fn1(z^@a)-fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)-fn2(z^@b)))^(c^z) endif endif endif elseif @select == "3" if @type == "+" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn2(z^@b)-fn1(z^@a)))^(c^z) endif endif elseif @type == "-" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn2(z^@b)-fn1(z^@a)))^(c^z) endif endif elseif @type == "*" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn2(z^@b)-fn1(z^@a)))^(c^z) endif endif elseif @type == "/" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn2(z^@b)-fn1(z^@a)))^(c^z) endif endif elseif @type == "^" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn2(z^@b)-fn1(z^@a)))^(c^z) endif endif endif elseif @select == "4" if @type == "+" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)*fn2(z^@b)))^(c^z) endif endif elseif @type == "-" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)*fn2(z^@b)))^(c^z) endif endif elseif @type == "*" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)*fn2(z^@b)))^(c^z) endif endif elseif @type == "/" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)*fn2(z^@b)))^(c^z) endif endif elseif @type == "^" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)*fn2(z^@b)))^(c^z) endif endif endif elseif @select == "5" if @type == "+" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)/fn2(z^@b)))^(c^z) endif endif elseif @type == "-" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)/fn2(z^@b)))^(c^z) endif endif elseif @type == "*" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)/fn2(z^@b)))^(c^z) endif endif elseif @type == "/" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)/fn2(z^@b)))^(c^z) endif endif elseif @type == "^" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)/fn2(z^@b)))^(c^z) endif endif endif elseif @select == "6" if @type == "+" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn2(z^@b)/fn1(z^@a)))^(c^z) endif endif elseif @type == "-" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn2(z^@b)/fn1(z^@a)))^(c^z) endif endif elseif @type == "*" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn2(z^@b)/fn1(z^@a)))^(c^z) endif endif elseif @type == "/" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn2(z^@b)/fn1(z^@a)))^(c^z) endif endif elseif @type == "^" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn2(z^@b)/fn1(z^@a)))^(c^z) endif endif endif elseif @select == "7" if @type == "+" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn1(z^@a)^fn2(z^@b)))^(c^z) endif endif elseif @type == "-" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn1(z^@a)^fn2(z^@b)))^(c^z) endif endif elseif @type == "*" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn1(z^@a)^fn2(z^@b)))^(c^z) endif endif elseif @type == "/" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn1(z^@a)^fn2(z^@b)))^(c^z) endif endif elseif @type == "^" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn1(z^@a)^fn2(z^@b)))^(c^z) endif endif endif elseif @select == "8" if @type == "+" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)+(fn2(z^@b)^fn1(z^@a)))^(c^z) endif endif elseif @type == "-" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)-(fn2(z^@b)^fn1(z^@a)))^(c^z) endif endif elseif @type == "*" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)*(fn2(z^@b)^fn1(z^@a)))^(c^z) endif endif elseif @type == "/" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)/(fn2(z^@b)^fn1(z^@a)))^(c^z) endif endif elseif @type == "^" if @type1 == "+" if @type2 == "+" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))+(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))+(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))+(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))+(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))+(c^z) endif elseif @type1 == "-" if @type2 == "+" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))-(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))-(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))-(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))-(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))-(c^z) endif elseif @type1 == "*" if @type2 == "+" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))*(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))*(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))*(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))*(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))*(c^z) endif elseif @type1 == "/" if @type2 == "+" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))/(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))/(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))/(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))/(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))/(c^z) endif elseif @type1 == "^" if @type2 == "+" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))^(c+z) elseif @type2 == "-" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))^(c-z) elseif @type2 == "*" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))^(c*z) elseif @type2 == "/" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))^(c/z) elseif @type2 == "^" w=@fn5((@power*z)^(fn2(z^@b)^fn1(z^@a)))^(c^z) endif endif endif endif if @mode == "1" if @op == "+" d=@fn8((@fn6(z^@e)+@fn7(z^@f)))+z elseif @op == "-" d=@fn8((@fn6(z^@e)+@fn7(z^@f)))-z elseif @op == "*" d=@fn8((@fn6(z^@e)+@fn7(z^@f)))*z elseif @op == "/" d=@fn8((@fn6(z^@e)+@fn7(z^@f)))/z elseif @op == "^" d=@fn8((@fn6(z^@e)+@fn7(z^@f)))^z endif elseif @mode == "2" if @op == "+" d=@fn8((@fn6(z^@e)-@fn7(z^@f)))+z elseif @op == "-" d=@fn8((@fn6(z^@e)-@fn7(z^@f)))-z elseif @op == "*" d=@fn8((@fn6(z^@e)-@fn7(z^@f)))*z elseif @op == "/" d=@fn8((@fn6(z^@e)-@fn7(z^@f)))/z elseif @op == "^" d=@fn8((@fn6(z^@e)-@fn7(z^@f)))^z endif elseif @mode == "3" if @op == "+" d=@fn8((@fn7(z^@f)-@fn6(z^@e)))+z elseif @op == "-" d=@fn8((@fn7(z^@f)-@fn6(z^@e)))-z elseif @op == "*" d=@fn8((@fn7(z^@f)-@fn6(z^@e)))*z elseif @op == "/" d=@fn8((@fn7(z^@f)-@fn6(z^@e)))/z elseif @op == "^" d=@fn8((@fn7(z^@f)-@fn6(z^@e)))^z endif elseif @mode == "4" if @op == "+" d=@fn8((@fn6(z^@e)*@fn7(z^@f)))+z elseif @op == "-" d=@fn8((@fn6(z^@e)*@fn7(z^@f)))-z elseif @op == "*" d=@fn8((@fn6(z^@e)*@fn7(z^@f)))*z elseif @op == "/" d=@fn8((@fn6(z^@e)*@fn7(z^@f)))/z elseif @op == "^" d=@fn8((@fn6(z^@e)*@fn7(z^@f)))^z endif elseif @mode == "5" if @op == "+" d=@fn8((@fn6(z^@e)/@fn7(z^@f)))+z elseif @op == "-" d=@fn8((@fn6(z^@e)/@fn7(z^@f)))-z elseif @op == "*" d=@fn8((@fn6(z^@e)/@fn7(z^@f)))*z elseif @op == "/" d=@fn8((@fn6(z^@e)/@fn7(z^@f)))/z elseif @op == "^" d=@fn8((@fn6(z^@e)/@fn7(z^@f)))^z endif elseif @mode == "6" if @op == "+" d=@fn8((@fn7(z^@f)/@fn6(z^@e)))+z elseif @op == "-" d=@fn8((@fn7(z^@f)/@fn6(z^@e)))-z elseif @op == "*" d=@fn8((@fn7(z^@f)/@fn6(z^@e)))*z elseif @op == "/" d=@fn8((@fn7(z^@f)/@fn6(z^@e)))/z elseif @op == "^" d=@fn8((@fn7(z^@f)/@fn6(z^@e)))^z endif elseif @mode == "7" if @op == "+" d=@fn8((@fn6(z^@e)^@fn7(z^@f)))+z elseif @op == "-" d=@fn8((@fn6(z^@e)^@fn7(z^@f)))-z elseif @op == "*" d=@fn8((@fn6(z^@e)^@fn7(z^@f)))*z elseif @op == "/" d=@fn8((@fn6(z^@e)^@fn7(z^@f)))/z elseif @op == "^" d=@fn8((@fn6(z^@e)^@fn7(z^@f)))^z endif elseif @mode == "8" if @op == "+" d=@fn8((@fn7(z^@f)^@fn6(z^@e)))+z elseif @op == "-" d=@fn8((@fn7(z^@f)^@fn6(z^@e)))-z elseif @op == "*" d=@fn8((@fn7(z^@f)^@fn6(z^@e)))*z elseif @op == "/" d=@fn8((@fn7(z^@f)^@fn6(z^@e)))/z elseif @op == "^" d=@fn8((@fn7(z^@f)^@fn6(z^@e)))^z endif endif if @mode1 == "1" if @mode2 == "+" z=(w+d)+(x^@power) elseif @mode2 == "-" z=(w+d)-(x^@power) elseif @mode2 == "*" z=(w+d)*(x^@power) elseif @mode2 == "/" z=(w+d)/(x^@power) elseif @mode2 == "^" z=(w+d)^(x^@power) endif elseif @mode1 == "2" if @mode2 == "+" z=(w-d)+(x^@power) elseif @mode2 == "-" z=(w-d)-(x^@power) elseif @mode2 == "*" z=(w-d)*(x^@power) elseif @mode2 == "/" z=(w-d)/(x^@power) elseif @mode2 == "^" z=(w-d)^(x^@power) endif elseif @mode1 == "3" if @mode2 == "+" z=(d-w)+(x^@power) elseif @mode2 == "-" z=(d-w)-(x^@power) elseif @mode2 == "*" z=(d-w)*(x^@power) elseif @mode2 == "/" z=(d-w)/(x^@power) elseif @mode2 == "^" z=(d-w)^(x^@power) endif elseif @mode1 == "4" if @mode2 == "+" z=(w*d)+(x^@power) elseif @mode2 == "-" z=(w*d)-(x^@power) elseif @mode2 == "*" z=(w*d)*(x^@power) elseif @mode2 == "/" z=(w*d)/(x^@power) elseif @mode2 == "^" z=(w*d)^(x^@power) endif elseif @mode1 == "5" if @mode2 == "+" z=(w/d)+(x^@power) elseif @mode2 == "-" z=(w/d)-(x^@power) elseif @mode2 == "*" z=(w/d)*(x^@power) elseif @mode2 == "/" z=(w/d)/(x^@power) elseif @mode2 == "^" z=(w/d)^(x^@power) endif elseif @mode1 == "6" if @mode2 == "+" z=(d/w)+(x^@power) elseif @mode2 == "-" z=(d/w)-(x^@power) elseif @mode2 == "*" z=(d/w)*(x^@power) elseif @mode2 == "/" z=(d/w)/(x^@power) elseif @mode2 == "^" z=(d/w)^(x^@power) endif elseif @mode1 == "7" if @mode2 == "+" z=(w^d)+(x^@power) elseif @mode2 == "-" z=(w^d)-(x^@power) elseif @mode2 == "*" z=(w^d)*(x^@power) elseif @mode2 == "/" z=(w^d)/(x^@power) elseif @mode2 == "^" z=(w^d)^(x^@power) endif elseif @mode1 == "8" if @mode2 == "+" z=(d^w)+(x^@power) elseif @mode2 == "-" z=(d^w)-(x^@power) elseif @mode2 == "*" z=(d^w)*(x^@power) elseif @mode2 == "/" z=(d^w)/(x^@power) elseif @mode2 == "^" z=(d^w)^(x^@power) endif endif Bailout: |z|<@bailout Default: title="DaddyBrot" center=(0.0,0.0) magn=0.7 angle=90 maxiter=250 method=multipass periodicity=0 param bailout caption="Bailout Value" default=64.0 endparam param mode4 caption="Current mode" default=0 enum="Mandelbrot" "Julia" endparam param switchMode caption="Switch to" default=1 enum="Mandelbrot" "Julia" endparam Heading caption="Operators and Paramaters" endheading param change caption="Change" enum="c+z""c-z""z-c""c*z""c/z""z/c""c^z""z^c" default=3 endparam param select caption="Select" enum="1""2""3""4""5""6""7""8" default=0 endparam param type caption="Type" enum="+""-""*""/""^" default=0 endparam param type1 caption="Type 1" enum="+""-""*""/""^" default=0 endparam param type2 caption="Type 2" enum="+""-""*""/""^" default=0 endparam param mode caption="Mode" enum="1""2""3""4""5""6""7""8" default=4 endparam param op caption="Select Z in Mode" enum="+""-""*""/""^" default=0 endparam param mode1 caption="Mode 1" enum="1""2""3""4""5""6""7""8" default=1 endparam param mode2 caption="Mode 2" enum="+""-""*""/""^" default=3 endparam param startSeed caption="Start/Seed" default=(1.0,0.0) endparam param power caption="Exponent 1" default=(1.0,0.0) endparam param a caption="Exponent 2" default=(1.0,0.0) endparam param b caption="Exponent 3" default=(1.0,0.0) endparam param c caption="Exponent 4" default=(1.0,0.0) endparam param d caption="Exponent 5" default=(1.0,0.0) endparam param @e caption="Exponent 6" default=(1.0,0.0) endparam param f caption="Exponent 7" default=(1.0,0.0) endparam param invert caption="Invert Z" default=false endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc func fn6 caption="Function 6" default=ident() endfunc func fn7 caption="Function 7" default=ident() endfunc func fn8 caption="Function 8" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="DaddyBrot" StartSeed=pixel bailout=@bailout select=@select mode=@mode mode1=@mode1 mode2=@mode2 type=@type type1=@type1 type2=@type2 change=@change power=@power op=@op a=@a b=@b c=@c d=@d @e=@e f=@f fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 fn8=@fn8 invert=@invert mode4=@switchmode switchmode= @mode4 version=@version } Deviation-Mandelbrot { ;Thanks to Gilles Nadeau for the rotation. ;Andrea Spinozzi(July2005) ;v_Beta1.2 Init: complex z=c1=c2=(0.0,0.0) complex z1=z2=z5=(0.0,0.0) rotx=@rotx roty=@roty rotz=@rotz rotw=@rotw if (@mode == "Mandelbrot") complex z1=real(@start) complex z2=imag(@start) complex c1=real(pixel) complex c2=imag(pixel) elseif (@mode == "Julia") complex z1=real(pixel) complex z2=imag(pixel) complex c1=real(@seed) complex c2=imag(@seed) endif z=z1+flip(z2) c=c1+flip(c2) ry=imag(z)*cos(pi*rotx/180)-real(c)*sin(pi*rotx/180) rz=imag(z)*sin(pi*rotx/180)+real(c)*cos(pi*rotx/180) z=real(z)+ry*1i c=rz+imag(c)*1i rx=real(c)*sin(pi*roty/180)+real(z)*cos(pi*roty/180) rz=real(c)*cos(pi*roty/180)-real(z)*sin(pi*roty/180) z=rx+imag(z)*1i c=rz+imag(c)*1i ry=real(z)*cos(pi*rotz/180)-imag(c)*sin(pi*rotz/180) rw=real(z)*sin(pi*rotz/180)+imag(c)*cos(pi*rotz/180) z=ry+imag(z)*1i c=real(c)+rw*1i rx=imag(c)*sin(pi*rotw/180)+imag(z)*cos(pi*rotw/180) rw=imag(c)*cos(pi*rotw/180)-imag(z)*sin(pi*rotw/180) z=real(z)+rx*1i c=real(c)+rw*1i z1=real(z) z2=imag(z) c1=real(c) c2=imag(c) Loop: a=z1*z1 b=z2*z2 d=z1*z2 a=@fn5(a+flip(real(p4)))^@p6 b=@fn6(b+flip(imag(p4)))^@p7 d=@fn7(d+flip(real(@p8)))^@p10 z3=(a*p5-b*@p9)*p2 z4=d*p1 if (@op==0) z5=b*p3 elseif (@op==1) z5=d*p3 elseif (@op==2) z5=d+b*p3 elseif (@op==3) z5=d-b*p3 elseif (@op==4) z5=d*b*p3 elseif (@op==5) z5=d+a*p3 elseif (@op==6) z5=d-a*p3 elseif (@op==7) z5=d*a*p3 elseif (@op==8) z5=a*p3 elseif (@op==9) z5=a+b*p3 elseif (@op==10) z5=a-b*p3 elseif (@op==11) z5=b-a*p3 elseif (@op==12) z5=b*a*p3 elseif (@op==13) z5=a-d*p3 elseif (@op==14) z5=b-d*p3 endif z5=(z5+flip(imag(@p8))) if (@op2==0) if (@op1==0) z1=fn1(z3-z5)+fn3(c1) z2=fn2(z4-z5)+fn3(c2) elseif (@op1==1) z1=fn1(z3+z5)+fn3(c1) z2=fn2(z4-z5)+fn3(c2) elseif (@op1==2) z1=fn1(z3-z5)+fn3(c1) z2=fn2(z4+z5)+fn3(c2) elseif (@op1==3) z1=fn1(z3+z5)+fn3(c1) z2=fn2(z4+z5)+fn3(c2) endif elseif (@op2==1) if (@op1==0) z1=fn1(z3-z5)+fn3(c1) z2=fn2(z4-z5)-fn3(c2) elseif (@op1==1) z1=fn1(z3+z5)+fn3(c1) z2=fn2(z4-z5)-fn3(c2) elseif (@op1==2) z1=fn1(z3-z5)+fn3(c1) z2=fn2(z4+z5)-fn3(c2) elseif (@op1==3) z1=fn1(z3+z5)+fn3(c1) z2=fn2(z4+z5)-fn3(c2) endif elseif (@op2==2) if (@op1==0) z1=fn1(z3-z5)*fn3(c1) z2=fn2(z4-z5)+fn3(c2) elseif (@op1==1) z1=fn1(z3+z5)*fn3(c1) z2=fn2(z4-z5)+fn3(c2) elseif (@op1==2) z1=fn1(z3-z5)*fn3(c1) z2=fn2(z4+z5)+fn3(c2) elseif (@op1==3) z1=fn1(z3+z5)*fn3(c1) z2=fn2(z4+z5)+fn3(c2) endif elseif (@op2==3) if (@op1==0) z1=fn1(z3-z5)+fn3(c1) z2=fn2(z4-z5)*fn3(c2) elseif (@op1==1) z1=fn1(z3+z5)+fn3(c1) z2=fn2(z4-z5)*fn3(c2) elseif (@op1==2) z1=fn1(z3-z5)+fn3(c1) z2=fn2(z4+z5)*fn3(c2) elseif (@op1==3) z1=fn1(z3+z5)+fn3(c1) z2=fn2(z4+z5)*fn3(c2) endif endif if (@flavor==0) z=fn4(z1)-flip(z2) elseif (@flavor==1) z=fn4(z1)+flip(z2) endif Bailout: |z1|+|z2|<=@bailout Default: title="Deviation-Mandelbrot" method=multipass periodicity=0 maxiter=1000 Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param bailout caption="Bailout Value" default=128.0 endparam param flavor caption="Flavor" enum="1""2" default=0 endparam func fn4 caption="Function Flavor" default=ident() endfunc param rotx caption="Rotation x" default=0.0 endparam param roty caption="Rotation y" default=0.0 endparam param rotz caption="Rotation z" default=0.0 endparam param rotw caption="Rotation w" default=0.0 endparam Heading caption="Formula Parameters" Endheading param start caption="Start z" default=(0.0,0.0) visible=(@mode=="Mandelbrot") endparam param seed caption="Seed Value" default=(0.0,0.0) visible=(@mode=="Julia") endparam param op caption="Operator 1" enum="1""2""3""4""5""6""7""8""9""10""11""12""13""14""15" default=0 endparam param op1 caption="Operator 2" enum="1""2""3""4" default=0 endparam param op2 caption="Operator 3" enum="1""2""3""4" default=0 endparam param p4 caption="Parameter 1" default=(0.0,0.0) endparam param p8 caption="Parameter 2" default=(0.0,0.0) endparam param p1 caption="Multiply 1" default=(2.0,0.0) endparam param p2 caption="Multiply 2" default=(1.0,0.0) endparam param p3 caption="Multiply 3" default=(1.0,0.0) endparam param p5 caption="Multiply 4" default=(1.0,0.0) endparam param p9 caption="Multiply 5" default=(1.0,0.0) endparam param p6 caption="Exponent 1" default=(1.0,0.0) endparam param p7 caption="Exponent 2" default=(1.0,0.0) endparam param p10 caption="Exponent 3" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn5 caption="Function 3" default=ident() endfunc func fn6 caption="Function 4" default=ident() endfunc func fn7 caption="Function 5" default=ident() endfunc func fn3 caption="Function C" default=ident() endfunc param version caption="Version" default=1.2 visible=false endparam Switch: type="Deviation-Mandelbrot" bailout=@bailout seed=#pixel op=@op op1=@op1 op2=@op2 flavor=@flavor p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 p8=@p8 p9=@p9 p10=@p10 rotx=@rotx roty=@roty rotz=@rotz rotw=@rotw fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 mode=@switchmode switchmode=@mode version=@version } As-Fingers { ;Based on the formula: ;z=z^Real(p1)+c ;Real(z)<=Imag(p1) ;Andrea Spinozzi(June2004) Init: complex z =(0.0,0.0) complex c =(0.0,0.0) complex z1=(0.0,0.0) complex z2=(0.0,0.0) complex z3=(0.0,0.0) complex p1r=real(p1) complex p1i=imag(p1) if (@mode=="Mandelbrot") complex z=(0.0,0.0) complex c=pixel complex z1=(0.0,0.0) complex z2=(0.0,0.0) complex z3=(0.0,0.0) elseif (@mode=="Julia") complex z=pixel complex c=@seed complex z1=pixel complex z2=pixel complex z3=pixel endif Loop: if (@op==0) z1=fn1(z1*z1^p2)^p1r+fn2(c*p3) elseif (@op==1) z1=fn1(z1*z1^p2)^p1r+fn2(c-z1*p3) elseif (@op==2) z1=fn1(z1*z1^p2)^p1r+fn2(c-z2*p3) elseif (@op==3) z1=fn1(z1*z1^p2)^p1r+fn2(c+z2*p3) elseif (@op==4) z1=fn1(z1*z1^p2)^p1r+fn2(c+z1*z1*p3)*c elseif (@op==5) z1=fn1(z1*z1^p2)^p1r+fn2(c+z2*z2*p3)*c elseif (@op==6) z1=fn1(z1*z1^p2)^p1r+fn2(c+z1*z2*p3)*c endif z1=fn4(z1) ;---------------- z2=real(z1)^p1i z3=z1+(z2/c) ;---------------- if (@flavor==0) z=z2+fn3(z3) elseif (@flavor==1) z=z2-fn3(z3) elseif (@flavor==2) z=flip(z2)+fn3(z3) endif Bailout: |z1|+|z2|+|z3|<=@bailout Default: title="Fingers" method=multipass periodicity=0 maxiter=500 magn=1.0 Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="Current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param flavor caption="Flavor" enum="1""2""3" default=0 endparam func fn3 caption="Function Flavor" default=ident() endfunc param bailout caption="Bailout Value" default=64.0 endparam Heading caption="Operator and Parameters" Endheading param seed caption="Seed Value" default=(0.0,0.0) visible=(@mode=="Julia") endparam param op caption="Operator" enum="1""2""3""4""5""6""7" default=0 endparam param p1 caption="p1(Re|Im)" default=(1.0,1.0) endparam param p2 caption="Exponent z" default=(1.0,0.0) endparam param p3 caption="Parameter c" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1|z" default=ident() endfunc func fn4 caption="Function 2|z" default=ident() endfunc func fn2 caption="Function c" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="As-Fingers" seed=#pixel bailout=@bailout mode=@switchmode switchmode=@mode flavor=@flavor op=@op p1=@p1 p2=@p2 p3=@p3 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 version=@version } As-Flattop { ;Modification of: ;z=sin(z+2)+(c*z)/(z-2) ;Andrea Spinozzi(June2004) Init: complex z=(0.0,0.0) complex c=(0.0,0.0) complex z1=(0.0,0.0) complex z2=(0.0,0.0) complex z3=(0.0,0.0) complex p1r=real(p1) complex p1i=imag(p1) complex p2r=real(p2) complex p2i=imag(p2) if (@mode=="Mandelbrot") complex z=@start complex c=pixel complex z1=(0.0,0.0) complex z2=(0.0,0.0) complex z3=(0.0,0.0) elseif (@mode=="Julia") complex z=pixel complex c=@seed complex z1=pixel complex z2=pixel complex z3=pixel endif Loop: z1=fn1(z+p1r)^p2r if (@op==0) z2=(fn2(c*p3*(z)^p4)/(z-p1i))^p2i elseif (@op==1) z2=(fn2(c*p3*(z+c)^p4)/(z-p1i))^p2i elseif (@op==2) z2=(fn2(c*p3*(z-c)^p4)/(z-p1i))^p2i elseif (@op==3) z2=(fn2(c*p3*(z*c)^p4)/(z-p1i))^p2i elseif (@op==4) z2=(fn2(c*p3*(z/c)^p4)/(z-p1i))^p2i endif if (@op1==0) z3=fn3(z1)+fn4(z2) elseif (@op1==1) z3=fn3(z1)-fn4(z2) elseif (@op1==2) z3=fn3(z1)*fn4(z2) elseif (@op1==3) z3=fn3(z1)/fn4(z2) endif z=@fn5(z3) Bailout: |z1|+|z2|+|z3|<=@bailout Default: title="Flattop" method=multipass periodicity=0 maxiter=500 magn=1.0 Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param bailout caption="Bailout Value" default=64.0 min=0.0 endparam Heading caption="Operators and Paremeters" Endheading param start caption="Start Value" default=(1.0,0.0) visible=(@mode=="Mandelbrot") endparam param seed caption="Seed Value" default=(0.0,0.0) visible=(@mode=="Julia") endparam param op caption="Operator 1" enum="1""2""3""4""5" default=0 endparam param op1 caption="Operator 2" enum="1""2""3""4" default=0 endparam param p1 caption="Parameter 1" default=(2.0,2.0) endparam param p3 caption="Parameter 2" default=(1.0,0.0) endparam param p2 caption="Exponent 1" default=(1.0,1.0) endparam param p4 caption="Exponent 2" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=sin() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="As-Flattop" seed=#pixel bailout=@bailout mode=@switchmode switchmode=@mode op=@op op1=@op1 p1=@p1 p2=@p2 p3=@p3 p4=@p4 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 version=@version } Four { ;t=Z; Z=Fn2(Z^3-C); C=Fn1(t) ;AndreaSpinozzi(June2004) Init: complex z=(0.0,0.0) complex c=(0.0,0.0) complex t=(0.0,0.0) complex t1=(0.0,0.0) if (@mode=="Mandelbrot") z=t=pixel c=pixel elseif (@mode=="Julia") z=t=pixel c=@seed endif Loop: if (@opt==0) t=p5+z^p4 elseif (@opt==1) t=p5+(z+t1)^p4 elseif (@opt==2) t=p5+(z+2*t1)^p4 endif t1=z*z if (@op==0) z=fn2((z^p1)+fn3(c^p2)) elseif (@op==1) z=fn2((z^p1)-fn3(c^p2)) endif c=(fn1(t+p6))^p3 Bailout: |t|<=@bailout Default: title="Four" center=(0.0,0.0) angle=90 maxiter=500 magn=1.0 periodicity=0 method=multipass Heading caption="Mandelbrot Mode" visible=(@mode=="Mandelbrot") endheading Heading caption="Julia Mode" visible=(@mode=="Julia") endheading param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 visible=false endparam param switchmode caption="switch To..." enum="Mandelbrot""Julia" default=1 visible=false endparam param Bailout caption="Bailout Value" default=64.0 min=0.0 endparam Heading caption="Operators and Parameters" endheading param seed caption="Seed Value" default=(0.0,0.0) visible=(@mode=="Julia") endparam param opt caption="Select t" enum="1""2""3" default=0 endparam param op caption="Operator" enum="1""2" default=0 endparam param p1 caption="Exponent 1" default=(3.0,0.0) endparam param p2 caption="Exponent 2" default=(1.0,0.0) endparam param p3 caption="Exponent 3" default=(1.0,0.0) endparam param p4 caption="Exponent 4" default=(1.0,0.0) endparam param p5 caption="Parameter 1" default=(0.0,0.0) endparam param p6 caption="Parameter 2" default=(0.0,0.0) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Four" @seed=#pixel bailout=@bailout op=@op opt=@opt p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 fn1=@fn1 fn2=@fn2 fn3=@fn3 mode=@switchmode switchmode=@mode version=@version } free1 { ;Andrea Spinozzi Init: z=0 c=1 Loop: z=z * z + #pixel + sin(c) a=1 b=2 c=sin(2) + a a=sin(b) * 2 b=tan(a) c=sin(b) + sin(a) * 2 Bailout: |z| < 4 Default: title="free1" } free2 { ;Andrea Spinozzi Init: z=0 c=1 Loop: z=z * z + #pixel + tan(c) a=1 b=2 c=sin(2) + a a=sin(b) * 2 b=tan(a) c=sin(b) + tan(a) * 2 Bailout: |z| < 4 Default: title="free2" } Gemini { ;Andrea Spinozzi(Sep2003) Init: z=@startseed c=#pixel complex q=(2.0,2.0) if (@Mode == "Mandelbrot") z=@startSeed endif if @mode == "Julia" z=#pixel c=@startSeed if @zoom != 1.0 z=z/@zoom endif if @center != (0,0) z=z + @center endif endif Loop: If @invert == true z=1/z endif x=fn1(z^@e)*c y=cabs(z^(@a))*exp(z)*fn2(z^@g)^@f j=(fn3(abs(c))*fn4(abs(c))) w=(sin(z^@b)*sin(z^@c))*c k=sin(c^@d)*cabs(q)^@f if @opq==true x=cabs(z)*(fn1(z^@e)*c) y=cabs(z^(@a))*exp(z)*fn2(z^@g)^@f j=(fn3(abs(c))*fn4(abs(c))) w=(sin(z^@b)*sin(z^@c))*c k=sin(c^@d)*cabs(z)^@f endif if @group=="1" if @op=="+" z=(k/y+w+j)+(c*z)*x elseif @op=="-" z=(k/y-w+j)+(c*z)*x elseif @op=="*" z=(k/y*w+j)+(c*z)*x elseif @op=="/" z=(k/y/w+j)+(c*z)*x endif elseif @group=="2" if @op=="+" z=(k/y+w+j)+(c*z)/x elseif @op=="-" z=(k/y-w+j)+(c*z)/x elseif @op=="*" z=(k/y*w+j)+(c*z)/x elseif @op=="/" z=(k/y/w+j)+(c*z)/x endif elseif @group=="3" if @op=="+" z=(k/y+w^j)+(c*z)*x elseif @op=="-" z=(k/y-w^j)+(c*z)*x elseif @op=="*" z=(k/y*w^j)+(c*z)*x elseif @op=="/" z=(k/y/w^j)+(c*z)*x endif elseif @group=="4" if @op=="+" z=(k/y+w*j)*(c+z)+x elseif @op=="-" z=(k/y-w*j)*(c+z)+x elseif @op=="*" z=(k/y*w*j)*(c+z)+x elseif @op=="/" z=(k/y/w*j)*(c+z)+x endif elseif @group=="5" if @op=="+" z=(k/y+w+j)-(c+z)*x elseif @op=="-" z=(k/y-w+j)-(c+z)*x elseif @op=="*" z=(k/y*w+j)-(c+z)*x elseif @op=="/" z=(k/y/w+j)-(c+z)*x endif elseif @group=="6" if @op=="+" z=(k/y+w^j)-(c*z)*x elseif @op=="-" z=(k/y-w^j)-(c*z)*x elseif @op=="*" z=(k/y*w^j)-(c*z)*x elseif @op=="/" z=(k/y/w^j)-(c*z)*x endif elseif @group=="7" if @op=="+" z=(k/y+w/j)-(c+z)*x elseif @op=="-" z=(k/y-w/j)-(c+z)*x elseif @op=="*" z=(k/y*w/j)-(c+z)*x elseif @op=="/" z=(k/y/w/j)-(c+z)*x endif endif Bailout: |z| < @bailout Default: title="Gemini" angle=90 maxiter=250 method=multipass periodicity=0 param bailout caption="Bailout Value" default=16.0 min=0.0 endparam param mode caption="Current mode" default=0 enum="Mandelbrot" "Julia" endparam param switchMode caption="Switch to" default=1 enum="Mandelbrot" "Julia" endparam Heading caption="Switch Parameters" visible=@show endheading param @show caption="Show Switch Parameters" default=false endparam param swzoom caption="Magnification" default=1.0 visible=@show endparam param swcenter caption="Switch Center" default=(0.8,0.0) visible=@show endparam param zoom caption="Reset Magnification" default= 1.0 visible=@show endparam param center caption="Reset Center" default=(0.0,0.0) visible=@show endparam Heading caption="Operators and Parameters" endheading param startseed caption="Start/Seed" default=(1.0,0.0) endparam param opq caption="Change" default=false endparam param group caption="Group" enum="1""2""3""4""5""6""7" default=6 endparam param op caption="Operator" enum="+""-""*""/" default=1 endparam param a caption="Exponent 1" default=(1.0,0.0) endparam param b caption="exponent 2" default=(0.0,0.0) endparam param c caption="Exponent 3" default=(-0.6,0.0) endparam param d caption="Exponent 4" default=(0.5,0.0) endparam param @e caption="Exponent 5" default=(0.5,0.0) endparam param f caption="Exponent 6" default=(1.0,0.0) endparam param g caption="Exponent 7" default=(0.0,0.0) endparam Param invert caption="Invert Z" default=false endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=cabs() endfunc func fn2 caption="Function 2" default=exp() endfunc func fn3 caption="Function 3" default=conj() endfunc func fn4 caption="Function 4" default=abs() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Gemini" startseed=#pixel bailout=@bailout a=@a b=@b @c=@c d=@d @e=@e f=@f g=@g fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 group=@group op=@op opq=@opq invert=@invert mode=@switchmode switchmode=@mode center=@swcenter zoom=@swzoom version=@version } GeneralMandelbrot { ;The formula is based on two equations: ;z=(fn(z)^power)+c and z1=(power*fn(z)^(power-1))+c ;Andrea Spinozzi(Mar2004) Init: z=@startseed c=pixel z1=(0.0,0.0) z11=(0.0,0.0) z2=(0.0,0.0) z21=(0.0,0.0) z3=(0.0,0.0) z31=(0.0,0.0) z4=(0.0,0.0) z41=(0.0,0.0) z5=(0.0,0.0) z6=(0.0,0.0) z61=(0.0,0.0) z7=(0.0,0.0) if @mode=="Mandelbrot" z=@startseed c=pixel elseif @mode=="Julia" z=pixel c=@startseed endif Loop: if @opz==0 z=z elseif @opz==1 z=z*c elseif @opz==2 z=z/c endif if @opc==0 z1=(fn1(z)^p1)+c z11=(p1*fn1(z)^(p1-1))+c z2=(fn2(z)^p2)+c z21=(p2*fn2(z)^(p2-1))+c z4=(fn3(z)^p3)+c z41=(p3*fn3(z)^(p3-1))+c z6=(fn4(z)^p4)+c z61=(p4*fn4(z)^(p4-1))+c elseif @opc==1 z1=(fn1(z)^p1)-c z11=(p1*fn1(z)^(p1-1))-c z2=(fn2(z)^p2)-c z21=(p2*fn2(z)^(p2-1))-c z4=(fn3(z)^p3)-c z41=(p3*fn3(z)^(p3-1))-c z6=(fn4(z)^p4)-c z61=(p4*fn4(z)^(p4-1))-c elseif @opc==2 z1=(fn1(z)^p1)*c z11=(p1*fn1(z)^(p1-1))*c z2=(fn2(z)^p2)*c z21=(p2*fn2(z)^(p2-1))*c z4=(fn3(z)^p3)*c z41=(p3*fn3(z)^(p3-1))*c z6=(fn4(z)^p4)*c z61=(p4*fn4(z)^(p4-1))*c elseif @opc==3 z1=(fn1(z)^p1)/c z11=(p1*fn1(z)^(p1-1))/c z2=(fn2(z)^p2)/c z21=(p2*fn2(z)^(p2-1))/c z4=(fn3(z)^p3)/c z41=(p3*fn3(z)^(p3-1))/c z6=(fn4(z)^p4)/c z61=(p4*fn4(z)^(p4-1))/c endif if @op==0 z3=z2+z21 elseif @op==1 z3=z2-z21 elseif @op==2 z3=z2*z21 elseif @op==3 z3=z2/z21 elseif @op==4 z3=z21-z2 elseif @op==5 z3=z21/z2 endif if @op3==0 z31=z4+z41 elseif @op3==1 z31=z4-z41 elseif @op3==2 z31=z4*z41 elseif @op3==3 z31=z4/z41 elseif @op3==4 z31=z41-z4 elseif @op3==5 z31=z41/z4 endif if @op5==0 z7=z6+z61 elseif @op5==1 z7=z6-z61 elseif @op5==2 z7=z6*z61 elseif @op5==3 z7=z6/z61 elseif @op5==4 z7=z61-z6 elseif @op5==5 z7=z61/z6 endif if @op1==0 if @op2==0 z5=((z1+z11)^p5)+z3 elseif @op2==1 z5=((z1+z11)^p5)-z3 elseif @op2==2 z5=((z1+z11)^p5)*z3 elseif @op2==3 z5=((z1+z11)^p5)/z3 elseif @op2==4 z5=z3/((z1+z11)^p5) endif elseif @op1==1 if @op2==0 z5=((z1*z11)^p5)+z3 elseif @op2==1 z5=((z1*z11)^p5)-z3 elseif @op2==2 z5=((z1*z11)^p5)*z3 elseif @op2==3 z5=((z1*z11)^p5)/z3 elseif @op2==4 z5=z3/((z1*z11)^p5) endif elseif @op1==2 if @op2==0 z5=((z1/z11)^p5)+z3 elseif @op2==1 z5=((z1/z11)^p5)-z3 elseif @op2==2 z5=((z1/z11)^p5)*z3 elseif @op2==3 z5=((z1/z11)^p5)/z3 elseif @op2==4 z5=z3/((z1/z11)^p5) endif elseif @op1==3 if @op2==0 z5=((z11/z1)^p5)+z3 elseif @op2==1 z5=((z11/z1)^p5)-z3 elseif @op2==2 z5=((z11/z1)^p5)*z3 elseif @op2==3 z5=((z11/z1)^p5)/z3 elseif @op2==4 z5=z3/((z11/z1)^p5) endif endif if @opz7==0 if @op4==0 z=(z5*z31)+z7 elseif @op4==1 z=(z5/z31)+z7 elseif @op4==2 z=(z31-z5)+z7 endif elseif @opz7==1 if @op4==0 z=(z5*z31)-z7 elseif @op4==1 z=(z5/z31)-z7 elseif @op4==2 z=(z31-z5)-z7 endif elseif @opz7==2 if @op4==0 z=(z5*z31)*z7 elseif @op4==1 z=(z5/z31)*z7 elseif @op4==2 z=(z31-z5)*z7 endif elseif @opz7==3 if @op4==0 z=(z5*z31)/z7 elseif @op4==1 z=(z5/z31)/z7 elseif @op4==2 z=(z31-z5)/z7 endif elseif @opz7==4 if @op4==0 z=z7-(z5*z31) elseif @op4==1 z=z7-(z5/z31) elseif @op4==2 z=z7-(z31-z5) endif elseif @opz7==5 if @op4==0 z=z7/(z5*z31) elseif @op4==1 z=z7/(z5/z31) elseif @op4==2 z=z7/(z31-z5) endif endif Bailout: |z|<=|@bailout| Default: title="GeneralMandelbrot" angle=90 center=(-0.5,0.0) maxiter=250 periodicity=0 method=multipass param bailout caption="Bailout Value" default=16.0 min=0.0 endparam param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 endparam param switchmode caption="Switch to..." enum="Mandelbrot""Julia" default=1 endparam Heading caption="Operators and Parameters" Endheading complex param startseed caption="Init Z/Seed Value" default=(-0.29375,-2.309011814e-19) endparam param opz caption="Select Z" enum="z""z*c""z/c" default=0 endparam param opc caption="Select C" enum="+""-""*""/" default=2 endparam param op caption="Operator 1" enum="1""2""3""4""5""6" default=3 endparam param op1 caption="Operator 2" enum="1""2""3""4" default=0 endparam param op2 caption="Operator 3" enum="1""2""3""4""5" default=0 endparam param op3 caption="Operator 4" enum="1""2""3""4""5""6" default=0 endparam param op4 caption="Operator 5" enum="1""2""3" default=0 endparam param op5 caption="Operator 6" enum="1""2""3""4""5""6" default=0 endparam param opz7 caption="Operator 7" enum="1""2""3""4""5""6" default=0 endparam param p1 caption="Parameter 1" default=(1.0,0.0) endparam param p2 caption="Parameter 2" default=(1.0,0.0) endparam param p3 caption="Parameter 3" default=(1.0,0.0) endparam param p4 caption="Parameter 4" default=(1.0,0.0) endparam param p5 caption="Parameter 5" default=(-1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="GeneralMandelbrot" startseed=#pixel bailout=@bailout opz=@opz opc=@opc op=@op op1=@op1 op2=@op2 op3=@op3 op4=@op4 op5=@op5 opz7=@opz7 p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 mode=@switchmode switchmode=@mode version=@version } GenericBrot { ;Andrea Spinozzi(Dec2003) Init: z=@startseed complex z1=(0.0,0.0) complex z2=(0.0,0.0) temp=p1 temp1=(0.0,0.0) c=pixel if @mode=="Mandelbrot" z=@startseed c=pixel elseif @mode=="Julia" if @ChangeSwitch==0 z=pixel c=@startseed elseif @ChangeSwitch==1 z=abs(pixel) c=@startseed elseif @ChangeSwitch==2 z=recip(log(abs(pixel))) c=@startseed elseif @ChangeSwitch==3 z=log(abs(pixel)) c=@startseed endif endif Loop: if @change==true z=1/(z+c) endif if @opz2==0 z2=(fn3(c)+fn4(c)) elseif @opz2==1 z2=(fn3(c)-fn4(c)) elseif @opz2==2 z2=(fn3(c)*fn4(c)) elseif @opz2==3 z2=(fn3(c)/fn4(c)) elseif @opz2==4 z2=(fn3(c)^fn4(c)) elseif @opz2==5 z2=(fn4(c)-fn3(c)) elseif @opz2==6 z2=(fn4(c)/fn3(c)) elseif @opz2==7 z2=(fn4(c)^fn3(c)) endif if @opz==0 if @opFunc1=="+" if @opFunc2=="+" z1=(z+fn1(c)+c)+fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="-" z1=(z+fn1(c)+c)-fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="*" z1=(z+fn1(c)+c)*fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="/" z1=(z+fn1(c)+c)/fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c endif elseif @opFunc1=="-" if @opFunc2=="+" z1=(z-fn1(c)+c)+fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="-" z1=(z-fn1(c)+c)-fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="*" z1=(z-fn1(c)+c)*fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="/" z1=(z-fn1(c)+c)/fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c endif elseif @opFunc1=="*" if @opFunc2=="+" z1=(z*fn1(c)+c)+fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="-" z1=(z*fn1(c)+c)-fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="*" z1=(z*fn1(c)+c)*fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="/" z1=(z*fn1(c)+c)/fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c endif elseif @opFunc1=="/" if @opFunc2=="+" z1=(z/fn1(c)+c)+fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="-" z1=(z/fn1(c)+c)-fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="*" z1=(z/fn1(c)+c)*fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="/" z1=(z/fn1(c)+c)/fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c endif endif endif ;---------------------------------------------------------- if @opz==1 if @opFunc1=="+" if @opFunc2=="+" z1=(z+fn1(c)-c)+fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="-" z1=(z+fn1(c)-c)-fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="*" z1=(z+fn1(c)-c)*fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="/" z1=(z+fn1(c)-c)/fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c endif elseif @opFunc1=="-" if @opFunc2=="+" z1=(z-fn1(c)-c)+fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="-" z1=(z-fn1(c)-c)-fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="*" z1=(z-fn1(c)-c)*fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="/" z1=(z-fn1(c)-c)/fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c endif elseif @opFunc1=="*" if @opFunc2=="+" z1=(z*fn1(c)-c)+fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="-" z1=(z*fn1(c)-c)-fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="*" z1=(z*fn1(c)-c)*fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="/" z1=(z*fn1(c)-c)/fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c endif elseif @opFunc1=="/" if @opFunc2=="+" z1=(z/fn1(c)-c)+fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="-" z1=(z/fn1(c)-c)-fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="*" z1=(z/fn1(c)-c)*fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="/" z1=(z/fn1(c)-c)/fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c endif endif endif ;---------------------------------------------------------- if @opz==2 if @opFunc1=="+" if @opFunc2=="+" z1=(z+fn1(c)*c)+fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="-" z1=(z+fn1(c)*c)-fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="*" z1=(z+fn1(c)*c)*fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="/" z1=(z+fn1(c)*c)/fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c endif elseif @opFunc1=="-" if @opFunc2=="+" z1=(z-fn1(c)*c)+fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="-" z1=(z-fn1(c)*c)-fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="*" z1=(z-fn1(c)*c)*fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="/" z1=(z-fn1(c)*c)/fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c endif elseif @opFunc1=="*" if @opFunc2=="+" z1=(z*fn1(c)*c)+fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="-" z1=(z*fn1(c)*c)-fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="*" z1=(z*fn1(c)*c)*fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="/" z1=(z*fn1(c)*c)/fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c endif elseif @opFunc1=="/" if @opFunc2=="+" z1=(z/fn1(c)*c)+fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="-" z1=(z/fn1(c)*c)-fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="*" z1=(z/fn1(c)*c)*fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="/" z1=(z/fn1(c)*c)/fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c endif endif endif ;---------------------------------------------------------- if @opz==3 if @opFunc1=="+" if @opFunc2=="+" z1=(z+fn1(c)/c)+fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="-" z1=(z+fn1(c)/c)-fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="*" z1=(z+fn1(c)/c)*fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="/" z1=(z+fn1(c)/c)/fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c endif elseif @opFunc1=="-" if @opFunc2=="+" z1=(z-fn1(c)/c)+fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="-" z1=(z-fn1(c)/c)-fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="*" z1=(z-fn1(c)/c)*fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="/" z1=(z-fn1(c)/c)/fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c endif elseif @opFunc1=="*" if @opFunc2=="+" z1=(z*fn1(c)/c)+fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="-" z1=(z*fn1(c)/c)-fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="*" z1=(z*fn1(c)/c)*fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="/" z1=(z*fn1(c)/c)/fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c endif elseif @opFunc1=="/" if @opFunc2=="+" z1=(z/fn1(c)/c)+fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="-" z1=(z/fn1(c)/c)-fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="*" z1=(z/fn1(c)/c)*fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="/" z1=(z/fn1(c)/c)/fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c endif endif endif ;---------------------------------------------------------- if @opz==4 if @opFunc1=="+" if @opFunc2=="+" z1=(z+fn1(c)^c)+fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="-" z1=(z+fn1(c)^c)-fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="*" z1=(z+fn1(c)^c)*fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="/" z1=(z+fn1(c)^c)/fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c endif elseif @opFunc1=="-" if @opFunc2=="+" z1=(z-fn1(c)^c)+fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="-" z1=(z-fn1(c)^c)-fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="*" z1=(z-fn1(c)^c)*fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="/" z1=(z-fn1(c)^c)/fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c endif elseif @opFunc1=="*" if @opFunc2=="+" z1=(z*fn1(c)^c)+fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="-" z1=(z*fn1(c)^c)-fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="*" z1=(z*fn1(c)^c)*fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="/" z1=(z*fn1(c)^c)/fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c endif elseif @opFunc1=="/" if @opFunc2=="+" z1=(z/fn1(c)^c)+fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="-" z1=(z/fn1(c)^c)-fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="*" z1=(z/fn1(c)^c)*fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c elseif @opFunc2=="/" z1=(z/fn1(c)^c)/fn2(z) if @par=="+" if @par1=="+" temp=(p1^z+z2)+c elseif @par1=="-" temp=(p1^z+z2)-c elseif @par1=="*" temp=(p1^z+z2)*c elseif @par1=="/" temp=(p1^z+z2)/c elseif @par1=="^" temp=(p1^z+z2)^c endif elseif @par=="-" if @par1=="+" temp=(p1^z-z2)+c elseif @par1=="-" temp=(p1^z-z2)-c elseif @par1=="*" temp=(p1^z-z2)*c elseif @par1=="/" temp=(p1^z-z2)/c elseif @par1=="^" temp=(p1^z-z2)^c endif elseif @par=="*" if @par1=="+" temp=(p1^z*z2)+c elseif @par1=="-" temp=(p1^z*z2)-c elseif @par1=="*" temp=(p1^z*z2)*c elseif @par1=="/" temp=(p1^z*z2)/c elseif @par1=="^" temp=(p1^z*z2)^c endif elseif @par=="/" if @par1=="+" temp=(p1^z/z2)+c elseif @par1=="-" temp=(p1^z/z2)-c elseif @par1=="*" temp=(p1^z/z2)*c elseif @par1=="/" temp=(p1^z/z2)/c elseif @par1=="^" temp=(p1^z/z2)^c endif elseif @par=="^" if @par1=="+" temp=(p1^z^z2)+c elseif @par1=="-" temp=(p1^z^z2)-c elseif @par1=="*" temp=(p1^z^z2)*c elseif @par1=="/" temp=(p1^z^z2)/c elseif @par1=="^" temp=(p1^z^z2)^c endif endif temp1=(0.8^z)*c endif endif endif ;********************************************************** if @opresult=="1" if @opfinalc=="+" z=((temp*temp1+z1)+z2)+c elseif @opfinalc=="-" z=((temp*temp1+z1)+z2)-c elseif @opfinalc=="*" z=((temp*temp1+z1)+z2)*c elseif @opfinalc=="/" z=((temp*temp1+z1)+z2)/c endif elseif @opresult=="2" if @opfinalc=="+" z=((temp*temp1+z1)-z2)+c elseif @opfinalc=="-" z=((temp*temp1+z1)-z2)-c elseif @opfinalc=="*" z=((temp*temp1+z1)-z2)*c elseif @opfinalc=="/" z=((temp*temp1+z1)-z2)/c endif elseif @opresult=="3" if @opfinalc=="+" z=((temp*temp1+z1)*z2)+c elseif @opfinalc=="-" z=((temp*temp1+z1)*z2)-c elseif @opfinalc=="*" z=((temp*temp1+z1)*z2)*c elseif @opfinalc=="/" z=((temp*temp1+z1)*z2)/c endif elseif @opresult=="4" if @opfinalc=="+" z=((temp*temp1+z1)/z2)+c elseif @opfinalc=="-" z=((temp*temp1+z1)/z2)-c elseif @opfinalc=="*" z=((temp*temp1+z1)/z2)*c elseif @opfinalc=="/" z=((temp*temp1+z1)/z2)/c endif elseif @opresult=="5" if @opfinalc=="+" z=((temp*temp1-z1)*z2)+c elseif @opfinalc=="-" z=((temp*temp1-z1)*z2)-c elseif @opfinalc=="*" z=((temp*temp1-z1)*z2)*c elseif @opfinalc=="/" z=((temp*temp1-z1)*z2)/c endif elseif @opresult=="6" if @opfinalc=="+" z=((temp*temp1-z1)+z2)+c elseif @opfinalc=="-" z=((temp*temp1-z1)+z2)-c elseif @opfinalc=="*" z=((temp*temp1-z1)+z2)*c elseif @opfinalc=="/" z=((temp*temp1-z1)+z2)/c endif elseif @opresult=="7" if @opfinalc=="+" z=((temp*temp1-z1)/z2)+c elseif @opfinalc=="-" z=((temp*temp1-z1)/z2)-c elseif @opfinalc=="*" z=((temp*temp1-z1)/z2)*c elseif @opfinalc=="/" z=((temp*temp1-z1)/z2)/c endif endif Bailout: |z|<@bailout Default: title="GenericBrot" center=(0.0,0.0) magn=0.8 angle=270 maxiter=250 method=multipass periodicity=0 param bailout caption="Bailout Value" default=16.0 min=0.0 endparam param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 endparam param switchmode caption="Switch Mode" enum="Mandelbrot""Julia" default=1 endparam param changeSwitch caption="ChangeSwitch" enum="Z=pixel""Z=abs(pixel)""Z=recip(log(abs(pixel)))""Z=log(abs(pixel))" default=0 endparam Heading caption="Operators and Parameters" Endheading param opresult caption="Select" enum="1""2""3""4""5""6""7" default=0 endparam param opfinalc caption="Use C in select" enum="+""-""*""/" default=0 endparam param opz caption="Operator 1" enum="+""-""*""/""^" default=0 endparam param par caption="Operator 2" enum="+""-""*""/""^" default=4 endparam param par1 caption="Operator 3" enum="+""-""*""/""^" default=4 endparam param opfunc1 caption="Operator in Fn1" enum="+""-""*""/" default=0 endparam param opFunc2 caption="Operator in Fn2" enum="+""-""*""/" default=1 endparam param opz2 caption="Operator Fn3+Fn4" enum="Fn3+Fn4""Fn3-Fn4""Fn3*Fn4""Fn3/Fn4""Fn3^Fn4"\ "Fn4-Fn3""Fn4/Fn3""Fn4^Fn3" default=1 endparam complex param startseed caption="Init Z\Seed Value" default=(0.196875,1.289607662e-18) endparam param p1 caption="Influence" default=(0.0,0.0) endparam param change caption="Invert Z" default=false endparam Heading caption="Functions" Endheading func Fn1 caption="Function 1" default=exp() endfunc func Fn2 caption="Function 2" default=exp() endfunc func Fn3 caption="Function 3" default=cabs() endfunc func Fn4 caption="Function 4" default=exp() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="GenericBrot" @startseed=#pixel bailout=@bailout opz2=@opz2 opz=@opz opFunc1=@opFunc1 opFunc2=@opFunc2 opresult=@opresult opfinalc=@opfinalc p1=@p1 par=@par par1=@par1 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 change=@change mode=@switchmode switchmode=@mode changeswitch=@changeswitch version=@version } Gymako-J { ;Andrea Spinozzi(Jan2004) Init: z=pixel zold=z k=1 z=fn1(z) z=fn2(z) Loop: zold=z if @op=="1" if @opp2=="+" if @opp1=="+" z=((z-1)^2)/((z+1)^2)/(@seed+p1)*(@seed+p2) elseif @opp1=="-" z=((z-1)^2)/((z+1)^2)/(@seed-p1)*(@seed+p2) elseif @opp1=="*" z=((z-1)^2)/((z+1)^2)/(@seed*p1)*(@seed+p2) elseif @opp1=="/" z=((z-1)^2)/((z+1)^2)/(@seed/p1)*(@seed+p2) elseif @opp1=="^" z=((z-1)^2)/((z+1)^2)/(@seed^p1)*(@seed+p2) endif elseif @opp2=="-" if @opp1=="+" z=((z-1)^2)/((z+1)^2)/(@seed+p1)*(@seed-p2) elseif @opp1=="-" z=((z-1)^2)/((z+1)^2)/(@seed-p1)*(@seed-p2) elseif @opp1=="*" z=((z-1)^2)/((z+1)^2)/(@seed*p1)*(@seed-p2) elseif @opp1=="/" z=((z-1)^2)/((z+1)^2)/(@seed/p1)*(@seed-p2) elseif @opp1=="^" z=((z-1)^2)/((z+1)^2)/(@seed^p1)*(@seed-p2) endif elseif @opp2=="*" if @opp1=="+" z=((z-1)^2)/((z+1)^2)/(@seed+p1)*(@seed*p2) elseif @opp1=="-" z=((z-1)^2)/((z+1)^2)/(@seed-p1)*(@seed*p2) elseif @opp1=="*" z=((z-1)^2)/((z+1)^2)/(@seed*p1)*(@seed*p2) elseif @opp1=="/" z=((z-1)^2)/((z+1)^2)/(@seed/p1)*(@seed*p2) elseif @opp1=="^" z=((z-1)^2)/((z+1)^2)/(@seed^p1)*(@seed*p2) endif elseif @opp2=="/" if @opp1=="+" z=((z-1)^2)/((z+1)^2)/(@seed+p1)*(@seed/p2) elseif @opp1=="-" z=((z-1)^2)/((z+1)^2)/(@seed-p1)*(@seed/p2) elseif @opp1=="*" z=((z-1)^2)/((z+1)^2)/(@seed*p1)*(@seed/p2) elseif @opp1=="/" z=((z-1)^2)/((z+1)^2)/(@seed/p1)*(@seed/p2) elseif @opp1=="^" z=((z-1)^2)/((z+1)^2)/(@seed^p1)*(@seed/p2) endif elseif @opp2=="^" if @opp1=="+" z=((z-1)^2)/((z+1)^2)/(@seed+p1)*(@seed^p2) elseif @opp1=="-" z=((z-1)^2)/((z+1)^2)/(@seed-p1)*(@seed^p2) elseif @opp1=="*" z=((z-1)^2)/((z+1)^2)/(@seed*p1)*(@seed^p2) elseif @opp1=="/" z=((z-1)^2)/((z+1)^2)/(@seed/p1)*(@seed^p2) elseif @opp1=="^" z=((z-1)^2)/((z+1)^2)/(@seed^p1)*(@seed^p2) endif endif elseif @op=="2" if @opz=="-" if @opp5=="*" z=((z-1)^2)/((z+1)+z/@seed*p5/@p8-z)^2 elseif @opp5=="/" z=((z-1)^2)/((z+1)+z/@seed/p5/@p8-z)^2 elseif @opp5=="^" z=((z-1)^2)/((z+1)+z/@seed^p5/@p8-z)^2 endif elseif @opz=="/" if @opp5=="*" z=((z-1)^2)/((z+1)+z/@seed*p5/@p8/z)^2 elseif @opp5=="/" z=((z-1)^2)/((z+1)+z/@seed/p5/@p8/z)^2 elseif @opp5=="^" z=((z-1)^2)/((z+1)+z/@seed^p5/@p8/z)^2 endif elseif @opz=="^" if @opp5=="*" z=((z-1)^2)/((z+1)+z/@seed*p5/@p8^z)^2 elseif @opp5=="/" z=((z-1)^2)/((z+1)+z/@seed/p5/@p8^z)^2 elseif @opp5=="^" z=((z-1)^2)/((z+1)+z/@seed^p5/@p8^z)^2 endif endif elseif @op=="3" if @oppix=="*" if @opp6=="*" z=((@seed+1)^@p7)/((z-1)/z^2)*@seed*p6 elseif @opp6=="/" z=((@seed+1)^@p7)/((z-1)/z^2)*@seed/p6 elseif @opp6=="^" z=((@seed+1)^@p7)/((z-1)/z^2)*@seed^p6 endif elseif @oppix=="/" if @opp6=="*" z=((@seed+1)^@p7)/((z-1)/z^2)/@seed*p6 elseif @opp6=="/" z=((@seed+1)^@p7)/((z-1)/z^2)/@seed/p6 elseif @opp6=="^" z=((@seed+1)^@p7)/((z-1)/z^2)/@seed^p6 endif endif elseif @op=="4" if @opp3=="+" if @opp4=="+" z=((2/@seed+z)-z+p4)/(3-@seed*(z+p3))/z elseif @opp4=="-" z=((2/@seed+z)-z-p4)/(3-@seed*(z+p3))/z elseif @opp4=="*" z=((2/@seed+z)-z*p4)/(3-@seed*(z+p3))/z elseif @opp4=="/" z=((2/@seed+z)-z/p4)/(3-@seed*(z+p3))/z elseif @opp4=="^" z=((2/@seed+z)-z^p4)/(3-@seed*(z+p3))/z endif elseif @opp3=="-" if @opp4=="+" z=((2/@seed+z)-z+p4)/(3-@seed*(z-p3))/z elseif @opp4=="-" z=((2/@seed+z)-z-p4)/(3-@seed*(z-p3))/z elseif @opp4=="*" z=((2/@seed+z)-z*p4)/(3-@seed*(z-p3))/z elseif @opp4=="/" z=((2/@seed+z)-z/p4)/(3-@seed*(z-p3))/z elseif @opp4=="^" z=((2/@seed+z)-z^p4)/(3-@seed*(z-p3))/z endif elseif @opp3=="*" if @opp4=="+" z=((2/@seed+z)-z+p4)/(3-@seed*(z*p3))/z elseif @opp4=="-" z=((2/@seed+z)-z-p4)/(3-@seed*(z*p3))/z elseif @opp4=="*" z=((2/@seed+z)-z*p4)/(3-@seed*(z*p3))/z elseif @opp4=="/" z=((2/@seed+z)-z/p4)/(3-@seed*(z*p3))/z elseif @opp4=="^" z=((2/@seed+z)-z^p4)/(3-@seed*(z*p3))/z endif elseif @opp3=="/" if @opp4=="+" z=((2/@seed+z)-z+p4)/(3-@seed*(z/p3))/z elseif @opp4=="-" z=((2/@seed+z)-z-p4)/(3-@seed*(z/p3))/z elseif @opp4=="*" z=((2/@seed+z)-z*p4)/(3-@seed*(z/p3))/z elseif @opp4=="/" z=((2/@seed+z)-z/p4)/(3-@seed*(z/p3))/z elseif @opp4=="^" z=((2/@seed+z)-z^p4)/(3-@seed*(z/p3))/z endif elseif @opp3=="^" if @opp4=="+" z=((2/@seed+z)-z+p4)/(3-@seed*(z^p3))/z elseif @opp4=="-" z=((2/@seed+z)-z-p4)/(3-@seed*(z^p3))/z elseif @opp4=="*" z=((2/@seed+z)-z*p4)/(3-@seed*(z^p3))/z elseif @opp4=="/" z=((2/@seed+z)-z/p4)/(3-@seed*(z^p3))/z elseif @opp4=="^" z=((2/@seed+z)-z^p4)/(3-@seed*(z^p3))/z endif endif endif if @bailo==0 if |z|>=@bailout k=1 else k=0 endif if @zol==true && @zol1==false && @zol2==false if |zold-z|>=@bailout k=1 else k=0 endif endif if @zol1==true && @zol==false && @zol2==false if |zold/z|>=@bailout k=1 else k=0 endif endif if @zol2==true && @zol==false && @zol1==false if |zold^z|>=@bailout k=1 else k=0 endif endif elseif @bailo==1 if |z|<=@bailout1 k=1 else k=0 endif endif Bailout: k==1 && |z|>=@bailout Default: title="Gymako-J" center=(0.0,0.0) magn=1.0 angle=90 maxiter=1000 method=multipass periodicity=0 Heading caption="Bailout" Endheading param @zol caption="Use |zold-z|>=@bailout" default=false visible=(@bailo==0) endparam param @zol1 caption="Use |zold/z|>=@bailout" default=false visible=(@bailo==0) endparam param @zol2 caption="Use |zold^z|>=@bailout" default=false visible=(@bailo==0) endparam param @bailo caption="Change Bailout" enum="|z|>=@bailout""|z|<=@bailout" default=0 endparam param bailout caption="Bailout Value" default=1.0E-3 min=0.0 visible=(@bailo==0) endparam param bailout1 caption="Bailout Value" default=4.0 min=0.0 visible=(@bailo==1) endparam Heading caption="Operators and Parameters" Endheading param seed caption="Seed Value" default=(-0.34375,-0.0078125) endparam param op caption="Select Mode" enum="1""2""3""4" default=1 endparam param opp1 caption="1st. Operator" enum="+""-""*""/""^" default=4 visible=(@op=="1") endparam param opp2 caption="2nd. Operator" enum="+""-""*""/""^" default=4 visible=(@op=="1") endparam param opp3 caption="1st. Operator" enum="+""-""*""/""^" default=0 visible=(@op=="4") endparam param opp4 caption="2nd. Operator" enum="+""-""*""/""^" default=0 visible=(@op=="4") endparam param opz caption="1st. Operator" enum="-""/""^" default=2 visible=(@op=="2") endparam param opp5 caption="2nd. Operator" enum="*""/""^" default=0 visible=(@op=="2") endparam param opp6 caption="1st. Operator" enum="*""/""^" default=0 visible=(@op=="3") endparam param oppix caption="2nd. Operator" enum="*""/" default=0 visible=(@op=="3") endparam param p1 caption="Param. 1" default=(0.0,0.0) visible=(@op=="1") endparam param p2 caption="Param. 2" default=(-5.0,0.0) visible=(@op=="1") endparam param p5 caption="Param. 1" default=(-0.5,0.0) visible=(@op=="2") endparam param p8 caption="Param. 2" default=(1.0,0.0) visible=(@op=="2") endparam param p6 caption="Param. 1" default=(0.5,0.0) visible=(@op=="3") endparam param p7 caption="Param. 2" default=(0.0,0.0) visible=(@op=="3") endparam param p3 caption="Param. 1" default=(0.5,0.0) visible=(@op=="4") endparam param p4 caption="Param. 2" default=(1.0,0.0) visible=(@op=="4") endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=sqr() endfunc func fn2 caption="Function 2" default=sqr() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Gymako-J" bailout=@bailout bailout1=@bailout1 bailo=@bailo op=@op opz=@opz opp1=@opp1 opp2=@opp2 opp3=@opp3 opp4=@opp4 opp5=@opp5 opp6=@opp6 oppix=@oppix zol=@zol zol1=@zol1 zol2=@zol2 p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 p8=@p8 fn1=@fn1 fn2=@fn2 version=@version } Gymako-M { ;Andrea Spinozzi(Jan2004) Init: z=pixel zold=z k=1 z=fn1(z) z=fn2(z) Loop: zold=z if @op=="1" if @opp2=="+" if @opp1=="+" z=((z-1)^2)/((z+1)^2)/(pixel+p1)*(pixel+p2) elseif @opp1=="-" z=((z-1)^2)/((z+1)^2)/(pixel-p1)*(pixel+p2) elseif @opp1=="*" z=((z-1)^2)/((z+1)^2)/(pixel*p1)*(pixel+p2) elseif @opp1=="/" z=((z-1)^2)/((z+1)^2)/(pixel/p1)*(pixel+p2) elseif @opp1=="^" z=((z-1)^2)/((z+1)^2)/(pixel^p1)*(pixel+p2) endif elseif @opp2=="-" if @opp1=="+" z=((z-1)^2)/((z+1)^2)/(pixel+p1)*(pixel-p2) elseif @opp1=="-" z=((z-1)^2)/((z+1)^2)/(pixel-p1)*(pixel-p2) elseif @opp1=="*" z=((z-1)^2)/((z+1)^2)/(pixel*p1)*(pixel-p2) elseif @opp1=="/" z=((z-1)^2)/((z+1)^2)/(pixel/p1)*(pixel-p2) elseif @opp1=="^" z=((z-1)^2)/((z+1)^2)/(pixel^p1)*(pixel-p2) endif elseif @opp2=="*" if @opp1=="+" z=((z-1)^2)/((z+1)^2)/(pixel+p1)*(pixel*p2) elseif @opp1=="-" z=((z-1)^2)/((z+1)^2)/(pixel-p1)*(pixel*p2) elseif @opp1=="*" z=((z-1)^2)/((z+1)^2)/(pixel*p1)*(pixel*p2) elseif @opp1=="/" z=((z-1)^2)/((z+1)^2)/(pixel/p1)*(pixel*p2) elseif @opp1=="^" z=((z-1)^2)/((z+1)^2)/(pixel^p1)*(pixel*p2) endif elseif @opp2=="/" if @opp1=="+" z=((z-1)^2)/((z+1)^2)/(pixel+p1)*(pixel/p2) elseif @opp1=="-" z=((z-1)^2)/((z+1)^2)/(pixel-p1)*(pixel/p2) elseif @opp1=="*" z=((z-1)^2)/((z+1)^2)/(pixel*p1)*(pixel/p2) elseif @opp1=="/" z=((z-1)^2)/((z+1)^2)/(pixel/p1)*(pixel/p2) elseif @opp1=="^" z=((z-1)^2)/((z+1)^2)/(pixel^p1)*(pixel/p2) endif elseif @opp2=="^" if @opp1=="+" z=((z-1)^2)/((z+1)^2)/(pixel+p1)*(pixel^p2) elseif @opp1=="-" z=((z-1)^2)/((z+1)^2)/(pixel-p1)*(pixel^p2) elseif @opp1=="*" z=((z-1)^2)/((z+1)^2)/(pixel*p1)*(pixel^p2) elseif @opp1=="/" z=((z-1)^2)/((z+1)^2)/(pixel/p1)*(pixel^p2) elseif @opp1=="^" z=((z-1)^2)/((z+1)^2)/(pixel^p1)*(pixel^p2) endif endif elseif @op=="2" if @opz=="-" if @opp5=="*" z=((z-1)^2)/((z+1)+z/pixel*p5/@p8-z)^2 elseif @opp5=="/" z=((z-1)^2)/((z+1)+z/pixel/p5/@p8-z)^2 elseif @opp5=="^" z=((z-1)^2)/((z+1)+z/pixel^p5/@p8-z)^2 endif elseif @opz=="/" if @opp5=="*" z=((z-1)^2)/((z+1)+z/pixel*p5/@p8/z)^2 elseif @opp5=="/" z=((z-1)^2)/((z+1)+z/pixel/p5/@p8/z)^2 elseif @opp5=="^" z=((z-1)^2)/((z+1)+z/pixel^p5/@p8/z)^2 endif elseif @opz=="^" if @opp5=="*" z=((z-1)^2)/((z+1)+z/pixel*p5/@p8^z)^2 elseif @opp5=="/" z=((z-1)^2)/((z+1)+z/pixel/p5/@p8^z)^2 elseif @opp5=="^" z=((z-1)^2)/((z+1)+z/pixel^p5/@p8^z)^2 endif endif elseif @op=="3" if @oppix=="*" if @opp6=="*" z=((pixel+1)^@p7)/((z-1)/z^2)*pixel*p6 elseif @opp6=="/" z=((pixel+1)^@p7)/((z-1)/z^2)*pixel/p6 elseif @opp6=="^" z=((pixel+1)^@p7)/((z-1)/z^2)*pixel^p6 endif elseif @oppix=="/" if @opp6=="*" z=((pixel+1)^@p7)/((z-1)/z^2)/pixel*p6 elseif @opp6=="/" z=((pixel+1)^@p7)/((z-1)/z^2)/pixel/p6 elseif @opp6=="^" z=((pixel+1)^@p7)/((z-1)/z^2)/pixel^p6 endif endif elseif @op=="4" if @opp3=="+" if @opp4=="+" z=((2/pixel+z)-z+p4)/(3-pixel*(z+p3))/z elseif @opp4=="-" z=((2/pixel+z)-z-p4)/(3-pixel*(z+p3))/z elseif @opp4=="*" z=((2/pixel+z)-z*p4)/(3-pixel*(z+p3))/z elseif @opp4=="/" z=((2/pixel+z)-z/p4)/(3-pixel*(z+p3))/z elseif @opp4=="^" z=((2/pixel+z)-z^p4)/(3-pixel*(z+p3))/z endif elseif @opp3=="-" if @opp4=="+" z=((2/pixel+z)-z+p4)/(3-pixel*(z-p3))/z elseif @opp4=="-" z=((2/pixel+z)-z-p4)/(3-pixel*(z-p3))/z elseif @opp4=="*" z=((2/pixel+z)-z*p4)/(3-pixel*(z-p3))/z elseif @opp4=="/" z=((2/pixel+z)-z/p4)/(3-pixel*(z-p3))/z elseif @opp4=="^" z=((2/pixel+z)-z^p4)/(3-pixel*(z-p3))/z endif elseif @opp3=="*" if @opp4=="+" z=((2/pixel+z)-z+p4)/(3-pixel*(z*p3))/z elseif @opp4=="-" z=((2/pixel+z)-z-p4)/(3-pixel*(z*p3))/z elseif @opp4=="*" z=((2/pixel+z)-z*p4)/(3-pixel*(z*p3))/z elseif @opp4=="/" z=((2/pixel+z)-z/p4)/(3-pixel*(z*p3))/z elseif @opp4=="^" z=((2/pixel+z)-z^p4)/(3-pixel*(z*p3))/z endif elseif @opp3=="/" if @opp4=="+" z=((2/pixel+z)-z+p4)/(3-pixel*(z/p3))/z elseif @opp4=="-" z=((2/pixel+z)-z-p4)/(3-pixel*(z/p3))/z elseif @opp4=="*" z=((2/pixel+z)-z*p4)/(3-pixel*(z/p3))/z elseif @opp4=="/" z=((2/pixel+z)-z/p4)/(3-pixel*(z/p3))/z elseif @opp4=="^" z=((2/pixel+z)-z^p4)/(3-pixel*(z/p3))/z endif elseif @opp3=="^" if @opp4=="+" z=((2/pixel+z)-z+p4)/(3-pixel*(z^p3))/z elseif @opp4=="-" z=((2/pixel+z)-z-p4)/(3-pixel*(z^p3))/z elseif @opp4=="*" z=((2/pixel+z)-z*p4)/(3-pixel*(z^p3))/z elseif @opp4=="/" z=((2/pixel+z)-z/p4)/(3-pixel*(z^p3))/z elseif @opp4=="^" z=((2/pixel+z)-z^p4)/(3-pixel*(z^p3))/z endif endif endif if @bailo==0 if |z|>=@bailout k=1 else k=0 endif if @zol==true && @zol1==false && @zol2==false if |zold-z|>=@bailout k=1 else k=0 endif endif if @zol1==true && @zol==false && @zol2==false if |zold/z|>=@bailout k=1 else k=0 endif endif if @zol2==true && @zol==false && @zol1==false if |zold^z|>=@bailout k=1 else k=0 endif endif elseif @bailo==1 if |z|<=@bailout1 k=1 else k=0 endif endif Bailout: k==1 && |z|>=@bailout Default: title="Gymako-M" center=(0.0,0.0) magn=0.8 angle=90 maxiter=1000 method=multipass periodicity=0 Heading caption="Bailout" Endheading param @zol caption="Use |zold-z|>=@bailout" default=false visible=(@bailo==0) endparam param @zol1 caption="Use |zold/z|>=@bailout" default=false visible=(@bailo==0) endparam param @zol2 caption="Use |zold^z|>=@bailout" default=false visible=(@bailo==0) endparam param @bailo caption="Change Bailout" enum="|z|>=@bailout""|z|<=@bailout" default=0 endparam param bailout caption="Bailout Value" default=1.0E-3 min=0.0 visible=(@bailo==0) endparam param bailout1 caption="Bailout Value" default=4.0 min=0.0 visible=(@bailo==1) endparam Heading caption="Operators and Parameters" Endheading param op caption="Select Mode" enum="1""2""3""4" default=1 endparam param opp1 caption="1st. Operator" enum="+""-""*""/""^" default=4 visible=(@op=="1") endparam param opp2 caption="2nd. Operator" enum="+""-""*""/""^" default=4 visible=(@op=="1") endparam param opp3 caption="1st. Operator" enum="+""-""*""/""^" default=0 visible=(@op=="4") endparam param opp4 caption="2nd. Operator" enum="+""-""*""/""^" default=0 visible=(@op=="4") endparam param opz caption="1st. Operator" enum="-""/""^" default=2 visible=(@op=="2") endparam param opp5 caption="2nd. Operator" enum="*""/""^" default=0 visible=(@op=="2") endparam param opp6 caption="1st. Operator" enum="*""/""^" default=0 visible=(@op=="3") endparam param oppix caption="2nd. Operator" enum="*""/" default=0 visible=(@op=="3") endparam param p1 caption="Param. 1" default=(0.0,0.0) visible=(@op=="1") endparam param p2 caption="Param. 2" default=(-5.0,0.0) visible=(@op=="1") endparam param p5 caption="Param. 1" default=(-0.5,0.0) visible=(@op=="2") endparam param p8 caption="Param. 2" default=(1.0,0.0) visible=(@op=="2") endparam param p6 caption="Param. 1" default=(0.5,0.0) visible=(@op=="3") endparam param p7 caption="Param. 2" default=(0.0,0.0) visible=(@op=="3") endparam param p3 caption="Param. 1" default=(0.5,0.0) visible=(@op=="4") endparam param p4 caption="Param. 2" default=(1.0,0.0) visible=(@op=="4") endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=cotan() endfunc func fn2 caption="Function 2" default=sqr() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Gymako-J" @seed=pixel bailout=@bailout bailout1=@bailout1 bailo=@bailo op=@op opz=@opz opp1=@opp1 opp2=@opp2 opp3=@opp3 opp4=@opp4 opp5=@opp5 opp6=@opp6 oppix=@oppix zol=@zol zol1=@zol1 zol2=@zol2 p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 p8=@p8 fn1=@fn1 fn2=@fn2 version=@version } As-Hydra { ;Based on a formula from the orgform collection , _h.frm. ;Andrea Spinozzi(July2004) Init: complex z=(0.0,0.0) complex c=(0.0,0.0) complex zp=(0.0,0.0) p5r=real(p5) p5i=imag(p5) if (@mode=="Mandelbrot") z=pixel c=pixel zp=pixel elseif (@mode=="Julia") z=pixel c=@seed zp=@seed endif Loop: x=fn4(z+p4) if (@op==0) z=(fn1(z^p1)^p5r*fn2(z^p2)^p5i+zp) elseif (@op==1) z=(fn1(z^p1)^p5r*fn2(z^p2)^p5i-zp) elseif (@op==2) z=(fn1(z^p1)^p5r*fn2(z^p2)^p5i+zp)+(z*z*z) elseif (@op==3) z=(fn1(z^p1)^p5r*fn2(z^p2)^p5i+zp)+(z*z*z+z) elseif (@op==4) z=(fn1(z^p1)^p5r*fn2(z^p2)^p5i+zp)+(z*z*z-z) elseif (@op==5) z=(fn1(z^p1)^p5r*fn2(z^p2)^p5i+zp)+(z*z*z*z) elseif (@op==6) z=(fn1(z^p1)^p5r*fn2(z^p2)^p5i+zp)-(z*z*z*z) elseif (@op==7) z=(fn1(z^p1)^p5r*fn2(z^p2)^p5i-zp)+(z*z*z) elseif (@op==8) z=(fn1(z^p1)^p5r*fn2(z^p2)^p5i-zp)+(z*z*z+z) elseif (@op==9) z=(fn1(z^p1)^p5r*fn2(z^p2)^p5i-zp)+(z*z*z-z) elseif (@op==10) z=(fn1(z^p1)^p5r*fn2(z^p2)^p5i-zp)+(z*z*z*z) elseif (@op==11) z=(fn1(z^p1)^p5r*fn2(z^p2)^p5i-zp)-(z*z*z*z) endif if (@opzp==0) if (@op1==0) zp=fn3(x)*p3 elseif (@op1==1) zp=fn3(x+c)*p3 elseif (@op1==2) zp=fn3(x-c)*p3 elseif (@op1==3) zp=fn3(x*c)*p3 elseif (@op1==4) zp=fn3(c/x)*p3 elseif (@op1==5) zp=fn3(x*x+c)*p3 elseif (@op1==6) zp=fn3(x*x*x+c)*p3 elseif (@op1==7) zp=fn3(x*z+c)*p3 elseif (@op1==8) zp=fn3(x*x*z+c)*p3 elseif (@op1==9) zp=fn3(z+c*x)*p3 elseif (@op1==10) zp=fn3(c-z*x*x)*p3 elseif (@op1==11) zp=fn3(c-z*x*x*x)*p3 endif elseif (@opzp==1) if (@op1==0) zp=(c-x)*fn3(x)*p3 elseif (@op1==1) zp=(c-x)*fn3(x+c)*p3 elseif (@op1==2) zp=(c-x)*fn3(x-c)*p3 elseif (@op1==3) zp=(c-x)*fn3(x*c)*p3 elseif (@op1==4) zp=(c-x)*fn3(c/x)*p3 elseif (@op1==5) zp=(c-x)*fn3(x*x+c)*p3 elseif (@op1==6) zp=(c-x)*fn3(x*x*x+c)*p3 elseif (@op1==7) zp=(c-x)*fn3(x*z+c)*p3 elseif (@op1==8) zp=(c-x)*fn3(x*x*z+c)*p3 elseif (@op1==9) zp=(c-x)*fn3(z+c*x)*p3 elseif (@op1==10) zp=(c-x)*fn3(c-z*x*x)*p3 elseif (@op1==11) zp=(c-x)*fn3(c-z*x*x*x)*p3 endif elseif (@opzp==2) if (@op1==0) zp=2*c+x*fn3(x)*p3 elseif (@op1==1) zp=c+x*fn3(x+c)*p3 elseif (@op1==2) zp=c+x*fn3(x-c)*p3 elseif (@op1==3) zp=c+x*fn3(x*c)*p3 elseif (@op1==4) zp=c+x*fn3(c/x)*p3 elseif (@op1==5) zp=c+x*fn3(x*x+c)*p3 elseif (@op1==6) zp=c+x*fn3(x*x*x+c)*p3 elseif (@op1==7) zp=c+x*fn3(x*z+c)*p3 elseif (@op1==8) zp=c+x*fn3(x*x*z+c)*p3 elseif (@op1==9) zp=c+x*fn3(z+c*x)*p3 elseif (@op1==10) zp=c+x*fn3(c-z*x*x)*p3 elseif (@op1==11) zp=c+x*fn3(c-z*x*x*x)*p3 endif elseif (@opzp==3) if (@op1==0) zp=2*c*x*fn3(x)*p3 elseif (@op1==1) zp=c*x*fn3(x+c)*p3 elseif (@op1==2) zp=c*x*fn3(x-c)*p3 elseif (@op1==3) zp=c*x*fn3(x*c)*p3 elseif (@op1==4) zp=c*x*fn3(c/x)*p3 elseif (@op1==5) zp=c*x*fn3(x*x+c)*p3 elseif (@op1==6) zp=c*x*fn3(x*x*x+c)*p3 elseif (@op1==7) zp=c*x*fn3(x*z+c)*p3 elseif (@op1==8) zp=c*x*fn3(x*x*z+c)*p3 elseif (@op1==9) zp=c*x*fn3(z+c*x)*p3 elseif (@op1==10) zp=c*x*fn3(c-z*x*x)*p3 elseif (@op1==11) zp=c*x*fn3(c-z*x*x*x)*p3 endif endif Bailout: |z|<=@bailout Default: title="Hydra" method=multipass periodicity=0 maxiter=500 magn=1.0 Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="Current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param bailout caption="Bailout Value" default=1.0e24 endparam Heading caption="Operators and Parameters" Endheading param seed caption="Seed Value" default=(0.0,0.0) visible=(@mode=="Julia") endparam param op caption="Operator 1" enum="1""2""3""4""5""6""7""8""9""10""11""12" default=0 endparam param op1 caption="Operator 2" enum="1""2""3""4""5""6""7""8""9""10""11""12" default=0 endparam param opzp caption="Operator 3" enum="1""2""3""4" default=0 endparam param p1 caption="Exponent 1" default=(1.0,0.0) endparam param p2 caption="Exponent 2" default=(1.0,0.0) endparam param p5 caption="Exponent 3" default=(1.0,1.0) endparam param p3 caption="Parameter 1" default=(1.0,0.0) endparam param p4 caption="Parameter 2" default=(0.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="As-Hydra" seed=#pixel bailout=@bailout op=@op op1=@op1 opzp=@opzp p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 mode=@switchmode switchmode=@mode version=@version } HyperCplxMandelVar { ;Variation of an Hypercomplex Mandel formula of Gilles Nadeau ;Andrea Spinozzi,Aug(2004) Init: z = (0.0, 0.0) w = (0.0, 0.0) a = (0.0, 0.0) b = (0.0, 0.0) d = (0.0, 0.0) tz = (0.0, 0.0) tw = (0.0, 0.0) cz = pixel cw = p1 ca = p2 p3r = real(p3) p3i = imag(p3) if (@mode=="Julia") if (@var==0) z = pixel w = pixel elseif (@var==1) z = @fn6(pixel) w = @fn7(pixel) endif cz = @seed endif Loop: a = w*w b = z*z d = z*w a=fn4(a) b=@fn5(b) if (@op==0) tz=b^p3r+a tw=z^p3i elseif (@op==1) tz=b^p3r-a tw=z^p3i elseif (@op==2) tz=b^p3r*a tw=z^p3i elseif (@op==3) tz=b^p3r+a+b tw=z^p3i elseif (@op==4) tz=b^p3r+a-b tw=z^p3i elseif (@op==5) tz=b^p3r+a*b tw=z^p3i elseif (@op==6) tz=b^p3r+a+d tw=z^p3i elseif (@op==7) tz=b^p3r+a-d tw=z^p3i elseif (@op==8) tz=b^p3r+a*d tw=z^p3i elseif (@op==9) tz=b^p3r+a+d+a tw=z^p3i elseif (@op==10) tz=b^p3r+a-d+a tw=z^p3i elseif (@op==11) tz=b^p3r+a*d+a tw=z^p3i elseif (@op==12) tz=b^p3r-a+d-a tw=z^p3i elseif (@op==13) tz=b^p3r-a-d-a tw=z^p3i elseif (@op==14) tz=b^p3r-a*d-a tw=z^p3i elseif (@op==15) tz=b^p3r+a tw=z^p3i+d elseif (@op==16) tz=b^p3r+a tw=z^p3i-d elseif (@op==17) tz=b^p3r-a tw=z^p3i+d elseif (@op==18) tz=b^p3r-a tw=z^p3i-d elseif (@op==19) tz=b^p3r*a tw=z^p3i+d elseif (@op==20) tz=b^p3r*a tw=z^p3i-d elseif (@op==21) tz=b^p3r+a tw=z^p3i*d elseif (@op==22) tz=b^p3r+a tw=z^p3i+b elseif (@op==23) tz=b^p3r+a tw=z^p3i-b elseif (@op==24) tz=b^p3r+a tw=z^p3i*b elseif (@op==25) tz=b^p3r-a tw=z^p3i+b elseif (@op==26) tz=b^p3r-a tw=z^p3i-b elseif (@op==27) tz=b^p3r-a tw=z^p3i*b elseif (@op==28) tz=b^p3r*b tw=z^p3i+a elseif (@op==29) tz=b^p3r*b tw=z^p3i-a endif tz=tz*ca z=fn1(tz)+fn3(cz) w=fn2(tw)+cw Bailout: |z|+|w| <= @bailout Default: title="HyperCplxMandelVar" method=multipass periodicity=0 maxiter=500 Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 visible=false endparam param switchmode caption="Switch to" enum="Mandelbrot""Julia" default=1 visible=false endparam param bailout caption="Bailout Value" default=64.0 endparam Heading caption="Operator and Parameters" Endheading param seed caption="Seed Value" default=(0.0,0.0) visible=(@mode=="Julia") endparam param var caption="Julia Variant" enum="Normal""Functions Var.Julia" default=0 endparam func fn6 caption="FunctionVar. Julia 1" default=flip () visible=(@var==1) endfunc func fn7 caption="FunctionVar. Julia 2" default=flip () visible=(@var==1) endfunc param op caption="Select Formula" enum="1""2""3""4""5""6""7""8""9""10"\ "11""12""13""14""15""16""17""18"\ "19""20""21""22""23""24""25""26"\ "27""28""29""30" default=0 endparam param p1 caption="Parameter" default=(0.0,0.0) endparam param p2 caption="Multiplier" default=(1.0,0.0) endparam param p3 caption="Exp (Re|Im)" default=(1.0,1.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function tz" default=ident () endfunc func fn2 caption="Function tw" default=ident () endfunc func fn3 caption="Function c" default=ident () endfunc func fn4 caption="Function 1" default=ident () endfunc func fn5 caption="Function 2" default=ident () endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="HyperCplxMandelVar" @seed=pixel bailout=@bailout var=@var op=@op p1=@p1 p2=@p2 p3=@p3 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 mode=@switchmode switchmode=@mode version=@version } As-HyperMan { ;Hypercomplex Mandel formula ;Gilles Nadeau and Andrea Spinozzi(Aug2004) Init: z = (0.0,0.0) h = (0.0,1.0) a = (0.0,0.0) b = (0.0,0.0) c = pixel d = p1 if (@mode=="Julia") z = pixel a = pixel b = pixel c = @seed endif Loop: if (@op==0) a = a^p4+c+d*h b = b^p4+c-d*h elseif (@op==1) a = (a^p4+c+d*h)+a b = (b^p4+c-d*h) elseif (@op==2) a = (a^p4+c+d*h)-a b = (b^p4+c-d*h) elseif (@op==3) a = (a^p4+c+d*h)+b b = (b^p4+c-d*h) elseif (@op==4) a = (a^p4+c+d*h)-b b = (b^p4+c-d*h) elseif (@op==5) a = (a^p4+c+d*h) b = (b^p4+c-d*h)+a elseif (@op==6) a = (a^p4+c+d*h) b = (b^p4+c-d*h)-a elseif (@op==7) a = (a^p4+c+d*h)+a b = (b^p4+c-d*h)+b elseif (@op==8) a = (a^p4+c+d*h)-a b = (b^p4+c-d*h)+b elseif (@op==9) a = (a^p4+c+d*h)+b b = (b^p4+c-d*h)+a elseif (@op==10) a = (a^p4+c+d*h)-b b = (b^p4+c-d*h)+a elseif (@op==11) a = (a^p4+c+d*h)-b b = (b^p4+c-d*h)-a elseif (@op==12) a = (a^p4+c+d*h)+b b = (b^p4+c-d*h)-a endif a = fn1(a+p2) b = fn2(b-p2) c = fn3(c+p3) if (@flavor==0) z=(fn4(a)+@fn5(b))/p5 elseif (@flavor==1) z=(fn4(a)-@fn5(b))/p5 endif Bailout: |a|+|b| <= @bailout Default: title="HyperMan" periodicity=0 method=multipass maxiter=1000 param bailout caption="Bailout Value" default=128.0 min=0.0 endparam Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="Current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param flavor caption="Flavor" enum="Fn(a)+Fn(b)/p""Fn(a)-Fn(b)/p" default=0 endparam func fn4 caption="Function Flavor(a)" default=ident() endfunc func fn5 caption="Function Flavor(b)" default=ident() endfunc param p5 caption="Parameter Flavor" default=(2.0,0.0) endparam Heading caption="Operator and Parameters" Endheading param @seed caption="Seed Value" default=(0.0,0.0) visible=(@mode=="Julia") endparam param op caption="Operator" enum="1""2""3""4""5""6""7""8""9""10""11""12""13" default=0 endparam param p1 caption="Parameter 1" default=(0.0,0.0) endparam param p2 caption="Parameter 2" default=(0.0,0.0) endparam param p3 caption="Parameter 3" default=(0.0,0.0) endparam param p4 caption="Exponent" default=(2.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function a" default=ident() endfunc func fn2 caption="Function b" default=ident() endfunc func fn3 caption="Function c" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="As-HyperMan" seed=pixel bailout=@bailout flavor=@flavor op=@op p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 mode=@switchmode switchmode=@mode version=@version } As-HyperMandel { ;Based on a formula of Chris Green. ;AndreaSpinozzi(July2004) Init: complex z=(0.0,0.0) complex c=(0.0,0.0) complex a=(0.0,0.0) complex b=(0.0,0.0) if (@mode=="Mandelbrot") complex z=(0.0,0.0) complex c=pixel complex a=pixel complex b=pixel elseif (@mode=="Julia") complex z=pixel complex c=@seed if (@juliavar==0) complex a=pixel complex b=@seed elseif (@juliavar==1) complex a=@seed complex b=pixel endif endif Loop: if (@op==0) a=fn1(a)-fn1(b)+@fn5(c) elseif (@op==1) a=fn1(a)+fn1(b)+@fn5(c) elseif (@op==2) a=fn1(a)*fn1(b)+@fn5(c) endif a=fn2(a)^p3 if (@op1==0) b=p2*a*b+p1 elseif (@op1==1) b=p2+a-b+p1 elseif (@op1==2) b=p2-a+b+p1 elseif (@op1==3) b=p2+a*b+p1 elseif (@op1==4) b=p2-a*b+p1 elseif (@op1==5) b=p2*a+b+p1 elseif (@op1==6) b=p2*a-b+p1 endif if (@flavor==0) z=fn3(a)+fn4(b) elseif (@flavor==1) z=fn3(a)-fn4(b) endif Bailout: |a|+|b|<=@bailout Default: title="HyperMandel" maxiter=500 periodicity=0 method=multipass Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="Current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param bailout caption="Bailout Value" default=64.0 endparam param flavor caption="Flavor" enum="1""2" default=0 endparam func fn3 caption="Function Flavor 1" default=ident() endfunc func fn4 caption="Function Flavor 2" default=ident() endfunc Heading caption="Operators and Parameters" Endheading param juliavar caption="Julia Variant" enum="1""2" default=0 endparam param op caption="Operator 1" enum="1""2""3" default=0 endparam param op1 caption="Operator 2" enum="1""2""3""4""5""6""7" default=0 endparam param seed caption="Seed Value" default=(0.0,0.0) visible=(@mode=="Julia") endparam param p1 caption="Parameter 1" default=(0.0,0.0) endparam param p2 caption="Parameter 2" default=(0.0,0.0) endparam param p3 caption="Exponent" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=sqr() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn5 caption="Function c" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="As-HyperMandel" seed=#pixel bailout=@bailout op=@op op1=@op1 flavor=@flavor juliavar=@juliavar p1=@p1 p2=@p2 p3=@p3 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 mode=@switchmode switchmode=@mode version=@version } HyperMath-MandelbrotVSBarnsley- { ;Hypercomplex Mandelbrot-Barnsley formula. ;The Barnsley and Mandelbrot sets are mixed together. ;Andrea Spinozzi(April2005) Init: complex z=cz=0.0 complex w=cw=0.0 complex a=b=0.0 complex ca=cb=0.0 if (@mode=="Mandelbrot") cz=z=pixel cw=w=p1 elseif (@mode=="Julia") z=pixel cz=@seed w=p2 cw=p1 if @scale != 1.0 z=z/@scale endif if @center != (0,0) z=z+@center endif endif Loop: a=real(z)-imag(w)+flip(imag(z)+real(w)) b=real(z)+imag(w)+flip(imag(z)-real(w)) czr=real(cz) czi=imag(cz) cwr=real(cw) cwi=imag(cw) ca=czr-cwi+flip(czi+cwr) cb=czr+cwi+flip(czi-cwr) ca=fn1(ca) cb=fn1(cb) a=fn2(a)+real(p5) b=fn2(b)-imag(p5) if (@method==0) ca=ca+@fn5(a*a) cb=cb+@fn5(b*b) elseif (@method==1) ca=ca+@fn5(a*ca) cb=cb+@fn5(b*cb) elseif (@method==2) ca=ca*@fn5(a*ca) cb=cb*@fn5(b*cb) elseif (@method==3) ca=ca*ca*@fn5(a*ca) cb=cb*cb*@fn5(b*cb) endif ca=fn3(ca)*real(@p7) cb=fn3(cb)*imag(@p7) ca=(ca+a*real(p4))+real(p3) cb=(cb+b*imag(p4))-imag(p3) a=a+real(p6) b=b-imag(p6) if (@select==0) if real(a)>=0 a=fn4(a-1)+ca else a=fn4(a+1)+ca endif if real(b)>=0 b=fn4(b-1)+cb else b=fn4(b+1)+cb endif elseif (@select==1) if (real(a)>=0) a=fn4(a-1)*ca else a=fn4(a+1)*ca endif if (real(b)>=0) b=fn4(b-1)*cb else b=fn4(b+1)*cb endif endif z=(real(a)+real(b))/2+flip(imag(b)+imag(a))/2 w=(imag(a)-imag(b))/2+flip(real(b)-real(a))/2 Bailout: |z|+|w| <= @bailout Default: title="HyperMath-MandelbrotVSBarnsley-" method=multipass periodicity=0 maxiter=500 center=(-0.6,0.0) Heading caption="Mandelbrot Mode" visible=(@mode == 0) Endheading Heading caption="Julia Mode" visible=(@mode == 1) Endheading param mode caption="Mode" enum="Mandelbrot" "Julia" default=0 visible=false endparam param switchmode caption="Switch Mode" enum="Mandelbrot" "Julia" default=1 visible=false endparam param bailout caption="Bailout Value" default=64.0 min=0.0 endparam param seed caption="Seed Value" default=(0.0,0.0) visible=(@mode=="Julia") endparam Heading caption="Switch Section" visible=(@show) endheading param @show caption="Show Switch Section" default=false endparam param swscale caption="Magnification" default=0.8 visible=(@show) endparam param swcenter caption="Switch Center" default=(0.0,0.0) visible=(@show) endparam param scale caption="Magnification Reset" default=1.0 visible=(@show) endparam param center caption="Center Reset" default=(0.0,0.0) visible=(@show) endparam Heading caption="Formula Parameters" Endheading param method caption="Method" enum="1""2""3""4" default=0 endparam param select caption="Operator" enum="+""*" default=0 endparam param p1 caption="Parameter 1" default=(0.0,0.0) endparam param p2 caption="Parameter 2" default=(0.0,0.0) endparam param p3 caption="Parameter 3" default=(0.0,0.0) endparam param p4 caption="Parameter 4" default=(1.0,1.0) endparam param p5 caption="Parameter 5" default=(0.0,0.0) endparam param p6 caption="Parameter 6" default=(0.0,0.0) endparam param p7 caption="Parameter 7" default=(1.0,1.0) endparam param version caption="Version" default=1.0 visible=false endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc Switch: type="HyperMath-MandelbrotVSBarnsley-" @seed=pixel bailout=@bailout select=@select method=@method p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 version=@version mode=@switchmode switchmode=@mode center=@swcenter scale=@swscale show=@show } As-Insect { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel c=2*z Loop: if (@invert == true) z=z else z=1/z endif if (@op1==0) z=z+c*#pixel*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)*@seed^@p elseif (@op1==1) z=c+(z*#pixel) z=z+c*#pixel*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)*@seed^@p elseif (@op1==2) z=c*(z*#pixel) z=z+c*#pixel*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)*@seed^@p elseif (@op1==3) z=c-(z*#pixel) z=z+c*#pixel*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)*@seed^@p elseif (@op1==4) z=c/(z*#pixel) z=z+c*#pixel*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)*@seed^@p elseif (@op1==5) z=c^(z*#pixel) z=z+c*#pixel*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)*@seed^@p elseif (@op1==6) z=-(c)-(z*#pixel) z=z+c*#pixel*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)*@seed^@p elseif (@op1==7) z=-(c)+(z*#pixel) z=z+c*#pixel*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)*@seed^@p elseif (@op1==8) z=-(c)*(z*#pixel) z=z+c*#pixel*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)*@seed^@p endif Bailout: |z|<=@bailout Default: title="Insect" center=(0.0,0.0) magn=1.0 maxiter=250 angle=90 periodicity=0 method=multipass param bailout caption="Bailout Value" default=64.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param @op1 caption="Shape" enum="1""2""3""4""5""6""7""8""9" default=2 endparam param invert Caption="Invert Z" default=false endparam param p caption="Parameter 1" default=(1.0,0.0) endparam param @seed caption="Parameter 2" default=(0.5,0.0) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=cotanh() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="As-InsectJulia" seed1=#pixel bailout=@bailout op1=@op1 p=@p seed=@seed invert=@invert fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 version=@version } As-InsectJulia { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel c=2*@seed1 Loop: if (@invert == true) z=z else z=1/z endif if (@op1==0) z=z+c*@seed1*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)*@seed^@p elseif (@op1==1) z=c+(z*@seed1) z=z+c*@seed1*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)*@seed^@p elseif (@op1==2) z=c*(z*@seed1) z=z+c*@seed1*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)*@seed^@p elseif (@op1==3) z=c-(z*@seed1) z=z+c*@seed1*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)*@seed^@p elseif (@op1==4) z=c/(z*@seed1) z=z+c*@seed1*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)*@seed^@p elseif (@op1==5) z=c^(z*@seed1) z=z+c*@seed1*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)*@seed^@p elseif (@op1==6) z=-(c)-(z*@seed1) z=z+c*@seed1*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)*@seed^@p elseif (@op1==7) z=-(c)+(z*@seed1) z=z+c*@seed1*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)*@seed^@p elseif (@op1==8) z=-(c)*(z*@seed1) z=z+c*@seed1*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)*@seed^@p endif Bailout: |z|<=@bailout Default: title="Insect Julia" center=(0.0,0.0) magn=1.0 maxiter=250 angle=90 periodicity=0 method=multipass param bailout caption="Bailout Value" default=64.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param @op1 caption="Shape" enum="1""2""3""4""5""6""7""8""9" default=2 endparam param invert Caption="Invert Z" default=false endparam param @seed1 caption="Seed Value" default=(0.5375,4.225000341e-19) endparam param p caption="Parameter 1" default=(1.0,0.0) endparam param @seed caption="Parameter 2" default=(0.5,0.0) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=cotanh() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="As-Insect" seed1=pixel bailout=@bailout op1=@op1 p=@p seed=@seed invert=@invert fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 version=@version } Insect1 { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel c=z+2 Loop: if ( @invert == false ) z=z else z=1/z endif if (@op1==0) z=z+c*@seed*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)+@p elseif (@op1==1) z=c+(z*#pixel)*@p z=z+c*@seed*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)+@p elseif (@op1==2) z=c*(z*#pixel)*@p z=z+c*@seed*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)+@p elseif (@op1==3) z=c-(z*#pixel)*@p z=z+c*@seed*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)+@p elseif (@op1==4) z=c/(z*#pixel)*@p z=z+c*@seed*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)+@p elseif (@op1==5) z=c^(z*#pixel)*@p z=z+c*@seed*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)+@p elseif (@op1==6) z=-(c)-(z*#pixel)*@p z=z+c*@seed*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)+@p elseif (@op1==7) z=-(c)+(z*#pixel)*@p z=z+c*@seed*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)+@p elseif (@op1==8) z=-(c)*(z*#pixel)*@p z=z+c*@seed*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)+@p endif Bailout: |z|<=@bailout Default: title="Insect1" center=(0.0,0.0) magn=1.0 maxiter=250 angle=90 periodicity=0 method=multipass param bailout caption="Bailout Value" default=64.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param Invert caption="Invert Z" default=false endparam param @op1 caption="Shape" enum="1""2""3""4""5""6""7""8""9" default=1 endparam param p caption="Parameter 1" default=(1.0,0.0) endparam param @seed caption="Parameter 2" default=(1.0,0.0) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=sqr() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect1-J" seed1=#pixel bailout=@bailout invert=@invert op1=@op1 p=@p seed=@seed fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 version=@version } Insect10-J { ;Andrea Spinozzi(Updated Aug2004) Init: z=(0.0,0.0) c=(0.0,0.0) if (@selectC==0) z=pixel c=@seed+@start elseif (@selectC==1) z=pixel c=@seed endif Loop: if (@invert == false) z=z else z=1/(z+#pixel) endif if (@op1==0) z=@p*z+c+(@fn5(z)*(fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)))*c elseif (@op1==1) z=@p*z+c-(@fn5(z)*(fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)))*c elseif (@op1==2) z=@p*z+c*(@fn5(z)*(fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)))*c elseif (@op1==3) z=@p*z+c/(@fn5(z)*(fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)))*c elseif (@op1==4) z=@p*z+c^(@fn5(z)*(fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)))*c elseif (@op1==5) z=@p*c+z-(@fn5(z)*(fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)))*c elseif (@op1==6) z=@p*z-c+(@fn5(z)*(fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)))*c endif Bailout: |z| < @bailout Default: title="Insect10-J" center=(0.0,0.0) magn=1.0 maxiter= 500 angle=90 method=multipass periodicity=0 param bailout caption="Bailout Value" default=16.0 min=0.0 endparam Heading caption="Operators and Parameters" endheading param selectC caption="Select C" enum="C=@seed+@start""C=@seed" default=0 endparam param op1 caption="Shape" enum= "1""2""3""4""5""6""7" default= 6 endparam param invert Caption="Invert Z" default=false endparam param p caption="Parameter" default= (0.5,0.0) endparam complex param seed caption="Seed Value" default=(0.325,2.554651369e-19) endparam complex param start caption="Start Value" default=(0.0,0.0) visible=(@selectC==0) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=sqr() endfunc func fn3 caption="Function 3" default=tan() endfunc func fn4 caption="Function 4" default=cotan() endfunc func fn5 caption="Function 5" default=sin() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect10-M" seed=#pixel bailout=@bailout fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 p=@p op1=@op1 selectC=@selectC invert=@invert start=@start version=@version } Insect10-M { ;Andrea Spinozzi(Updated Aug2004) Init: z=@start c=#pixel Loop: if (@invert == false) z=z else z=1/(z+#pixel) endif if (@op1==0) z=@p*z+c+(@fn5(z)*(fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)))*c elseif (@op1==1) z=@p*z+c-(@fn5(z)*(fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)))*c elseif (@op1==2) z=@p*z+c*(@fn5(z)*(fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)))*c elseif (@op1==3) z=@p*z+c/(@fn5(z)*(fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)))*c elseif (@op1==4) z=@p*z+c^(@fn5(z)*(fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)))*c elseif (@op1==5) z=@p*c+z-(@fn5(z)*(fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)))*c elseif (@op1==6) z=@p*z-c+(@fn5(z)*(fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)))*c endif Bailout: |z| < @bailout Default: title="Insect10-M" center=(0.0,0.0) magn=1.0 maxiter= 500 angle=90 method=multipass periodicity=0 param bailout caption="Bailout Value" default=16.0 min=0.0 endparam Heading caption="Operators and Parameters" endheading param selectC caption="Use C to Switch" enum="C=@seed+@start""C=@seed" default=1 endparam param op1 caption="Shape" enum= "1""2""3""4""5""6""7" default= 6 endparam param p caption="Parameter" default= (0.5,0.0) endparam param start caption="Start Value" default=(1.0,0.0) endparam param invert Caption="Invert Z" default=false endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=sqr() endfunc func fn3 caption="Function 3" default=tan() endfunc func fn4 caption="Function 4" default=cotan() endfunc func fn5 caption="Function 5" default=sin() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect10-J" seed=#pixel bailout=@bailout fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 p=@p op1=@op1 selectC=@selectC invert=@invert start=@start version=@version } Insect1-J { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel c=@seed1+2 Loop: if ( @invert == false ) z=z else z=1/z endif if (@op1==0) z=z+c*@seed*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)+@p elseif (@op1==1) z=c+(z*@seed1)*@p z=z+c*@seed*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)+@p elseif (@op1==2) z=c*(z*@seed1)*@p z=z+c*@seed*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)+@p elseif (@op1==3) z=c-(z*@seed1)*@p z=z+c*@seed*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)+@p elseif (@op1==4) z=c/(z*@seed1)*@p z=z+c*@seed*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)+@p elseif (@op1==5) z=c^(z*@seed1)*@p z=z+c*@seed*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)+@p elseif (@op1==6) z=-(c)-(z*@seed1)*@p z=z+c*@seed*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)+@p elseif (@op1==7) z=-(c)+(z*@seed1)*@p z=z+c*@seed*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)+@p elseif (@op1==8) z=-(c)*(z*@seed1)*@p z=z+c*@seed*fn1(cotan(z))*fn2(cotanh(z))*fn3(tan(z))*fn4(tanh(z))*@fn5(z)+@p endif Bailout: |z|<=@bailout Default: title="Insect1-J" center=(0.0,0.0) magn=1.0 maxiter=250 angle=90 periodicity=0 method=multipass param bailout caption="Bailout Value" default=64.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param Invert caption="Invert Z" default=false endparam param @op1 caption="Shape" enum="1""2""3""4""5""6""7""8""9" default=7 endparam param seed1 caption="Seed Value" default=(-0.4,-3.1441863e-19) endparam param p caption="Parameter 1" default=(1.0,0.0) endparam param @seed caption="Parameter 2" default=(1.0,0.0) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=sqr() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect1" seed1=#pixel bailout=@bailout invert=@invert op1=@op1 p=@p seed=@seed fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 version=@version } Insect2 { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel c=2*z+@p Loop: if (@invert == true) z=1/z else z=z endif if (@op1==0) z=@p+z+c*@seed*@fn6(z)*fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)*@seed elseif (@op1==1) z=c+(z*#pixel) z=@p+z+c*@seed*@fn6(z)*fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)*@seed elseif (@op1==2) z=c*(z*#pixel) z=@p+z+c*@seed*@fn6(z)*fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)*@seed elseif (@op1==3) z=c-(z*#pixel) z=@p+z+c*@seed*@fn6(z)*fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)*@seed elseif (@op1==4) z=c/(z*#pixel) z=@p+z+c*@seed*@fn6(z)*fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)*@seed elseif (@op1==5) z=c^(z*#pixel) z=@p+z+c*@seed*@fn6(z)*fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)*@seed elseif (@op1==6) z=-(c)-(z*#pixel) z=@p+z+c*@seed*@fn6(z)*fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)*@seed elseif (@op1==7) z=-(c)+(z*#pixel) z=@p+z+c*@seed*@fn6(z)*fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)*@seed elseif (@op1==8) z=-(c)*(z*#pixel) z=@p+z+c*@seed*@fn6(z)*fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)*@seed endif Bailout: |z|<=@bailout Default: title="Insect2" center=(0.0,0.0) magn=1.0 maxiter=500 angle=90 periodicity=0 method=multipass param bailout caption="Bailout Value" default=64.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param @op1 caption="Shape" enum="1""2""3""4""5""6""7""8""9" default=3 endparam param invert Caption="Invert Z" default=false endparam param p caption="Parameter 1" default=(0.0,0.0) endparam param @seed caption="Parameter 2" default=(1.0,0.0) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=cotanh() endfunc func fn6 caption="Function 6" default=recip() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect2J" seed1=#pixel bailout=@bailout invert=@invert op1=@op1 p=@p seed=@seed fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 version=@version } Insect2J { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel c=2*@seed1+@p Loop: if (@invert == true) z=1/z else z=z endif if (@op1==0) z=@p+z+c*@seed*@fn6(z)*fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)*@seed elseif (@op1==1) z=c+(z*@seed1) z=@p+z+c*@seed*@fn6(z)*fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)*@seed elseif (@op1==2) z=c*(z*@seed1) z=@p+z+c*@seed*@fn6(z)*fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)*@seed elseif (@op1==3) z=c-(z*@seed1) z=@p+z+c*@seed*@fn6(z)*fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)*@seed elseif (@op1==4) z=c/(z*@seed1) z=@p+z+c*@seed*@fn6(z)*fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)*@seed elseif (@op1==5) z=c^(z*@seed1) z=@p+z+c*@seed*@fn6(z)*fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)*@seed elseif (@op1==6) z=-(c)-(z*@seed1) z=@p+z+c*@seed*@fn6(z)*fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)*@seed elseif (@op1==7) z=-(c)+(z*@seed1) z=@p+z+c*@seed*@fn6(z)*fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)*@seed elseif (@op1==8) z=-(c)*(z*@seed1) z=@p+z+c*@seed*@fn6(z)*fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)*@seed endif Bailout: |z|<=@bailout Default: title="Insect2J" center=(0.0,0.0) magn=1.0 maxiter=500 angle=90 periodicity=0 method=multipass param bailout caption="Bailout Value" default=64.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param @op1 caption="Shape" enum="1""2""3""4""5""6""7""8""9" default=3 endparam param invert Caption="Invert Z" default=false endparam param @seed1 caption="Seed Value" default=(-0.5083333334,-3.995736757e-19) endparam param p caption="Parameter 1" default=(0.5,0.0) endparam param @seed caption="Parameter 2" default=(1.0,0.0) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=cotanh() endfunc func fn6 caption="Function 6" default=recip() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect2" seed1=#pixel bailout=@bailout invert=@invert op1=@op1 p=@p seed=@seed fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 version=@version } Insect2-J { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel c=@fn3(@seed) c1=real(p2) c2=imag(p2) Loop: if ( @invert == false ) z=z else z=1/z endif if (@op1==0) z=c+(z*@seed) elseif (@op1==1) z=c-(z*@seed) elseif (@op1==2) z=c*(z*@seed) elseif (@op1==3) z=c/(z*@seed) elseif (@op1==4) z=c^(z*@seed) elseif (@op1==5) z=-(c)+(z*@seed) elseif (@op1==6) z=-(c)-(z*@seed) elseif (@op1==7) z=-(c)*(z*@seed) elseif (@op1==8) z=-(c)/(z*@seed) elseif (@op1==9) z=-(c)^(z*@seed) endif z=z+c^p1*fn1(z^c1)*fn2(z^c2) Bailout: |z|<=@bailout Default: title="Insect2-J" center=(0.0,0.0) magn=1.0 maxiter=250 angle=90 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param Invert caption="Invert Z" default=false endparam param @op1 caption="Shape" enum="1""2""3""4""5""6""7""8""9""10" default=2 endparam param seed caption="Seed Value" default=(-0.84375,-0.075) endparam param p1 caption="Parameter 1" default=(0.5,0.0) endparam param p2 caption="Parameter 2" default=(0.1,0.8) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect2-M" seed=#pixel bailout=@bailout invert=@invert op1=@op1 p1=@p1 p2=@p2 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 version=@version } Insect2-M { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel c=@fn3(z) c1=real(p2) c2=imag(p2) Loop: if ( @invert == false ) z=z else z=1/z endif if (@op1==0) z=c+(z*#pixel) elseif (@op1==1) z=c-(z*#pixel) elseif (@op1==2) z=c*(z*#pixel) elseif (@op1==3) z=c/(z*#pixel) elseif (@op1==4) z=c^(z*#pixel) elseif (@op1==5) z=-(c)+(z*#pixel) elseif (@op1==6) z=-(c)-(z*#pixel) elseif (@op1==7) z=-(c)*(z*#pixel) elseif (@op1==8) z=-(c)/(z*#pixel) elseif (@op1==9) z=-(c)^(z*#pixel) endif z=z+c^p1*fn1(z^c1)*fn2(z^c2) Bailout: |z|<=@bailout Default: title="Insect2-M" center=(0.0,0.0) magn=1.0 maxiter=250 angle=90 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param Invert caption="Invert Z" default=false endparam param @op1 caption="Shape" enum="1""2""3""4""5""6""7""8""9""10" default=2 endparam param p1 caption="Parameter 1" default=(0.5,0.0) endparam param p2 caption="Parameter 2" default=(0.1,0.8) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect2-J" seed=#pixel bailout=@bailout invert=@invert op1=@op1 p1=@p1 p2=@p2 fn1=@fn1 fn2=@fn2 fn3=@fn3 version=@version } Insect3 { ;Andrea Spinozzi(Updated Aug2004) Init: z=pixel float c=2.0 Loop: if (@invert == true) z=1/z else z=z endif if (@modefunc==0) if (@op3==0) if (@op2==0) if (@op==0) if (@op1==0) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif elseif (@op2==1) if (@op==0) if (@op1==0) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif elseif (@op2==2) if (@op==0) if (@op1==0) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif endif elseif (@op3==1) if (@op2==0) if (@op==0) if (@op1==0) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif elseif (@op2==1) if (@op==0) if (@op1==0) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif elseif (@op2==2) if (@op==0) if (@op1==0) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif endif elseif (@op3==2) if (@op2==0) if (@op==0) if (@op1==0) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+c*@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif elseif (@op2==1) if (@op==0) if (@op1==0) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+c+@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif elseif (@op2==2) if (@op==0) if (@op1==0) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+c-@fn8(@seed)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif endif endif elseif (@modefunc==1) if (@op3==0) if (@op2==0) if (@op==0) if (@op1==0) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif elseif (@op2==1) if (@op==0) if (@op1==0) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif elseif (@op2==2) if (@op==0) if (@op1==0) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif endif elseif (@op3==1) if (@op2==0) if (@op==0) if (@op1==0) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif elseif (@op2==1) if (@op==0) if (@op1==0) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif elseif (@op2==2) if (@op==0) if (@op1==0) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif endif elseif (@op3==2) if (@op2==0) if (@op==0) if (@op1==0) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif elseif (@op2==1) if (@op==0) if (@op1==0) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif elseif (@op2==2) if (@op==0) if (@op1==0) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif endif endif elseif (@modefunc==2) if (@op3==0) if (@op2==0) if (@op==0) if (@op1==0) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif elseif (@op2==1) if (@op==0) if (@op1==0) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif elseif (@op2==2) if (@op==0) if (@op1==0) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif endif elseif (@op3==1) if (@op2==0) if (@op==0) if (@op1==0) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif elseif (@op2==1) if (@op==0) if (@op1==0) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif elseif (@op2==2) if (@op==0) if (@op1==0) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif endif elseif (@op3==2) if (@op2==0) if (@op==0) if (@op1==0) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif elseif (@op2==1) if (@op==0) if (@op1==0) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif elseif (@op2==2) if (@op==0) if (@op1==0) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif endif endif elseif (@modefunc==3) if (@op3==0) if (@op2==0) if (@op==0) if (@op1==0) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif elseif (@op2==1) if (@op==0) if (@op1==0) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif elseif (@op2==2) if (@op==0) if (@op1==0) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z*@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z*@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z*@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z*@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z*@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z*@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z*@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z*@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif endif elseif (@op3==1) if (@op2==0) if (@op==0) if (@op1==0) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif elseif (@op2==1) if (@op==0) if (@op1==0) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif elseif (@op2==2) if (@op==0) if (@op1==0) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z+@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z+@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z+@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z+@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z+@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z+@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z+@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z+@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif endif elseif (@op3==2) if (@op2==0) if (@op==0) if (@op1==0) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p-z+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p-z-c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+c*@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif elseif (@op2==1) if (@op==0) if (@op1==0) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p-z+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p-z-c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+c+@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif elseif (@op2==2) if (@op==0) if (@op1==0) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p-z+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p-z-c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z-@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z-@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z-@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z-@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z-@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z-@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z-@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z-@fn8(@seed)) z=@p+c-@fn8(@seed)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif endif endif endif z=@fn7(z^p2) Bailout: |z|<=@bailout Default: title="Insect3" center=(0.0,0.0) maxiter=250 angle=90 periodicity=0 method=multipass param bailout caption="Bailout Value" default=64.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param @op caption="Operator 1" enum="1""2""3""4""5" default=0 endparam param @op2 caption="Operator 2" enum="1""2""3" default=0 endparam param @op3 caption="Operator 3" enum="1""2""3" default=0 endparam param @op1 caption="Shape" enum="1""2""3""4""5""6""7""8""9" default=2 endparam param modefunc caption="Mode Functions" enum="1""2""3""4" default=0 endparam param p caption="Parameter 1" default=(0.0,0.0) endparam param p1 caption="Parameter 2" default=(1.0,0.0) endparam param p2 caption="Parameter 3" default=(1.0,0.0) endparam param p3 caption="Parameter 4" default=(1.0,0.0) endparam param p4 caption="Parameter 5" default=(1.0,0.0) endparam param p5 caption="Parameter 6" default=(1.0,0.0) endparam param p6 caption="Parameter 7" default=(0.0,0.0) endparam param p7 caption="Parameter 8" default=(1.0,0.0) endparam param invert Caption="Invert Z" default=false endparam param @seed caption="Seed Value" default=(-0.5625,-4.421511985e-19) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc func fn6 caption="Function 6" default=ident() endfunc func fn7 caption="Last Func z" default=ident() endfunc func fn8 caption="Func c" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect3M" seed=#pixel bailout=@bailout invert=@invert op=@op op1=@op1 op2=@op2 op3=@op3 modefunc=@modefunc p=@p p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 fn8=@fn8 version=@version } Insect3-J { ;Andrea Spinozzi(Updated Aug2004) Init: z =#pixel z1=real(#pixel) z2=imag(#pixel) c1=real(@seed) c2=imag(@seed) Loop: if (@op1==0) z1=(c1*fn2(@seed)+z1*z)+c1*p1 z2=(c2*fn2(@seed)+z2*z)+c2 elseif (@op1==1) z1=(c1*fn2(@seed)-z1*z)+c1*p1 z2=(c2*fn2(@seed)-z2*z)+c2 elseif (@op1==2) z1=(c1+fn2(@seed)*z1*z)+c1*p1 z2=(c2-fn2(@seed)*z1*z)+c2 elseif (@op1==3) z1=(c1-fn2(@seed)*z1*z)+c1*p1 z2=(c2+fn2(@seed)*z2*z)+c2 elseif (@op1==4) z1=(c1+fn2(@seed)*z1*z)+c1*p1 z2=(c2*fn2(@seed)*z2*z)+c2 elseif (@op1==5) z1=(c1*fn2(@seed)*z1*z)+c1*p1 z2=(c2+fn2(@seed)*z2*z)+c2 elseif (@op1==6) z1=(c1-fn2(@seed)*z1*z)+c1*p1 z2=(c2*fn2(@seed)*z2*z)+c2 elseif (@op1==7) z1=(c1*fn2(@seed)*z1*z)+c1*p1 z2=(c2-fn2(@seed)*z2*z)+c2 endif z=fn1(z1)+sqr(z2) Bailout: |z1|+|z2|<=@bailout Default: title="Insect3-J" center=(0.0,0.0) magn=1.0 maxiter=250 angle=270 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operator and Parameters" Endheading param @op1 caption="Shape" enum="1""2""3""4""5""6""7""8""9""10" default=5 endparam param p1 caption="Parameter" default=(1.0,0.0) endparam param @seed caption="Seed Value" default=(0.64375,1.518052448e-18) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect3-M" seed=#pixel bailout=@bailout op1=@op1 p1=@p1 fn1=@fn1 fn2=@fn2 version=@version } Insect3M { ;Andrea Spinozzi(Updated Aug2004) Init: z=pixel float c=2.0 Loop: if (@invert == true) z=1/z else z=z endif if (@modefunc==0) if (@op3==0) if (@op2==0) if (@op==0) if (@op1==0) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif elseif (@op2==1) if (@op==0) if (@op1==0) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif elseif (@op2==2) if (@op==0) if (@op1==0) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif endif elseif (@op3==1) if (@op2==0) if (@op==0) if (@op1==0) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif elseif (@op2==1) if (@op==0) if (@op1==0) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif elseif (@op2==2) if (@op==0) if (@op1==0) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif endif elseif (@op3==2) if (@op2==0) if (@op==0) if (@op1==0) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+c*@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif elseif (@op2==1) if (@op==0) if (@op1==0) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+c+@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif elseif (@op2==2) if (@op==0) if (@op1==0) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+c-@fn8(pixel)*@fn6(z^p1)*fn1(z*p2)*fn2(z/p3)*fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif endif endif elseif (@modefunc==1) if (@op3==0) if (@op2==0) if (@op==0) if (@op1==0) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif elseif (@op2==1) if (@op==0) if (@op1==0) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif elseif (@op2==2) if (@op==0) if (@op1==0) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif endif elseif (@op3==1) if (@op2==0) if (@op==0) if (@op1==0) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif elseif (@op2==1) if (@op==0) if (@op1==0) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif elseif (@op2==2) if (@op==0) if (@op1==0) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif endif elseif (@op3==2) if (@op2==0) if (@op==0) if (@op1==0) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif elseif (@op2==1) if (@op==0) if (@op1==0) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif elseif (@op2==2) if (@op==0) if (@op1==0) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)+fn2(z/p3)+fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif endif endif elseif (@modefunc==2) if (@op3==0) if (@op2==0) if (@op==0) if (@op1==0) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif elseif (@op2==1) if (@op==0) if (@op1==0) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif elseif (@op2==2) if (@op==0) if (@op1==0) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif endif elseif (@op3==1) if (@op2==0) if (@op==0) if (@op1==0) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif elseif (@op2==1) if (@op==0) if (@op1==0) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif elseif (@op2==2) if (@op==0) if (@op1==0) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif endif elseif (@op3==2) if (@op2==0) if (@op==0) if (@op1==0) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif elseif (@op2==1) if (@op==0) if (@op1==0) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif elseif (@op2==2) if (@op==0) if (@op1==0) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)+fn4(z*p5)+@fn5(z+p6) endif endif endif endif elseif (@modefunc==3) if (@op3==0) if (@op2==0) if (@op==0) if (@op1==0) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif elseif (@op2==1) if (@op==0) if (@op1==0) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif elseif (@op2==2) if (@op==0) if (@op1==0) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z*@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z*@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z*@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z*@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z*@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z*@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z*@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z*@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif endif elseif (@op3==1) if (@op2==0) if (@op==0) if (@op1==0) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif elseif (@op2==1) if (@op==0) if (@op1==0) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif elseif (@op2==2) if (@op==0) if (@op1==0) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z+@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z+@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z+@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z+@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z+@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z+@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z+@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z+@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif endif elseif (@op3==2) if (@op2==0) if (@op==0) if (@op1==0) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p-z+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p-z-c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+c*@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif elseif (@op2==1) if (@op==0) if (@op1==0) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p-z+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p-z-c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+c+@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif elseif (@op2==2) if (@op==0) if (@op1==0) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==1) if (@op1==0) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==2) if (@op1==0) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p-z+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==3) if (@op1==0) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p-z-c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6)*z endif elseif (@op==4) if (@op1==0) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==1) z=c+(z-@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==2) z=c*(z-@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==3) z=c-(z-@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==4) z=c/(z-@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==5) z=c^(z-@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==6) z=-(c)-(z-@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==7) z=-(c)+(z-@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) elseif (@op1==8) z=-(c)*(z-@fn8(pixel)) z=@p+c-@fn8(pixel)+@fn6(z^p1)+fn1(z*p2)-fn2(z/p3)-fn3(z^p4)*fn4(z*p5)*@fn5(z+p6) endif endif endif endif endif z=@fn7(z^@p7) Bailout: |z|<=@bailout Default: title="Insect3M" center=(0.0,0.0) maxiter=250 angle=90 periodicity=0 method=multipass param bailout caption="Bailout Value" default=64.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param @op caption="Operator 1" enum="1""2""3""4""5" default=0 endparam param @op2 caption="Operator 2" enum="1""2""3" default=0 endparam param @op3 caption="Operator 3" enum="1""2""3" default=0 endparam param @op1 caption="Shape" enum="1""2""3""4""5""6""7""8""9" default=2 endparam param modefunc caption="Mode Functions" enum="1""2""3""4" default=0 endparam param p caption="Parameter 1" default=(0.0,0.0) endparam param p1 caption="Parameter 2" default=(1.0,0.0) endparam param p2 caption="Parameter 3" default=(1.0,0.0) endparam param p3 caption="Parameter 4" default=(1.0,0.0) endparam param p4 caption="Parameter 5" default=(1.0,0.0) endparam param p5 caption="Parameter 6" default=(1.0,0.0) endparam param p6 caption="Parameter 7" default=(0.0,0.0) endparam param p7 caption="Parameter 8" default=(1.0,0.0) endparam param invert Caption="Invert Z" default=false endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc func fn6 caption="Function 6" default=ident() endfunc func fn7 caption="Last Func z" default=ident() endfunc func fn8 caption="Func c" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect3" seed=pixel bailout=@bailout invert=@invert op=@op op1=@op1 op2=@op2 op3=@op3 modefunc=@modefunc p=@p p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 fn8=@fn8 version=@version } Insect3-M { ;Andrea Spinozzi(Updated Aug2004) Init: z =#pixel z1=real(#pixel) z2=imag(#pixel) c1=real(#pixel) c2=imag(#pixel) Loop: if (@op1==0) z1=(c1*fn2(#pixel)+z1*z)+c1*p1 z2=(c2*fn2(#pixel)+z2*z)+c2 elseif (@op1==1) z1=(c1*fn2(#pixel)-z1*z)+c1*p1 z2=(c2*fn2(#pixel)-z2*z)+c2 elseif (@op1==2) z1=(c1+fn2(#pixel)*z1*z)+c1*p1 z2=(c2-fn2(#pixel)*z1*z)+c2 elseif (@op1==3) z1=(c1-fn2(#pixel)*z1*z)+c1*p1 z2=(c2+fn2(#pixel)*z2*z)+c2 elseif (@op1==4) z1=(c1+fn2(#pixel)*z1*z)+c1*p1 z2=(c2*fn2(#pixel)*z2*z)+c2 elseif (@op1==5) z1=(c1*fn2(#pixel)*z1*z)+c1*p1 z2=(c2+fn2(#pixel)*z2*z)+c2 elseif (@op1==6) z1=(c1-fn2(#pixel)*z1*z)+c1*p1 z2=(c2*fn2(#pixel)*z2*z)+c2 elseif (@op1==7) z1=(c1*fn2(#pixel)*z1*z)+c1*p1 z2=(c2-fn2(#pixel)*z2*z)+c2 endif z=fn1(z1)+sqr(z2) Bailout: |z1|+|z2|<=@bailout Default: title="Insect3-M" center=(0.0,0.0) magn=1.0 maxiter=250 angle=270 method=multipass periodicity=0 param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operator and Parameter" Endheading param @op1 caption="Shape" enum="1""2""3""4""5""6""7""8" default=1 endparam param p1 caption="Parameter" default=(1.0,0.0) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect3-J" seed=#pixel bailout=@bailout op1=@op1 p1=@p1 fn1=@fn1 fn2=@fn2 version=@version } Insect4-J { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel c=@seed Loop: if (@invert == false) z=z+c else z=1/(z+c) endif if (@op1==0) z=z+c+@r-@s*(fn1(z)*fn2(z)*fn3(z)*fn4(z)) elseif (@op1==1) z=z*c+@r-@s*z*(fn1(z)*fn2(z)*fn3(z)*fn4(z)) elseif (@op1==2) z=-@s-@r+z+c*z*(fn1(z)*fn2(z)*fn3(z)*fn4(z)) endif Bailout: |z| < @bailout Default: title="Insect4-J" center=(0.0,0.0) magn=1.0 maxiter=250 angle=270 method=multipass periodicity=0 param bailout caption="Bailout Value" default=16.0 min=0.0 endparam Heading caption="Operators and Parameters" endheading complex param seed caption="Seed Value" default=(0.25625,6.042733046e-19) endparam param op1 caption="Shape" enum="1""2""3" default=1 endparam Param r caption="Parameter 1" default=(1.0,0.0) endparam Param s caption="Parameter 2" default=(0.5,0.0) endparam param Invert caption="Invert Z" default=false endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect4-M1" bailout=@bailout seed=#pixel fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 r=@r s=@s op1=@op1 invert=@invert version=@version } Insect4-M { ;Andrea Spinozzi(Updated Aug2004) Init: z=@start c=#pixel Loop: if (@invert == false) z=z+c else z=1/(z+c) endif if (@op1==0) z=z+c+@r-@s*(fn1(z)*fn2(z)*fn3(z)*fn4(z)) elseif (@op1==1) z=z*c+@r-@s*(fn1(z)*fn2(z)*fn3(z)*fn4(z)) elseif (@op1==2) z=-@s+@r+z+c*(fn1(z)*fn2(z)*fn3(z)*fn4(z)) endif Bailout: |z| < @bailout Default: title="Insect4-M" center=(0.0,0.0) magn=1.0 maxiter= 250 angle=90 method=multipass periodicity=0 param bailout caption="Bailout Value" default=16.0 min=0.0 endparam Heading caption="Operators and Parameters" endheading complex param start caption="Start Value" default=(0.0,0.0) endparam param op1 caption="Shape" enum= "1""2""3" default= 2 endparam Param r caption="Parameter 1" default=(1.0,0.0) endparam Param s caption="Parameter 2" default=(1.0,0.0) endparam param Invert caption="Invert Z" default=false endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam } Insect4-M1 { ;Switch to Insect4-J ;Andrea Spinozzi(Updated Aug2004) Init: z=@start c=#pixel Loop: if (@Invert == false) z=z+c else z=1/(z+c) endif if (@op1==0) z=z+c+@r-@s*z*(fn1(z)*fn2(z)*fn3(z)*fn4(z)) elseif (@op1==1) z=z*c+@r-@s*z*(fn1(z)*fn2(z)*fn3(z)*fn4(z)) elseif (@op1==2) z=-@s-@r+z+c*z*(fn1(z)*fn2(z)*fn3(z)*fn4(z)) endif Bailout: |z| < @bailout Default: title="Insect4-M1" center=(0.0,0.0) magn=1.0 maxiter=250 angle =270 method=multipass periodicity=0 param bailout caption="Bailout Value" default=16.0 min=0.0 endparam Heading caption="Operators and Parameters" endheading complex param start caption="Start Value" default=(0.0,0.0) endparam param op1 caption="Shape" enum= "1""2""3" default= 1 endparam Param r caption="Parameter 1" default=(1.0,0.0) endparam Param s caption="Parameter 2" default=(0.5,0.0) endparam param Invert caption="Invert Z" default=false endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect4-J" bailout=@bailout seed=#pixel fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 r=@r s=@s op1=@op1 invert=@invert version=@version } Insect5-J { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel c=@seed Loop: if (@Invert == false) z=z else z=1/z endif if (@op1==0) z=(z*c)*(Fn1(z)+fn2(z)+fn3(z)+fn4(z))+(@r-@s) elseif (@op1==1) z = (z+c)*(@r+@s)*(Fn1(z)+fn2(z)+fn3(z)+fn4(z))+(@r-@s) elseif (@op1==2) z = (z+c)+(@r+@s)*(Fn1(z)+fn2(z)+fn3(z)+fn4(z))+(@r-@s) elseif (@op1==3) z=(z+c)*(@r+@s)*(Fn1(z)+fn2(z)+fn3(z)+fn4(z))+(@r-@s)+c elseif (@op1==4) z=(@r+@s)+(z+c)*(Fn1(z)+fn2(z)+fn3(z)+fn4(z))+(@r-@s)*c endif Bailout: |z| < @bailout Default: title="Insect5-J" magn=0.8 maxiter= 250 center=(0.0,0.0) angle=90 method=multipass periodicity=0 param bailout caption="Bailout Value" default=16.0 min=0.0 endparam Heading caption="Operators and Parameters" endheading param seed caption="Seed Value" default=(0.1333333334,4.978294976e-19) endparam param op1 caption="Shape" enum= "1""2""3""4""5" default= 0 endparam Param r caption="Parameter 1" default=(0.2,0.0) endparam Param s caption="Parameter 2" default=(-0.5,0.0) endparam param Invert caption="Invert Z" default=false endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=log() endfunc func fn4 caption="Function 4" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect5-M" bailout=@bailout fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 r=@r s=@s op1=@op1 invert=@invert version=@version } Insect5-M { ;Andrea Spinozzi(Updated Aug2004) Init: z=@start c=pixel Loop: if (@Invert == false) z=z else z=1/(z+c) endif if (@op1==0) z = (z*c)*(Fn1(z)+fn2(z)+fn3(z)+fn4(z))+(@r-@s) elseif (@op1==1) z = (z+c)*(@r+@s)*(Fn1(z)+fn2(z)+fn3(z)+fn4(z))+(@r-@s)+c elseif (@op1==2) z = (@r+@s)+(z+c)*(Fn1(z)+fn2(z)+fn3(z)+fn4(z))+(@r-@s)*c elseif (@op1==3) z = (z+c)*(@r+@s)*(Fn1(z)+fn2(z)+fn3(z)+fn4(z))+(@r-@s) elseif (@op1==4) z = (@r+@s)+(z+c)*(Fn1(z)+fn2(z)+fn3(z)+fn4(z))+(@r-@s) endif Bailout: |z| < @bailout Default: title="Insect5-M" magn=1.5 maxiter= 250 center=(0.0,0.0) angle=90 method=multipass periodicity=0 param bailout caption="Bailout Value" default=16.0 min=0.0 endparam Heading caption="Operators and Parameters" endheading complex param start caption="Start Value" hint="sets the start value of Z" default=(0.0,0.0) endparam param op1 caption="Shape" enum= "1""2""3""4""5" default= 0 endparam Param r caption="Parameter 1" default=(0.2,0.0) endparam Param s caption="Parameter 2" default=(0.0,0.0) endparam param Invert caption="Invert Z" default=false endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=sqrt() endfunc func fn3 caption="Function 3" default=sqrt() endfunc func fn4 caption="Function 4" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect5-J" bailout=@bailout seed=#pixel fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 r=@r s=@s op1=@op1 invert=@invert version=@version } Insect6-J { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel c=@seed Loop: if (@invert == false) z=z else z=1/z endif if (@op1==0) z=(@start+@p*c/@r)+(fn1(z)*fn2(z)*fn3(z)*fn4(z))*@s*c elseif (@op1==1) z=(@start+@p*c/@r)-(fn1(z)*fn2(z)*fn3(z)*fn4(z))*@s*c elseif (@op1==2) z=(@start+@p*c/@r)/(fn1(z)*fn2(z)*fn3(z)*fn4(z))*@s*c elseif (@op1==3) z=(@start+@p*c/@r)*(fn1(z)*fn2(z)*fn3(z)*fn4(z))*@s*c elseif (@op1==4) z=(@start+@p*c/@r)*(fn1(z)*fn2(z)*fn3(z)*fn4(z))*@s*c*c endif Bailout: |z| < @bailout Default: title="Insect6-J" center=(0.0,0.0) magn=1.0 maxiter=250 angle=180 periodicity=0 method=multipass param bailout caption="Bailout Value" default=16.0 min=0.0 endparam Heading caption="Operators and Parameters" endheading param op1 caption="Shape" enum= "1""2""3""4""5" default= 0 endparam param p caption="Parameter 1" default=(-1.45,0.0) endparam param r caption="Parameter 2" default=(2.5,0.0) endparam param s caption="Parameter 3" default=(2.0,0.0) endparam param invert Caption="Invert Z" default=false endparam complex param seed caption="Seed Value" default=(-1.00625,-1.581918732e-18) endparam param start caption="Start Value" default=(1.0,0.0) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=sqr() endfunc func fn2 caption="Function 2" default=sin() endfunc func fn3 caption="Function 3" default=recip() endfunc func fn4 caption="Function 4" default=recip() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect6-M" bailout=@bailout fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 p=@p r=@r s=@s op1=@op1 invert=@invert start=@start version=@version } Insect6-J1 { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel c=@seed Loop: if (@invert == false) z=z else z=1/z endif if (@op1==0) z=(z*@p*c/@r)+(fn1(z)*fn2(z)*fn3(z)*fn4(z))*c elseif (@op1==1) z=(z*@p*c/@r)-(fn1(z)*fn2(z)*fn3(z)*fn4(z))*c elseif (@op1==2) z=(z*@p*c/@r)/(fn1(z)*fn2(z)*fn3(z)*fn4(z))*c endif Bailout: |z| < @bailout Default: title="Insect6-J1" center=(0.0,0.0) magn=1.0 maxiter= 250 angle=90 method=multipass periodicity=0 param bailout caption="Bailout Value" default=16.0 min=0.0 endparam Heading caption="Operators and Parameters" endheading param op1 caption="Shape" enum= "1""2""3" default= 0 endparam param p caption="Parameter 1" default= (0.5,0.0) endparam param r caption="Parameter 2" default=(2.5,0.0) endparam param invert Caption="Invert Z" default=false endparam complex param seed caption="Seed Value" default=(-2.092849006e-18,1.33125) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=sqr() endfunc func fn2 caption="Function 2" default=sin() endfunc func fn3 caption="Function 3" default=recip() endfunc func fn4 caption="Function 4" default=recip() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect6-M1" bailout=@bailout fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 p=@p r=@r s=@s op1=@op1 invert=@invert start=@start version=@version } Insect6-M { ;Andrea Spinozzi(Updated Aug2004) Init: z=@start c=#pixel Loop: if (@invert == false) z=z else z=1/z endif if (@op1==0) z=(@start+@p*c/@r)+(fn1(z)*fn2(z)*fn3(z)*fn4(z))*@s*c elseif (@op1==1) z=(@start+@p*c/@r)-(fn1(z)*fn2(z)*fn3(z)*fn4(z))*@s*c elseif (@op1==2) z=(@start+@p*c/@r)/(fn1(z)*fn2(z)*fn3(z)*fn4(z))*@s*c elseif (@op1==3) z=(@start+@p*c/@r)*(fn1(z)*fn2(z)*fn3(z)*fn4(z))*@s*c elseif (@op1==4) z=(@start+@p*c/@r)*(fn1(z)*fn2(z)*fn3(z)*fn4(z))*@s*c*c endif Bailout: |z| < @bailout Default: title="Insect6-M" center=(0.0,0.0) maxiter= 250 angle=180 periodicity=0 method=multipass param bailout caption="Bailout Value" default=16.0 min=0.0 endparam Heading caption="Operators and Parameters" endheading param op1 caption="Shape" enum= "1""2""3""4""5" default= 0 endparam param p caption="Parameter 1" default=(-1.45,0.0) endparam param r caption="Parameter 2" default=(2.5,0.0) endparam param s caption="Parameter 3" default=(2.0,0.0) endparam param invert caption="Invert Z" default=false endparam complex param start caption="Start Value" default=(1.0,0.0) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=sqr() endfunc func fn2 caption="Function 2" default=sin() endfunc func fn3 caption="Function 3" default=recip() endfunc func fn4 caption="Function 4" default=recip() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect6-J" seed=#pixel bailout=@bailout fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 p=@p r=@r s=@s op1=@op1 invert=@invert start=@start version=@version } Insect6-M1 { ;Andrea Spinozzi(Updated Aug2004) Init: z=@start c=#pixel Loop: if (@invert == false) z=z else z=1/z endif if (@op1==0) z=(z*@p*c/@r)+(fn1(z)*fn2(z)*fn3(z)*fn4(z))*c elseif (@op1==1) z=(z*@p*c/@r)-(fn1(z)*fn2(z)*fn3(z)*fn4(z))*c elseif (@op1==2) z=(z*@p*c/@r)/(fn1(z)*fn2(z)*fn3(z)*fn4(z))*c endif Bailout: |z| < @bailout Default: title="Insect6-M1" center=(0.0,0.0) magn=1 maxiter= 250 angle=180 method=multipass periodicity=0 param bailout caption="Bailout Value" default=16.0 min=0.0 endparam Heading caption="Operators and Parameters" endheading param op1 caption="Shape" enum= "1""2""3" default= 0 endparam param p caption= "Parameter 1" default= (0.5,0.0) endparam param r caption="Parameter 2" default=(2.5,0.0) endparam param invert Caption="Invert Z" default=false endparam complex param start caption="Start Value" default=(1.0,0.0) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=sqr() endfunc func fn2 caption="Function 2" default=sin() endfunc func fn3 caption="Function 3" default=recip() endfunc func fn4 caption="Function 4" default=recip() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect6-J1" seed=#pixel bailout=@bailout fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 p=@p r=@r s=@s op1=@op1 invert=@invert start=@start version=@version } Insect7-J { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel c=@seed Loop: if (@invert == false) z=z else z=1/z endif if (@op1==0) z=(z^@p+c*@r)*(fn1(z)*fn2(z)*fn3(z)*fn4(z))+@s*c elseif (@op1==1) z=(z^@p+c+@r)*(fn1(z)*fn2(z)*fn3(z)*fn4(z))+@s*c+c elseif (@op1==2) z=(z^@p+c-@r)*(fn1(z)*fn2(z)*fn3(z)*fn4(z))+@s*c-c elseif (@op1==3) z=(z^@p+c*@r)*(fn1(z)*fn2(z)*fn3(z)*fn4(z))+@s*c*c endif Bailout: |z| < @bailout Default: title="Insect7-J" center=(0.0,0.0) magn=1.0 maxiter= 250 angle=90 method=multipass periodicity=0 param bailout caption="Bailout Value" default=16.0 min=0.0 endparam Heading caption="Operators and Parameters" endheading param seed caption="Seed Value" default=(0.7,5.502326025e-19) endparam param op1 caption="Shape" enum= "1""2""3""4" default= 0 endparam param p caption="Parameter 1" default= (1.0,0.0) endparam param r caption="Parameter 2" default=(0.0,0.0) endparam param s caption="Parameter 3" default=(1.5,0.0) endparam param invert caption="Invert Z" default=false endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=log() endfunc func fn4 caption="Function 4" default=recip() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect7-M" seed=#pixel bailout=@bailout fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 p=@p r=@r s=@s op1=@op1 invert=@invert version=@version } Insect7-M { ;Andrea Spinozzi(Updated Aug2004) Init: z=@start c=pixel Loop: if (@invert == false) z=z else z=1/z endif if (@op1==0) z=(z^@p+c*@r)*(fn1(z)*fn2(z)*fn3(z)*fn4(z))+@s*c elseif (@op1==1) z=(z^@p+c+@r)*(fn1(z)*fn2(z)*fn3(z)*fn4(z))+@s*c+c elseif (@op1==2) z=(z^@p+c-@r)*(fn1(z)*fn2(z)*fn3(z)*fn4(z))+@s*c-c elseif (@op1==3) z=(z^@p+c*@r)*(fn1(z)*fn2(z)*fn3(z)*fn4(z))+@s*c*c endif Bailout: |z| < @bailout Default: title="Insect7-M" center=(0.0,0.0) magn=1.5 maxiter= 250 angle=90 method=multipass periodicity=0 param bailout caption="Bailout Value" default=16.0 min=0.0 endparam Heading caption="Operators and Parameters" endheading complex param start caption="Start Value" default=(1.0,0.0) endparam param op1 caption="Shape" enum= "1""2""3""4" default= 0 endparam param p caption= "Parameter 1" default= (1.0,0.0) endparam param r caption="Parameter 2" default=(0.0,0.0) endparam param s caption="Parameter 3" default=(1.5,0.0) endparam param invert Caption="Invert Z" default=false endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=log() endfunc func fn4 caption="Function 4" default=recip() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect7-J" seed=#pixel bailout=@bailout fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 p=@p r=@r s=@s op1=@op1 invert=@invert version=@version } Insect8-J { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel c=@seed Loop: if (@invert == false) z=z else z=1/z endif if (@select1==0) if (@op1==0) z=z+@p+c*@r*fn1(z)*fn2(z)*fn3(z)*fn4(z)*z+(@s*@p)*c+@r elseif (@op1==1) z=z+@p+c+@r*z*fn1(z)*fn2(z)*fn3(z)*fn4(z)+(@s*@p)*c+@r elseif (@op1==2) z=z+@p+c-@r+z*fn1(z)*fn2(z)*fn3(z)*fn4(z)+(@s*@p)*c+@r elseif (@op1==3) z=z+@p+c/@r-z*fn1(z)*fn2(z)*fn3(z)*fn4(z)+(@s*@p)*c+@r elseif (@op1==4) z=z+@p+c^@r*z*fn1(z)*fn2(z)*fn3(z)*fn4(z)+(@s*@p)*c+@r elseif (@op1==5) z=z+@p+c*@r/z*fn1(z)*fn2(z)*fn3(z)*fn4(z)+(@s*@p)*c+@r endif elseif (@select1==1) if (@op1==0) z=z+@p+c*@r*c*fn1(z)*fn2(z)*fn3(z)*fn4(z)*z+(@s*@p)*c+@r elseif (@op1==1) z=z+@p+c+@r*c*fn1(z)*fn2(z)*fn3(z)*fn4(z)+(@s*@p)*c+@r elseif (@op1==2) z=z+@p+c-@r+c*fn1(z)*fn2(z)*fn3(z)*fn4(z)+(@s*@p)*c+@r elseif (@op1==3) z=z+@p+c/@r-c*fn1(z)*fn2(z)*fn3(z)*fn4(z)+(@s*@p)*c+@r elseif (@op1==4) z=z+@p+c^@r*c*fn1(z)*fn2(z)*fn3(z)*fn4(z)+(@s*@p)*c+@r elseif (@op1==5) z=z+@p+c*@r/c*fn1(z)*fn2(z)*fn3(z)*fn4(z)+(@s*@p)*c+@r endif endif Bailout: |z| < @bailout Default: title="Insect8-J" center=(0.0,0.0) magn=1.0 maxiter= 250 angle=270 method=multipass periodicity=0 param bailout caption="Bailout Value" default=16.0 min=0.0 endparam Heading caption="Operators and Parameters" endheading param seed caption="Seed Value" default=(0.56875,4.470639896e-19) endparam param @select1 caption="Select Julia" enum="1""2" default=0 endparam param @op1 caption="Shape" enum="1""2""3""4""5""6" default= 1 endparam param p caption="Parameter 1" default=(-1.0,0.0) endparam param r caption="Parameter 2" default=(1.5,0.0) endparam param s caption="Parameter 3" default=(1.5,0.0) endparam param invert Caption="Invert Z" default=false endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=recip() endfunc func fn3 caption="Function 3" default=recip() endfunc func fn4 caption="Function 4" default=recip() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect8-M" bailout=@bailout fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 p=@p r=@r s=@s op1=@op1 select1=@select1 invert=@invert version=@version } Insect8-M { ;Andrea Spinozzi(Updated Aug2004) Init: z=@start c=pixel Loop: if (@invert == false) z=z else z=1/z endif if (@select==0) if (@op1==0) z=z+@p+c*@r*fn1(z)*fn2(z)*fn3(z)*fn4(z)*z+(@s*@p)*c+@r elseif (@op1==1) z=z+@p+c+@r*c*fn1(z)*fn2(z)*fn3(z)*fn4(z)+(@s*@p)*c+@r elseif (@op1==2) z=z+@p+c-@r+c*fn1(z)*fn2(z)*fn3(z)*fn4(z)+(@s*@p)*c+@r elseif (@op1==3) z=z+@p+c/@r-c*fn1(z)*fn2(z)*fn3(z)*fn4(z)+(@s*@p)*c+@r elseif (@op1==4) z=z+@p+c^@r*c*fn1(z)*fn2(z)*fn3(z)*fn4(z)+(@s*@p)*c+@r elseif (@op1==5) z=z+@p+c*@r/c*fn1(z)*fn2(z)*fn3(z)*fn4(z)+(@s*@p)*c+@r endif elseif (@select==1) if (@op1==0) z=z+@p+c*@r*c*fn1(z)*fn2(z)*fn3(z)*fn4(z)*z+(@s*@p)*c+@r elseif (@op1==1) z=z+@p+c+@r*z*fn1(z)*fn2(z)*fn3(z)*fn4(z)+(@s*@p)*c+@r elseif (@op1==2) z=z+@p+c-@r+z*fn1(z)*fn2(z)*fn3(z)*fn4(z)+(@s*@p)*c+@r elseif (@op1==3) z=z+@p+c/@r-z*fn1(z)*fn2(z)*fn3(z)*fn4(z)+(@s*@p)*c+@r elseif (@op1==4) z=z+@p+c^@r*z*fn1(z)*fn2(z)*fn3(z)*fn4(z)+(@s*@p)*c+@r elseif (@op1==5) z=z+@p+c*@r/z*fn1(z)*fn2(z)*fn3(z)*fn4(z)+(@s*@p)*c+@r endif endif Bailout: |z| < @bailout Default: title="Insect8-M" center=(1.0,0.0) magn=1.0 maxiter= 250 angle=270 method=multipass periodicity=0 param bailout caption="Bailout Value" default=16.0 min=0.0 endparam Heading caption="Operators and Parameters" endheading complex param start caption="Start Value" default=(1.0,0.0) endparam param @select caption="Select MBrot" enum="1""2" default=0 endparam param @select1 caption="Select Julia Switch" enum="1""2" default=0 endparam param @op1 caption="Shape" enum= "1""2""3""4""5""6" default= 5 endparam param p caption= "Parameter 1" default= (-1.0,0.0) endparam param r caption="Parameter 2" default=(1.5,0.0) endparam param s caption="Parameter 3" default=(1.5,0.0) endparam param invert Caption="Invert Z" default=false endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=recip() endfunc func fn3 caption="Function 3" default=recip() endfunc func fn4 caption="Function 4" default=recip() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect8-J" seed=#pixel bailout=@bailout fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 p=@p r=@r s=@s op1=@op1 select1=@select1 invert=@invert version=@version } Insect9-J { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel c=@seed Loop: if (@invert == false) z=z else z=1/(z+#pixel) endif if (@op1==0) z=@p+(c+z*(fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)))*z elseif (@op1==1) z=@p+(c-z+(fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)))*z elseif (@op1==2) z=@p+(c+z+(fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)))*z elseif (@op1==3) z=@p+(c*z+(fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)))^z endif Bailout: |z| < @bailout Default: title="Insect9-J" center=(0.0,0.0) magn=1.5 maxiter=500 angle=90 method=multipass periodicity=0 param bailout caption="Bailout Value" default=16.0 min=0.0 endparam Heading caption="Operators and Parameters" endheading param op1 caption="Shape" enum= "1""2""3""4" default= 0 endparam param p caption="Parameter" default=(-0.5,0.0) endparam param invert Caption="Invert Z" default=false endparam param @seed caption="Seed Value" default=(-1.010416667,0.08333333336) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=sin() endfunc func fn2 caption="Function 2" default=trunc() endfunc func fn3 caption="Function 3" default=asinh() endfunc func fn4 caption="Function 4" default=sin() endfunc func fn5 caption="Function 5" default=sin() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect9-M" seed=#pixel bailout=@bailout fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 p=@p op1=@op1 invert=@invert version=@version } Insect9-M { ;Andrea Spinozzi(Updated Aug2004) Init: z=@start c=#pixel Loop: if (@invert == false) z=z else z=1/(z+#pixel) endif if (@op1==0) z=@p+(c+z*(fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)))*z elseif (@op1==1) z=@p+(c-z+(fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)))*z elseif (@op1==2) z=@p+(c+z+(fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)))*z elseif (@op1==3) z=@p+(c*z+(fn1(z)*fn2(z)*fn3(z)*fn4(z)*@fn5(z)))^z endif Bailout: |z| < @bailout Default: title="Insect9-M" center=(0.0,0.0) magn=0.6 maxiter= 250 angle=90 method=multipass periodicity=0 param bailout caption="Bailout Value" default=16.0 min=0.0 endparam Heading caption="Operators and Parameters" endheading param op1 caption="Shape" enum= "1""2""3""4" default= 0 endparam param p caption="Parameter" default=(-0.5,0.0) endparam param invert Caption="Invert Z" default=false endparam complex param start caption="Start Value" default=(0.0,0.0) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=sin() endfunc func fn2 caption="Function 2" default=trunc() endfunc func fn3 caption="Function 3" default=asinh() endfunc func fn4 caption="Function 4" default=sin() endfunc func @fn5 caption="Function 5" default=sin() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect9-J" seed=#pixel bailout=@bailout fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 op1=@op1 p=@p invert=@invert version=@version } Insect-J { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel c=2*@seed Loop: if (@invert == true) z=z else z=1/z endif if (@op1==0) z=c+(z*@seed) elseif (@op1==1) z=c-(z*@seed) elseif (@op1==2) z=c*(z*@seed) elseif (@op1==3) z=c/(z*@seed) elseif (@op1==4) z=c^(z*@seed) elseif (@op1==5) z=-(c)+(z*@seed) elseif (@op1==6) z=-(c)-(z*@seed) elseif (@op1==7) z=-(c)*(z*@seed) elseif (@op1==8) z=-(c)/(z*@seed) elseif (@op1==9) z=-(c)^(z*@seed) endif z=z+c*@seed*(fn1((z^@p1))*fn2((z^@p2))*fn3((z^@p3))*fn4((z^@p4))*@fn5(z^@p5)) Bailout: |z|<=@bailout Default: title="Insect-J" center=(0.0,0.0) magn=1.5 maxiter=250 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param @op1 caption="Shape" enum="1""2""3""4""5""6""7""8""9""10" default=2 endparam param invert Caption="Invert Z" default=false endparam param seed caption="Seed Value" default=(-0.5291666667,4.15949646e-19) endparam param p1 caption="Parameter 1" default=(1.0,0.0) endparam param p2 caption="Parameter 2" default=(1.0,0.0) endparam param p3 caption="Parameter 3" default=(1.0,0.0) endparam param p4 caption="Parameter 4" default=(1.0,0.0) endparam param p5 caption="Parameter 5" default=(1.0,0.0) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=cabs() endfunc func fn3 caption="Function 3" default=cotanh() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect-M" seed=#pixel bailout=@bailout op1=@op1 p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 invert=@invert fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 version=@version } Insect-M { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel c=2*pixel Loop: if (@invert == true) z=z else z=1/z endif if (@op1==0) z=c+(z*#pixel) elseif (@op1==1) z=c-(z*#pixel) elseif (@op1==2) z=c*(z*#pixel) elseif (@op1==3) z=c/(z*#pixel) elseif (@op1==4) z=c^(z*#pixel) elseif (@op1==5) z=-(c)+(z*#pixel) elseif (@op1==6) z=-(c)-(z*#pixel) elseif (@op1==7) z=-(c)*(z*#pixel) elseif (@op1==8) z=-(c)/(z*#pixel) elseif (@op1==9) z=-(c)^(z*#pixel) endif z=z+c*#pixel*(fn1((z^@p1))*fn2((z^@p2))*fn3((z^@p3))*fn4((z^@p4))*@fn5(z^@p5)) Bailout: |z|<=@bailout Default: title="Insect-M" center=(0.0,0.0) angle=-90 magn=1.5 maxiter=250 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param @op1 caption="Shape" enum="1""2""3""4""5""6""7""8""9""10" default=2 endparam param invert Caption="Invert Z" default=false endparam param p1 caption="Parameter 1" default=(1.0,0.0) endparam param p2 caption="Parameter 2" default=(1.0,0.0) endparam param p3 caption="Parameter 3" default=(1.0,0.0) endparam param p4 caption="Parameter 4" default=(1.0,0.0) endparam param p5 caption="Parameter 5" default=(1.0,0.0) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=cabs() endfunc func fn3 caption="Function 3" default=cotanh() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Insect-J" seed=#pixel bailout=@bailout op1=@op1 p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 invert=@invert fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 version=@version } Jama { ;Andrea Spinozzi(Updated Aug2004) Init: z=@startseed c=#pixel a=(z+@c)+(z*c) b=z+@d x=fn1(z*@a)+fn2(c*@b) if (@Mode == "Mandelbrot") z=@startSeed endif if @mode == "Julia" z=#pixel c=@startSeed endif Loop: if @invert == true z=1/z endif if @change=="z+c" x=(fn1(z^@a)+fn2(c^@b)) elseif @change=="z-c" x=(fn1(z^@a)-fn2(c^@b)) elseif @change=="c-z" x=(fn2(c^@b)-fn1(z^@a)) elseif @change=="z*c" x=(fn1(z^@a)*fn2(c^@b)) elseif @change=="z/c" x=(fn1(z^@a)/fn2(c^@b)) elseif @change=="c/z" x=(fn2(c^@b)/fn1(z^@a)) elseif @change=="z^c" x=(fn1(z^@a)^fn2(c^@b)) elseif @change=="c^z" x=(fn2(c^@b)^fn1(z^@a)) endif x=fn4(x) if @op=="+" if @type=="+" a=(z+@c)+(z*c) elseif @type=="-" a=(z+@c)-(z*c) elseif @type=="*" a=(z+@c)*(z*c) elseif @type == "/" a=(z+@c)/(z*c) elseif @type == "^" a=(z+@c)^(z*c) endif elseif @op=="-" if @type=="+" a=(z-@c)+(z*c) elseif @type=="-" a=(z-@c)-(z*c) elseif @type=="*" a=(z-@c)*(z*c) elseif @type == "/" a=(z-@c)/(z*c) elseif @type == "^" a=(z-@c)^(z*c) endif elseif @op=="*" if @type=="+" a=(z*@c)+(z*c) elseif @type=="-" a=(z*@c)-(z*c) elseif @type=="*" a=(z*@c)*(z*c) elseif @type == "/" a=(z*@c)/(z*c) elseif @type == "^" a=(z*@c)^(z*c) endif elseif @op=="/" if @type=="+" a=(z/@c)+(z*c) elseif @type=="-" a=(z/@c)-(z*c) elseif @type=="*" a=(z/@c)*(z*c) elseif @type == "/" a=(z/@c)/(z*c) elseif @type == "^" a=(z/@c)^(z*c) endif elseif @op=="^" if @type=="+" a=(z^@c)+(z*c) elseif @type=="-" a=(z^@c)-(z*c) elseif @type=="*" a=(z^@c)*(z*c) elseif @type == "/" a=(z^@c)/(z*c) elseif @type == "^" a=(z^@c)^(z*c) endif endif a=@fn5(a) if @type1=="+" b=fn3(z+@d) elseif @type1=="-" b=fn3(z-@d) elseif @type1=="*" b=fn3(z*@d) elseif @type1=="/" b=fn3(z/@d) elseif @type1=="^" b=fn3(z^@d) endif b=@fn6(b) if @op2=="1" if@op3=="+" z=(a-b)+x elseif @op3=="-" z=(a-b)-x elseif @op3=="*" z=(a-b)*x elseif @op3=="/" z=(a-b)/x elseif @op3=="^" z=(a-b)^x endif elseif @op2=="2" if@op3=="+" z=(b-a)+x elseif @op3=="-" z=(b-a)-x elseif @op3=="*" z=(b-a)*x elseif @op3=="/" z=(b-a)/x elseif @op3=="^" z=(b-a)^x endif endif z=@fn7(z) Bailout: |z| < @bailout Default: title="Jama" angle=90 center=(0.0,0.0) magn=0.8 maxiter=250 method=multipass periodicity=0 param bailout caption="Bailout Value" default=4.0 min=0.0 endparam param mode caption="Current mode" default=0 enum="Mandelbrot" "Julia" endparam param switchMode caption="Switch to" default=1 enum="Mandelbrot" "Julia" endparam Heading caption="Operators and Parameters" endheading param change caption="Operator 1" enum="z+c""z-c""c-z""z*c""z/c""c/z""z^c""c^z" default=0 endparam param op caption="Operator 2" enum="+""-""*""/""^" default=2 endparam param @type caption="Operator 3" enum="+""-""*""/""^" default=1 endparam param @type1 caption="Operator 4" enum="+""-""*""/""^" default=1 endparam param op2 caption="Operator 5" enum="1""2" default=1 endparam param op3 caption="Operator 6" enum="+""-""*""/""^" default=0 endparam param a caption="Parameter 1" default=(1.0,0.0) endparam param b caption="Parameter 2" default=(1.0,0.0) endparam param c caption="Parameter 3" default=(1.0,0.0) endparam param d caption="Parameter 4" default=(1.0,0.0) endparam param startseed caption="Start/Seed" default=(-0.484375,-3.807413098e-19) endparam Param invert caption="Invert Z" default=false endparam Heading caption="Function" endheading func fn1 caption="Function 1" default=sqr() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc func fn6 caption="Function 6" default=ident() endfunc func fn7 caption="Function 7" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Jama" startseed=#pixel a=@a b=@b @c=@c d=@d bailout=@bailout change=@change type=@type type1=@type1 op=@op op2=@op2 op3=@op3 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 invert=@invert mode=@switchmode switchmode=@mode version=@version } Julia { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel^2 Loop: if (@op1 == 0) if (@op2 == 0) if (@op == 0) z=fn2(z)^@power+fn3(@seed)+fn4(z)^p1*fn1(z) elseif (@op == 1) z=fn2(z)^@power-fn3(@seed)+fn4(z)^p1*fn1(z) elseif (@op == 2) z=fn2(z)^@power*fn3(@seed)+fn4(z)^p1*fn1(z) endif elseif (@op2 == 1) if (@op == 0) z=fn2(z)^@power+fn3(@seed)*fn4(z)^p1*fn1(z) elseif (@op == 1) z=fn2(z)^@power-fn3(@seed)*fn4(z)^p1*fn1(z) elseif (@op == 2) z=fn2(z)^@power*fn3(@seed)*fn4(z)^p1*fn1(z) endif endif elseif (@op1 == 1) if (@op2 == 0) if (@op == 0) z=fn2(z)^@power+fn3(@seed)+fn4(z)^p1+fn1(z) elseif (@op == 1) z=fn2(z)^@power-fn3(@seed)+fn4(z)^p1+fn1(z) elseif (@op == 2) z=fn2(z)^@power*fn3(@seed)+fn4(z)^p1+fn1(z) endif elseif (@op2 == 1) if (@op == 0) z=fn2(z)^@power+fn3(@seed)*fn4(z)^p1+fn1(z) elseif (@op == 1) z=fn2(z)^@power-fn3(@seed)*fn4(z)^p1+fn1(z) elseif (@op == 2) z=fn2(z)^@power*fn3(@seed)*fn4(z)^p1+fn1(z) endif endif endif Bailout: |z|<=@bailout Default: Title="Julia" angle=90 center=(0.0,0.0) maxiter=250 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param op caption="Operator 1" enum="1""2""3" default=0 endparam param op1 caption="Operator 2" enum="1""2" default=0 endparam param op2 caption="Operator 3" enum="1""2" default=0 endparam param seed caption="Julia Seed" default=(0.0,0.0) endparam param power caption="Exponent 1" default=(2.0,0.0) endparam param p1 caption="Exponent 2" default=(0.0,0.0) endparam Heading caption="Functions" Endheading Func fn1 caption="Function 1" default=ident() endfunc Func fn2 caption="Function 2" default=ident() endfunc Func fn3 caption="Function 3" default=ident() endfunc Func fn4 caption="Function 4" default=ident() endfunc Switch: type="Julia-M" seed=#pixel bailout=@bailout op=@op op1=@op1 op2=@op2 power=@power p1=@p1 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 version=@version } Julia-M { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel^2 Loop: if (@op1 == 0) if (@op2 == 0) if (@op == 0) z=fn2(z)^@power+fn3(pixel)+fn4(z)^p1*fn1(z) elseif (@op == 1) z=fn2(z)^@power-fn3(pixel)+fn4(z)^p1*fn1(z) elseif (@op == 2) z=fn2(z)^@power*fn3(pixel)+fn4(z)^p1*fn1(z) endif elseif (@op2 == 1) if (@op == 0) z=fn2(z)^@power+fn3(pixel)*fn4(z)^p1*fn1(z) elseif (@op == 1) z=fn2(z)^@power-fn3(pixel)*fn4(z)^p1*fn1(z) elseif (@op == 2) z=fn2(z)^@power*fn3(pixel)*fn4(z)^p1*fn1(z) endif endif elseif (@op1 == 1) if (@op2 == 0) if (@op == 0) z=fn2(z)^@power+fn3(pixel)+fn4(z)^p1+fn1(z) elseif (@op == 1) z=fn2(z)^@power-fn3(pixel)+fn4(z)^p1+fn1(z) elseif (@op == 2) z=fn2(z)^@power*fn3(pixel)+fn4(z)^p1+fn1(z) endif elseif (@op2 == 1) if (@op == 0) z=fn2(z)^@power+fn3(pixel)*fn4(z)^p1+fn1(z) elseif (@op == 1) z=fn2(z)^@power-fn3(pixel)*fn4(z)^p1+fn1(z) elseif (@op == 2) z=fn2(z)^@power*fn3(pixel)*fn4(z)^p1+fn1(z) endif endif endif Bailout: |z|<=@bailout Default: Title="Julia-M" angle=90 center=(0.0,0.0) maxiter=250 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param op caption="Operator 1" enum="1""2""3" default=0 endparam param op1 caption="Operator 2" enum="1""2" default=0 endparam param op2 caption="Operator 3" enum="1""2" default=0 endparam param power caption="Exponent 1" default=(2.0,0.0) endparam param p1 caption="Exponent 2" default=(0.0,0.0) endparam Heading caption="Functions" Endheading Func fn1 caption="Function 1" default=ident() endfunc Func fn2 caption="Function 2" default=ident() endfunc Func fn3 caption="Function 3" default=ident() endfunc Func fn4 caption="Function 4" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Julia" seed=#pixel bailout=@bailout op=@op op1=@op1 op2=@op2 power=@power p1=@p1 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 version=@version } Kyra-J { ;Andrea Spinozzi(Updated Aug2004) Init: z=pixel c=@seed x=c+z w=fn1(@p1+z)+fn2(@p2+z) j=fn3(@p3+z)+@fn4(@p4+z) Loop: if @invert == true z=1/z endif if @change == "c+z" x=z+c elseif @change == "z-c" x=z-c elseif @change == "c-z" x=c-z elseif @change == "z*c" x=z*c elseif @change == "z/c" x=z/c elseif @change == "c/z" x=c/z elseif @change == "z^c" x=z^c elseif @change == "c^z" x=c^z endif if @op1 == "+" if @type == "+" w=(fn1(@p1*z)+fn2(@p2*z))+(z+c) elseif @type == "-" w=(fn1(@p1*z)+fn2(@p2*z))-(z+c) elseif @type == "*" w=(fn1(@p1*z)+fn2(@p2*z))*(z+c) elseif @type == "/" w=(fn1(@p1*z)+fn2(@p2*z))/(z+c) elseif @type == "^" w=(fn1(@p1*z)+fn2(@p2*z))^(z+c) endif elseif @op1 == "-" if @type == "+" w=(fn1(@p1*z)-fn2(@p2*z))+(z+c) elseif @type == "-" w=(fn1(@p1*z)-fn2(@p2*z))-(z+c) elseif @type == "*" w=(fn1(@p1*z)-fn2(@p2*z))*(z+c) elseif @type == "/" w=(fn1(@p1*z)-fn2(@p2*z))/(z+c) elseif @type == "^" w=(fn1(@p1*z)-fn2(@p2*z))^(z+c) endif elseif @op1 == "*" if @type == "+" w=(fn1(@p1*z)*fn2(@p2*z))+(z+c) elseif @type == "-" w=(fn1(@p1*z)*fn2(@p2*z))-(z+c) elseif @type == "*" w=(fn1(@p1*z)*fn2(@p2*z))*(z+c) elseif @type == "/" w=(fn1(@p1*z)*fn2(@p2*z))/(z+c) elseif @type == "^" w=(fn1(@p1*z)*fn2(@p2*z))^(z+c) endif elseif @op1 == "/" if @type == "+" w=(fn1(@p1*z)/fn2(@p2*z))+(z+c) elseif @type == "-" w=(fn1(@p1*z)/fn2(@p2*z))-(z+c) elseif @type == "*" w=(fn1(@p1*z)/fn2(@p2*z))*(z+c) elseif @type == "/" w=(fn1(@p1*z)/fn2(@p2*z))/(z+c) elseif @type == "^" w=(fn1(@p1*z)/fn2(@p2*z))^(z+c) endif elseif @op1 == "^" if @type == "+" w=(fn1(@p1*z)^fn2(@p2*z))+(z+c) elseif @type == "-" w=(fn1(@p1*z)^fn2(@p2*z))-(z+c) elseif @type == "*" w=(fn1(@p1*z)^fn2(@p2*z))*(z+c) elseif @type == "/" w=(fn1(@p1*z)^fn2(@p2*z))/(z+c) elseif @type == "^" w=(fn1(@p1*z)^fn2(@p2*z))^(z+c) endif endif if @op2 == "+" if @type1 == "+" j=(fn3(@p3+z)+fn4(@p4+z))+(z+c) elseif @type1 == "-" j=(fn3(@p3+z)+fn4(@p4+z))-(z+c) elseif @type1 == "*" j=(fn3(@p3+z)+fn4(@p4+z))*(z+c) elseif @type1 == "/" j=(fn3(@p3+z)+fn4(@p4+z))/(z+c) elseif @type1 == "^" j=(fn3(@p3+z)+fn4(@p4+z))^(z+c) endif elseif @op2 == "-" if @type1 == "+" j=(fn3(@p3+z)-fn4(@p4+z))+(z+c) elseif @type1 == "-" j=(fn3(@p3+z)-fn4(@p4+z))-(z+c) elseif @type1 == "*" j=(fn3(@p3+z)-fn4(@p4+z))*(z+c) elseif @type1 == "/" j=(fn3(@p3+z)-fn4(@p4+z))/(z+c) elseif @type1 == "^" j=(fn3(@p3+z)-fn4(@p4+z))^(z+c) endif elseif @op2 == "*" if @type1 == "+" j=(fn3(@p3+z)*fn4(@p4+z))+(z+c) elseif @type1 == "-" j=(fn3(@p3+z)*fn4(@p4+z))-(z+c) elseif @type1 == "*" j=(fn3(@p3+z)*fn4(@p4+z))*(z+c) elseif @type1 == "/" j=(fn3(@p3+z)*fn4(@p4+z))/(z+c) elseif @type1 == "^" j=(fn3(@p3+z)*fn4(@p4+z))^(z+c) endif elseif @op2 == "/" if @type1 == "+" j=(fn3(@p3+z)/fn4(@p4+z))+(z+c) elseif @type1 == "-" j=(fn3(@p3+z)/fn4(@p4+z))-(z+c) elseif @type1 == "*" j=(fn3(@p3+z)/fn4(@p4+z))*(z+c) elseif @type1 == "/" j=(fn3(@p3+z)/fn4(@p4+z))/(z+c) elseif @type1 == "^" j=(fn3(@p3+z)/fn4(@p4+z))^(z+c) endif elseif @op2 == "^" if @type1 == "+" j=(fn3(@p3+z)^fn4(@p4+z))+(z+c) elseif @type1 == "-" j=(fn3(@p3+z)^fn4(@p4+z))-(z+c) elseif @type1 == "*" j=(fn3(@p3+z)^fn4(@p4+z))*(z+c) elseif @type1 == "/" j=(fn3(@p3+z)^fn4(@p4+z))/(z+c) elseif @type1 == "^" j=(fn3(@p3+z)^fn4(@p4+z))^(z+c) endif endif if @op3 == "+" if @type2 == "+" z=@fn5(z*@p5)+(w*j)+x elseif @type2 == "-" z=@fn5(z*@p5)-(w*j)+x elseif @type2 == "*" z=@fn5(z*@p5)*(w*j)+x elseif @type2 == "/" z=@fn5(z*@p5)/(w*j)+x elseif @type2 == "^" z=@fn5(z*@p5)^(w*j)+x endif elseif @op3 == "-" if @type2 == "+" z=@fn5(z*@p5)+(w*j)-x elseif @type2 == "-" z=@fn5(z*@p5)-(w*j)-x elseif @type2 == "*" z=@fn5(z*@p5)*(w*j)-x elseif @type2 == "/" z=@fn5(z*@p5)/(w*j)-x elseif @type2 == "^" z=@fn5(z*@p5)^(w*j)-x endif elseif @op3 == "*" if @type2 == "+" z=@fn5(z*@p5)+(w*j)*x elseif @type2 == "-" z=@fn5(z*@p5)-(w*j)*x elseif @type2 == "*" z=@fn5(z*@p5)*(w*j)*x elseif @type2 == "/" z=@fn5(z*@p5)/(w*j)*x elseif @type2 == "^" z=@fn5(z*@p5)^(w*j)*x endif elseif @op3 == "/" if @type2 == "+" z=@fn5(z*@p5)+(w*j)/x elseif @type2 == "-" z=@fn5(z*@p5)-(w*j)/x elseif @type2 == "*" z=@fn5(z*@p5)*(w*j)/x elseif @type2 == "/" z=@fn5(z*@p5)/(w*j)/x elseif @type2 == "^" z=@fn5(z*@p5)^(w*j)/x endif elseif @op3 == "^" if @type2 == "+" z=@fn5(z*@p5)+(w*j)^x elseif @type2 == "-" z=@fn5(z*@p5)-(w*j)^x elseif @type2 == "*" z=@fn5(z*@p5)*(w*j)^x elseif @type2 == "/" z=@fn5(z*@p5)/(w*j)^x elseif @type2 == "^" z=@fn5(z*@p5)^(w*j)^x endif endif Bailout: |z| < @bailout Default: title="Kyra-J" angle=90 center=(0.0,0.0) magn=1.0 maxiter=250 method=multipass periodicity=0 param bailout caption="Bailout Value" default=7.0 min=0.0 endparam Heading caption="Operators and Parameters" endheading param seed caption="Seed Value" default=(-0.0375,-0.19375) endparam param change caption="Change" enum="c+z""z-c""c-z""z*c""z/c""c/z""z^c""c^z" default=0 endparam param type caption="Type" enum="+""-""*""/""^" default=0 endparam param type1 caption="Type1" enum="+""-""*""/""^" default=0 endparam param type2 caption="Type2" enum="+""-""*""/""^" default=3 endparam param op1 caption="Operator 1" enum="+""-""*""/""^" default=4 endparam param op2 caption="Operator 2" enum="+""-""*""/""^" default=4 endparam param op3 caption="Operator 3" enum="+""-""*""/""^" default=0 endparam param p1 caption="Parameter 1" default=(1.0,0.0) endparam param p2 caption="Parameter 2" default=(1.0,0.0) endparam param p3 caption="Parameter 3" default=(1.0,0.0) endparam param p4 caption="Parameter 4" default=(1.0,0.0) endparam param p5 caption="Parameter 5" default=(1.0,0.0) endparam param invert caption="Invert Z" default=false endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=sinh() endfunc func fn2 caption="Function 2" default=cos() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=cabs() endfunc func fn5 caption="Function 5" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Kyra-M" bailout=@bailout @seed=#pixel fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 change=@change invert=@invert type =@type type1=@type1 type2=@type2 op1=@op1 op2=@op2 op3=@op3 version=@version } Kyra-M { ;Thanks To Toby Marshall ;Andrea Spinozzi(Updated Aug2004) Init: z=@start c=pixel x=c+z w=fn1(@p1+z)+fn2(@p2+z) j=fn3(@p3+z)+@fn4(@p4+z) Loop: if @invert == true z=1/z endif if @change == "c+z" x=z+c elseif @change == "z-c" x=z-c elseif @change == "c-z" x=c-z elseif @change == "z*c" x=z*c elseif @change == "z/c" x=z/c elseif @change == "c/z" x=c/z elseif @change == "z^c" x=z^c elseif @change == "c^z" x=c^z endif if @op1 == "+" if @type == "+" w=(fn1(@p1*z)+fn2(@p2*z))+(z+c) elseif @type == "-" w=(fn1(@p1*z)+fn2(@p2*z))-(z+c) elseif @type == "*" w=(fn1(@p1*z)+fn2(@p2*z))*(z+c) elseif @type == "/" w=(fn1(@p1*z)+fn2(@p2*z))/(z+c) elseif @type == "^" w=(fn1(@p1*z)+fn2(@p2*z))^(z+c) endif elseif @op1 == "-" if @type == "+" w=(fn1(@p1*z)-fn2(@p2*z))+(z+c) elseif @type == "-" w=(fn1(@p1*z)-fn2(@p2*z))-(z+c) elseif @type == "*" w=(fn1(@p1*z)-fn2(@p2*z))*(z+c) elseif @type == "/" w=(fn1(@p1*z)-fn2(@p2*z))/(z+c) elseif @type == "^" w=(fn1(@p1*z)-fn2(@p2*z))^(z+c) endif elseif @op1 == "*" if @type == "+" w=(fn1(@p1*z)*fn2(@p2*z))+(z+c) elseif @type == "-" w=(fn1(@p1*z)*fn2(@p2*z))-(z+c) elseif @type == "*" w=(fn1(@p1*z)*fn2(@p2*z))*(z+c) elseif @type == "/" w=(fn1(@p1*z)*fn2(@p2*z))/(z+c) elseif @type == "^" w=(fn1(@p1*z)*fn2(@p2*z))^(z+c) endif elseif @op1 == "/" if @type == "+" w=(fn1(@p1*z)/fn2(@p2*z))+(z+c) elseif @type == "-" w=(fn1(@p1*z)/fn2(@p2*z))-(z+c) elseif @type == "*" w=(fn1(@p1*z)/fn2(@p2*z))*(z+c) elseif @type == "/" w=(fn1(@p1*z)/fn2(@p2*z))/(z+c) elseif @type == "^" w=(fn1(@p1*z)/fn2(@p2*z))^(z+c) endif elseif @op1 == "^" if @type == "+" w=(fn1(@p1*z)^fn2(@p2*z))+(z+c) elseif @type == "-" w=(fn1(@p1*z)^fn2(@p2*z))-(z+c) elseif @type == "*" w=(fn1(@p1*z)^fn2(@p2*z))*(z+c) elseif @type == "/" w=(fn1(@p1*z)^fn2(@p2*z))/(z+c) elseif @type == "^" w=(fn1(@p1*z)^fn2(@p2*z))^(z+c) endif endif if @op2 == "+" if @type1 == "+" j=(fn3(@p3+z)+fn4(@p4+z))+(z+c) elseif @type1 == "-" j=(fn3(@p3+z)+fn4(@p4+z))-(z+c) elseif @type1 == "*" j=(fn3(@p3+z)+fn4(@p4+z))*(z+c) elseif @type1 == "/" j=(fn3(@p3+z)+fn4(@p4+z))/(z+c) elseif @type1 == "^" j=(fn3(@p3+z)+fn4(@p4+z))^(z+c) endif elseif @op2 == "-" if @type1 == "+" j=(fn3(@p3+z)-fn4(@p4+z))+(z+c) elseif @type1 == "-" j=(fn3(@p3+z)-fn4(@p4+z))-(z+c) elseif @type1 == "*" j=(fn3(@p3+z)-fn4(@p4+z))*(z+c) elseif @type1 == "/" j=(fn3(@p3+z)-fn4(@p4+z))/(z+c) elseif @type1 == "^" j=(fn3(@p3+z)-fn4(@p4+z))^(z+c) endif elseif @op2 == "*" if @type1 == "+" j=(fn3(@p3+z)*fn4(@p4+z))+(z+c) elseif @type1 == "-" j=(fn3(@p3+z)*fn4(@p4+z))-(z+c) elseif @type1 == "*" j=(fn3(@p3+z)*fn4(@p4+z))*(z+c) elseif @type1 == "/" j=(fn3(@p3+z)*fn4(@p4+z))/(z+c) elseif @type1 == "^" j=(fn3(@p3+z)*fn4(@p4+z))^(z+c) endif elseif @op2 == "/" if @type1 == "+" j=(fn3(@p3+z)/fn4(@p4+z))+(z+c) elseif @type1 == "-" j=(fn3(@p3+z)/fn4(@p4+z))-(z+c) elseif @type1 == "*" j=(fn3(@p3+z)/fn4(@p4+z))*(z+c) elseif @type1 == "/" j=(fn3(@p3+z)/fn4(@p4+z))/(z+c) elseif @type1 == "^" j=(fn3(@p3+z)/fn4(@p4+z))^(z+c) endif elseif @op2 == "^" if @type1 == "+" j=(fn3(@p3+z)^fn4(@p4+z))+(z+c) elseif @type1 == "-" j=(fn3(@p3+z)^fn4(@p4+z))-(z+c) elseif @type1 == "*" j=(fn3(@p3+z)^fn4(@p4+z))*(z+c) elseif @type1 == "/" j=(fn3(@p3+z)^fn4(@p4+z))/(z+c) elseif @type1 == "^" j=(fn3(@p3+z)^fn4(@p4+z))^(z+c) endif endif if @op3 == "+" if @type2 == "+" z=@fn5(z*@p5)+(w*j)+x elseif @type2 == "-" z=@fn5(z*@p5)-(w*j)+x elseif @type2 == "*" z=@fn5(z*@p5)*(w*j)+x elseif @type2 == "/" z=@fn5(z*@p5)/(w*j)+x elseif @type2 == "^" z=@fn5(z*@p5)^(w*j)+x endif elseif @op3 == "-" if @type2 == "+" z=@fn5(z*@p5)+(w*j)-x elseif @type2 == "-" z=@fn5(z*@p5)-(w*j)-x elseif @type2 == "*" z=@fn5(z*@p5)*(w*j)-x elseif @type2 == "/" z=@fn5(z*@p5)/(w*j)-x elseif @type2 == "^" z=@fn5(z*@p5)^(w*j)-x endif elseif @op3 == "*" if @type2 == "+" z=@fn5(z*@p5)+(w*j)*x elseif @type2 == "-" z=@fn5(z*@p5)-(w*j)*x elseif @type2 == "*" z=@fn5(z*@p5)*(w*j)*x elseif @type2 == "/" z=@fn5(z*@p5)/(w*j)*x elseif @type2 == "^" z=@fn5(z*@p5)^(w*j)*x endif elseif @op3 == "/" if @type2 == "+" z=@fn5(z*@p5)+(w*j)/x elseif @type2 == "-" z=@fn5(z*@p5)-(w*j)/x elseif @type2 == "*" z=@fn5(z*@p5)*(w*j)/x elseif @type2 == "/" z=@fn5(z*@p5)/(w*j)/x elseif @type2 == "^" z=@fn5(z*@p5)^(w*j)/x endif elseif @op3 == "^" if @type2 == "+" z=@fn5(z*@p5)+(w*j)^x elseif @type2 == "-" z=@fn5(z*@p5)-(w*j)^x elseif @type2 == "*" z=@fn5(z*@p5)*(w*j)^x elseif @type2 == "/" z=@fn5(z*@p5)/(w*j)^x elseif @type2 == "^" z=@fn5(z*@p5)^(w*j)^x endif endif Bailout: |z| < @bailout Default: title="Kyra-M" angle=90 center=(0.0,0.0) magn=1.0 maxiter=250 method=multipass periodicity=0 param bailout caption="Bailout Value" default=7.0 min=0.0 endparam Heading caption="Operators and Parameters" endheading param start caption="Start Value" default=(0.5,0.0) endparam param change caption="Change" enum="c+z""z-c""c-z""z*c""z/c""c/z""z^c""c^z" default=0 endparam param type caption="Type" enum="+""-""*""/""^" default=0 endparam param type1 caption="Type1" enum="+""-""*""/""^" default=0 endparam param type2 caption="Type2" enum="+""-""*""/""^" default=3 endparam param op1 caption="Operator 1" enum="+""-""*""/""^" default=4 endparam param op2 caption="Operator 2" enum="+""-""*""/""^" default=4 endparam param op3 caption="Operator 3" enum="+""-""*""/""^" default=0 endparam param p1 caption="Parameter 1" default=(1.0,0.0) endparam param p2 caption="Parameter 2" default=(1.0,0.0) endparam param p3 caption="Parameter 3" default=(1.0,0.0) endparam param p4 caption="Parameter 4" default=(1.0,0.0) endparam param p5 caption="Parameter 5" default=(1.0,0.0) endparam param invert caption="Invert Z" default=false endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=sinh() endfunc func fn2 caption="Function 2" default=cos() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=cabs() endfunc func fn5 caption="Function 5" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Kyra-J" bailout=@bailout @seed=#pixel fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 change=@change invert=@invert type =@type type1=@type1 type2=@type2 op1=@op1 op2=@op2 op3=@op3 version=@version } MamaBrot { ;I want to do all my thanks to All people in list to ;help me to explore the wonderful world of fractals. ;So All of you. ;Andrea Spinozzi(Sep2003) Init: z=@startseed c=pixel k=1 if (@Mode == "Mandelbrot") z=@startSeed endif if @mode == "Julia" z=#pixel c=@startSeed if @scale != 1.0 z=z/@scale endif if @center != (0,0) z=z + @center endif endif Loop: if (@invert == true) z=1/z endif j=real(atan(z)) w=imag(atan(z)) d=fn1(c) f=recip(z) g=fn2(z) h=fn3(c) if @op=="1" z=(((d*g)*cotan(@p)*z)+(h*c))*atan(p1) elseif @op=="2" z=(((d*g)*cotan(p2)*z)+((f*h)*sqr(z))*c)*atan(p3) elseif @op=="3" z=(((d*g)*cotan(p4)*z)*((f*h)/sqr(z))*c)*atan(p5) elseif @op=="4" z=(((d*g)*cotan(@p8)*z)+(h+sqr(c)))*atan(@p9) elseif @op=="5" z=(((d*g)*cotan(@p10)*z)+(h*sqr(c)))*atan(@p11) elseif @op=="6" z=(((d*g)*cotan(@p12)*z)+(h*c^sqr(c)))*atan(@p13) elseif @op=="7" z=(((d*g)*cotan(@p14)*z)+(h*sqr(c)^c))*atan(@p15) endif if @test==0 if |z|<|@bailout| k=1 else k=0 endif elseif @test==1 if |real(z)+imag(z)*(j*w)|<|@bailout| k=1 else k=0 endif elseif @test==2 if |real(z)-imag(z)*(j*w)|<|@bailout| k=1 else k=0 endif elseif @test==3 if |real(z)*imag(z)*(j*w)|<|@bailout| k=1 else k=0 endif elseif @test==4 if |(real(z)^(@p6*z))/(imag(z)^(@p7*z))*(j*w)|<|@bailout| k=1 else k=0 endif elseif @test==5 if |(imag(z)^(@p7*z))/(real(z)^(@p6*z))*(j*w)|<|@bailout| k=1 else k=0 endif elseif @test==6 if |(real(z)^imag(z))*(j*w)|<|@bailout| k=1 else k=0 endif elseif @test==7 if |(imag(z)^real(z))*(j*w)|<|@bailout| k=1 else k=0 endif elseif @test==8 if |z*fn4(z)|<|@bailout| k=1 else k=0 endif endif Bailout: k==1 Default: title="MamaBrot" center=(0.0,0.0) magn=0.5 maxiter= 250 angle=90 method=multipass periodicity=0 param mode caption="Current mode" default=0 enum="Mandelbrot" "Julia" endparam param switchMode caption="Switch to" default=1 enum="Mandelbrot" "Julia" endparam Heading caption="Bailout Parameters" endHeading param bailout caption="Bailout Value" default=4.0 min=0.0 endparam param test caption="Bailout Mode 1" enum="|z|""real+imag""imag-real""real*imag""real/imag"\ "imag/real""real^imag""imag^real""z*Func.Bailout(z)" default=0 endparam param p6 caption ="1st Param.Bailout" default=(0.05,0.05) visible=(@test==4)!=(@test==5) endparam param p7 caption ="2nd Param.Bailout" default=(0.05,0.05) visible=(@test==4)!=(@test==5) endparam func fn4 caption="Func. Bailout" default=sin() visible=(@test==8) endfunc Heading caption="Switch Parameters" visible=@show endheading param @show caption="Show Switch Parameters" default=false endparam param swscale caption="Scale" default=1.0 visible=@show endparam param swcenter caption="Switch Center" default=(0.0,0.0) visible=@show endparam param Scale caption="Reset Magnification" default= 1.0 visible=@show endparam param center caption="Reset Center" default=(0.0,0.0) visible=@show endparam Heading caption="Operators and Parameters" endheading param @op caption="Select Mode" enum="1""2""3""4""5""6""7" default= 0 endparam param @startseed caption="Init Z/Seed Value" default=(-0.575,-4.519767807e-19) endparam param invert Caption="Invert" default=False endparam param p caption ="Param.1 Mode1" default=(1.0,0.0) visible=(@op=="1") endparam param p1 caption ="Param.2 Mode1" default=(0.8,0.0) visible=(@op=="1") endparam param p2 caption ="Param.1 Mode2" default=(0.8,0.0) visible=(@op=="2") endparam param p3 caption ="Param.2 Mode2" default=(0.5,0.0) visible=(@op=="2") endparam param p4 caption ="Param.1 Mode3" default=(1.0,0.0) visible=(@op=="3") endparam param p5 caption ="Param.2 Mode3" default=(0.8,0.0) visible=(@op=="3") endparam param p8 caption ="Param.1 Mode4" default=(0.8,0.0) visible=(@op=="4") endparam param p9 caption ="Param.1 Mode4" default=(0.8,0.0) visible=(@op=="4") endparam param p10 caption ="Param.1 Mode5" default=(0.8,0.0) visible=(@op=="5") endparam param p11 caption ="Param.2 Mode5" default=(0.8,0.0) visible=(@op=="5") endparam param p12 caption ="Param.1 Mode6" default=(0.8,0.0) visible=(@op=="6") endparam param p13 caption ="Param.2 Mode6" default=(0.8,0.0) visible=(@op=="6") endparam param p14 caption ="Param.1 Mode7" default=(0.8,0.0) visible=(@op=="7") endparam param p15 caption ="Param.2 Mode7" default=(0.8,0.0) visible=(@op=="7") endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=cotanh() endfunc func fn2 caption="Function 2" default=asinh() endfunc func fn3 caption="Function 3" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="MamaBrot" startseed=#pixel bailout=@bailout op=@op test=@test mode=@switchmode switchmode=@mode center=@swcenter scale=@swscale invert=@invert p=@p p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 p8=@p8 p9=@p9 p10=@p10 p11=@p11 p12=@p12 p13=@p13 p14=@p14 p15=@p15 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 version=@version } Man-Brot { ;Andrea Spinozzi(May2004) Init: complex z1=(0.0,0.0) complex z2=(0.0,0.0) complex z3=(0.0,0.0) complex z4=(0.0,0.0) complex c1=(0.0,0.0) complex c2=(0.0,0.0) complex c3=(0.0,0.0) complex c4=(0.0,0.0) if (@mode == "Mandelbrot") complex z1=fn1(#pixel) complex z2=(0.0,0.0) complex z3=(0.0,0.0) complex z4=(0.0,0.0) complex c2=(0.0,0.0) complex c3=(0.0,0.0) complex c4=(0.0,0.0) complex c1=pixel elseif (@mode == "Julia") complex z1=fn1(#pixel) complex z2=(0.0,0.0) complex z3=(0.0,0.0) complex z4=(0.0,0.0) complex c2=(0.0,0.0) complex c3=(0.0,0.0) complex c4=(0.0,0.0) complex c1=@seed endif Loop: t1=(fn2(z1)^p1+z2^2+2*z3*z4) t2=(2*z1*z2+z3^2+z4^2) t3=(2*z1*z3+2*z2*z4)+real(p2) t4=(2*z1*z4+2*z2*z3)+imag(p2) z1=fn3(t1)+c1^p3 z2=t2 - c2 z3=t3 + c3 z4=t4 - c4 if (@flavor == 0) z=fn4(z1)+z2+z3+z4 elseif (@flavor == 1) z=fn4(z1)-z2+z3+z4 elseif (@flavor == 2) z=-fn4(z1)+z2+z3+z4 elseif (@flavor == 3) z=-fn4(z1)-z2+z3+z4 elseif (@flavor == 4) z=1/fn4(z1)+z2+z3+z4 elseif (@flavor == 5) z=1/fn4(z1)-z2+z3+z4 endif Bailout: |z1|+|z2|+|z3|+|z4|<=@bailout Default: title="Man-Brot" method=multipass periodicity=0 maxiter=250 magn=1.0 param bailout caption="Bailout Value" default=64.0 min=0.0 endparam param flavor caption="Bailout Flavor" enum="1""2""3""4""5""6" endparam func fn4 caption="Function Flavor" default=ident() endfunc Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param seed caption="Julia Seed" default=(0.0, 0.0) visible=(@mode == "Julia") endparam param p1 caption="Exponent z1" default=(2.0,0.0) endparam param p2 caption="Real|Image t3,t4" default=(0.0,0.0) endparam param p3 caption="Exponent c1" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Init Pixel Func" default=ident() endfunc func fn2 caption="Func 1" default=ident() endfunc func fn3 caption="Func 2" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Man-Brot" seed=#pixel p1=@p1 p2=@p2 p3=@p3 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 flavor=@flavor bailout=@bailout mode=@switchmode switchmode=@mode version=@version } As-Mandel { ;Andrea Spinozzi(July2004) Init: complex z=c=(0.0,0.0) complex x=y=(0.0,0.0) if (@mode=="Mandelbrot") complex z=(0.0,0.0) complex c=pixel if (@init==0) complex x=pixel complex y=pixel elseif (@init==1) complex x=fn1(real(pixel)) complex y=fn2(imag(pixel)) endif elseif (@mode=="Julia") complex z=pixel complex c=@seed if (@juliavar==0) if (@init==0) complex x=pixel complex y=pixel elseif (@init==1) complex x=fn1(real(pixel)) complex y=fn2(imag(pixel)) endif elseif (@juliavar==1) if (@init==0) complex x=pixel complex y=@seed elseif (@init==1) complex x=fn1(real(pixel)*@seed) complex y=fn2(imag(pixel)*@seed) endif endif endif Loop: x=(@fn7(x*x)^p1+@fn9(c))-@fn8(x*y)*p2 x=@fn5(x)^p3 if (@op1==0) if (@op==0) y=((x+y)+(x-y))*c elseif (@op==1) y=((x+y)-(x-y))*c elseif (@op==2) y=((x+y)*(x-y))*c endif elseif (@op1==1) if (@op==0) y=((x*y)+(x+y))*c elseif (@op==1) y=((x*y)-(x+y))*c elseif (@op==2) y=((x*y)*(x+y))*c endif elseif (@op1==2) if (@op==0) y=((x*y)+(x-y))*c elseif (@op==1) y=((x*y)-(x-y))*c elseif (@op==2) y=((x*y)*(x-y))*c endif elseif (@op1==3) if (@op==0) y=((x*y)+(x*y))*c elseif (@op==1) y=((x*y)-(x*y))*c elseif (@op==2) y=((x*y)*(x*y))*c endif endif y=@fn6(y+p4) if (@flavor==0) z=fn3(x)+fn4(y) elseif (@flavor==1) z=fn3(x)-fn4(y) endif Bailout: |x|+|y|<=@bailout Default: title="Mandel" maxiter=500 periodicity=0 method=multipass Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="Current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param bailout caption="Bailout Value" default=64.0 endparam param flavor caption="Flavor" enum="1""2" default=0 endparam func fn3 caption="Function Flavor 1" default=ident() endfunc func fn4 caption="Function Flavor 2" default=ident() endfunc Heading caption="Operators and Parameters" Endheading param juliavar caption="Julia Variant" enum="1""2" default=1 endparam param init caption="Init Mode" enum="Normal""Function Re|Im" default=0 endparam param op caption="Operator 1" enum="1""2""3" default=2 endparam param op1 caption="Operator 2" enum="1""2""3""4" default=2 endparam param seed caption="Seed Value" default=(0.0,0.0) visible=(@mode=="Julia") endparam param p2 caption="Parameter 1" default=(1.0,0.0) endparam param p4 caption="Parameter 2" default=(0.0,0.0) endparam param p1 caption="Exponent 1" default=(1.0,0.0) endparam param p3 caption="Exponent 2" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1|Re" default=abs() visible=(@init==1) endfunc func fn2 caption="Function 2|Im" default=flip() visible=(@init==1) endfunc func fn5 caption="Function 1" default=ident() endfunc func fn6 caption="Function 2" default=ident() endfunc func fn7 caption="Function 3" default=ident() endfunc func fn8 caption="Function 4" default=ident() endfunc func fn9 caption="Function c" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="As-Mandel" seed=#pixel bailout=@bailout juliavar=@juliavar flavor=@flavor init=@init op=@op op1=@op1 p1=@p1 p2=@p2 p3=@p3 p4=@p4 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 fn8=@fn8 fn9=@fn9 mode=@switchmode switchmode=@mode version=@version } As-Mandel_4-D { ;Based on a formula in the Orgform collection, Mandel_4-d, in , _m.frm. ;AndreaSpinozzi(May2004) Init: z=(pixel) c=(pixel) b=(p4) g=(p3) d=(p2+2) z1= (0.0,0.0) if (@mode == "Mandelbrot") z=(p1) c=(pixel) b=(p4) g=(p3) d=(p2+2) elseif (@mode == "Julia") if (@varJulia == 0) z=(pixel) c=(@seed) b=(p4) g=(p3) d=(p2+2) elseif (@varJulia == 1) z=(@seed) c=(pixel) b=(p4) g=(p3) d=(p2+2) elseif (@varJulia == 2) z=(p1) c=(pixel) b=(p4) g=(@seed) d=(p2+2) elseif (@varJulia == 3) z=(p1) c=(pixel) b=(@seed) g=(p3) d=(p2+2) elseif (@varJulia == 4) z=(p1) c=(pixel) b=(p4) g=(p3) d=(@seed+2) endif endif Loop: b=fn3(b) if (@method1 == 0) ;----------------METHOD 1=0------------- if (@method == 0) if (@select1 == 0) if (@select == 0) f=sqr(z)-sqr(b)+c b=(d*z*b)+g z1=fn2(f)+fn1(z) elseif (@select == 1) f=sqr(z)-sqr(b)+c b=(d*z+b)+g z1=fn2(f)+fn1(z) elseif (@select == 2) f=sqr(z)-sqr(b)+c b=(d*z^b)+g z1=fn2(f)+fn1(z) elseif (@select == 3) f=sqr(z)-sqr(b)+c b=(d^z+b)+g z1=fn2(f)+fn1(z) elseif (@select == 4) f=sqr(z)-sqr(b)+c b=(d-z+b)+g z1=fn2(f)+fn1(z) elseif (@select == 5) f=sqr(z)-sqr(b)+c b=(b^d-z)+g z1=fn2(f)+fn1(z) elseif (@select == 6) f=sqr(z)-sqr(b)+c b=(d^z^b)+g z1=fn2(f)+fn1(z) endif elseif (@select1 == 1) if (@select == 0) f=sqr(z)-sqr(b)+c b=(d*z*b)+g z1=fn2(f)-fn1(z) elseif (@select == 1) f=sqr(z)-sqr(b)+c b=(d*z+b)+g z1=fn2(f)-fn1(z) elseif (@select == 2) f=sqr(z)-sqr(b)+c b=(d*z^b)+g z1=fn2(f)-fn1(z) elseif (@select == 3) f=sqr(z)-sqr(b)+c b=(d^z+b)+g z1=fn2(f)-fn1(z) elseif (@select == 4) f=sqr(z)-sqr(b)+c b=(d-z+b)+g z1=fn2(f)-fn1(z) elseif (@select == 5) f=sqr(z)-sqr(b)+c b=(b^d-z)+g z1=fn2(f)-fn1(z) elseif (@select == 6) f=sqr(z)-sqr(b)+c b=(d^z^b)+g z1=fn2(f)-fn1(z) endif elseif (@select1 == 2) if (@select == 0) f=sqr(z)-sqr(b)+c b=(d*z*b)+g z1=fn2(f)*fn1(z) elseif (@select == 1) f=sqr(z)-sqr(b)+c b=(d*z+b)+g z1=fn2(f)*fn1(z) elseif (@select == 2) f=sqr(z)-sqr(b)+c b=(d*z^b)+g z1=fn2(f)*fn1(z) elseif (@select == 3) f=sqr(z)-sqr(b)+c b=(d^z+b)+g z1=fn2(f)*fn1(z) elseif (@select == 4) f=sqr(z)-sqr(b)+c b=(d-z+b)+g z1=fn2(f)*fn1(z) elseif (@select == 5) f=sqr(z)-sqr(b)+c b=(b^d-z)+g z1=fn2(f)*fn1(z) elseif (@select == 6) f=sqr(z)-sqr(b)+c b=(d^z^b)+g z1=fn2(f)*fn1(z) endif endif elseif (@method == 1) ;-------Change-------------- if (@select1 == 0) if (@select == 0) f=sqr(z)-sqr(b)+c b=(d*z*b)+g z1=(fn2(f)+fn1(z))*@fn5(c) elseif (@select == 1) f=sqr(z)-sqr(b)+c b=(d*z+b)+g z1=(fn2(f)+fn1(z))*@fn5(c) elseif (@select == 2) f=sqr(z)-sqr(b)+c b=(d*z^b)+g z1=(fn2(f)+fn1(z))*@fn5(c) elseif (@select == 3) f=sqr(z)-sqr(b)+c b=(d^z+b)+g z1=(fn2(f)+fn1(z))*@fn5(c) elseif (@select == 4) f=sqr(z)-sqr(b)+c b=(d-z+b)+g z1=(fn2(f)+fn1(z))*@fn5(c) elseif (@select == 5) f=sqr(z)-sqr(b)+c b=(b^d-z)+g z1=(fn2(f)+fn1(z))*@fn5(c) elseif (@select == 6) f=sqr(z)-sqr(b)+c b=(d^z^b)+g z1=(fn2(f)+fn1(z))*@fn5(c) endif elseif (@select1 == 1) if (@select == 0) f=sqr(z)-sqr(b)+c b=(d*z*b)+g z1=(fn2(f)-fn1(z))*@fn5(c) elseif (@select == 1) f=sqr(z)-sqr(b)+c b=(d*z+b)+g z1=(fn2(f)-fn1(z))*@fn5(c) elseif (@select == 2) f=sqr(z)-sqr(b)+c b=(d*z^b)+g z1=(fn2(f)-fn1(z))*@fn5(c) elseif (@select == 3) f=sqr(z)-sqr(b)+c b=(d^z+b)+g z1=(fn2(f)-fn1(z))*@fn5(c) elseif (@select == 4) f=sqr(z)-sqr(b)+c b=(d-z+b)+g z1=(fn2(f)-fn1(z))*@fn5(c) elseif (@select == 5) f=sqr(z)-sqr(b)+c b=(b^d-z)+g z1=(fn2(f)-fn1(z))*@fn5(c) elseif (@select == 6) f=sqr(z)-sqr(b)+c b=(d^z^b)+g z1=(fn2(f)-fn1(z))*@fn5(c) endif elseif (@select1 == 2) if (@select == 0) f=sqr(z)-sqr(b)+c b=(d*z*b)+g z1=(fn2(f)*fn1(z))*@fn5(c) elseif (@select == 1) f=sqr(z)-sqr(b)+c b=(d*z+b)+g z1=(fn2(f)*fn1(z))*@fn5(c) elseif (@select == 2) f=sqr(z)-sqr(b)+c b=(d*z^b)+g z1=(fn2(f)*fn1(z))*@fn5(c) elseif (@select == 3) f=sqr(z)-sqr(b)+c b=(d^z+b)+g z1=(fn2(f)*fn1(z))*@fn5(c) elseif (@select == 4) f=sqr(z)-sqr(b)+c b=(d-z+b)+g z1=(fn2(f)*fn1(z))*@fn5(c) elseif (@select == 5) f=sqr(z)-sqr(b)+c b=(b^d-z)+g z1=(fn2(f)*fn1(z))*@fn5(c) elseif (@select == 6) f=sqr(z)-sqr(b)+c b=(d^z^b)+g z1=(fn2(f)*fn1(z))*@fn5(c) endif endif endif elseif (@method1 == 1) ;----------METHOD 1=1--------------- if (@method == 0) if (@select1 == 0) if (@select == 0) f=sqr(b)-sqr(z)+c b=(d*z*b)+g z1=fn2(f)+fn1(z) elseif (@select == 1) f=sqr(b)-sqr(z)+c b=(d*z+b)+g z1=fn2(f)+fn1(z) elseif (@select == 2) f=sqr(b)-sqr(z)+c b=(d*z^b)+g z1=fn2(f)+fn1(z) elseif (@select == 3) f=sqr(b)-sqr(z)+c b=(d^z+b)+g z1=fn2(f)+fn1(z) elseif (@select == 4) f=sqr(b)-sqr(z)+c b=(d-z+b)+g z1=fn2(f)+fn1(z) elseif (@select == 5) f=sqr(b)-sqr(z)+c b=(b^d-z)+g z1=fn2(f)+fn1(z) elseif (@select == 6) f=sqr(b)-sqr(z)+c b=(d^z^b)+g z1=fn2(f)+fn1(z) endif elseif (@select1 == 1) if (@select == 0) f=sqr(b)-sqr(z)+c b=(d*z*b)+g z1=fn2(f)-fn1(z) elseif (@select == 1) f=sqr(b)-sqr(z)+c b=(d*z+b)+g z1=fn2(f)-fn1(z) elseif (@select == 2) f=sqr(b)-sqr(z)+c b=(d*z^b)+g z1=fn2(f)-fn1(z) elseif (@select == 3) f=sqr(b)-sqr(z)+c b=(d^z+b)+g z1=fn2(f)-fn1(z) elseif (@select == 4) f=sqr(b)-sqr(z)+c b=(d-z+b)+g z1=fn2(f)-fn1(z) elseif (@select == 5) f=sqr(b)-sqr(z)+c b=(b^d-z)+g z1=fn2(f)-fn1(z) elseif (@select == 6) f=sqr(b)-sqr(z)+c b=(d^z^b)+g z1=fn2(f)-fn1(z) endif elseif (@select1 == 2) if (@select == 0) f=sqr(b)-sqr(z)+c b=(d*z*b)+g z1=fn2(f)*fn1(z) elseif (@select == 1) f=sqr(b)-sqr(z)+c b=(d*z+b)+g z1=fn2(f)*fn1(z) elseif (@select == 2) f=sqr(b)-sqr(z)+c b=(d*z^b)+g z1=fn2(f)*fn1(z) elseif (@select == 3) f=sqr(b)-sqr(z)+c b=(d^z+b)+g z1=fn2(f)*fn1(z) elseif (@select == 4) f=sqr(b)-sqr(z)+c b=(d-z+b)+g z1=fn2(f)*fn1(z) elseif (@select == 5) f=sqr(b)-sqr(z)+c b=(b^d-z)+g z1=fn2(f)*fn1(z) elseif (@select == 6) f=sqr(b)-sqr(z)+c b=(d^z^b)+g z1=fn2(f)*fn1(z) endif endif elseif (@method == 1) ;-------Change-------------- if (@select1 == 0) if (@select == 0) f=sqr(b)-sqr(z)+c b=(d*z*b)+g z1=(fn2(f)+fn1(z))*@fn5(c) elseif (@select == 1) f=sqr(b)-sqr(z)+c b=(d*z+b)+g z1=(fn2(f)+fn1(z))*@fn5(c) elseif (@select == 2) f=sqr(b)-sqr(z)+c b=(d*z^b)+g z1=(fn2(f)+fn1(z))*@fn5(c) elseif (@select == 3) f=sqr(b)-sqr(z)+c b=(d^z+b)+g z1=(fn2(f)+fn1(z))*@fn5(c) elseif (@select == 4) f=sqr(b)-sqr(z)+c b=(d-z+b)+g z1=(fn2(f)+fn1(z))*@fn5(c) elseif (@select == 5) f=sqr(b)-sqr(z)+c b=(b^d-z)+g z1=(fn2(f)+fn1(z))*@fn5(c) elseif (@select == 6) f=sqr(b)-sqr(z)+c b=(d^z^b)+g z1=(fn2(f)+fn1(z))*@fn5(c) endif elseif (@select1 == 1) if (@select == 0) f=sqr(b)-sqr(z)+c b=(d*z*b)+g z1=(fn2(f)-fn1(z))*@fn5(c) elseif (@select == 1) f=sqr(b)-sqr(z)+c b=(d*z+b)+g z1=(fn2(f)-fn1(z))*@fn5(c) elseif (@select == 2) f=sqr(b)-sqr(z)+c b=(d*z^b)+g z1=(fn2(f)-fn1(z))*@fn5(c) elseif (@select == 3) f=sqr(b)-sqr(z)+c b=(d^z+b)+g z1=(fn2(f)-fn1(z))*@fn5(c) elseif (@select == 4) f=sqr(b)-sqr(z)+c b=(d-z+b)+g z1=(fn2(f)-fn1(z))*@fn5(c) elseif (@select == 5) f=sqr(b)-sqr(z)+c b=(b^d-z)+g z1=(fn2(f)-fn1(z))*@fn5(c) elseif (@select == 6) f=sqr(b)-sqr(z)+c b=(d^z^b)+g z1=(fn2(f)-fn1(z))*@fn5(c) endif elseif (@select1 == 2) if (@select == 0) f=sqr(b)-sqr(z)+c b=(d*z*b)+g z1=(fn2(f)*fn1(z))*@fn5(c) elseif (@select == 1) f=sqr(b)-sqr(z)+c b=(d*z+b)+g z1=(fn2(f)*fn1(z))*@fn5(c) elseif (@select == 2) f=sqr(b)-sqr(z)+c b=(d*z^b)+g z1=(fn2(f)*fn1(z))*@fn5(c) elseif (@select == 3) f=sqr(b)-sqr(z)+c b=(d^z+b)+g z1=(fn2(f)*fn1(z))*@fn5(c) elseif (@select == 4) f=sqr(b)-sqr(z)+c b=(d-z+b)+g z1=(fn2(f)*fn1(z))*@fn5(c) elseif (@select == 5) f=sqr(b)-sqr(z)+c b=(b^d-z)+g z1=(fn2(f)*fn1(z))*@fn5(c) elseif (@select == 6) f=sqr(b)-sqr(z)+c b=(d^z^b)+g z1=(fn2(f)*fn1(z))*@fn5(c) endif endif endif elseif (@method1 == 2) ;----------METHOD 1=2--------------- if (@method == 0) if (@select1 == 0) if (@select == 0) f=sqr(z)*sqr(b)+c b=(d*z*b)+g z1=fn2(f)+fn1(z) elseif (@select == 1) f=sqr(z)*sqr(b)+c b=(d*z+b)+g z1=fn2(f)+fn1(z) elseif (@select == 2) f=sqr(z)*sqr(b)+c b=(d*z^b)+g z1=fn2(f)+fn1(z) elseif (@select == 3) f=sqr(z)*sqr(b)+c b=(d^z+b)+g z1=fn2(f)+fn1(z) elseif (@select == 4) f=sqr(z)*sqr(b)+c b=(d-z+b)+g z1=fn2(f)+fn1(z) elseif (@select == 5) f=sqr(z)*sqr(b)+c b=(b^d-z)+g z1=fn2(f)+fn1(z) elseif (@select == 6) f=sqr(z)*sqr(b)+c b=(d^z^b)+g z1=fn2(f)+fn1(z) endif elseif (@select1 == 1) if (@select == 0) f=sqr(z)*sqr(b)+c b=(d*z*b)+g z1=fn2(f)-fn1(z) elseif (@select == 1) f=sqr(z)*sqr(b)+c b=(d*z+b)+g z1=fn2(f)-fn1(z) elseif (@select == 2) f=sqr(z)*sqr(b)+c b=(d*z^b)+g z1=fn2(f)-fn1(z) elseif (@select == 3) f=sqr(z)*sqr(b)+c b=(d^z+b)+g z1=fn2(f)-fn1(z) elseif (@select == 4) f=sqr(z)*sqr(b)+c b=(d-z+b)+g z1=fn2(f)-fn1(z) elseif (@select == 5) f=sqr(z)*sqr(b)+c b=(b^d-z)+g z1=fn2(f)-fn1(z) elseif (@select == 6) f=sqr(z)*sqr(b)+c b=(d^z^b)+g z1=fn2(f)-fn1(z) endif elseif (@select1 == 2) if (@select == 0) f=sqr(z)*sqr(b)+c b=(d*z*b)+g z1=fn2(f)*fn1(z) elseif (@select == 1) f=sqr(z)*sqr(b)+c b=(d*z+b)+g z1=fn2(f)*fn1(z) elseif (@select == 2) f=sqr(z)*sqr(b)+c b=(d*z^b)+g z1=fn2(f)*fn1(z) elseif (@select == 3) f=sqr(z)*sqr(b)+c b=(d^z+b)+g z1=fn2(f)*fn1(z) elseif (@select == 4) f=sqr(z)*sqr(b)+c b=(d-z+b)+g z1=fn2(f)*fn1(z) elseif (@select == 5) f=sqr(z)*sqr(b)+c b=(b^d-z)+g z1=fn2(f)*fn1(z) elseif (@select == 6) f=sqr(z)*sqr(b)+c b=(d^z^b)+g z1=fn2(f)*fn1(z) endif endif elseif (@method == 1) ;-------Change-------------- if (@select1 == 0) if (@select == 0) f=sqr(z)*sqr(b)+c b=(d*z*b)+g z1=(fn2(f)+fn1(z))*@fn5(c) elseif (@select == 1) f=sqr(z)*sqr(b)+c b=(d*z+b)+g z1=(fn2(f)+fn1(z))*@fn5(c) elseif (@select == 2) f=sqr(z)*sqr(b)+c b=(d*z^b)+g z1=(fn2(f)+fn1(z))*@fn5(c) elseif (@select == 3) f=sqr(z)*sqr(b)+c b=(d^z+b)+g z1=(fn2(f)+fn1(z))*@fn5(c) elseif (@select == 4) f=sqr(z)*sqr(b)+c b=(d-z+b)+g z1=(fn2(f)+fn1(z))*@fn5(c) elseif (@select == 5) f=sqr(z)*sqr(b)+c b=(b^d-z)+g z1=(fn2(f)+fn1(z))*@fn5(c) elseif (@select == 6) f=sqr(z)*sqr(b)+c b=(d^z^b)+g z1=(fn2(f)+fn1(z))*@fn5(c) endif elseif (@select1 == 1) if (@select == 0) f=sqr(z)*sqr(b)+c b=(d*z*b)+g z1=(fn2(f)-fn1(z))*@fn5(c) elseif (@select == 1) f=sqr(z)*sqr(b)+c b=(d*z+b)+g z1=(fn2(f)-fn1(z))*@fn5(c) elseif (@select == 2) f=sqr(z)*sqr(b)+c b=(d*z^b)+g z1=(fn2(f)-fn1(z))*@fn5(c) elseif (@select == 3) f=sqr(z)*sqr(b)+c b=(d^z+b)+g z1=(fn2(f)-fn1(z))*@fn5(c) elseif (@select == 4) f=sqr(z)*sqr(b)+c b=(d-z+b)+g z1=(fn2(f)-fn1(z))*@fn5(c) elseif (@select == 5) f=sqr(z)*sqr(b)+c b=(b^d-z)+g z1=(fn2(f)-fn1(z))*@fn5(c) elseif (@select == 6) f=sqr(z)*sqr(b)+c b=(d^z^b)+g z1=(fn2(f)-fn1(z))*@fn5(c) endif elseif (@select1 == 2) if (@select == 0) f=sqr(z)*sqr(b)+c b=(d*z*b)+g z1=(fn2(f)*fn1(z))*@fn5(c) elseif (@select == 1) f=sqr(z)*sqr(b)+c b=(d*z+b)+g z1=(fn2(f)*fn1(z))*@fn5(c) elseif (@select == 2) f=sqr(z)*sqr(b)+c b=(d*z^b)+g z1=(fn2(f)*fn1(z))*@fn5(c) elseif (@select == 3) f=sqr(z)*sqr(b)+c b=(d^z+b)+g z1=(fn2(f)*fn1(z))*@fn5(c) elseif (@select == 4) f=sqr(z)*sqr(b)+c b=(d-z+b)+g z1=(fn2(f)*fn1(z))*@fn5(c) elseif (@select == 5) f=sqr(z)*sqr(b)+c b=(b^d-z)+g z1=(fn2(f)*fn1(z))*@fn5(c) elseif (@select == 6) f=sqr(z)*sqr(b)+c b=(d^z^b)+g z1=(fn2(f)*fn1(z))*@fn5(c) endif endif endif endif b=fn4(b) z=(z1) Bailout: |z| < @bailout Default: title="Mandel_4-D" magn=1.0 angle=0 method=multipass periodicity=0 maxiter=250 param bailout caption="Bailout Value" default=16.0 min=0.0 endparam param varJulia caption="Select Switch" enum="1""2""3""4""5" default=0 endparam Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="Current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param @seed caption="Seed Value" default=(0.0,0.0) visible=(@mode == "Julia") endparam param method caption="Mode 1" enum="1""2" default=0 endparam param method1 caption="Mode 2" enum="1""2""3" default=0 endparam param select caption="Operator 1" enum="1""2""3""4""5""6""7" default=0 endparam param select1 caption="Operator 2" enum="1""2""3" default=0 endparam param p1 caption="Parameter 1" default=(-0.5,0.0) endparam param p2 caption="Parameter 2" default=(0.0,0.0) endparam param p3 caption="Parameter 3" default=(0.0,0.0) endparam param p4 caption="Parameter 4" default=(0.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() visible=(@method == 1) endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="As-Mandel_4-D" bailout=@bailout @seed=#pixel p1=@p1 p2=@p2 p3=@p3 p4=@p4 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 method=@method method1=@method1 varJulia=@varJulia select=@select select1=@select1 mode=@switchmode switchmode=@mode version=@version } as-matrix { ;Original formula by Giuseppe Zito and Gilles Nadeau. ;Andrea Spinozzi(Aug2004) Init: z=(0.0,0.0) float cr=0.0 float ci=0.0 float tx=0.0 float ty=0.0 p1r=real(p1) p1i=imag(p1) p2r=real(p2) p2i=imag(p2) if (@mode == "Mandelbrot") z=#pixel float cr=real(z*p1r) float ci=imag(z*p1i) float tx=0.0 float ty=0.0 elseif (@mode == "Julia") z=#pixel float cr=real(@seed*p1r) float ci=imag(@seed*p1i) float tx=0.0 float ty=0.0 endif Loop: if (@invert==true) z=recip(z) endif float x=real(fn1(z)*p3) float y=imag(fn2(z)*p4) if (@op == 0) if (@op1 == 0) tx=cr - imag(fn3(y)^p2i) + y elseif (@op1 == 1) tx=cr + imag(fn3(y)^p2i) + y elseif (@op1 == 2) tx=cr / imag(fn3(y)^p2i) + y elseif (@op1 == 3) tx=cr * imag(fn3(y)^p2i) + y endif if (@op2 == 0) ty=ci / real(fn4(x)^p2r) + x elseif (@op2 == 1) ty=ci * real(fn4(x)^p2r) + x elseif (@op2 == 2) ty=ci + real(fn4(x)^p2r) + x elseif (@op2 == 3) ty=ci - real(fn4(x)^p2r) + x endif elseif (@op == 1) if (@op1 == 0) tx=cr - imag(fn3(y)^p2i) - y elseif (@op1 == 1) tx=cr + imag(fn3(y)^p2i) - y elseif (@op1 == 2) tx=cr / imag(fn3(y)^p2i) - y elseif (@op1 == 3) tx=cr * imag(fn3(y)^p2i) - y endif if (@op2 == 0) ty=ci / real(fn4(x)^p2r) + x elseif (@op2 == 1) ty=ci * real(fn4(x)^p2r) + x elseif (@op2 == 2) ty=ci + real(fn4(x)^p2r) + x elseif (@op2 == 3) ty=ci - real(fn4(x)^p2r) + x endif elseif (@op == 2) if (@op1 == 0) tx=cr - imag(fn3(y)^p2i) + y elseif (@op1 == 1) tx=cr + imag(fn3(y)^p2i) + y elseif (@op1 == 2) tx=cr / imag(fn3(y)^p2i) + y elseif (@op1 == 3) tx=cr * imag(fn3(y)^p2i) + y endif if (@op2 == 0) ty=ci / real(fn4(x)^p2r) - x elseif (@op2 == 1) ty=ci * real(fn4(x)^p2r) - x elseif (@op2 == 2) ty=ci + real(fn4(x)^p2r) - x elseif (@op2 == 3) ty=ci - real(fn4(x)^p2r) - x endif elseif (@op == 3) if (@op1 == 0) tx=cr - imag(fn3(y)^p2i) - y elseif (@op1 == 1) tx=cr + imag(fn3(y)^p2i) - y elseif (@op1 == 2) tx=cr / imag(fn3(y)^p2i) - y elseif (@op1 == 3) tx=cr * imag(fn3(y)^p2i) - y endif if (@op2 == 0) ty=ci / real(fn4(x)^p2r) - x elseif (@op2 == 1) ty=ci * real(fn4(x)^p2r) - x elseif (@op2 == 2) ty=ci + real(fn4(x)^p2r) - x elseif (@op2 == 3) ty=ci - real(fn4(x)^p2r) - x endif elseif (@op == 4) if (@op1 == 0) tx=cr - imag(fn3(y)^p2i) - y elseif (@op1 == 1) tx=cr + imag(fn3(y)^p2i) - y elseif (@op1 == 2) tx=cr / imag(fn3(y)^p2i) - y elseif (@op1 == 3) tx=cr * imag(fn3(y)^p2i) - y endif if (@op2 == 0) ty=ci / real(fn4(x)^p2r) * x elseif (@op2 == 1) ty=ci * real(fn4(x)^p2r) * x elseif (@op2 == 2) ty=ci + real(fn4(x)^p2r) * x elseif (@op2 == 3) ty=ci - real(fn4(x)^p2r) * x endif endif if (@op3==0) tx=tx ty=ty elseif (@op3==1) tx=cr*tx ty=ci*ty elseif (@op3==2) tx=(cr*tx)+x ty=(ci*ty)+y elseif (@op3==3) tx=(cr*tx)+x ty=(ci*ty)-y elseif (@op3==4) tx=(cr*tx)+x ty=(ci*ty)*y elseif (@op3==5) tx=(cr*tx)-x ty=(ci*ty)*y elseif (@op3==6) tx=(cr*tx)*x ty=(ci*ty)*y endif if (@last==0) z=tx+flip(ty) elseif (@last==1) z=tx-flip(ty) endif Bailout: |tx| < @bailout && |tx| > -@bailout && |ty| < @bailout && |ty| > -@bailout Default: title="Matrix" maxiter=500 method=multipass periodicity=0 Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode == 1 Endheading param mode caption="Current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param bailout caption="Bailout Value" default=4.0 min=1.0 endparam Heading caption="Operators and Parameters" Endheading param invert caption="Invert" default=false endparam param @seed caption="Seed Value" default=(1.0,0.0) visible=(@mode == "Julia") endparam param op caption="Operator Tx|Ty" enum="+|+""-|+""+|-""-|-""-|*" default=0 endparam param op1 caption="Operator 1 (y)" enum="-""+""/" "*" default=3 endparam param op2 caption="Operator 2 (x)" enum="/""*""+""-" default=0 endparam param op3 caption="Final Mix" enum="1""2""3""4""5""6""7" default=0 endparam param last caption="Last Z" enum="1""2" default=0 endparam param p1 caption="p1r,p1i" default=(1.0,1.0) endparam param p2 caption="p2r,p2i" default=(1.0,1.0) endparam param p3 caption="Parameter x" default=(1.0,0.0) endparam param p4 caption="Parameter y" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function x (Re)" default=ident() endfunc func fn2 caption="Function y (Im)" default=ident() endfunc func fn3 caption="Function tx (Re)" default=ident() endfunc func fn4 caption="Function ty (Im)" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="as-matrix" @seed=#pixel invert=@invert op=@op op1=@op1 op2=@op2 op3=@op3 last=@last p1=@p1 p2=@p2 p3=@p3 p4=@p4 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 bailout=@bailout mode=@switchmode switchmode=@mode version=@version } Matrix-Mandelbrot { ;Based on the Matrix formula of Giuseppe Zito and Gilles Nadeau. ;Really Thanks To Susan D.C. for the sequence method. ;Andrea Spinozzi(Aug2004) Init: z=(0.0,0.0) float cr=0.0 float ci=0.0 float tx=0.0 float ty=0.0 float zx=0.0 float zy=0.0 p1r=real(p1) p1i=imag(p1) p2r=real(p2) p2i=imag(p2) if (@mode == "Mandelbrot") z=#pixel float cr=real(z*p1r) float ci=imag(z*p1i) float tx=0.0 float ty=0.0 zx=real(pixel) zy=imag(pixel) elseif (@mode == "Julia") z=#pixel float cr=real(@seed*p1r) float ci=imag(@seed*p1i) float tx=0.0 float ty=0.0 zx=real(pixel) zy=imag(pixel) endif int iter = 0 Loop: if (@invert==true) z=recip(z) endif bool scenario=false iter=iter+1 ; Determine scenario to be used: if (@seq==1) ; First scenario scenario=true elseif (@seq==2) ; Second scenario scenario=false elseif (iter % @modBy < @modCmp ) ; Modulation scenario=true endif float x=real(fn1(z)*p3) float y=imag(fn2(z)*p4) if (@op1==0) zx=cr-imag(fn3(y)^p2i) elseif (@op1==1) zx=cr+imag(fn3(y)^p2i) elseif (@op1==2) zx=cr/imag(fn3(y)^p2i) elseif (@op1==3) zx=cr*imag(fn3(y)^p2i) endif if (@op2==0) zy=ci/real(fn4(x)^p2r)*x elseif (@op2==1) zy=ci*real(fn4(x)^p2r)*x elseif (@op2==2) zy=ci+real(fn4(x)^p2r)*x elseif (@op2==3) zy=ci-real(fn4(x)^p2r)*x endif if (@choice==0) if (scenario==true) tx=(x*x)+(zx+cr) ty=(2*x*y)+(zy+ci) else tx=(x*x)+(zx+cr) ty=(2*x*y)-(zy+ci) endif elseif (@choice==1) if (scenario==true) tx=(x*x)+(zx+cr) ty=(2*x*y)+(zy+ci) else tx=(x*x)-(zx+cr) ty=(2*x*y)+(zy+ci) endif elseif (@choice==2) if (scenario==true) tx=(x*x)+(zx+cr) ty=(2*x*y)+(zy+ci) else tx=(x*x)+(zx+cr) ty=(2*x*y)*(zy+ci) endif elseif (@choice==3) if (scenario==true) tx=(x*x)+(zx+cr) ty=(2*x*y)+(zy+ci) else tx=(x*x)*(zx+cr) ty=(2*x*y)+(zy+ci) endif elseif (@choice==4) if (scenario==true) tx=(x*x)+(zx+cr) ty=(2*x*y)+(zy+ci) else tx=(x*x)-(zx+cr) ty=(2*x*y)*(zy+ci) endif elseif (@choice==5) if (scenario==true) tx=(x*x)+(zx+cr) ty=(2*x*y)+(zy+ci) else tx=(x*x)*(zx+cr) ty=(2*x*y)-(zy+ci) endif elseif (@choice==6) if (scenario==true) tx=(x*x)+(zx+cr) ty=(2*x*y)+(zy+ci) else tx=(x*x)*(zx+cr) ty=(2*x*y)*(zy+ci) endif endif if (@last==0) z=tx+flip(ty) elseif (@last==1) z=tx-flip(ty) endif Bailout: |tx|<@bailout && |tx|>-@bailout && |ty|<@bailout && |ty|>-@bailout Default: title="Matrix-Mandelbrot" maxiter=500 method=multipass periodicity=0 Heading caption="Mandelbrot Mode" visible=@mode == 0 Endheading Heading caption="Julia Mode" visible=@mode == 1 Endheading param mode caption="Current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param bailout caption="Bailout Value" default=4.0 min=1.0 endparam Heading caption="Operators and Parameters" Endheading int param seq enum="Modulation""First Scenario""Second Scenario" default=0 caption="Scenario Sequence" endparam int param modBy caption="Mod By" default=10 hint="Iteration Modulated by This" endparam int param modCmp caption="Mod Compare" default=5 hint="Modulated Iteration < this -> formula 1" endparam param invert caption="Invert" default=false endparam param @seed caption="Seed Value" default=(1.0,0.0) visible=(@mode == "Julia") endparam param op1 caption="Operator 1 (y)" enum="-""+""/" "*" default=3 endparam param op2 caption="Operator 2 (x)" enum="/""*""+""-" default=0 endparam param choice caption="Final Loop(tx|ty)" enum="1""2""3""4""5""6""7" default=2 endparam param last caption="Final Z" enum="1""2" default=1 endparam param p1 caption="p1r,p1i" default=(1.0,1.0) endparam param p2 caption="p2r,p2i" default=(1.0,1.0) endparam param p3 caption="Parameter x" default=(1.0,0.0) endparam param p4 caption="Parameter y" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function x" default=ident() endfunc func fn2 caption="Function y" default=ident() endfunc func fn3 caption="Function zx" default=ident() endfunc func fn4 caption="Function zy" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Matrix-Mandelbrot" bailout=@bailout @seed=#pixel invert=@invert op1=@op1 op2=@op2 seq=@seq choice=@choice last=@last p1=@p1 p2=@p2 p3=@p3 p4=@p4 modBy=@modBy modCmp=@modCmp fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 mode=@switchmode switchmode=@mode version=@version } Modified-BarneySet { ;Andrea Spinozzi(July2004) Init: complex z=c=(0.0,0.0) complex x=y=x1=y1=(0.0,0.0) if (@mode == "Mandelbrot") complex z=@start complex c=pixel elseif (@mode == "Julia") complex z=pixel complex c=@seed endif Loop: if @select==0 z=z elseif @select==1 z=z*c elseif @select==2 z=z/c endif if (@op4==0) if (real(z)>=0) if (@op2==0) if (@op1==0) if (@op==0) x=fn1(z+c)+fn2(z+c) y=z+c elseif (@op==1) x=fn1(z+c)+fn2(z+c) y=z-c elseif (@op==2) x=fn1(z+c)+fn2(z+c) y=z*c elseif (@op==3) x=fn1(z+c)+fn2(z+c) y=z/c endif elseif (@op1==1) if (@op==0) x=fn1(z+c)+fn2(z-c) y=z+c elseif (@op==1) x=fn1(z+c)+fn2(z-c) y=z-c elseif (@op==2) x=fn1(z+c)+fn2(z-c) y=z*c elseif (@op==3) x=fn1(z+c)+fn2(z-c) y=z/c endif elseif (@op1==2) if (@op==0) x=fn1(z+c)+fn2(z*c) y=z+c elseif (@op==1) x=fn1(z+c)+fn2(z*c) y=z-c elseif (@op==2) x=fn1(z+c)+fn2(z*c) y=z*c elseif (@op==3) x=fn1(z+c)+fn2(z*c) y=z/c endif elseif (@op1==3) if (@op==0) x=fn1(z+c)+fn2(z/c) y=z+c elseif (@op==1) x=fn1(z+c)+fn2(z/c) y=z-c elseif (@op==2) x=fn1(z+c)+fn2(z/c) y=z*c elseif (@op==3) x=fn1(z+c)+fn2(z/c) y=z/c endif endif elseif (@op2==1) if (@op1==0) if (@op==0) x=fn1(z+c)-fn2(z+c) y=z+c elseif (@op==1) x=fn1(z+c)-fn2(z+c) y=z-c elseif (@op==2) x=fn1(z+c)-fn2(z+c) y=z*c elseif (@op==3) x=fn1(z+c)-fn2(z+c) y=z/c endif elseif (@op1==1) if (@op==0) x=fn1(z+c)-fn2(z-c) y=z+c elseif (@op==1) x=fn1(z+c)-fn2(z-c) y=z-c elseif (@op==2) x=fn1(z+c)-fn2(z-c) y=z*c elseif (@op==3) x=fn1(z+c)-fn2(z-c) y=z/c endif elseif (@op1==2) if (@op==0) x=fn1(z+c)-fn2(z*c) y=z+c elseif (@op==1) x=fn1(z+c)-fn2(z*c) y=z-c elseif (@op==2) x=fn1(z+c)-fn2(z*c) y=z*c elseif (@op==3) x=fn1(z+c)-fn2(z*c) y=z/c endif elseif (@op1==3) if (@op==0) x=fn1(z+c)-fn2(z/c) y=z+c elseif (@op==1) x=fn1(z+c)-fn2(z/c) y=z-c elseif (@op==2) x=fn1(z+c)-fn2(z/c) y=z*c elseif (@op==3) x=fn1(z+c)-fn2(z/c) y=z/c endif endif elseif (@op2==2) if (@op1==0) if (@op==0) x=fn1(z+c)*fn2(z+c) y=z+c elseif (@op==1) x=fn1(z+c)*fn2(z+c) y=z-c elseif (@op==2) x=fn1(z+c)*fn2(z+c) y=z*c elseif (@op==3) x=fn1(z+c)*fn2(z+c) y=z/c endif elseif (@op1==1) if (@op==0) x=fn1(z+c)*fn2(z-c) y=z+c elseif (@op==1) x=fn1(z+c)*fn2(z-c) y=z-c elseif (@op==2) x=fn1(z+c)*fn2(z-c) y=z*c elseif (@op==3) x=fn1(z+c)*fn2(z-c) y=z/c endif elseif (@op1==2) if (@op==0) x=fn1(z+c)*fn2(z*c) y=z+c elseif (@op==1) x=fn1(z+c)*fn2(z*c) y=z-c elseif (@op==2) x=fn1(z+c)*fn2(z*c) y=z*c elseif (@op==3) x=fn1(z+c)*fn2(z*c) y=z/c endif elseif (@op1==3) if (@op==0) x=fn1(z+c)*fn2(z/c) y=z+c elseif (@op==1) x=fn1(z+c)*fn2(z/c) y=z-c elseif (@op==2) x=fn1(z+c)*fn2(z/c) y=z*c elseif (@op==3) x=fn1(z+c)*fn2(z/c) y=z/c endif endif elseif (@op2==3) if (@op1==0) if (@op==0) x=fn1(z+c)/fn2(z+c) y=z+c elseif (@op==1) x=fn1(z+c)/fn2(z+c) y=z-c elseif (@op==2) x=fn1(z+c)/fn2(z+c) y=z*c elseif (@op==3) x=fn1(z+c)/fn2(z+c) y=z/c endif elseif (@op1==1) if (@op==0) x=fn1(z+c)/fn2(z-c) y=z+c elseif (@op==1) x=fn1(z+c)/fn2(z-c) y=z-c elseif (@op==2) x=fn1(z+c)/fn2(z-c) y=z*c elseif (@op==3) x=fn1(z+c)/fn2(z-c) y=z/c endif elseif (@op1==2) if (@op==0) x=fn1(z+c)/fn2(z*c) y=z+c elseif (@op==1) x=fn1(z+c)/fn2(z*c) y=z-c elseif (@op==2) x=fn1(z+c)/fn2(z*c) y=z*c elseif (@op==3) x=fn1(z+c)/fn2(z*c) y=z/c endif elseif (@op1==3) if (@op==0) x=fn1(z+c)/fn2(z/c) y=z+c elseif (@op==1) x=fn1(z+c)/fn2(z/c) y=z-c elseif (@op==2) x=fn1(z+c)/fn2(z/c) y=z*c elseif (@op==3) x=fn1(z+c)/fn2(z/c) y=z/c endif endif endif else x=z y=c endif elseif (@op4==1) if (real(z)<0) if (@op2==0) if (@op1==0) if (@op==0) x=fn1(z+c)+fn2(z+c) y=z+c elseif (@op==1) x=fn1(z+c)+fn2(z+c) y=z-c elseif (@op==2) x=fn1(z+c)+fn2(z+c) y=z*c elseif (@op==3) x=fn1(z+c)+fn2(z+c) y=z/c endif elseif (@op1==1) if (@op==0) x=fn1(z+c)+fn2(z-c) y=z+c elseif (@op==1) x=fn1(z+c)+fn2(z-c) y=z-c elseif (@op==2) x=fn1(z+c)+fn2(z-c) y=z*c elseif (@op==3) x=fn1(z+c)+fn2(z-c) y=z/c endif elseif (@op1==2) if (@op==0) x=fn1(z+c)+fn2(z*c) y=z+c elseif (@op==1) x=fn1(z+c)+fn2(z*c) y=z-c elseif (@op==2) x=fn1(z+c)+fn2(z*c) y=z*c elseif (@op==3) x=fn1(z+c)+fn2(z*c) y=z/c endif elseif (@op1==3) if (@op==0) x=fn1(z+c)+fn2(z/c) y=z+c elseif (@op==1) x=fn1(z+c)+fn2(z/c) y=z-c elseif (@op==2) x=fn1(z+c)+fn2(z/c) y=z*c elseif (@op==3) x=fn1(z+c)+fn2(z/c) y=z/c endif endif elseif (@op2==1) if (@op1==0) if (@op==0) x=fn1(z+c)-fn2(z+c) y=z+c elseif (@op==1) x=fn1(z+c)-fn2(z+c) y=z-c elseif (@op==2) x=fn1(z+c)-fn2(z+c) y=z*c elseif (@op==3) x=fn1(z+c)-fn2(z+c) y=z/c endif elseif (@op1==1) if (@op==0) x=fn1(z+c)-fn2(z-c) y=z+c elseif (@op==1) x=fn1(z+c)-fn2(z-c) y=z-c elseif (@op==2) x=fn1(z+c)-fn2(z-c) y=z*c elseif (@op==3) x=fn1(z+c)-fn2(z-c) y=z/c endif elseif (@op1==2) if (@op==0) x=fn1(z+c)-fn2(z*c) y=z+c elseif (@op==1) x=fn1(z+c)-fn2(z*c) y=z-c elseif (@op==2) x=fn1(z+c)-fn2(z*c) y=z*c elseif (@op==3) x=fn1(z+c)-fn2(z*c) y=z/c endif elseif (@op1==3) if (@op==0) x=fn1(z+c)-fn2(z/c) y=z+c elseif (@op==1) x=fn1(z+c)-fn2(z/c) y=z-c elseif (@op==2) x=fn1(z+c)-fn2(z/c) y=z*c elseif (@op==3) x=fn1(z+c)-fn2(z/c) y=z/c endif endif elseif (@op2==2) if (@op1==0) if (@op==0) x=fn1(z+c)*fn2(z+c) y=z+c elseif (@op==1) x=fn1(z+c)*fn2(z+c) y=z-c elseif (@op==2) x=fn1(z+c)*fn2(z+c) y=z*c elseif (@op==3) x=fn1(z+c)*fn2(z+c) y=z/c endif elseif (@op1==1) if (@op==0) x=fn1(z+c)*fn2(z-c) y=z+c elseif (@op==1) x=fn1(z+c)*fn2(z-c) y=z-c elseif (@op==2) x=fn1(z+c)*fn2(z-c) y=z*c elseif (@op==3) x=fn1(z+c)*fn2(z-c) y=z/c endif elseif (@op1==2) if (@op==0) x=fn1(z+c)*fn2(z*c) y=z+c elseif (@op==1) x=fn1(z+c)*fn2(z*c) y=z-c elseif (@op==2) x=fn1(z+c)*fn2(z*c) y=z*c elseif (@op==3) x=fn1(z+c)*fn2(z*c) y=z/c endif elseif (@op1==3) if (@op==0) x=fn1(z+c)*fn2(z/c) y=z+c elseif (@op==1) x=fn1(z+c)*fn2(z/c) y=z-c elseif (@op==2) x=fn1(z+c)*fn2(z/c) y=z*c elseif (@op==3) x=fn1(z+c)*fn2(z/c) y=z/c endif endif elseif (@op2==3) if (@op1==0) if (@op==0) x=fn1(z+c)/fn2(z+c) y=z+c elseif (@op==1) x=fn1(z+c)/fn2(z+c) y=z-c elseif (@op==2) x=fn1(z+c)/fn2(z+c) y=z*c elseif (@op==3) x=fn1(z+c)/fn2(z+c) y=z/c endif elseif (@op1==1) if (@op==0) x=fn1(z+c)/fn2(z-c) y=z+c elseif (@op==1) x=fn1(z+c)/fn2(z-c) y=z-c elseif (@op==2) x=fn1(z+c)/fn2(z-c) y=z*c elseif (@op==3) x=fn1(z+c)/fn2(z-c) y=z/c endif elseif (@op1==2) if (@op==0) x=fn1(z+c)/fn2(z*c) y=z+c elseif (@op==1) x=fn1(z+c)/fn2(z*c) y=z-c elseif (@op==2) x=fn1(z+c)/fn2(z*c) y=z*c elseif (@op==3) x=fn1(z+c)/fn2(z*c) y=z/c endif elseif (@op1==3) if (@op==0) x=fn1(z+c)/fn2(z/c) y=z+c elseif (@op==1) x=fn1(z+c)/fn2(z/c) y=z-c elseif (@op==2) x=fn1(z+c)/fn2(z/c) y=z*c elseif (@op==3) x=fn1(z+c)/fn2(z/c) y=z/c endif endif endif else x=z y=c endif endif if (@op3==0) x1=p4+x^p1 y1=p5+y^p2 elseif (@op3==1) x1=p4+x^p1+c y1=p5+y^p2+c elseif (@op3==2) x1=p4+x^p1-c y1=p5+y^p2-c elseif (@op3==3) x1=p4+x^p1*c y1=p5+y^p2*c elseif (@op3==4) x1=p4+x^p1/c y1=p5+y^p2/c endif if (@op5==0) z=fn3(x1+y1)^p3 elseif (@op5==1) z=fn3(x1*y1)^p3 elseif (@op5==2) z=fn3(x1+sqr(y1))^p3 endif Bailout: |z|<=@bailout Default: title="Modified-BarneySet" method=multipass periodicity=0 maxiter=250 magn=1.0 param bailout caption="Bailout Value" default=64.0 endparam Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="current Mode" default=0 enum="Mandelbrot""Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot""Julia" visible=false endparam param select caption="Select z" enum="z""z*c""z/c" default=0 endparam param op1 caption="Operator 1|x" enum="1""2""3""4" default=2 endparam param op2 caption="Operator 2|x" enum="1""2""3""4" default=2 endparam param op caption="Operator y" enum="1""2""3""4" default=2 endparam param op4 caption="Select real(z)" enum="Re(z)>=0""Re(z)<0" default=0 endparam param op3 caption="Operator Final 1" enum="1""2""3""4""5" default=0 endparam param op5 caption="Operator Final 2" enum="1""2""3" default=0 endparam param start caption="Start Value" default=(0.5,0.0) visible=(@mode=="Mandelbrot") endparam param seed caption="Julia Seed" default=(0.0,0.0) visible=(@mode=="Julia") endparam param p1 caption="Exponent x" default=(1.0,0.0) endparam param p2 caption="Exponent y" default=(1.0,0.0) endparam param p3 caption="Exponent z" default=(1.0,0.0) endparam param p4 caption="Parameter x" default=(0.0,0.0) endparam param p5 caption="Parameter y" default=(0.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Modified-BarneySet" bailout=@bailout seed=#pixel select=@select op=@op op1=@op1 op2=@op2 op3=@op3 op4=@op4 op5=@op5 p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 fn1=@fn1 fn2=@fn2 fn3=@fn3 mode=@switchmode switchmode=@mode } Modified-T { ;Based on a formula of Gilles Nadeau. ;Andrea Spinozzi(July2004) Init: complex z=c=(0.0,0.0) c1=c2=(0.0,0.0) z1=z2=(0.0,0.0) if (@mode=="Mandelbrot") z=(0.0,0.0) c=pixel c1=real(pixel)*real(p1) c2=imag(pixel)*imag(p1) elseif (@mode=="Julia") z=pixel c=@seed c1=real(pixel)*real(p1) c2=imag(pixel)*imag(p1) endif Loop: if (@op==0) z1=p4*fn2(c1)-c^p2*fn1(p3*c2) z2=p4*fn2(c2)-c^p2*fn1(p3*c1) elseif (@op==1) z1=p4*fn2(c1*c1*c1)-c^p2*fn1(p3*c2) z2=p4*fn2(c2*c2*c2)-c^p2*fn1(p3*c1) elseif (@op==2) z1=p4*fn2(c1*c1*c2)-c^p2*fn1(p3*c2) z2=p4*fn2(c2*c2*c1)-c^p2*fn1(p3*c1) elseif (@op==3) z1=p4*c1*c1+fn2(c2*c2*c2)-c^p2*fn1(p3*c2) z2=p4*c2*c2+fn2(c1*c1*c1)-c^p2*fn1(p3*c1) elseif (@op==4) z1=p4*fn2(c2*c2*c1)-c^p2*fn1(p3*c2) z2=p4*fn2(c1*c1*c2)-c^p2*fn1(p3*c1) elseif (@op==5) z1=p4*fn2(c1*c1*c2)-c^p2*fn1(p3*c2*c) z2=p4*fn2(c2*c2*c1)-c^p2*fn1(p3*c1*c) elseif (@op==6) z1=p4*fn2(c1*c1*c1)-c*c^p2*fn1(p3*c2*c) z2=p4*fn2(c2*c2*c2)-c*c^p2*fn1(p3*c1*c) elseif (@op==7) z1=p4*fn2(c1)-c*c^p2*fn1(p3*c2*c2) z2=p4*fn2(c2)-c*c^p2*fn1(p3*c1*c1) elseif (@op==8) z1=p4*fn2(c1)*c^p2+fn1(p3*c2) z2=p4*fn2(c2)*c^p2+fn1(p3*c1) elseif (@op==9) z1=p4*fn2(c1)+fn1(p3*c2*c^p2) z2=p4*fn2(c2)-fn1(p3*c1*c^p2) elseif (@op==10) z1=p4*fn2(c1)+fn1(p3*c2*c^p2) z2=p4*fn2(c2)+fn1(p3*c1*c^p2) elseif (@op==11) z1=p4*fn2(c1*c1*c2*c^p2)-fn1(p3*c2) z2=p4*fn2(c2*c2*c1*c^p2)-fn1(p3*c1) endif c1=fn3(z1) c2=z2 if (@flavor==0) z=fn4(z1)+z2 elseif (@flavor==1) z=fn4(z1)+flip(z2) elseif (@flavor==2) z=fn4(z1)-flip(z2) endif Bailout: |z1|+|z2|<=@bailout Default: title="Modified-T" maxiter=500 method=multipass periodicity=0 angle=180 Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="Current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param bailout caption="Bailout" default=64.0 endparam param flavor caption="Flavor" enum="1""2""3" default=0 endparam func fn4 caption="Function Flavor" default=ident() endfunc Heading caption="Operator and Parameters" Endheading param seed caption="Seed Value" default=(0.0,0.0) visible=(@mode=="Julia") endparam param op caption="Select Loop" enum="1""2""3""4""5""6""7""8""9""10""11""12" default=2 endparam param p1 caption="p1r,p1i" default=(1.0,1.0) endparam param p2 caption="Exp c" default=(1.0,0.0) endparam param p3 caption="Parameter 1" default=(1.5,0.0) endparam param p4 caption="Parameter 2" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=sin() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Modified-T" seed=#pixel bailout=@bailout op=@op flavor=@flavor p1=@p1 p2=@p2 p3=@p3 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 mode=@switchmode switchmode=@mode version=@version } Mosquito { ;Andrea Spinozzi(Sep2003) Init: z=@startseed c=#pixel if @mode=="Mandelbrot" z=@startSeed endif if @mode == "Julia" z=#pixel c=@startSeed if @zoom != 1.0 z=z/@zoom endif if @center != (0,0) z=z + @center endif endif Loop: if @invert == true z=1/(z) endif a=@a*(fn1(z)^fn2(z*@b)/fn3(z*@c)^fn4(z*@d)) b=@e*(fn1(z*@a)*fn2(z*@b)+fn3(z*@c)*fn4(z*@d)) x=@fn5(z*@f)*@fn6(c*@g) y=@fn8(z*@h)+(c*z) w=@fn9(z*@i) j=@fn10(z*@l)^imag(c) IF @GROUP1=="1" IF @GROUP=="1" IF @OP1=="+" IF @OP2=="+" z=(a*b)*j+y+w/x ELSEIF @OP2=="-" z=(a+b)*j+y-w/x ELSEIF @OP2=="*" z=(a*b)*j+y*w/x ENDIF ELSEIF @OP1=="-" IF @OP2=="+" z=(a*b)*j-y+w/x ELSEIF @OP2=="-" z=(a+b)*j-y-w/x ELSEIF @OP2=="*" z=(a*b)*j-y*w/x ENDIF ELSEIF @OP1=="*" IF @OP2=="+" z=(a*b)*j*y+w/x ELSEIF @OP2=="-" z=(a+b)*j*y-w/x ELSEIF @OP2=="*" z=(a*b)*j*y*w/x ENDIF ENDIF ELSEIF @GROUP=="2" IF @OP1=="+" IF @OP2=="+" z=(a*b)*j+y+x/w ELSEIF @OP2=="-" z=(a+b)*j+y-x/w ELSEIF @OP2=="*" z=(a*b)*j+y*x/w ENDIF ELSEIF @OP1=="-" IF @OP2=="+" z=(a*b)*j-y+x/w ELSEIF @OP2=="-" z=(a*b)*j-y-x/w ELSEIF @OP2=="*" z=(a+b)*j-y*x/w ENDIF ELSEIF @OP1=="*" IF @OP2=="+" z=(a*b)*j*y+x/w ELSEIF @OP2=="-" z=(a+b)*j*y-x/w ELSEIF @OP2=="*" z=(a*b)*j*y*x/w ENDIF ENDIF ELSEIF @GROUP=="3" IF @OP1=="+" IF @OP2=="+" z=(a*b)*y+j+x/w ELSEIF @OP2=="-" z=(a+b)*y+j-x/w ELSEIF @OP2=="*" z=(a*b)*y+j*x/w ENDIF ELSEIF @OP1=="-" IF @OP2=="+" z=(a*b)*y-j+x/w ELSEIF @OP2=="-" z=(a+b)*y-j-x/w ELSEIF @OP2=="*" z=(a*b)*y-j*x/w ENDIF ELSEIF @OP1=="*" IF @OP2=="+" z=(a*b)*y*j+x/w ELSEIF @OP2=="-" z=(a+b)*y*j-x/w ELSEIF @OP2=="*" z=(a*b)*y*j*x/w ENDIF ENDIF ELSEIF @GROUP=="4" IF @OP1=="+" IF @OP2=="+" z=(a/b)-(j+x+w/y) ELSEIF @OP2=="-" z=(a/b)-(j+x-w/y) ELSEIF @OP2=="*" z=(a/b)-(j+x*w/y) ENDIF ELSEIF @OP1=="-" IF @OP2=="+" z=(a/b)-(j-x+w/y) ELSEIF @OP2=="-" z=(a/b)-(j-x-w/y) ELSEIF @OP2=="*" z=(a/b)-(j-x*w/y) ENDIF ELSEIF @OP1=="*" IF @OP2=="+" z=(a/b)-(j*x+w/y) ELSEIF @OP2=="-" z=(a/b)-(j*x-w/y) ELSEIF @OP2=="*" z=(a/b)-(j*x*w/y) ENDIF ENDIF ELSEIF @GROUP=="5" IF @OP1=="+" IF @OP2=="+" z=(a-b)^j+x+w/y ELSEIF @OP2=="-" z=(a-b)^j+x-w/y ELSEIF @OP2=="*" z=(a-b)^j+x*w/y ENDIF ELSEIF @OP1=="-" IF @OP2=="+" z=(a-b)^j-x+w/y ELSEIF @OP2=="-" z=(a-b)^j-x-w/y ELSEIF @OP2=="*" z=(a-b)^j-x*w/y ENDIF ELSEIF @OP1=="*" IF @OP2=="+" z=(a-b)^j*x+w/y ELSEIF @OP2=="-" z=(a-b)^j*x-w/y ELSEIF @OP2=="*" z=(a-b)^j*x*w/y ENDIF ENDIF ELSEIF @GROUP=="6" IF @OP1=="+" IF @OP2=="+" z=(a-b)/j+y+w/x ELSEIF @OP2=="-" z=(a-b)/j+y-w/x ELSEIF @OP2=="*" z=(a-b)/j+y*w/x ENDIF ELSEIF @OP1=="-" IF @OP2=="+" z=(a-b)/j-y+w/x ELSEIF @OP2=="-" z=(a-b)/j-y-w/x ELSEIF @OP2=="*" z=(a-b)/j-y*w/x ENDIF ELSEIF @OP1=="*" IF @OP2=="+" z=(a-b)/j*y+w/x ELSEIF @OP2=="-" z=(a-b)/j*y-w/x ELSEIF @OP2=="*" z=(a-b)/j*y*w/x ENDIF ENDIF ENDIF ELSEIF @GROUP1=="2" IF @GROUP=="1" IF @OP1=="+" IF @OP2=="+" z=(a^b)*x+w+j/y ELSEIF @OP2=="-" z=(a^b)*x+w-j/y ELSEIF @OP2=="*" z=(a^b)*x+w*j/y ENDIF ELSEIF @OP1=="-" IF @OP2=="+" z=(a^b)*x-w+j/y ELSEIF @OP2=="-" z=(a^b)*x-w-j/y ELSEIF @OP2=="*" z=(a^b)*x-w*j/y ENDIF ELSEIF @OP1=="*" IF @OP2=="+" z=(a^b)*x*w+j/y ELSEIF @OP2=="-" z=(a^b)*x*w-j/y ELSEIF @OP2=="*" z=(a^b)*x*w*j/y ENDIF ENDIF ELSEIF @GROUP=="2" IF @OP1=="+" IF @OP2=="+" z=(a^b)*y+w+j/x ELSEIF @OP2=="-" z=(a^b)*y+w-j/x ELSEIF @OP2=="*" z=(a^b)*y+w*j/x ENDIF ELSEIF @OP1=="-" IF @OP2=="+" z=(a^b)*y-w+j/x ELSEIF @OP2=="-" z=(a^b)*y-w-j/x ELSEIF @OP2=="*" z=(a^b)*y-w*j/x ENDIF ELSEIF @OP1=="*" IF @OP2=="+" z=(a^b)*y*w+j/x ELSEIF @OP2=="-" z=(a^b)*y*w-j/x ELSEIF @OP2=="*" z=(a^b)*y*w*j/x ENDIF ENDIF ELSEIF @GROUP=="3" IF @OP1=="+" IF @OP2=="+" z=(a^b)*y+j+w/x ELSEIF @OP2=="-" z=(a^b)*y+j-w/x ELSEIF @OP2=="*" z=(a^b)*y+j*w/x ENDIF ELSEIF @OP1=="-" IF @OP2=="+" z=(a^b)*y-j+w/x ELSEIF @OP2=="-" z=(a^b)*y-j-w/x ELSEIF @OP2=="*" z=(a^b)*y-j*w/x ENDIF ELSEIF @OP1=="*" IF @OP2=="+" z=(a^b)*y*j+w/x ELSEIF @OP2=="-" z=(a^b)*y*j-w/x ELSEIF @OP2=="*" z=(a^b)*y*j*w/x ENDIF ENDIF ELSEIF @GROUP=="4" IF @OP1=="+" IF @OP2=="+" z=(a^b)*y+x+w/j ELSEIF @OP2=="-" z=(a^b)*y+x-w/j ELSEIF @OP2=="*" z=(a^b)*y+x*w/j ENDIF ELSEIF @OP1=="-" IF @OP2=="+" z=(a^b)*y-x+w/j ELSEIF @OP2=="-" z=(a^b)*y-x-w/j ELSEIF @OP2=="*" z=(a^b)*y-x*w/j ENDIF ELSEIF @OP1=="*" IF @OP2=="+" z=(a^b)*y*x+w/j ELSEIF @OP2=="-" z=(a^b)*y*x-w/j ELSEIF @OP2=="*" z=(a^b)*y*x*w/j ENDIF ENDIF ELSEIF @GROUP=="5" IF @OP1=="+" IF @OP2=="+" z=(a^b)*w+x+j/y ELSEIF @OP2=="-" z=(a^b)*w+x-j/y ELSEIF @OP2=="*" z=(a^b)*w+x*j/y ENDIF ELSEIF @OP1=="-" IF @OP2=="+" z=(a^b)*w-x+j/y ELSEIF @OP2=="-" z=(a^b)*w-x-j/y ELSEIF @OP2=="*" z=(a^b)*w-x*j/y ENDIF ELSEIF @OP1=="*" IF @OP2=="+" z=(a^b)*w*x+j/y ELSEIF @OP2=="-" z=(a^b)*w*x-j/y ELSEIF @OP2=="*" z=(a^b)*w*x*j/y ENDIF ENDIF ELSEIF @GROUP=="6" IF @OP1=="+" IF @OP2=="+" z=(a^b)*w+y+j/x ELSEIF @OP2=="-" z=(a^b)*w+y-j/x ELSEIF @OP2=="*" z=(a^b)*w+y*j/x ENDIF ELSEIF @OP1=="-" IF @OP2=="+" z=(a^b)*w-y+j/x ELSEIF @OP2=="-" z=(a^b)*w-y-j/x ELSEIF @OP2=="*" z=(a^b)*w-y*j/x ENDIF ELSEIF @OP1=="*" IF @OP2=="+" z=(a^b)*w*y+j/x ELSEIF @OP2=="-" z=(a^b)*w*y-j/x ELSEIF @OP2=="*" z=(a^b)*w*y*j/x ENDIF ENDIF ENDIF ELSEIF @GROUP1=="3" IF @GROUP=="1" IF @OP1=="+" IF @OP2=="+" z=(w+j)+y+a+b/x ELSEIF @OP2=="-" z=(w+j)+y+a-b/x ELSEIF @OP2=="*" z=(w+j)+y+a*b/x ENDIF ELSEIF @OP1=="-" IF @OP2=="+" z=(w+j)+y-a+b/x ELSEIF @OP2=="-" z=(w+j)+y-a-b/x ELSEIF @OP2=="*" z=(w+j)+y-a*b/x ENDIF ELSEIF @OP1=="*" IF @OP2=="+" z=(w+j)+y*a+b/x ELSEIF @OP2=="-" z=(w+j)+y*a-b/x ELSEIF @OP2=="*" z=(w+j)+y*a*b/x ENDIF ENDIF ELSEIF @GROUP=="2" IF @OP1=="+" IF @OP2=="+" z=(w+j)+y+b+a/x ELSEIF @OP2=="-" z=(w+j)+y+b-a/x ELSEIF @OP2=="*" z=(w+j)+y+b+a/x ENDIF ELSEIF @OP1=="-" IF @OP2=="+" z=(w+j)+y-b+a/x ELSEIF @OP2=="-" z=(w+j)+y-b-a/x ELSEIF @OP2=="*" z=(w+j)+y-b+a/x ENDIF ELSEIF @OP1=="*" IF @OP2=="+" z=(w+j)+y*b+a/x ELSEIF @OP2=="-" z=(w+j)+y*b-a/x ELSEIF @OP2=="*" z=(w+j)+y*b+a/x ENDIF ENDIF ELSEIF @GROUP=="3" IF @OP1=="+" IF @OP2=="+" z=(w+j)*y+x+a/b ELSEIF @OP2=="-" z=(w+j)*y+x-a/b ELSEIF @OP2=="*" z=(w+j)*y+x*a/b ENDIF ELSEIF @OP1=="-" IF @OP2=="+" z=(w+j)*y-x+a/b ELSEIF @OP2=="-" z=(w+j)*y-x-a/b ELSEIF @OP2=="*" z=(w+j)*y-x*a/b ENDIF ELSEIF @OP1=="*" IF @OP2=="+" z=(w+j)*y*x+a/b ELSEIF @OP2=="-" z=(w+j)*y*x-a/b ELSEIF @OP2=="*" z=(w+j)*y*x*a/b ENDIF ENDIF ELSEIF @GROUP=="4" IF @OP1=="+" IF @OP2=="+" z=(w+j)*y+x+b+a ELSEIF @OP2=="-" z=(w+j)*y+x-b+a ELSEIF @OP2=="*" z=(w+j)*y+x*b+a ENDIF ELSEIF @OP1=="-" IF @OP2=="+" z=(w+j)*y-x+b+a ELSEIF @OP2=="-" z=(w+j)*y-x-b+a ELSEIF @OP2=="*" z=(w+j)*y-x*b+a ENDIF ELSEIF @OP1=="*" IF @OP2=="+" z=(w+j)*y*x+b+a ELSEIF @OP2=="-" z=(w+j)*y*x-b+a ELSEIF @OP2=="*" z=(w+j)*y*x*b+a ENDIF ENDIF ELSEIF @GROUP=="5" IF @OP1=="+" IF @OP2=="+" z=(x*y)*j+w+b*a ELSEIF @OP2=="-" z=(x*y)*j+w-b*a ELSEIF @OP2=="*" z=(x*y)*j+w*b*a ENDIF ELSEIF @OP1=="-" IF @OP2=="+" z=(x*y)*j-w+b*a ELSEIF @OP2=="-" z=(x*y)*j-w-b*a ELSEIF @OP2=="*" z=(x*y)*j-w*b*a ENDIF ELSEIF @OP1=="*" IF @OP2=="+" z=(x*y)*j*w+b*a ELSEIF @OP2=="-" z=(x*y)*j*w-b*a ELSEIF @OP2=="*" z=(x*y)*j*w*b*a ENDIF ENDIF ELSEIF @GROUP=="6" IF @OP1=="+" IF @OP2=="+" z=(w+j)*w+y+j/x ELSEIF @OP2=="-" z=(w+j)*w+y-j/x ELSEIF @OP2=="*" z=(w+j)*w+y*j/x ENDIF ELSEIF @OP1=="-" IF @OP2=="+" z=(w+j)*w-y+j/x ELSEIF @OP2=="-" z=(w+j)*w-y-j/x ELSEIF @OP2=="*" z=(w+j)*w-y*j/x ENDIF ELSEIF @OP1=="*" IF @OP2=="+" z=(w+j)*w*y+j/x ELSEIF @OP2=="-" z=(w+j)*w*y-j/x ELSEIF @OP2=="*" z=(w+j)*w*y*j/x ENDIF ENDIF ENDIF ENDIF Bailout: |z| < @bailout Default: title="Mosquito" angle=90 center=(-1.0,0.0) magn=0.8 maxiter=250 method=multipass periodicity=0 param bailout caption="Bailout Value" default=10.0 min=0.0 endparam param mode caption="Current mode" default=0 enum="Mandelbrot" "Julia" endparam param switchMode caption="Switch to" default=1 enum="Mandelbrot" "Julia" endparam Heading caption="Switch Parameters" visible=@show endheading param @show caption="Show Switch Parameters" default=false endparam param swzoom caption="Magnification" default=1.0 visible=@show endparam param swcenter caption="Switch Center" default=(0.5,0.0) visible=@show endparam param zoom caption="Reset Magnification" default= 1.0 visible=@show endparam param center caption="Reset Center" default=(0.0,0.0) visible=@show endparam Heading caption="Operators and Parameters" endheading param @group1 caption="Group" enum="1""2""3" default=0 endparam param @group caption="SubGroup" enum="1""2""3""4""5""6" default=0 endparam param op1 caption="Operator 1" enum="+""-""*" default=0 endparam param op2 caption="Operator 2" enum="+""-""*" default=0 endparam param startseed caption="Start/Seed" default=(-0.7109375,-1.658066994e-19) endparam param a caption="Parameter 1" default=(0.1,0.0) endparam param b caption="Parameter 2" default=(0.5,0.0) endparam param c caption="Parameter 3" default=(0.5,0.0) endparam param d caption="Parameter 4" default=(0.5,0.0) endparam param @e caption="Parameter 5" default=(0.5,0.0) endparam param f caption="Parameter 6" default=(0.5,0.0) endparam param g caption="Parameter 7" default=(0.5,0.0) endparam param h caption="Parameter 8" default=(0.5,0.0) endparam param i caption="Parameter 9" default=(0.5,0.0) endparam param l caption="Parameter 10" default=(0.5,0.0) endparam Param invert caption="Invert Z" default=false endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=sqrt() endfunc func fn2 caption="Function 2" default=conj() endfunc func fn3 caption="Function 3" default=conj() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc func fn6 caption="Function 6" default=ident() endfunc func fn8 caption="Function 7" default=ident() endfunc func fn9 caption="Function 8" default=tanh() endfunc func fn10 caption="Function 9" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Mosquito" startseed=#pixel bailout=@bailout group=@group group1=@group1 op1=@op1 op2=@op2 a=@a b=@b c=@c d=@d @e=@e f=@f g=@g h=@h i=@i l=@l fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn8=@fn8 fn9=@fn9 fn10=@fn10 invert=@invert mode=@switchmode switchmode=@mode zoom=@swzoom center=@swcenter version=@version } MyMandelbrot3 { ;Andrea Spinozzi Init: z=0 c=1 Loop: z=z * z + #pixel + sin(c) a=1 b=2 c=sin(2) + a a=sin(b) * 2 b=tan(a) c=sin(b) + tan(a) * 2 Bailout: |z| < 4 Default: title="MyMandelbrot3" } MyMandelbrot-J { ;Andrea Spinozzi(June2004) Init: z=fn4(pixel) Loop: if (@op2==0) if (@op1==0) if (@op==0) z=(fn1(z^p1)+fn3(@seed*p4)*fn2(z^p2)+fn3(@seed*p4))^p3 elseif (@op==1) z=(fn1(z^p1)+fn3(@seed*p4)*fn2(z^p2)-fn3(@seed*p4))^p3 elseif (@op==2) z=(fn1(z^p1)+fn3(@seed*p4)*fn2(z^p2)*fn3(@seed*p4))^p3 elseif (@op==3) z=(fn1(z^p1)+fn3(@seed*p4)*fn2(z^p2)/fn3(@seed*p4))^p3 endif elseif (@op1==1) if (@op==0) z=(fn1(z^p1)-fn3(@seed*p4)*fn2(z^p2)+fn3(@seed*p4))^p3 elseif (@op==1) z=(fn1(z^p1)-fn3(@seed*p4)*fn2(z^p2)-fn3(@seed*p4))^p3 elseif (@op==2) z=(fn1(z^p1)-fn3(@seed*p4)*fn2(z^p2)*fn3(@seed*p4))^p3 elseif (@op==3) z=(fn1(z^p1)-fn3(@seed*p4)*fn2(z^p2)/fn3(@seed*p4))^p3 endif elseif (@op1==2) if (@op==0) z=(fn1(z^p1)*fn3(@seed*p4)*fn2(z^p2)+fn3(@seed*p4))^p3 elseif (@op==1) z=(fn1(z^p1)*fn3(@seed*p4)*fn2(z^p2)-fn3(@seed*p4))^p3 elseif (@op==2) z=(fn1(z^p1)*fn3(@seed*p4)*fn2(z^p2)*fn3(@seed*p4))^p3 elseif (@op==3) z=(fn1(z^p1)*fn3(@seed*p4)*fn2(z^p2)/fn3(@seed*p4))^p3 endif elseif (@op1==3) if (@op==0) z=(fn1(z^p1)/fn3(@seed*p4)*fn2(z^p2)+fn3(@seed*p4))^p3 elseif (@op==1) z=(fn1(z^p1)/fn3(@seed*p4)*fn2(z^p2)-fn3(@seed*p4))^p3 elseif (@op==2) z=(fn1(z^p1)/fn3(@seed*p4)*fn2(z^p2)*fn3(@seed*p4))^p3 elseif (@op==3) z=(fn1(z^p1)/fn3(@seed*p4)*fn2(z^p2)/fn3(@seed*p4))^p3 endif endif elseif (@op2==1) if (@op1==0) if (@op==0) z=(fn1(z^p1)+fn3(@seed*p4)+fn2(z^p2)+fn3(@seed*p4))^p3 elseif (@op==1) z=(fn1(z^p1)+fn3(@seed*p4)+fn2(z^p2)-fn3(@seed*p4))^p3 elseif (@op==2) z=(fn1(z^p1)+fn3(@seed*p4)+fn2(z^p2)*fn3(@seed*p4))^p3 elseif (@op==3) z=(fn1(z^p1)+fn3(@seed*p4)+fn2(z^p2)/fn3(@seed*p4))^p3 endif elseif (@op1==1) if (@op==0) z=(fn1(z^p1)-fn3(@seed*p4)+fn2(z^p2)+fn3(@seed*p4))^p3 elseif (@op==1) z=(fn1(z^p1)-fn3(@seed*p4)+fn2(z^p2)-fn3(@seed*p4))^p3 elseif (@op==2) z=(fn1(z^p1)-fn3(@seed*p4)+fn2(z^p2)*fn3(@seed*p4))^p3 elseif (@op==3) z=(fn1(z^p1)-fn3(@seed*p4)+fn2(z^p2)/fn3(@seed*p4))^p3 endif elseif (@op1==2) if (@op==0) z=(fn1(z^p1)*fn3(@seed*p4)+fn2(z^p2)+fn3(@seed*p4))^p3 elseif (@op==1) z=(fn1(z^p1)*fn3(@seed*p4)+fn2(z^p2)-fn3(@seed*p4))^p3 elseif (@op==2) z=(fn1(z^p1)*fn3(@seed*p4)+fn2(z^p2)*fn3(@seed*p4))^p3 elseif (@op==3) z=(fn1(z^p1)*fn3(@seed*p4)+fn2(z^p2)/fn3(@seed*p4))^p3 endif elseif (@op1==3) if (@op==0) z=(fn1(z^p1)/fn3(@seed*p4)+fn2(z^p2)+fn3(@seed*p4))^p3 elseif (@op==1) z=(fn1(z^p1)/fn3(@seed*p4)+fn2(z^p2)-fn3(@seed*p4))^p3 elseif (@op==2) z=(fn1(z^p1)/fn3(@seed*p4)+fn2(z^p2)*fn3(@seed*p4))^p3 elseif (@op==3) z=(fn1(z^p1)/fn3(@seed*p4)+fn2(z^p2)/fn3(@seed*p4))^p3 endif endif elseif (@op2==2) if (@op1==0) if (@op==0) z=(fn1(z^p1)+fn3(@seed*p4)-fn2(z^p2)+fn3(@seed*p4))^p3 elseif (@op==1) z=(fn1(z^p1)+fn3(@seed*p4)-fn2(z^p2)-fn3(@seed*p4))^p3 elseif (@op==2) z=(fn1(z^p1)+fn3(@seed*p4)-fn2(z^p2)*fn3(@seed*p4))^p3 elseif (@op==3) z=(fn1(z^p1)+fn3(@seed*p4)-fn2(z^p2)/fn3(@seed*p4))^p3 endif elseif (@op1==1) if (@op==0) z=(fn1(z^p1)-fn3(@seed*p4)-fn2(z^p2)+fn3(@seed*p4))^p3 elseif (@op==1) z=(fn1(z^p1)-fn3(@seed*p4)-fn2(z^p2)-fn3(@seed*p4))^p3 elseif (@op==2) z=(fn1(z^p1)-fn3(@seed*p4)-fn2(z^p2)*fn3(@seed*p4))^p3 elseif (@op==3) z=(fn1(z^p1)-fn3(@seed*p4)-fn2(z^p2)/fn3(@seed*p4))^p3 endif elseif (@op1==2) if (@op==0) z=(fn1(z^p1)*fn3(@seed*p4)-fn2(z^p2)+fn3(@seed*p4))^p3 elseif (@op==1) z=(fn1(z^p1)*fn3(@seed*p4)-fn2(z^p2)-fn3(@seed*p4))^p3 elseif (@op==2) z=(fn1(z^p1)*fn3(@seed*p4)-fn2(z^p2)*fn3(@seed*p4))^p3 elseif (@op==3) z=(fn1(z^p1)*fn3(@seed*p4)-fn2(z^p2)/fn3(@seed*p4))^p3 endif elseif (@op1==3) if (@op==0) z=(fn1(z^p1)/fn3(@seed*p4)-fn2(z^p2)+fn3(@seed*p4))^p3 elseif (@op==1) z=(fn1(z^p1)/fn3(@seed*p4)-fn2(z^p2)-fn3(@seed*p4))^p3 elseif (@op==2) z=(fn1(z^p1)/fn3(@seed*p4)-fn2(z^p2)*fn3(@seed*p4))^p3 elseif (@op==3) z=(fn1(z^p1)/fn3(@seed*p4)-fn2(z^p2)/fn3(@seed*p4))^p3 endif endif endif Bailout: |z| < @bailout Default: title="MyMandelbrot-J" center =(0.0,0.0) maxiter=250 method=multipass periodicity=0 param bailout caption="Bailout Value" default=64.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param @seed caption="Seed Value" default=(0.175,0.0) endparam param op caption="Operator 1" enum="1""2""3""4" default=0 endparam param op1 caption="Operator 2" enum="1""2""3""4" default=0 endparam param op2 caption="Operator 3" enum="1""2""3" default=0 endparam param p1 caption="Exponent 1" default=(2.0,0.0) endparam param p2 caption="Exponent 2" default=(1.0,0.0) endparam param p3 caption="Exponent 3" default=(1.0,0.0) endparam param p4 caption="Parameter c" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn4 caption="Init Func z" default=ident() endfunc func fn3 caption="Function c" default=ident() endfunc func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="MyMandelbrot-M" seed=pixel bailout=@bailout op=@op op1=@op1 op2=@op2 p1=@p1 p2=@p2 p3=@p3 p4=@p4 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 version=@version } MyMandelbrot-M { ;Andrea Spinozzi(June2004) Init: z=fn4(pixel) Loop: if (@op2==0) if (@op1==0) if (@op==0) z=(fn1(z^p1)+fn3(pixel*p4)*fn2(z^p2)+fn3(pixel*p4))^p3 elseif (@op==1) z=(fn1(z^p1)+fn3(pixel*p4)*fn2(z^p2)-fn3(pixel*p4))^p3 elseif (@op==2) z=(fn1(z^p1)+fn3(pixel*p4)*fn2(z^p2)*fn3(pixel*p4))^p3 elseif (@op==3) z=(fn1(z^p1)+fn3(pixel*p4)*fn2(z^p2)/fn3(pixel*p4))^p3 endif elseif (@op1==1) if (@op==0) z=(fn1(z^p1)-fn3(pixel*p4)*fn2(z^p2)+fn3(pixel*p4))^p3 elseif (@op==1) z=(fn1(z^p1)-fn3(pixel*p4)*fn2(z^p2)-fn3(pixel*p4))^p3 elseif (@op==2) z=(fn1(z^p1)-fn3(pixel*p4)*fn2(z^p2)*fn3(pixel*p4))^p3 elseif (@op==3) z=(fn1(z^p1)-fn3(pixel*p4)*fn2(z^p2)/fn3(pixel*p4))^p3 endif elseif (@op1==2) if (@op==0) z=(fn1(z^p1)*fn3(pixel*p4)*fn2(z^p2)+fn3(pixel*p4))^p3 elseif (@op==1) z=(fn1(z^p1)*fn3(pixel*p4)*fn2(z^p2)-fn3(pixel*p4))^p3 elseif (@op==2) z=(fn1(z^p1)*fn3(pixel*p4)*fn2(z^p2)*fn3(pixel*p4))^p3 elseif (@op==3) z=(fn1(z^p1)*fn3(pixel*p4)*fn2(z^p2)/fn3(pixel*p4))^p3 endif elseif (@op1==3) if (@op==0) z=(fn1(z^p1)/fn3(pixel*p4)*fn2(z^p2)+fn3(pixel*p4))^p3 elseif (@op==1) z=(fn1(z^p1)/fn3(pixel*p4)*fn2(z^p2)-fn3(pixel*p4))^p3 elseif (@op==2) z=(fn1(z^p1)/fn3(pixel*p4)*fn2(z^p2)*fn3(pixel*p4))^p3 elseif (@op==3) z=(fn1(z^p1)/fn3(pixel*p4)*fn2(z^p2)/fn3(pixel*p4))^p3 endif endif elseif (@op2==1) if (@op1==0) if (@op==0) z=(fn1(z^p1)+fn3(pixel*p4)+fn2(z^p2)+fn3(pixel*p4))^p3 elseif (@op==1) z=(fn1(z^p1)+fn3(pixel*p4)+fn2(z^p2)-fn3(pixel*p4))^p3 elseif (@op==2) z=(fn1(z^p1)+fn3(pixel*p4)+fn2(z^p2)*fn3(pixel*p4))^p3 elseif (@op==3) z=(fn1(z^p1)+fn3(pixel*p4)+fn2(z^p2)/fn3(pixel*p4))^p3 endif elseif (@op1==1) if (@op==0) z=(fn1(z^p1)-fn3(pixel*p4)+fn2(z^p2)+fn3(pixel*p4))^p3 elseif (@op==1) z=(fn1(z^p1)-fn3(pixel*p4)+fn2(z^p2)-fn3(pixel*p4))^p3 elseif (@op==2) z=(fn1(z^p1)-fn3(pixel*p4)+fn2(z^p2)*fn3(pixel*p4))^p3 elseif (@op==3) z=(fn1(z^p1)-fn3(pixel*p4)+fn2(z^p2)/fn3(pixel*p4))^p3 endif elseif (@op1==2) if (@op==0) z=(fn1(z^p1)*fn3(pixel*p4)+fn2(z^p2)+fn3(pixel*p4))^p3 elseif (@op==1) z=(fn1(z^p1)*fn3(pixel*p4)+fn2(z^p2)-fn3(pixel*p4))^p3 elseif (@op==2) z=(fn1(z^p1)*fn3(pixel*p4)+fn2(z^p2)*fn3(pixel*p4))^p3 elseif (@op==3) z=(fn1(z^p1)*fn3(pixel*p4)+fn2(z^p2)/fn3(pixel*p4))^p3 endif elseif (@op1==3) if (@op==0) z=(fn1(z^p1)/fn3(pixel*p4)+fn2(z^p2)+fn3(pixel*p4))^p3 elseif (@op==1) z=(fn1(z^p1)/fn3(pixel*p4)+fn2(z^p2)-fn3(pixel*p4))^p3 elseif (@op==2) z=(fn1(z^p1)/fn3(pixel*p4)+fn2(z^p2)*fn3(pixel*p4))^p3 elseif (@op==3) z=(fn1(z^p1)/fn3(pixel*p4)+fn2(z^p2)/fn3(pixel*p4))^p3 endif endif elseif (@op2==2) if (@op1==0) if (@op==0) z=(fn1(z^p1)+fn3(pixel*p4)-fn2(z^p2)+fn3(pixel*p4))^p3 elseif (@op==1) z=(fn1(z^p1)+fn3(pixel*p4)-fn2(z^p2)-fn3(pixel*p4))^p3 elseif (@op==2) z=(fn1(z^p1)+fn3(pixel*p4)-fn2(z^p2)*fn3(pixel*p4))^p3 elseif (@op==3) z=(fn1(z^p1)+fn3(pixel*p4)-fn2(z^p2)/fn3(pixel*p4))^p3 endif elseif (@op1==1) if (@op==0) z=(fn1(z^p1)-fn3(pixel*p4)-fn2(z^p2)+fn3(pixel*p4))^p3 elseif (@op==1) z=(fn1(z^p1)-fn3(pixel*p4)-fn2(z^p2)-fn3(pixel*p4))^p3 elseif (@op==2) z=(fn1(z^p1)-fn3(pixel*p4)-fn2(z^p2)*fn3(pixel*p4))^p3 elseif (@op==3) z=(fn1(z^p1)-fn3(pixel*p4)-fn2(z^p2)/fn3(pixel*p4))^p3 endif elseif (@op1==2) if (@op==0) z=(fn1(z^p1)*fn3(pixel*p4)-fn2(z^p2)+fn3(pixel*p4))^p3 elseif (@op==1) z=(fn1(z^p1)*fn3(pixel*p4)-fn2(z^p2)-fn3(pixel*p4))^p3 elseif (@op==2) z=(fn1(z^p1)*fn3(pixel*p4)-fn2(z^p2)*fn3(pixel*p4))^p3 elseif (@op==3) z=(fn1(z^p1)*fn3(pixel*p4)-fn2(z^p2)/fn3(pixel*p4))^p3 endif elseif (@op1==3) if (@op==0) z=(fn1(z^p1)/fn3(pixel*p4)-fn2(z^p2)+fn3(pixel*p4))^p3 elseif (@op==1) z=(fn1(z^p1)/fn3(pixel*p4)-fn2(z^p2)-fn3(pixel*p4))^p3 elseif (@op==2) z=(fn1(z^p1)/fn3(pixel*p4)-fn2(z^p2)*fn3(pixel*p4))^p3 elseif (@op==3) z=(fn1(z^p1)/fn3(pixel*p4)-fn2(z^p2)/fn3(pixel*p4))^p3 endif endif endif Bailout: |z| < @bailout Default: title="MyMandelbrot-M" center =(0.0,0.0) maxiter=250 method=multipass periodicity=0 param bailout caption="Bailout Value" default=64.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param op caption="Operator 1" enum="1""2""3""4" default=0 endparam param op1 caption="Operator 2" enum="1""2""3""4" default=0 endparam param op2 caption="Operator 3" enum="1""2""3" default=0 endparam param p1 caption="Exponent 1" default=(2.0,0.0) endparam param p2 caption="Exponent 2" default=(1.0,0.0) endparam param p3 caption="Exponent 3" default=(1.0,0.0) endparam param p4 caption="Parameter c" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn4 caption="Init Func z" default=ident() endfunc func fn3 caption="Function c" default=ident() endfunc func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="MyMandelbrot-J" seed=pixel bailout=@bailout op=@op op1=@op1 op2=@op2 p1=@p1 p2=@p2 p3=@p3 p4=@p4 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 version=@version } NewBrot { ;Andrea Spinozzi(July2004) Init: complex z=c1=c2=(0.0,0.0) complex x=x1=real(pixel)*p1 complex y=y1=imag(pixel)*p2 if (@mode == "Mandelbrot") complex z=(0.0,0.0) complex c1=real(pixel) complex c2=imag(pixel) if (@init==0) complex x=x1=real(pixel)*p1 complex y=y1=imag(pixel)*p2 elseif (@init==1) complex x=x1=@fn5(real(pixel))*p1 complex y=y1=@fn6(imag(pixel))*p2 endif elseif (@mode == "Julia") complex z=pixel complex c1=real(@seed) complex c2=imag(@seed) if (@init==0) complex x=x1=real(pixel)*p1 complex y=y1=imag(pixel)*p2 elseif (@init==1) complex x=x1=@fn5(real(pixel))*p1 complex y=y1=@fn6(imag(pixel))*p2 endif endif Loop: if (@op==0) x1=@fn7(x*x)-@fn8(y*y) y1=p3*x*y elseif (@op==1) x1=@fn7(x*x)+@fn8(y*y) y1=p3*x*y endif x=fn1(x1)+fn3(c1) y=fn2(y1)+fn3(c2) if (@flavor==0) z=fn4(x)-flip(y) elseif (@flavor==1) z=fn4(x)+flip(y) endif Bailout: |x|+|y|<=@bailout Default: title="NewBrot" method=multipass periodicity=0 maxiter=500 param bailout caption="Bailout Value" default=64.0 endparam param flavor caption="Flavor" enum="1""2" endparam func fn4 caption="Function Flavor" default=ident() endfunc Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param init caption="Init Set" enum="Normal""Functions Re|Im" default=0 endparam param op caption="Select Formula" enum="1""2" default=0 endparam param seed caption="Julia Seed" default=(0.0, 0.0) visible=(@mode == "Julia") endparam param p1 caption="Parameter 1" default=(1.0,0.0) endparam param p2 caption="Parameter 2" default=(1.0,0.0) endparam param p3 caption="Parameter 3" default=(2.0,0.0) endparam Heading caption="Functions" Endheading func fn5 caption="Function x,x1|Re" default=abs() visible=(@init==1) endfunc func fn6 caption="Function y,y1|Im" default=ident() visible=(@init==1) endfunc func fn7 caption="Function x" default=ident() endfunc func fn8 caption="Function y" default=ident() endfunc func fn1 caption="Function x1" default=ident() endfunc func fn2 caption="Function y1" default=ident() endfunc func fn3 caption="Function c1|c2" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="NewBrot" bailout=@bailout seed=#pixel flavor=@flavor init=@init op=@op p1=@p1 p2=@p2 p3=@p3 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 fn8=@fn8 mode=@switchmode switchmode=@mode version=@version } Optical-J { ;Andrea Spinozzi(Jan2004) Init: z=#pixel z1=pixel c=@seed float a=1.5 float b=0 float d=-1.5 Loop: if @invert==true z=1/(z) endif if @op=="+" if @op1=="+" if @op2=="+" z1=(a+fn1(z)^2)+(b*sqr(z))+fn2(c)+fn3(z) elseif @op2=="-" z1=(a+fn1(z)^2)+(b*sqr(z))+fn2(c)-fn3(z) elseif @op2=="*" z1=(a+fn1(z)^2)+(b*sqr(z))+fn2(c)*fn3(z) elseif @op2=="/" z1=(a+fn1(z)^2)+(b*sqr(z))+fn2(c)/fn3(z) elseif @op2=="^" z1=(a+fn1(z)^2)+(b*sqr(z))+fn2(c)^fn3(z) endif elseif @op1=="-" if @op2=="+" z1=(a+fn1(z)^2)+(b*sqr(z))-fn2(c)+fn3(z) elseif @op2=="-" z1=(a+fn1(z)^2)+(b*sqr(z))-fn2(c)-fn3(z) elseif @op2=="*" z1=(a+fn1(z)^2)+(b*sqr(z))-fn2(c)*fn3(z) elseif @op2=="/" z1=(a+fn1(z)^2)+(b*sqr(z))-fn2(c)/fn3(z) elseif @op2=="^" z1=(a+fn1(z)^2)+(b*sqr(z))-fn2(c)^fn3(z) endif endif elseif @op=="-" if @op1=="+" if @op2=="+" z1=(a-fn1(z)^2)+(b*sqr(z))+fn2(c)+fn3(z) elseif @op2=="-" z1=(a-fn1(z)^2)+(b*sqr(z))+fn2(c)-fn3(z) elseif @op2=="*" z1=(a-fn1(z)^2)+(b*sqr(z))+fn2(c)*fn3(z) elseif @op2=="/" z1=(a-fn1(z)^2)+(b*sqr(z))+fn2(c)/fn3(z) elseif @op2=="^" z1=(a-fn1(z)^2)+(b*sqr(z))+fn2(c)^fn3(z) endif elseif @op1=="-" if @op2=="+" z1=(a-fn1(z)^2)+(b*sqr(z))-fn2(c)+fn3(z) elseif @op2=="-" z1=(a-fn1(z)^2)+(b*sqr(z))-fn2(c)-fn3(z) elseif @op2=="*" z1=(a-fn1(z)^2)+(b*sqr(z))-fn2(c)*fn3(z) elseif @op2=="/" z1=(a-fn1(z)^2)+(b*sqr(z))-fn2(c)/fn3(z) elseif @op2=="^" z1=(a-fn1(z)^2)+(b*sqr(z))-fn2(c)^fn3(z) endif endif elseif @op=="*" if @op1=="+" if @op2=="+" z1=(a*fn1(z)^2)+(b*sqr(z))+fn2(c)+fn3(z) elseif @op2=="-" z1=(a*fn1(z)^2)+(b*sqr(z))+fn2(c)-fn3(z) elseif @op2=="*" z1=(a*fn1(z)^2)+(b*sqr(z))+fn2(c)*fn3(z) elseif @op2=="/" z1=(a*fn1(z)^2)+(b*sqr(z))+fn2(c)/fn3(z) elseif @op2=="^" z1=(a*fn1(z)^2)+(b*sqr(z))+fn2(c)^fn3(z) endif elseif @op1=="-" if @op2=="+" z1=(a*fn1(z)^2)+(b*sqr(z))-fn2(c)+fn3(z) elseif @op2=="-" z1=(a*fn1(z)^2)+(b*sqr(z))-fn2(c)-fn3(z) elseif @op2=="*" z1=(a*fn1(z)^2)+(b*sqr(z))-fn2(c)*fn3(z) elseif @op2=="/" z1=(a*fn1(z)^2)+(b*sqr(z))-fn2(c)/fn3(z) elseif @op2=="^" z1=(a*fn1(z)^2)+(b*sqr(z))-fn2(c)^fn3(z) endif endif elseif @op=="/" if @op1=="+" if @op2=="+" z1=(a/fn1(z)^2)+(b*sqr(z))+fn2(c)+fn3(z) elseif @op2=="-" z1=(a/fn1(z)^2)+(b*sqr(z))+fn2(c)-fn3(z) elseif @op2=="*" z1=(a/fn1(z)^2)+(b*sqr(z))+fn2(c)*fn3(z) elseif @op2=="/" z1=(a/fn1(z)^2)+(b*sqr(z))+fn2(c)/fn3(z) elseif @op2=="^" z1=(a/fn1(z)^2)+(b*sqr(z))+fn2(c)^fn3(z) endif elseif @op1=="-" if @op2=="+" z1=(a/fn1(z)^2)+(b*sqr(z))-fn2(c)+fn3(z) elseif @op2=="-" z1=(a/fn1(z)^2)+(b*sqr(z))-fn2(c)-fn3(z) elseif @op2=="*" z1=(a/fn1(z)^2)+(b*sqr(z))-fn2(c)*fn3(z) elseif @op2=="/" z1=(a/fn1(z)^2)+(b*sqr(z))-fn2(c)/fn3(z) elseif @op2=="^" z1=(a/fn1(z)^2)+(b*sqr(z))-fn2(c)^fn3(z) endif endif elseif @op=="^" if @op1=="+" if @op2=="+" z1=(a^fn1(z)^2)+(b*sqr(z))+fn2(c)+fn3(z) elseif @op2=="-" z1=(a^fn1(z)^2)+(b*sqr(z))+fn2(c)-fn3(z) elseif @op2=="*" z1=(a^fn1(z)^2)+(b*sqr(z))+fn2(c)*fn3(z) elseif @op2=="/" z1=(a^fn1(z)^2)+(b*sqr(z))+fn2(c)/fn3(z) elseif @op2=="^" z1=(a^fn1(z)^2)+(b*sqr(z))+fn2(c)^fn3(z) endif elseif @op1=="-" if @op2=="+" z1=(a^fn1(z)^2)+(b*sqr(z))-fn2(c)+fn3(z) elseif @op2=="-" z1=(a^fn1(z)^2)+(b*sqr(z))-fn2(c)-fn3(z) elseif @op2=="*" z1=(a^fn1(z)^2)+(b*sqr(z))-fn2(c)*fn3(z) elseif @op2=="/" z1=(a^fn1(z)^2)+(b*sqr(z))-fn2(c)/fn3(z) elseif @op2=="^" z1=(a^fn1(z)^2)+(b*sqr(z))-fn2(c)^fn3(z) endif endif endif if real(p1)<=a && real(p1)>=b z=z1/(0.5+p1) elseif real(p1)=d z=z1+p1 elseif real(p1)>a z=z1+(c/p1) elseif real(p1)=b z=z1/(0.5+p1) elseif real(p1)=d z=z1+p1 elseif real(p1)>a z=z1+(c/p1) elseif real(p1)0 IF |p2|>0 IF @select=="1" if @op=="1" x=|z*z*c|*((fn1(c*z)^p1)*(fn2(z*z)^p2)) y=|z*c*c|*(fn3(c/p2)*fn4(c*z)/p1) elseif @op=="2" x=|z*z*c|*((fn1(c*z)^p1)+fn2(z*z)^p2) y=|z*c*c|*(fn3(c/p2)+fn4(c*z)/p1) elseif @op=="3" x=|z*z*c|*((fn1(c*z)^p1)-fn2(z*z)^p2) y=|z*c*c|*(fn3(c/p2)-fn4(c*z)/p1) elseif @op=="4" x=|z*z*c|*((fn1(c*z)^p1)/fn2(z*z)^p2) y=|z*c*c|*(fn3(c/p2)/fn4(c*z)/p1) elseif @op=="5" x=|z*z*c|*((fn1(c)^p1)*fn2(z*z)^p2) y=|z*c*c|*(fn3(c/p2)*fn4(c*z)/p1) elseif @op=="6" x=|z*z*c|*((fn1(c)^p1)+fn2(z*z)^p2) y=|z*c*c|*(fn3(c/p2)+fn4(c*z)/p1) elseif @op=="7" x=|z*z*c|*((fn1(c)^p1)-fn2(z*z)^p2) y=|z*c*c|*(fn3(c/p2)-fn4(c*z)/p1) elseif @op=="8" x=|z*z*c|*((fn1(c)^p1)/fn2(z*z)^p2) y=|z*c*c|*(fn3(c/p2)/fn4(c*z)/p1) endif Elseif @select=="2" if @op=="1" x=|z*z*c|/((fn1(c*z)^p1)*fn2(z*z)^p2) y=|z*c*c|*((fn3(c)/p2)*fn4(c*z)/p1) elseif @op=="2" x=|z*z*c|/((fn1(c*z)^p1)+fn2(z*z)^p2) y=|z*c*c|*(fn3(c/p2)+fn4(c*z)/p1) elseif @op=="3" x=|z*z*c|/((fn1(c*z)^p1)-fn2(z*z)^p2) y=|z*c*c|*(fn3(c/p2)-fn4(c*z)/p1) elseif @op=="4" x=|z*z*c|/((fn1(c*z)^p1)/fn2(z*z)^p2) y=|z*c*c|*(fn3(c/p2)/fn4(c*z)/p1) elseif @op=="5" x=|z*z*c|/((fn1(c)^p1)*fn2(z*z)^p2) y=|z*c*c|*(fn3(c/p2)*fn4(c*z)/p1) elseif @op=="6" x=|z*z*c|/((fn1(c)^p1)+fn2(z*z)^p2) y=|z*c*c|*(fn3(c/p2)+fn4(c*z)/p1) elseif @op=="7" x=|z*z*c|/((fn1(c)^p1)-fn2(z*z)^p2) y=|z*c*c|*(fn3(c/p2)-fn4(c*z)/p1) elseif @op=="8" x=|z*z*c|/((fn1(c)^p1)/fn2(z*z)^p2) y=|z*c*c|*(fn3(c/p2)/fn4(c*z)/p1) endif Elseif @select=="3" if @op=="1" x=|z*z*c|*((fn1(c*z)^p1)*fn2(z*z)^p2) y=|z*c*c|/((fn3(c)/p2)*fn4(c*z)/p1) elseif @op=="2" x=|z*z*c|*((fn1(c*z)^p1)+fn2(z*z)^p2) y=|z*c*c|/(fn3(c/p2)+fn4(c*z)/p1) elseif @op=="3" x=|z*z*c|*((fn1(c*z)^p1)-fn2(z*z)^p2) y=|z*c*c|/(fn3(c/p2)-fn4(c*z)/p1) elseif @op=="4" x=|z*z*c|*((fn1(c*z)^p1)/fn2(z*z)^p2) y=|z*c*c|/(fn3(c/p2)/fn4(c*z)/p1) elseif @op=="5" x=|z*z*c|*((fn1(c)^p1)*fn2(z*z)^p2) y=|z*c*c|/(fn3(c/p2)*fn4(c*z)/p1) elseif @op=="6" x=|z*z*c|*((fn1(c)^p1)+fn2(z*z)^p2) y=|z*c*c|/(fn3(c/p2)+fn4(c*z)/p1) elseif @op=="7" x=|z*z*c|*((fn1(c)^p1)-fn2(z*z)^p2) y=|z*c*c|/(fn3(c/p2)-fn4(c*z)/p1) elseif @op=="8" x=|z*z*c|*((fn1(c)^p1)/fn2(z*z)^p2) y=|z*c*c|/(fn3(c/p2)/fn4(c*z)/p1) endif Elseif @select=="4" if @op=="1" x=|z*z*c|+((fn1(c*z)^p1)*fn2(z*z)^p2) y=|z*c*c|+((fn3(c)/p2)*fn4(c*z)/p1) elseif @op=="2" x=|z*z*c|+((fn1(c*z)^p1)+fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)+fn4(c*z)/p1) elseif @op=="3" x=|z*z*c|+((fn1(c*z)^p1)-fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)-fn4(c*z)/p1) elseif @op=="4" x=|z*z*c|+((fn1(c*z)^p1)/fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)/fn4(c*z)/p1) elseif @op=="5" x=|z*z*c|+((fn1(c)^p1)*fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)*fn4(c*z)/p1) elseif @op=="6" x=|z*z*c|+((fn1(c)^p1)+fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)+fn4(c*z)/p1) elseif @op=="7" x=|z*z*c|+((fn1(c)^p1)-fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)-fn4(c*z)/p1) elseif @op=="8" x=|z*z*c|+((fn1(c)^p1)/fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)/fn4(c*z)/p1) endif Elseif @select=="5" if @op=="1" x=|z*z*c|+((fn1(c*z)^p1)*fn2(z*z)^p2) y=|z*c*c|-((fn3(c)/p2)*fn4(c*z)/p1) elseif @op=="2" x=|z*z*c|+((fn1(c*z)^p1)+fn2(z*z)^p2) y=|z*c*c|-(fn3(c/p2)+fn4(c*z)/p1) elseif @op=="3" x=|z*z*c|+((fn1(c*z)^p1)-fn2(z*z)^p2) y=|z*c*c|-(fn3(c/p2)-fn4(c*z)/p1) elseif @op=="4" x=|z*z*c|+((fn1(c*z)^p1)/fn2(z*z)^p2) y=|z*c*c|-(fn3(c/p2)/fn4(c*z)/p1) elseif @op=="5" x=|z*z*c|+((fn1(c)^p1)*fn2(z*z)^p2) y=|z*c*c|-(fn3(c/p2)*fn4(c*z)/p1) elseif @op=="6" x=|z*z*c|+((fn1(c)^p1)+fn2(z*z)^p2) y=|z*c*c|-(fn3(c/p2)+fn4(c*z)/p1) elseif @op=="7" x=|z*z*c|+((fn1(c)^p1)-fn2(z*z)^p2) y=|z*c*c|-(fn3(c/p2)-fn4(c*z)/p1) elseif @op=="8" x=|z*z*c|+((fn1(c)^p1)/fn2(z*z)^p2) y=|z*c*c|-(fn3(c/p2)/fn4(c*z)/p1) endif Elseif @select=="6" if @op=="1" x=|z*z*c|-((fn1(c*z)^p1)*fn2(z*z)^p2) y=|z*c*c|+((fn3(c)/p2)*fn4(c*z)/p1) elseif @op=="2" x=|z*z*c|-((fn1(c*z)^p1)+fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)+fn4(c*z)/p1) elseif @op=="3" x=|z*z*c|-((fn1(c*z)^p1)-fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)-fn4(c*z)/p1) elseif @op=="4" x=|z*z*c|-((fn1(c*z)^p1)/fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)/fn4(c*z)/p1) elseif @op=="5" x=|z*z*c|-((fn1(c)^p1)*fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)*fn4(c*z)/p1) elseif @op=="6" x=|z*z*c|-((fn1(c)^p1)+fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)+fn4(c*z)/p1) elseif @op=="7" x=|z*z*c|-((fn1(c)^p1)-fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)-fn4(c*z)/p1) elseif @op=="8" x=|z*z*c|-((fn1(c)^p1)/fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)/fn4(c*z)/p1) endif Elseif @select=="7" if @op=="1" x=|z*z*c|*((fn1(c*z)^p1)*fn2(z*z)^p2) y=|z*c*c|+((fn3(c)/p2)*fn4(c*z)/p1) elseif @op=="2" x=|z*z*c|*((fn1(c*z)^p1)+fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)+fn4(c*z)/p1) elseif @op=="3" x=|z*z*c|*((fn1(c*z)^p1)-fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)-fn4(c*z)/p1) elseif @op=="4" x=|z*z*c|*((fn1(c*z)^p1)/fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)/fn4(c*z)/p1) elseif @op=="5" x=|z*z*c|*((fn1(c)^p1)*fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)*fn4(c*z)/p1) elseif @op=="6" x=|z*z*c|*((fn1(c)^p1)+fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)+fn4(c*z)/p1) elseif @op=="7" x=|z*z*c|*((fn1(c)^p1)-fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)-fn4(c*z)/p1) elseif @op=="8" x=|z*z*c|*((fn1(c)^p1)/fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)/fn4(c*z)/p1) endif Elseif @select=="8" if @op=="1" x=|z*z*c|*((fn1(c*z)^p1)*fn2(z*z)^p2) y=|z*c*c|-((fn3(c)/p2)*fn4(c*z)/p1) elseif @op=="2" x=|z*z*c|*((fn1(c*z)^p1)+fn2(z*z)^p2) y=|z*c*c|-(fn3(c/p2)+fn4(c*z)/p1) elseif @op=="3" x=|z*z*c|*((fn1(c*z)^p1)-fn2(z*z)^p2) y=|z*c*c|-(fn3(c/p2)-fn4(c*z)/p1) elseif @op=="4" x=|z*z*c|*((fn1(c*z)^p1)/fn2(z*z)^p2) y=|z*c*c|-(fn3(c/p2)/fn4(c*z)/p1) elseif @op=="5" x=|z*z*c|*((fn1(c)^p1)*fn2(z*z)^p2) y=|z*c*c|-(fn3(c/p2)*fn4(c*z)/p1) elseif @op=="6" x=|z*z*c|*((fn1(c)^p1)+fn2(z*z)^p2) y=|z*c*c|-(fn3(c/p2)+fn4(c*z)/p1) elseif @op=="7" x=|z*z*c|*((fn1(c)^p1)-fn2(z*z)^p2) y=|z*c*c|-(fn3(c/p2)-fn4(c*z)/p1) elseif @op=="8" x=|z*z*c|*((fn1(c)^p1)/fn2(z*z)^p2) y=|z*c*c|-(fn3(c/p2)/fn4(c*z)/p1) endif Elseif @select=="9" if @op=="1" x=|z*z*c|/((fn1(c*z)^p1)*fn2(z*z)^p2) y=|z*c*c|+((fn3(c)/p2)*fn4(c*z)/p1) elseif @op=="2" x=|z*z*c|/((fn1(c*z)^p1)+fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)+fn4(c*z)/p1) elseif @op=="3" x=|z*z*c|/((fn1(c*z)^p1)-fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)-fn4(c*z)/p1) elseif @op=="4" x=|z*z*c|/((fn1(c*z)^p1)/fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)/fn4(c*z)/p1) elseif @op=="5" x=|z*z*c|/((fn1(c)^p1)*fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)*fn4(c*z)/p1) elseif @op=="6" x=|z*z*c|/((fn1(c)^p1)+fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)+fn4(c*z)/p1) elseif @op=="7" x=|z*z*c|/((fn1(c)^p1)-fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)-fn4(c*z)/p1) elseif @op=="8" x=|z*z*c|/((fn1(c)^p1)/fn2(z*z)^p2) y=|z*c*c|+(fn3(c/p2)/fn4(c*z)/p1) endif Elseif @select=="10" if @op=="1" x=|z*z*c|/((fn1(c*z)^p1)*fn2(z*z)^p2) y=|z*c*c|-((fn3(c)/p2)*fn4(c*z)/p1) elseif @op=="2" x=|z*z*c|/((fn1(c*z)^p1)+fn2(z*z)^p2) y=|z*c*c|-(fn3(c/p2)+fn4(c*z)/p1) elseif @op=="3" x=|z*z*c|/((fn1(c*z)^p1)-fn2(z*z)^p2) y=|z*c*c|-(fn3(c/p2)-fn4(c*z)/p1) elseif @op=="4" x=|z*z*c|/((fn1(c*z)^p1)/fn2(z*z)^p2) y=|z*c*c|-(fn3(c/p2)/fn4(c*z)/p1) elseif @op=="5" x=|z*z*c|/((fn1(c)^p1)*fn2(z*z)^p2) y=|z*c*c|-(fn3(c/p2)*fn4(c*z)/p1) elseif @op=="6" x=|z*z*c|/((fn1(c)^p1)+fn2(z*z)^p2) y=|z*c*c|-(fn3(c/p2)+fn4(c*z)/p1) elseif @op=="7" x=|z*z*c|/((fn1(c)^p1)-fn2(z*z)^p2) y=|z*c*c|-(fn3(c/p2)-fn4(c*z)/p1) elseif @op=="8" x=|z*z*c|/((fn1(c)^p1)/fn2(z*z)^p2) y=|z*c*c|-(fn3(c/p2)/fn4(c*z)/p1) endif endif endif ENDIF ;---------------------------------- if @DELETE==false IF p4==0 if @change==0 z=((x/y)^p3)^p4+(asinh(c)*z)^p5 elseif @change==1 z=((x/y)^p3)^p4+(sinh(c)*z)^p5 elseif @change==2 z=((x/y)^p3)^p4+(sqrt(c)*z)^p5 elseif @change==3 z=((x/y)^p3)^p4+(cos(c)*z)^p5 elseif @change==4 z=((x/y)^p3)^p4+(cotanh(c)*z)^p5 elseif @change==5 z=((x/y)^p3)^p4+(atanh(c)*z)^p5 elseif @change==6 z=((x/y)^p3)^p4+(cosh(c)*z)^p5 elseif @change==7 z=((x/y)^p3)^p4+(acosh(c)*z)^p5 elseif @change==8 z=((x/y)^p3)^p4-(@fn5(asinh(c))*z)^p5 elseif @change==9 z=((x/y)^p3)^p4-(@fn5(sinh(c))*z)^p5 elseif @change==10 z=((x/y)^p3)^p4-(@fn5(sqrt(c))*z)^p5 elseif @change==11 z=((x/y)^p3)^p4-(@fn5(cos(c))*z)^p5 elseif @change==12 z=((x/y)^p3)^p4-(@fn5(cotanh(c))*z)^p5 elseif @change==13 z=((x/y)^p3)^p4-(@fn5(atanh(c))*z)^p5 elseif @change==14 z=((x/y)^p3)^p4-(@fn5(cosh(c))*z)^p5 elseif @change==15 z=((x/y)^p3)^p4-(@fn5(acosh(c))*z)^p5 endif ENDIF IF |p4|>0 if @change==0 z=((x/y)*p3)*p4+(asinh(c)*z)/p5 elseif @change==1 z=((x/y)*p3)*p4+(sinh(c)*z)/p5 elseif @change==2 z=((x/y)*p3)*p4+(sqrt(c)*z)/p5 elseif @change==3 z=((x/y)*p3)*p4+(cos(c)*z)/p5 elseif @change==4 z=((x/y)*p3)*p4+(cotanh(c)*z)/p5 elseif @change==5 z=((x/y)*p3)*p4+(atanh(c)*z)/p5 elseif @change==6 z=((x/y)*p3)*p4+(cosh(c)*z)/p5 elseif @change==7 z=((x/y)*p3)*p4+(acosh(c)*z)/p5 elseif @change==8 z=((x/y)*p3)*p4-(@fn5(asinh(c))*z)/p5 elseif @change==9 z=((x/y)*p3)*p4-(@fn5(sinh(c))*z)/p5 elseif @change==10 z=((x/y)*p3)*p4-(@fn5(sqrt(c))*z)/p5 elseif @change==11 z=((x/y)*p3)*p4-(@fn5(cos(c))*z)/p5 elseif @change==12 z=((x/y)*p3)*p4-(@fn5(cotanh(c))*z)/p5 elseif @change==13 z=((x/y)*p3)*p4-(@fn5(atanh(c))*z)/p5 elseif @change==14 z=((x/y)*p3)*p4-(@fn5(cosh(c))*z)/p5 elseif @change==15 z=((x/y)*p3)*p4-(@fn5(acosh(c))*z)/p5 endif ENDIF ENDIF If @DELETE==true if @change==0 z=1+((asinh(c))*z)*fn3(fn2(z)^@p8)^p6*fn1(z)^@p7+fn4(c) elseif @change==1 z=1+((sinh(c))*z)*fn3(fn2(z)^@p8)^p6*fn1(z)^@p7+fn4(c) elseif @change==2 z=1+((sqrt(c))*z)*fn3(fn2(z)^@p8)^p6*fn1(z)^@p7+fn4(c) elseif @change==3 z=1+((cos(c))*z)*fn3(fn2(z)^@p8)^p6*fn1(z)^@p7+fn4(c) elseif @change==4 z=1+((cotanh(c))*z)*fn3(fn2(z)^@p8)^p6*fn1(z)^@p7+fn4(c) elseif @change==5 z=1+((atanh(c))*z)*fn3(fn2(z)^@p8)^p6*fn1(z)^@p7+fn4(c) elseif @change==6 z=1+((cosh(c))*z)*fn3(fn2(z)^@p8)^p6*fn1(z)^@p7+fn4(c) elseif @change==7 z=1+((acosh(c))*z)*fn3(fn2(z)^@p8)^p6*fn1(z)^@p7+fn4(c) elseif @change==8 z=1-((@fn5(asinh(c)))*z)*fn3(fn2(z)^@p8)^p6*fn1(z)^@p7+fn4(c) elseif @change==9 z=1-((@fn5(sinh(c)))*z)*fn3(fn2(z)^@p8)^p6*fn1(z)^@p7+fn4(c) elseif @change==10 z=1-((@fn5(sqrt(c)))*z)*fn3(fn2(z)^@p8)^p6*fn1(z)^@p7+fn4(c) elseif @change==11 z=1-((@fn5(cos(c)))*z)*fn3(fn2(z)^@p8)^p6*fn1(z)^@p7+fn4(c) elseif @change==12 z=1-((@fn5(cotanh(c)))*z)*fn3(fn2(z)^@p8)^p6*fn1(z)^@p7+fn4(c) elseif @change==13 z=1-((@fn5(atanh(c)))*z)*fn3(fn2(z)^@p8)^p6*fn1(z)^@p7+fn4(c) elseif @change==14 z=1-((@fn5(cosh(c)))*z)*fn3(fn2(z)^@p8)^p6*fn1(z)^@p7+fn4(c) elseif @change==15 z=1-((@fn5(acosh(c)))*z)*fn3(fn2(z)^@p8)^p6*fn1(z)^@p7+fn4(c) endif endif Bailout: |z|<@bailout Default: title="Potty" center=(0.0,0.0) maxiter=250 magn=0.8 angle=90 method=multipass periodicity=0 param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 endparam param SwitchMode caption="Select Switch" enum="Mandelbrot""Julia" default=1 endparam param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param delete caption="Change Mode" default=false endparam complex param StartSeed caption="Start/Seed" default=(0.2421875,1.903706549e-19) endparam param select caption="Operator 1" enum="1""2""3""4""5""6""7""8""9""10" default=0 visible=(@delete==false) endparam param op caption="Operator 2" enum="1""2""3""4""5""6""7""8" default=0 visible=(@delete==false) endparam param change caption="Change" enum="asinh(c)""sinh(c)""sqrt(c)""cos(c)""cotan(c)""atanh(c)""cosh(c)""acosh(c)"\ "fn5(asinh(c))""fn5(sinh(c))""fn5(sqrt(c))""fn5(cos(c))""fn5(cotan(c))"\ "fn5(atanh(c))""fn5(cosh(c))""fn5(acosh(c))" default=0 endparam param p3 caption="Parameter 1" default=(1.0,0.0) visible=(@delete==false) endparam param p4 caption="Parameter 2" default=(1.0,0.0) visible=(@delete==false) endparam param p5 caption="Parameter 3" default=(1.0,0.0) visible=(@delete==false) endparam param p1 caption="Exponent 1" default=(1.0,0.0) visible=(@delete==false) endparam param p2 caption="Exponent 2" default=(1.0,0.0) visible=(@delete==false) endparam param p6 caption="Exponent 3" default=(0.2,0.0) visible=(@delete==True) endparam param p7 caption="Exponent 4" default=(0.2,0.0) visible=(@delete==true) endparam param p8 caption="Exponent 5" default=(0.5,0.0) visible=(@delete==true) endparam Heading caption="Functions" endheading Func fn1 caption="Function 1" default=ident() endfunc Func fn2 caption="Function 2" default=cabs() endfunc Func fn3 caption="Function 3" default=ident() endfunc Func fn4 caption="Function 4" default=ident() endfunc Func fn5 caption="Function 5" default=ident() visible=(@change==8)!=(@change==9)!=(@change==10)!=(@change==11)!=(@change==12)\ !=(@change==13)!=(@change==14)!=(@change==15) endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Potty" bailout=@bailout startseed=#pixel delete=@delete @select=@select @op=@op @change=@change p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 @p7=@p7 @p8=@p8 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 mode=@switchmode switchmode=@mode version=@version } PseudoCubeMandelVar { ;Andrea Spinozzi(July2004) Init: complex z=(0.0,0.0) complex c=(0.0,0.0) p3r=real(p3) p3i=imag(p3) if (@mode=="Mandelbrot") z=@start c=pixel elseif (@mode==1) z=pixel c=@seed endif Loop: if (@op==0) if @op1==0 z=fn3(c*c*fn2(z^p3r))+(c*p1+(fn1(z)^p2)^p3i) elseif @op1==1 z=fn3(c*c*fn2(z^p3r))-(c*p1+(fn1(z)^p2)^p3i) elseif @op1==2 z=fn3(c+c*fn2(z^p3r))*(c*p1+(fn1(z)^p2)^p3i) elseif @op1==3 z=fn3(c-c*fn2(z^p3r))*(c*p1+(fn1(z)^p2)^p3i) elseif @op1==4 z=fn3(c*c+fn2(z^p3r))*(c*p1+(fn1(z)^p2)^p3i) elseif @op1==5 z=fn3(c+c-fn2(z^p3r))*(c*c*c*p1+(fn1(z)^p2)^p3i) elseif @op1==6 z=fn3(c*c*fn2(z^p3r))+(c*c*c*p1+(fn1(z)^p2)^p3i) elseif @op1==7 z=fn3(c*c*fn2(z^p3r))-(c*c*c*p1+(fn1(z)^p2)^p3i) elseif @op1==8 z=fn3(c-c*fn2(z^p3r))+(c*c*c*p1+(fn1(z)^p2)^p3i) elseif @op1==9 z=fn3(c-c*fn2(z^p3r))-(c*c*c*p1+(fn1(z)^p2)^p3i) endif elseif (@op==1) if (@op1==0) z=fn3(z*z-fn2(z^p3r))+(c*p1+(fn1(z)^p2)^p3i) elseif @op1==1 z=fn3(z*z-fn2(z^p3r))-(c*p1+(fn1(z)^p2)^p3i) elseif @op1==2 z=fn3(z*z*fn2(z^p3r))+(c*p1+(fn1(z)^p2)^p3i) elseif @op1==3 z=fn3(z*z*fn2(z^p3r))-(c*p1+(fn1(z)^p2)^p3i) elseif @op1==4 z=fn3(z*z-fn2(z^p3r))+(c*c*c*p1+(fn1(z)^p2)^p3i) elseif @op1==5 z=fn3(z*z-fn2(z^p3r))-(c*c*c*p1+(fn1(z)^p2)^p3i) elseif @op1==6 z=fn3(z*z*fn2(z^p3r))+(c*c*c*p1+(fn1(z)^p2)^p3i) elseif @op1==7 z=fn3(z*z*fn2(z^p3r))-(c*c*c*p1+(fn1(z)^p2)^p3i) elseif @op1==8 z=fn3(z*z+fn2(z^p3r))+(c*c*c*p1+(fn1(z)^p2)^p3i) elseif @op1==9 z=fn3(z*z+fn2(z^p3r))-(c*c*c*p1+(fn1(z)^p2)^p3i) endif endif Bailout: |z|<=@bailout Default: title="PseudoCubeMandelVar" center=(0.0,0.0) maxiter=250 method=multipass periodicity=0 Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="Current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param Bailout caption="Bailout Value" default=64.0 endparam Heading caption="Operators and Parameters" endheading param op caption="Operator 1" enum="1""2" default=0 endparam param op1 caption="Operator 2" enum="1""2""3""4""5""6""7""8""9""10" default=3 endparam param start caption="Start Value" default=(0.0,0.0) visible=(@mode=="Mandelbrot") endparam param seed caption="Seed Value" default=(1.0,0.0) visible=(@mode=="Julia") endparam param p1 caption="Parameter" default=(0.8,0.0) endparam param p2 caption="Exponent 1" default=(1.5,0.0) endparam param p3 caption="Exponent 2" default=(1.0,1.0) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=sqrt() endfunc func fn2 caption="Function 2" default=ident() endfunc func Fn3 caption="Function 3" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="PseudoCubeMandelVar" @seed=#pixel bailout=@bailout op=@op op1=@op1 p1=@p1 p2=@p2 p3=@p3 fn1=@fn1 fn2=@fn2 fn3=@fn3 mode=@switchmode switchmode=@mode version=@version } As-QuatMan { ;QuatMan_yz ;4-dimensional M-Set ;Original formula in the orgform collection , _q.frm. ;Andrea Spinozzi(May2004) Init: z=real(p1) + flip(real(pixel)) cz=real(p1) + flip(real(pixel)) cw=imag(pixel) + flip(imag(p1)) w=imag(pixel) + flip(imag(p1)) qz=sqr(z) qw=sqr(w) p2r=real(p2) p2i=imag(p2) if (@mode == "Mandelbrot" ) z=real(p1) + flip(real(pixel)) cz=real(p1) + flip(real(pixel)) cw=imag(pixel) + flip(imag(p1)) w=imag(pixel) + flip(imag(p1)) qz=sqr(z) qw=sqr(w) p2r=real(p2) p2i=imag(p2) elseif (@mode == "Julia") if (@varJulia == 0) z=real(p1) + flip(real(pixel)) cz=real(p1) + flip(real(pixel)) cw=imag(@seed) + flip(imag(p1)) w=imag(pixel) + flip(imag(p1)) qz=sqr(z) qw=sqr(w) p2r=real(p2) p2i=imag(p2) elseif (@varJulia == 1) z=real(p1) + flip(real(pixel)) cz=real(p1) + flip(real(pixel)) cw=imag(pixel) + flip(imag(p1)) w=imag(@seed) + flip(imag(p1)) qz=sqr(z) qw=sqr(w) p2r=real(p2) p2i=imag(p2) elseif (@varJulia == 2) z=real(p1) + flip(real(pixel)) cz=real(p1) + flip(real(@seed)) cw=imag(@seed) + flip(imag(p1)) w=imag(pixel) + flip(imag(p1)) qz=sqr(z) qw=sqr(w) p2r=real(p2) p2i=imag(p2) elseif (@varJulia == 3) z=real(p1) + flip(real(pixel)) cz=real(p1) + flip(real(@seed)) cw=imag(pixel) + flip(imag(p1)) w=imag(@seed) + flip(imag(p1)) qz=sqr(z) qw=sqr(w) p2r=real(p2) p2i=imag(p2) elseif (@varJulia == 4) z=real(p1) + flip(real(@seed)) cz=real(p1) + flip(real(pixel)) cw=imag(@seed) + flip(imag(p1)) w=imag(pixel) + flip(imag(p1)) qz=sqr(z) qw=sqr(w) p2r=real(p2) p2i=imag(p2) elseif (@varJulia == 5) z=real(p1) + flip(real(pixel)) cz=real(p1) + (real(@seed)) cw=imag(pixel) + flip(imag(p1)) w=imag(@seed) + flip(imag(p1)) qz=sqr(z) qw=sqr(w) p2r=real(p2) p2i=imag(p2) elseif (@varJulia == 6) z=real(p1) + flip(real(pixel)) cz=real(p1) + (real(@seed)) cw=imag(@seed) + flip(imag(p1)) w=imag(pixel) + flip(imag(p1)) qz=sqr(z) qw=sqr(w) p2r=real(p2) p2i=imag(p2) endif endif Loop: if (@mode1 == 0) tz=fn1(qz)-fn2(qw)+fn3(cz) tw=2*z*w+cw z=fn4(tz) w=@fn5(tw) qz=sqr(z)^p2r qw=sqr(w)^p2i elseif (@mode1 == 1) tz=fn1(qz)+fn2(qw)-fn3(cz) tw=2*z*w+cw z=fn4(tz) w=@fn5(tw) qz=sqr(z)^p2r qw=sqr(w)^p2i endif Bailout: |z|+|w| < @bailout Default: title="QuatMan" magn=1.0 angle=0 method=multipass periodicity=0 maxiter=250 param bailout caption="Bailout Value" default=16.0 min=0.0 endparam param varJulia caption="Select Switch" enum="1""2""3""4""5""6""7" default=2 endparam param @seed caption="Seed Value" default=(0.0,0.0) visible=(@mode == "Julia") endparam Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="Current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param mode1 caption="Select Mode" enum="1""2" default=0 endparam param p1 caption="Parameter 1" default=(0.0,0.0) endparam param p2 caption="Parameter 2" default=(1.0,1.0) endparam param version caption="Version" default=1.0 visible=false endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc Switch: type="As-QuatMan" seed=pixel bailout=@bailout p1=@p1 p2=@p2 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 mode1=@mode1 mode=@switchmode switchmode=@mode varJulia=@varJulia version=@version } RoseJulia { ;Andrea Spinozzi(Updated Aug2004) Init: float c=1.0 z=pixel z=@seed^fn1(z) Loop: if real(p1)>=c z=c+fn3(z) elseif real(p1)<=-c z=c-fn3(z) else z=fn3(z) endif z=fn2(z^p2)^fn4(@seed)+@power*c+p1 Bailout: |z|<=@bailout Default: title="RoseJulia" center=(0.0,0.0) maxiter=250 angle=90 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Parameters" Endheading param p1 caption="Parameter 1" default=(0.0,0.0) endparam param power caption="Parameter 2" default=(0.0,0.0) endparam param p2 caption="Exponent" default=(1.0,0.0) endparam param @seed caption="Julia Seed" default=(1.0125,-0.19375) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="RoseMandel" seed=pixel bailout=@bailout p1=@p1 p2=@p2 power=@power fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 version=@version } RoseJulia-J { ;Andrea Spinozzi(Updated Aug2004) Init: float c=1.0 z=pixel z=@seed^fn1(z) Loop: if (@op == 0) z=fn3(z) elseif (@op == 1) z=c-fn3(z) endif z=fn2(z)^@seed+p1 Bailout: |z|<=@bailout Default: title="RoseJulia-J" center=(0.0,0.0) magn=1.0 maxiter=250 angle=0 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operator and Parameters" Endheading param op caption="Operator" enum="1""2" default=0 endparam param p1 caption="Parameter" default=(0.0,0.0) endparam param @seed caption="Julia Seed" default=(0.54375,-0.84375) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=abs() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="RoseJulia-M" seed=#pixel bailout=@bailout op=@op p1=@p1 fn1=@fn1 fn2=@fn2 fn3=@fn3 version=@version } RoseJulia-M { ;Andrea Spinozzi(Updated Aug2004) Init: float c=1.0 z=pixel z=pixel^fn1(z) Loop: if (@op == 0) z=fn3(z) elseif (@op == 1) z=c-fn3(z) endif z=fn2(z)^pixel+@p1 Bailout: |z|<=@bailout Default: title="RoseJulia-M" center=(0.0,0.0) magn=1.0 maxiter=250 angle=90 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operator and Parameter" Endheading param op caption="Operator" enum="1""2" default=1 endparam param p1 caption="Parameter" default=(0.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="RoseJulia-J" seed=#pixel bailout=@bailout op=@op p1=@p1 fn1=@fn1 fn2=@fn2 fn3=@fn3 version=@version } RoseMandel { ;Andrea Spinozzi(Updated Aug2004) Init: z=pixel z=pixel^fn1(z) float c=1.0 Loop: if real(p1)>=c z=c+fn3(z) elseif real(p1)-c z=fn3(z) endif z=fn2(z^p2)^fn4(pixel)+@power*c+p1 Bailout: |z|<=@bailout Default: title="RoseMandel" center=(0.0,0.0) maxiter=250 angle=90 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Parameters" Endheading param p1 caption="Parameter" default=(0.0,0.0) endparam param power caption="Parameter 2" default=(-1.8,0.0) endparam param p2 caption="Exponent" default=(2.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=sqr() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="RoseJulia" seed=pixel bailout=@bailout p1=@p1 p2=@p2 power=@power fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 version=@version } RoseMandel2Func { ;Andrea Spinozzi(Updated Aug2004) Init: float c=1.0 z=pixel z=pixel^fn1(z)+fn2(z) Loop: if p1==c z=c+fn3(z) elseif p1==-c z=c-fn3(z) else z=fn3(z) endif z=fn4(z^p2)^@fn5(pixel)+@power+p1 Bailout: |z|<=@bailout Default: title="RoseMandel2Func" center=(0.0,0.0) maxiter=250 angle=90 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Parameters" Endheading param power caption="Parameter 1" default=(1.0,0.0) endparam param p1 caption="Parameter 2" default=(-1.0,0.0) endparam param p2 caption="Exponent" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=zero() endfunc func fn2 caption="Function 2" default=sqr() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="RoseJulia2Func" seed=pixel bailout=@bailout power=@power p1=@p1 p2=@p2 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 version=@version } Sfinge#1 { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel q=2*pixel+@seed Loop: z=q*z+fn1(z^p3)*fn3(z^p4)-fn4(z^p5)+fn2(z^p6)+p1+p2 c=z^@seed+2*@power if (@invert == true) z=z else z=q*z endif if (@op== "+") z=z+c elseif (@op== "-") z=z-c elseif (@op== "*") z=z*c elseif (@op== "/") z=z/c elseif (@op== "^") z=z^c endif if (@op1== "+") z=z+c+q elseif (@op1 == "-") z=z-c-q elseif (@op1 == "*") z=z*c*q elseif (@op1 == "/") z=z/c/q elseif (@op1 == "^") z=z^c^q+p2 endif if (@op2 == "+") z=z+c elseif (@op2 == "-") z=z-c elseif (@op2 == "*") z=z*c elseif (@op2 == "/") z=z/c elseif (@op2 == "^") z=z^c endif Bailout: |z|<=@bailout Default: title="Sfinge#1" angle=90 center=(0,0) maxiter=250 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param op caption="Operator 1" enum="+""-""*""/""^" default=2 endparam param op1 caption="Operator 2" enum="+""-""*""/""^" default=0 endparam param op2 caption="Operator 3" enum="+""-""*""/""^" default=1 endparam param invert caption="Change z" default=false endparam param p1 caption="Parameter 1" default= (0.0,0.0) endparam param p2 caption="Parameter 2" default=(0.0,0.0) endparam param power caption="Parameter 3" default=(0.0,0.0) endparam param @seed caption="Parameter 4" default=(0.2,0.0) endparam param p3 caption="Exponent 1" default=(1.0,0.0) endparam param p4 caption="Exponent 2" default=(1.0,0.0) endparam param p5 caption="Exponent 3" default=(1.0,0.0) endparam param p6 caption="Exponent 4" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Sfinge#1-J" bailout=@bailout @seed1=#pixel op=@op op1=@op1 op2=@op2 invert=@invert power=@power p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 seed=@seed fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 version=@version } Sfinge#1-J { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel q=2*@seed1+@seed Loop: z=q*z+fn1(z^p3)*fn3(z^p4)-fn4(z^p5)+fn2(z^p6)+p1+p2 c=z^@seed+2*@power if (@invert == true) z=z else z=q*z endif if (@op== "+") z=z+c elseif (@op== "-") z=z-c elseif (@op== "*") z=z*c elseif (@op== "/") z=z/c elseif (@op== "^") z=z^c endif if (@op1== "+") z=z+c+q elseif (@op1 == "-") z=z-c-q elseif (@op1 == "*") z=z*c*q elseif (@op1 == "/") z=z/c/q elseif (@op1 == "^") z=z^c^q+p2 endif if (@op2 == "+") z=z+c elseif (@op2 == "-") z=z-c elseif (@op2 == "*") z=z*c elseif (@op2 == "/") z=z/c elseif (@op2 == "^") z=z^c endif Bailout: |z|<=@bailout Default: title="Sfinge#1-J" angle=90 center=(0.0,0.0) maxiter=250 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param op caption="Operator 1" enum="+""-""*""/""^" default=2 endparam param op1 caption="Operator 2" enum="+""-""*""/""^" default=0 endparam param op2 caption="Operator 3" enum="+""-""*""/""^" default=1 endparam param invert caption="Change z" default=false endparam param @seed1 caption="Seed Value" default=(0.425,3.340697944e-19) endparam param p1 caption="Parameter 1" default= (0.0,0.0) endparam param p2 caption="Parameter 2" default=(0.0,0.0) endparam param power caption="Parameter 3" default=(0.0,0.0) endparam param seed caption="Parameter 4" default=(0.2,0.0) endparam param p3 caption="Exponent 1" default=(1.0,0.0) endparam param p4 caption="Exponent 2" default=(1.0,0.0) endparam param p5 caption="Exponent 3" default=(1.0,0.0) endparam param p6 caption="Exponent 4" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=exp() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Sfinge#1" bailout=@bailout @seed1=#pixel op=@op op1=@op1 op2=@op2 invert=@invert power=@power p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 seed=@seed fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 version=@version } Sfinge#2 { ;Andrea Spinozzi(Updated Aug2004) Init: z=0.0 c=#pixel z=fn1(c)*fn2(c)*fn3(c)+2*@seed Loop: if (@invert == true) z=z else z=1/z endif z=z^c+fn1(c)*fn2(c)*fn3(c)+p1 c=fn4(z)^@seed+@power if @op== "+" z=c+z elseif @op== "-" z=c-z elseif @op== "*" z=c*z elseif @op== "/" z=c/z elseif @op== "^" z=c^z endif if @op1=="+" z=c+z elseif @op1=="-" z=c-z elseif @op1=="*" z=c*z elseif @op1=="/" z=c/z elseif @op1=="^" z=c^z endif if @op2=="+" c=c+p2 elseif @op2=="-" c=c-p2 elseif @op2=="*" c=c*p2 elseif @op2=="/" c=c/p2 elseif @op2=="^" c=c^p2 endif Bailout: |z|<=@bailout Default: title="Sfinge#2" center=(0.0,0.0) maxiter=250 angle=90 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam heading caption="Operators and Parameters" endheading param op caption="Operator 1" enum="+""-""*""/""^" default=1 endparam param op1 caption="Operator 2" enum="+""-""*""/""^" default=2 endparam param op2 caption="Operator 3" enum="+""-""*""/""^" default=0 endparam param invert caption="Invert Z" default=false endparam param power caption="Parameter 1" default=(0.05,0) endparam param p1 caption="Parameter 2" default=(0.0,0.0) endparam param p2 caption="Parameter 3" default=(0.0,0.0) endparam param @seed caption="Parameter 4" default=(0.025,1.965116438e-20) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=trunc() endfunc func fn2 caption="Function 2" default=sqr() endfunc func fn3 caption="Function 3" default=cabs() endfunc func fn4 caption="Function 4" default=cos() endfunc param version caption="Version" default=1.0 visible=false endparam } Sfinge#3 { ;Andrea Spinozzi(Updated Aug2004) Init: z=0.0 q=#pixel c=@seed Loop: if (@invert == true) c=c else c=1/c endif z=q+c*fn1(z)+fn2(z)+fn3(z)+fn4(z)+2*@seed c=z^@seed+c^@power^p1 if @op=="+" z=z+c elseif @op=="-" z=z-c elseif @op=="*" z=z*c elseif @op=="/" z=z/c elseif @op=="^" z=z^c endif if @op1=="+" z=z+c elseif @op1=="-" z=z-c elseif @op1=="*" z=z*c elseif @op1=="/" z=z/c elseif @op1=="^" z=z^c endif if @op2=="+" c=c+p2 elseif @op2=="-" c=c-p2 elseif @op2=="*" c=c*p2 elseif @op2=="/" c=c/p2 elseif @op2=="^" c=c^p2 endif Bailout: |z|<=@bailout Default: title="Sfinge#3" angle=90 center=(2.0,0.0) magn=0.5 maxiter= 250 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param op caption="Operator 1" enum="+""-""*""/""^" default=2 endparam param op1 caption="Operator 2" enum="+""-""*""/""^" default=1 endparam param op2 caption="Operator 3" enum="+""-""*""/""^" default=0 endparam param invert caption="Invert C" default=false endparam param seed caption="Parameter 1" default=(-1.026785714,3.719684686e-19) endparam param power caption="Parameter 2" default=(1.0,0.0) endparam param p1 caption="Parameter 3" default=(1.0,0.0) endparam param p2 caption="Parameter 4" default=(-2.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam } ShapedJulia { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel c=@parb+(@para+(0.5,0.0)) Loop: z=z^2+c z=fn1(z)+fn2(z) c=(@parb^2.0)+(@para+(0.5,0.0)^2.0) z=fn3(z)^@power+@seed Bailout: |z|<=@bailout Default: title="ShapedJulia" center=(0,0) maxiter=250 angle=90 method=multipass periodicity=0 param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Parameters" Endheading param seed caption="Julia seed" default=(-0.1,0.0) endparam param power caption="Exponent" default=(1.0,0.0) endparam param @para caption="Parameter 1" default=(0.0,0.0) endparam param @parb caption="Parameter 2" default=(0.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=atanh() endfunc func fn2 caption="Function 2" default=sqr() endfunc func fn3 caption="Function 3" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="ShapedMandelbrot" seed=pixel bailout=@bailout para=@para parb=@parb power=@power fn1=@fn1 fn2=@fn2 fn3=@fn3 version=@version } ShapedMandelbrot { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel c=@parb+(@para+(0.5,0.0)) Loop: z=z^2+c z=fn1(z)+fn2(z) c=(@parb^2.0)+(@para+(0.5,0.0)^2.0) z=fn3(z)^@power+pixel Bailout: |z|<=@bailout Default: title="ShapedMandelbrot" center=(0,0) maxiter=250 angle=90 method=multipass periodicity=0 param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Parameters" Endheading param power caption="Exponent" default=(1.0,0.0) endparam param @para caption="Parameter 1" default=(-1.0,0.0) endparam param @parb caption="Parameter 2" default=(0.5,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=zero() endfunc func fn3 caption="Function 3" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="ShapedJulia" seed=pixel bailout=@bailout para=@para parb=@parb power=@power fn1=@fn1 fn2=@fn2 fn3=@fn3 version=@version } Skapestry#1 { ;Andrea Spinozzi(Updated Aug2004) Init: z=@start c=@fn7(pixel)*@seed b=@power*pixel+exp(z) z=fn1(c)*fn2(c)*fn3(c)*fn4(c)*@fn5(c)*@fn6(c)+@power*b+@start Loop: if (@invert == true) z=z else z=1/z endif if @op== "+" z=(c+z+b)*p1 elseif @op== "-" z=(c-z-b)*p1 elseif @op== "*" z=(c*z*b)*p1 elseif @op== "/" z=(c/z/b)*p1 elseif @op== "^" z=(c^z^b)*p1 endif if @op1== "+" z=c*z*fn1(c) elseif @op1== "-" z=c/z*fn2(c) elseif @op1== "*" z=c+z*fn3(c) elseif @op1== "/" z=c-z*fn4(c) elseif @op1== "^" z=c^z*@fn5(c)*@fn6(c) endif Bailout: |z|<=@bailout Default: title="Skapestry#1" center=(0.0,0.0) maxiter=250 angle=90 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param op caption="Operator 1" enum="+""-""*""/""^" default=2 endparam param op1 caption="Operator 2" enum="+""-""*""/""^" default=3 endparam param invert caption="Invert Z" default=false endparam param power caption="Parameter 1" default=(0.2,0.0) endparam param seed caption="Parameter 2" default=(1.0,0.0) endparam param p1 caption="Parameter 3" default=(1.0,0.0) endparam param @start caption="Start Value" default=(0.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func @fn5 caption="Function 5" default=ident() endfunc func @fn6 caption="Function 6" default=ident() endfunc func @fn7 caption="Function 7" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam } Skapestry#2 { ;Andrea Spinozzi(Updated Aug2004) Init: z=(0.0,0.0) c=(0.0,0.0) if (@mode=="Mandelbrot") z=#pixel c=@fn7(pixel)*@seed z=fn1(c)*fn3(c)+fn2(c)*fn4(c)*@fn5(c)*@fn6(c)+c*@seed+@power elseif (@mode=="Julia") z=#pixel c=(@fn7(@seed1)*@seed) z=fn1(c)*fn3(c)+fn2(c)*fn4(c)*@fn5(c)*@fn6(c)+pixel*@seed+@power endif Loop: if (@invert == true) z=1/z else z=z endif if @op== "+" z=c+z elseif @op== "-" z=c-z elseif @op== "*" z=c*z elseif @op== "/" z=c/z elseif @op== "^" z=c^z endif if @op1== "+" z=c+z*fn1(z) elseif @op1== "-" z=c-z*fn2(z) elseif @op1== "*" z=c*z*fn3(z) elseif @op1== "/" z=c/z*fn4(z) elseif @op1== "^" z=c^z*@fn5(z)+@fn6(z) endif Bailout: |z|<=@bailout Default: title="Skapestry#2" angle=90 center=(0.0,0.0) maxiter=250 periodicity=0 method=multipass Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param op caption="Operator 1" enum="+""-""*""/""^" default=2 endparam param op1 caption="Operator 2" enum="+""-""*""/""^" default=0 endparam param invert caption="Invert Z" default=false endparam param power caption="Parameter 1" default=(3.0,0.0) endparam param @seed caption="Parameter 2" default=(-0.546875,-0.6640625) endparam param @seed1 caption="Seed Value" default=(1.0,0.0) visible=(@mode=="Julia") endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=atanh() endfunc func fn2 caption="Function 2" default=log() endfunc func fn3 caption="Function 3" default=log() endfunc func fn4 caption="Function 4" default=cotanh() endfunc func fn5 caption="Function 5" default=log() endfunc func fn6 caption="Function 6" default=ident() endfunc func fn7 caption="Function 7" default=abs() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Skapestry#2" seed1=pixel bailout=@bailout op=@op op1=@op1 invert=@invert power=@power seed=@seed fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 mode=@switchmode switchmode=@mode version=@version } Skorpio { ;Many thanks to Daniele Lupo. ;Andrea Spinozzi(Sep2003) Init: z=@startSeed c=#pixel t=(1,1) k=1 if @mode=="Mandelbrot" z=@StartSeed c=#pixel endif if @mode=="Julia" z=#pixel c=@StartSeed if @scale != 1.0 z=z/@scale endif if @center != (0,0) z=z+@center endif endif Loop: x=cabs(t)*(fn1(c)+fn2(z)*p1)*cabs(t) y=cabs(c)*(fn3(c)+fn4(z)*p2)*cabs(c) if @op=="1" if @op1=="*" z=(x+y)*c elseif @op1=="/" z=(x+y)/c endif elseif @op=="2" if @op1=="*" z=(x-y)*c elseif @op1=="/" z=(x-y)/c endif elseif @op=="3" if @op1=="*" z=(y-x)*c elseif @op1=="/" z=(y-x)/c endif elseif @op=="4" if @op1=="*" z=(x*y)*c elseif @op1=="/" z=(x*y)/c endif elseif @op=="5" if @op1=="*" z=(x/y)*c elseif @op1=="/" z=(x/y)/c endif elseif @op=="6" if @op1=="*" z=(y/x)*c elseif @op1=="/" z=(y/x)/c endif elseif @op=="7" if @op1=="*" z=(x^y)*(c+z) elseif @op1=="/" z=(x^y)/(c+z) endif endif IF @SELECT==0 if @test==0 if |z|<|@bailout| k=1 else k=0 endif elseif @test==1 if |real(z)+imag(z)|<|@bailout| k=1 else k=0 endif elseif @test==2 if |real(z)-imag(z)|<|@bailout| k=1 else k=0 endif elseif @test==3 if |real(z)*imag(z)|<|@bailout| k=1 else k=0 endif elseif @test==4 if |real(z)^p3/imag(z)^p4|<|@bailout| k=1 else k=0 endif elseif @test==5 if |imag(z)^p4/real(z)^p3|<|@bailout| k=1 else k=0 endif elseif @test==6 if |real(z)/p3^imag(z)/p4|<|@bailout| k=1 else k=0 endif elseif @test==7 if |imag(z)/p4^real(z)/p3|<|@bailout| k=1 else k=0 endif elseif @test==8 if |z-@fn5(z)|<|@bailout| k=1 else k=0 endif endif ELSEIF @SELECT==1 if @test1==0 if |z|<(|x|*|y|) k=0 else k=1 endif elseif @test1==1 if |z|<(|y|^|x|) k=0 else k=1 endif elseif @test1==2 if |z|>(|x|/|y|) k=0 else k=1 endif elseif @test1==3 if |z|<|y|/|x| k=0 else k=1 endif elseif @test1==4 if |z|>|x|-|y| k=0 else k=1 endif elseif @test1==5 if |real(z)*imag(z)|>|x|*|y| k=0 else k=1 endif elseif @test1==6 if |real(z)/imag(z)|<|x|*|y| k=0 else k=1 endif elseif @test1==7 if |imag(z)/real(z)|<|x|*|y| k=0 else k=1 endif elseif @test1==8 if |real(z)^imag(z)|<|y|/|x| k=0 else k=1 endif elseif @test1==9 if |imag(z)^real(z)|<|x|*|y| k=0 else k=1 endif elseif @test1==10 if |z*@fn6(z)|<|x|*|y| k=0 else k=1 endif endif endif Bailout: k==1 Default: title="Skorpio" center=(0.0,0.0) magn=1.0 angle=90 maxiter=250 method=multipass periodicity=0 param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 endparam param SwitchMode caption="Select Switch" enum="Mandelbrot""Julia" default=1 endparam Heading caption="Switch Parameters" visible=@show endheading param @show caption="Show Switch Parameters" default=false endparam param swscale caption="Magnification" default=1.0 visible=@show endparam param swcenter caption="Switch Center" default=(0.0,0.0) visible=@show endparam param scale caption="Magnification Reset" default=1.0 visible=@show endparam param center caption="Center Reset" default=(0.0,0.0) visible=@show endparam Heading caption="Bailout" endheading param bailout caption="Bailout Value" default=4.0 min=0.0 visible=(@select==0) endparam param @select caption="Select Mode" enum="Bail.Mode 1""Bail.Mode 2" default=0 endparam param test caption="Bailout Mode 1" enum="|z|""real+imag""imag-real""real*imag""real/imag"\ "imag/real""real^imag""imag^real""z*Func.Bailout(z)" default=0 visible=(@select==0) endparam param test1 caption="Bailout Mode 2" enum="|z|<|x|*|y|""|z|<|y|^|x|""|z|>|x|/|y|""|z|<|y|/|x|""|z|>|x|-|y|"\ "|real(z)*imag(z)|>|x|*|y|""|real(z)/imag(z)|<|x|*|y|"\ "|imag(z)/real(z)|<|x|*|y|""|real(z)^imag(z)|<|y|/|x|"\ "|imag(z)^real(z)|<|x|*|y|""|z*@fn5(z)|<|x|*|y|" default=0 visible=(@select==1) endparam Func fn5 caption="Func.Bail Mode1" default=exp() visible= (@test==8) endfunc Func fn6 caption="Func.Bail Mode2" default=exp() visible= (@test1==10) endfunc param p3 caption="1stParam. Bailout" default=(-0.5,0.0) visible=(@test==4)!=(@test==5)!=(@test==6)!=(@test==7) endparam param p4 caption="2ndParam. Bailout" default=(-0.5,0.0) visible=(@test==4)!=(@test==5)!=(@test==6)!=(@test==7) endparam Heading caption="Operators and Parameters" endheading param StartSeed caption="Start/Seed" default=(0.18125,1.424709417e-19) endparam param op caption="Select" enum="1""2""3""4""5""6""7" default=0 endparam param op1 caption="Operator" enum="*""/" default=0 endparam param p1 caption="Parameter 1" default=(1.0,0.0) endparam param p2 caption="Parameter 2" default=(1.0,0.0) endparam Heading caption="Functions" endheading Func fn1 caption="Function 1" default=atanh() endfunc Func fn2 caption="Function 2" default=ident() endfunc Func fn3 caption="Function 3" default=exp() endfunc Func fn4 caption="Function 4" default=sin() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Skorpio" bailout=@bailout startseed=#pixel op=@op op1=@op1 select=@select test=@test test1=@test1 p1=@p1 p2=@p2 p3=@p3 p4=@p4 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 mode=@switchmode switchmode=@mode center=@swcenter scale=@swscale version=@version } As-Skorpio { ;Andrea Spinozzi(June2004) Init: z=c=t=(0.0,0.0) a1=a2=(0.0,0.0) p1r=real(p1) p1i=imag(p1) p2r=real(p2) p2i=imag(p2) if (@mode=="Mandelbrot") z=pixel a1=a2=(0.0,0.0) c=pixel elseif (@mode=="Julia") if (@variant==0) z=pixel a1=a2=(0.0,0.0) c=@seed elseif (@variant==1) z=pixel a1=a2=pixel c=@seed elseif (@variant==2) z=pixel a1=flip(pixel) a2=pixel c=@seed elseif (@variant==3) z=pixel a1=pixel a2=flip(pixel) c=@seed elseif (@variant==4) z=pixel a1=a2=flip(pixel) c=@seed endif endif Loop: if (@op==0) t=z z=fn4(a1*a1)^p1r+@fn5(a2)^p2r a2=(a1^p1i+fn2(c^p3))^p2i a1=fn3(fn1(t)) elseif (@op==1) t=z z=fn4(a1*a1)^p1r-@fn5(a2)^p2r a2=(a1^p1i-fn2(c^p3))^p2i a1=fn3(fn1(t)) elseif (@op==2) t=z z=fn4(a1*a1)^p1r+@fn5(a2)^p2r a2=(a1^p1i-fn2(c^p3))^p2i a1=fn3(fn1(t)) elseif (@op==3) t=z z=fn4(a1*a1)^p1r-@fn5(a2)^p2r a2=(a1^p1i+fn2(c^p3))^p2i a1=fn3(fn1(t)) elseif (@op==4) t=z z=fn4(a1*a1)^p1r-@fn5(a2)^p2r a2=(a1^p1i^fn2(c^p3))^p2i a1=fn3(fn1(t)) endif Bailout: |t|<=@bailout Default: title="Skorpio#1" center=(0.0,0.0) angle=90 maxiter=500 magn=1.0 periodicity=0 method=multipass Heading caption="Mandelbrot Mode" visible=(@mode=="Mandelbrot") endheading Heading caption="Julia Mode" visible=(@mode=="Julia") endheading param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 visible=false endparam param switchmode caption="switch To..." enum="Mandelbrot""Julia" default=1 visible=false endparam param Bailout caption="Bailout Value" default=64.0 min=0.0 endparam Heading caption="Operators and Parameters" endheading param seed caption="Seed Value" default=(0.0,0.0) visible=(@mode=="Julia") endparam param variant caption="JuliaVariant" enum="1""2""3""4""5" default=0 endparam param op caption="Select" enum="1""2""3""4""5" default=0 endparam param p1 caption="p1r,p1i" default=(1.0,1.0) endparam param p2 caption="p2r,p2i" default=(1.0,1.0) endparam param p3 caption="Parameter" default=(1.0,0.0) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=sqr() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="As-Skorpio" @seed=#pixel bailout=@bailout variant=@variant op=@op p1=@p1 p2=@p2 p3=@p3 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 mode=@switchmode switchmode=@mode version=@version } SlopeInsect9-J { ; Based upon the slope (Mandelbrot) ; formula of Damien Jones ; compound with the models of slope formulas from Ron Barnett. ; Andrea Spinozzi. ; Slope version by Gilles Nadeau(January2005). ; version=1.2 : added distances for the Height Value(March2005). Init: complex z1 = #pixel; primary iterated point complex z2 = z1 + @offset; horizontally offset point complex z3 = z1 + flip(@offset); vertically offset point complex c1 = @seed complex c2 = c1 complex c3 = c1 int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 Loop: if (@invert == false) z1=z1 z2=z2 z3=z3 else z1=1/(z1+c1) z2=1/(z2+c2) z3=1/(z3+c3) endif if (@op1==0) z1=@p+(c1+z1*(fn1(z1)*fn2(z1)*fn3(z1)*fn4(z1)*@fn5(z1)))*z1 z2=@p+(c2+z2*(fn1(z2)*fn2(z2)*fn3(z2)*fn4(z2)*@fn5(z2)))*z2 z3=@p+(c3+z3*(fn1(z3)*fn2(z3)*fn3(z3)*fn4(z3)*@fn5(z3)))*z3 elseif (@op1==1) z1=@p+(c1-z1+(fn1(z1)*fn2(z1)*fn3(z1)*fn4(z1)*@fn5(z1)))*z1 z2=@p+(c2-z2+(fn1(z2)*fn2(z2)*fn3(z2)*fn4(z2)*@fn5(z2)))*z2 z3=@p+(c3-z3+(fn1(z3)*fn2(z3)*fn3(z3)*fn4(z3)*@fn5(z3)))*z3 elseif (@op1==2) z1=@p+(c1+z1+(fn1(z1)*fn2(z1)*fn3(z1)*fn4(z1)*@fn5(z1)))*z1 z2=@p+(c2+z2+(fn1(z2)*fn2(z2)*fn3(z2)*fn4(z2)*@fn5(z2)))*z2 z3=@p+(c3+z3+(fn1(z3)*fn2(z3)*fn3(z3)*fn4(z3)*@fn5(z3)))*z3 elseif (@op1==3) z1=@p+(c1*z1+(fn1(z1)*fn2(z1)*fn3(z1)*fn4(z1)*@fn5(z1)))^z1 z2=@p+(c2*z2+(fn1(z2)*fn2(z2)*fn3(z2)*fn4(z2)*@fn5(z2)))^z2 z3=@p+(c3*z3+(fn1(z3)*fn2(z3)*fn3(z3)*fn4(z3)*@fn5(z3)))^z3 endif ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if (@bailout < |z1| || \ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif if ( @bailout < |z1|) ; we're done done = 0 endif Bailout: (done > 0) Default: title="Slope Insect9-J" center=(0.0,0.0) magn=1.5 maxiter=500 angle=90 method=multipass periodicity=0 param version caption="Version" default=1.2 visible=false endparam Heading caption="Use Damien's Lighting Coloring" Endheading Heading caption="Or Ron's 3D Texturizer Formulas" Endheading Heading caption="Most other coloring formulas" Endheading Heading caption="can also be used." Endheading param bailout caption="Bailout Value" default=1000.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param op1 caption="Shape" enum= "1""2""3""4" default= 0 endparam param p caption="Parameter" default=(-0.5,0.0) endparam param invert caption="Invert Z" default=false endparam param @seed caption="Seed Value" default=(-1.041666667,0.15625) endparam Heading caption="Functions" endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc Heading caption="Slope Parameters" Endheading float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6) endfunc param a caption="Polar Parameter 1" default=0.5 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84) endparam param b caption="Polar Parameter 2" default=0.5 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." endparam Switch: type="SlopeInsect9-M" version=@version seed=#pixel bailout=@bailout offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 p=@p op1=@op1 invert=@invert } SlopeInsect9-M { ; Based upon the slope (Mandelbrot) ; formula of Damien Jones ; compound with the models of slope formulas from Ron Barnett. ; Andrea Spinozzi. ; Slope version by Gilles Nadeau(January2005). ; version=1.2 : added distances for the Height Value(March2005). Init: complex c1 = #pixel; primary iterated point complex c2 = c1 + @offset; horizontally offset point complex c3 = c1 + flip(@offset); vertically offset point complex z1 = @start complex z2 = z1 complex z3 = z1 int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 Loop: if (@invert == false) z1=z1 z2=z2 z3=z3 else z1=1/(z1+c1) z2=1/(z2+c2) z3=1/(z3+c3) endif if (@op1==0) z1=@p+(c1+z1*(fn1(z1)*fn2(z1)*fn3(z1)*fn4(z1)*@fn5(z1)))*z1 z2=@p+(c2+z2*(fn1(z2)*fn2(z2)*fn3(z2)*fn4(z2)*@fn5(z2)))*z2 z3=@p+(c3+z3*(fn1(z3)*fn2(z3)*fn3(z3)*fn4(z3)*@fn5(z3)))*z3 elseif (@op1==1) z1=@p+(c1-z1+(fn1(z1)*fn2(z1)*fn3(z1)*fn4(z1)*@fn5(z1)))*z1 z2=@p+(c2-z2+(fn1(z2)*fn2(z2)*fn3(z2)*fn4(z2)*@fn5(z2)))*z2 z3=@p+(c3-z3+(fn1(z3)*fn2(z3)*fn3(z3)*fn4(z3)*@fn5(z3)))*z3 elseif (@op1==2) z1=@p+(c1+z1+(fn1(z1)*fn2(z1)*fn3(z1)*fn4(z1)*@fn5(z1)))*z1 z2=@p+(c2+z2+(fn1(z2)*fn2(z2)*fn3(z2)*fn4(z2)*@fn5(z2)))*z2 z3=@p+(c3+z3+(fn1(z3)*fn2(z3)*fn3(z3)*fn4(z3)*@fn5(z3)))*z3 elseif (@op1==3) z1=@p+(c1*z1+(fn1(z1)*fn2(z1)*fn3(z1)*fn4(z1)*@fn5(z1)))^z1 z2=@p+(c2*z2+(fn1(z2)*fn2(z2)*fn3(z2)*fn4(z2)*@fn5(z2)))^z2 z3=@p+(c3*z3+(fn1(z3)*fn2(z3)*fn3(z3)*fn4(z3)*@fn5(z3)))^z3 endif ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if (@bailout < |z1| || \ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif if ( @bailout < |z1|) ; we're done done = 0 endif bailout: (done > 0) Default: title="Slope Insect9-M" center=(0.0,0.0) magn=0.6 maxiter= 250 angle=90 method=multipass periodicity=0 param version caption="Version" default=1.2 visible=false endparam Heading caption="Use Damien's Lighting Coloring" Endheading Heading caption="Or Ron's 3D Texturizer Formulas" Endheading Heading caption="Most other coloring formulas" Endheading Heading caption="can also be used." Endheading param bailout caption="Bailout Value" default=1000.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param op1 caption="Shape" enum= "1""2""3""4" default= 0 endparam param p caption="Parameter" default=(-0.5,0.0) endparam param invert caption="Invert Z" default=false endparam complex param start caption="Start Value" default=(0.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func @fn5 caption="Function 5" default=ident() endfunc Heading caption="Slope Parameters" Endheading float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6) endfunc param a caption="Polar Parameter 1" default=0.5 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84) endparam param b caption="Polar Parameter 2" default=0.5 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." endparam Switch: type="SlopeInsect9-J" version=@version seed=#pixel bailout=@bailout offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 op1=@op1 p=@p invert=@invert } SlopeRoseJulia { ; Based upon the slope (Mandelbrot) ; formula of Damien Jones ; compound with the models of slope formulas from Ron Barnett. ; Andrea Spinozzi ; Slope version by Gilles Nadeau(January2005). ; version=1.2 : added distances for the Height Value and one operator(March2005). Init: float c = 1.0 complex z1 = #pixel; primary iterated point complex z2 = #pixel + @offset; horizontally offset point complex z3 = #pixel + flip(@offset); vertically offset point complex z1 = @seed^fn1(z1) complex z2 = @seed^fn1(z2) complex z3 = @seed^fn1(z3) int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 Loop: if real(p1) >= c z1=c+fn3(z1) z2=c+fn3(z2) z3=c+fn3(z3) elseif real(p1) <= -c z1=c-fn3(z1) z2=c-fn3(z2) z3=c-fn3(z3) else z1=fn3(z1) z2=fn3(z2) z3=fn3(z3) endif if (@op==0) z1=fn2(z1^p2)+fn4(@seed)+@power*c+p1 z2=fn2(z2^p2)+fn4(@seed)+@power*c+p1 z3=fn2(z3^p2)+fn4(@seed)+@power*c+p1 elseif (@op==1) z1=fn2(z1^p2)-fn4(@seed)+@power*c+p1 z2=fn2(z2^p2)-fn4(@seed)+@power*c+p1 z3=fn2(z3^p2)-fn4(@seed)+@power*c+p1 elseif (@op==2) z1=fn2(z1^p2)*fn4(@seed)+@power*c+p1 z2=fn2(z2^p2)*fn4(@seed)+@power*c+p1 z3=fn2(z3^p2)*fn4(@seed)+@power*c+p1 elseif (@op==3) z1=fn2(z1^p2)/fn4(@seed)+@power*c+p1 z2=fn2(z2^p2)/fn4(@seed)+@power*c+p1 z3=fn2(z3^p2)/fn4(@seed)+@power*c+p1 elseif (@op==4) z1=fn2(z1^p2)^fn4(@seed)+@power*c+p1 z2=fn2(z2^p2)^fn4(@seed)+@power*c+p1 z3=fn2(z3^p2)^fn4(@seed)+@power*c+p1 endif ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if (@bailout < |z1| || \ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif if ( @bailout < |z1|) ; we're done done = 0 endif Bailout: (done > 0) Default: title="Slope RoseJulia" center=(0.0,0.0) maxiter=250 angle=90 periodicity=0 method=multipass param version caption="Version" default=1.2 visible=false endparam Heading caption="Use Damien's Lighting Coloring" Endheading Heading caption="Or Ron's 3D Texturizer Formulas" Endheading Heading caption="Most other coloring formulas" Endheading Heading caption="can also be used." Endheading param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Parameters" Endheading param op caption="Operator" enum="+""-""*""/""^" default=4 endparam param p1 caption="Parameter 1" default=(0.0,0.0) endparam param power caption="Parameter 2" default=(0.0,0.0) endparam param p2 caption="Exponent" default=(1.0,0.0) endparam param @seed caption="Julia Seed" default=(1.0125,-0.19375) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc Heading caption="Slope Parameters" Endheading float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6) endfunc param a caption="Polar Parameter 1" default=0.5 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84) endparam param b caption="Polar Parameter 2" default=0.5 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." endparam Switch: type="SlopeRoseMandel" version=@version op=@op p1=@p1 p2=@p2 power=@power bailout=@bailout offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 } SlopeRoseMandel { ; Based upon the slope (Mandelbrot) ; formula of Damien Jones ; compound with the models of slope formulas from Ron Barnett. ; Andrea Spinozzi ; Slope version by Gilles Nadeau(January2005). ; version=1.2 : added distances for the Height Value and one operator(March2005). Init: float c = 1.0 complex z1 = #pixel; primary iterated point complex z2 = #pixel + @offset; horizontally offset point complex z3 = #pixel + flip(@offset); vertically offset point complex z1 = z1^fn1(z1) complex z2 = z2^fn1(z2) complex z3 = z3^fn1(z3) int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 Loop: if real(p1) >= c z1=c+fn3(z1) z2=c+fn3(z2) z3=c+fn3(z3) elseif real(p1) <= -c z1=c-fn3(z1) z2=c-fn3(z2) z3=c-fn3(z3) else z1=fn3(z1) z2=fn3(z2) z3=fn3(z3) endif if (@op==0) z1=fn2(z1^p2)+fn4(#pixel)+@power*c+p1 z2=fn2(z2^p2)+fn4(#pixel)+@power*c+p1 z3=fn2(z3^p2)+fn4(#pixel)+@power*c+p1 elseif (@op==1) z1=fn2(z1^p2)-fn4(#pixel)+@power*c+p1 z2=fn2(z2^p2)-fn4(#pixel)+@power*c+p1 z3=fn2(z3^p2)-fn4(#pixel)+@power*c+p1 elseif (@op==2) z1=fn2(z1^p2)*fn4(#pixel)+@power*c+p1 z2=fn2(z2^p2)*fn4(#pixel)+@power*c+p1 z3=fn2(z3^p2)*fn4(#pixel)+@power*c+p1 elseif (@op==3) z1=fn2(z1^p2)/fn4(#pixel)+@power*c+p1 z2=fn2(z2^p2)/fn4(#pixel)+@power*c+p1 z3=fn2(z3^p2)/fn4(#pixel)+@power*c+p1 elseif (@op==4) z1=fn2(z1^p2)^fn4(#pixel)+@power*c+p1 z2=fn2(z2^p2)^fn4(#pixel)+@power*c+p1 z3=fn2(z3^p2)^fn4(#pixel)+@power*c+p1 endif ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if (@bailout < |z1| || \ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif if ( @bailout < |z1|) ; we're done done = 0 endif Bailout: (done > 0) Default: title="Slope RoseMandel" center=(0.0,0.0) maxiter=250 angle=90 periodicity=0 method=multipass param version caption="Version" default=1.2 visible=false endparam Heading caption="Use Damien's Lighting Coloring" Endheading Heading caption="Or Ron's 3D Texturizer Formulas" Endheading Heading caption="Most other coloring formulas" Endheading Heading caption="can also be used." Endheading param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Parameters" Endheading param op caption="Operator" enum="+""-""*""/""^" default=4 endparam param p1 caption="Parameter 1" default=(0.0,0.0) endparam param power caption="Parameter 2" default=(-1.8,0.0) endparam param p2 caption="Exponent" default=(2.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=sqr() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc Heading caption="Slope Parameters" Endheading float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6) endfunc param a caption="Polar Parameter 1" default=0.5 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84) endparam param b caption="Polar Parameter 2" default=0.5 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." endparam Switch: type="SlopeRoseJulia" version=@version seed=#pixel op=@op p1=@p1 p2=@p2 power=@power bailout=@bailout offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 } SlopeSets+Fbm { ;Slope fractional brownian motion code applied to differents sets: ;Mandelbrot,Barnsley,Ikenaga,Lambda and Phoenix. ;Slope code implemented from the slope formulae of Ronald Barnett, like as ;SlopeCayley(Mandelbrot). ;Fbm code implemented from "Mandelbrot+fbm" formula of Damien Jones. ;Rotations implemented from Julibrot of Gilles Nadeau. ;Many thanks to Gilles to help me. ;Andrea Spinozzi(Nov2005) Init: complex z1=z2=z3=(0.0,0.0) complex riz1=riz2=riz3=(0.0,0.0) complex c1=c2=c3=(0.0,0.0) complex y1=y2=y3=(0.0,0.0) complex appc1=appc2=appc3=(0.0,0.0) complex oz1=z1 complex oz2=z2 complex oz3=z3 rotx=@rotx roty=@roty rotz=@rotz rotw=@rotw int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 int iter = 0 int modby = @seq+2 complex c = @distcenter IF (@centermove) c = #center ENDIF complex r = (0,1) ^ (@angle / 90.0) complex r2 = (0,1) ^ (@anglestep / 90.0) complex r3 = (0,1) ^ (@distangle / 90.0) float fiter = @noisestart BOOL noise = false float u1a=0.0 float u1b=0.0 float u1c=0.0 float u2a=0.0 float u2b=0.0 float u2c=0.0 float v1a=0.0 float v1b=0.0 float v1c=0.0 float v2a=0.0 float v2b=0.0 float v2c=0.0 IF (@coloronly) z1 = oz1 z2 = oz2 z3 = oz3 ENDIF if (@plane == 0) ;xy z1=real(@startseed)+flip(imag(@startseed)) z2=z1 z3=z1 c1=real(pixel)+flip(imag(pixel)) c2=c1+@offset c3=c1+flip(@offset) elseif (@plane == 1) ;xw z1=real(pixel)+flip(real(@startseed)) z2=z1+@offset z3=z1+flip(@offset) c1=flip(imag(pixel))+imag(@startseed) c2=c1+@offset c3=c1+flip(@offset) elseif (@plane == 2) ;xz z1=real(pixel)+flip(real(@startseed)) z2=z1+@offset z3=z1+flip(@offset) c1=imag(pixel)+flip(imag(@startseed)) c2=c1+@offset c3=c1+flip(@offset) elseif (@plane == 3) ;yw z1=flip(real(pixel))+real(@startseed) z2=z1+@offset z3=z1+flip(@offset) c1=flip(imag(pixel))+imag(@startseed) c2=c1+@offset c3=c1+flip(@offset) elseif (@plane == 4) ;yz z1=flip(real(pixel))+real(@startseed) z2=z1+@offset z3=z1+flip(@offset) c1=imag(pixel)+flip(imag(@startseed)) c2=c1+@offset c3=c1+flip(@offset) endif if (@mode=="Julia") if (@plane == 0) ;xy z1=real(pixel)+flip(imag(pixel)) z2=z1+@offset z3=z1+flip(@offset) c1=real(@startseed)+flip(imag(@startseed)) c2=c1 c3=c1 elseif (@plane == 1) ;xw z1=real(pixel)+flip(real(@startseed)) z2=z1+@offset z3=z1+flip(@offset) c1=flip(imag(pixel))+imag(@startseed) c2=c1+@offset c3=c1+flip(@offset) elseif (@plane == 2) ;xz z1=real(pixel)+flip(real(@startseed)) z2=z1+@offset z3=z1+flip(@offset) c1=imag(pixel)+flip(imag(@startseed)) c2=c1+@offset c3=c1+flip(@offset) elseif (@plane == 3) ;yw z1=flip(real(pixel))+real(@startseed) z2=z1+@offset z3=z1+flip(@offset) c1=flip(imag(pixel))+imag(@startseed) c2=c1+@offset c3=c1+flip(@offset) elseif (@plane == 4) ;yz z1=flip(real(pixel))+real(@startseed) z2=z1+@offset z3=z1+flip(@offset) c1=imag(pixel)+flip(imag(@startseed)) c2=c1+@offset c3=c1+flip(@offset) endif endif IF (@coloronly) oz1 = z1 oz2 = z2 oz3 = z3 ENDIF ry1=imag(z1)*cos(pi*rotx/180)-real(c1)*sin(pi*rotx/180) ry2=imag(z2)*cos(pi*rotx/180)-real(c2)*sin(pi*rotx/180) ry3=imag(z3)*cos(pi*rotx/180)-real(c3)*sin(pi*rotx/180) rz1=imag(z1)*sin(pi*rotx/180)+real(c1)*cos(pi*rotx/180) rz2=imag(z2)*sin(pi*rotx/180)+real(c2)*cos(pi*rotx/180) rz3=imag(z3)*sin(pi*rotx/180)+real(c3)*cos(pi*rotx/180) z1=real(z1)+ry1*1i z2=real(z2)+ry2*1i z3=real(z3)+ry3*1i c1=rz1+imag(c1)*1i c2=rz2+imag(c2)*1i c3=rz3+imag(c3)*1i rx1=real(c1)*sin(pi*roty/180)+real(z1)*cos(pi*roty/180) rx2=real(c2)*sin(pi*roty/180)+real(z2)*cos(pi*roty/180) rx3=real(c3)*sin(pi*roty/180)+real(z3)*cos(pi*roty/180) rz1=real(c1)*cos(pi*roty/180)-real(z1)*sin(pi*roty/180) rz2=real(c2)*cos(pi*roty/180)-real(z2)*sin(pi*roty/180) rz3=real(c3)*cos(pi*roty/180)-real(z3)*sin(pi*roty/180) z1=rx1+imag(z1)*1i z2=rx2+imag(z2)*1i z3=rx3+imag(z3)*1i c1=rz1+imag(c1)*1i c2=rz2+imag(c2)*1i c3=rz3+imag(c3)*1i ry1=real(z1)*cos(pi*rotz/180)-imag(c1)*sin(pi*rotz/180) ry2=real(z2)*cos(pi*rotz/180)-imag(c2)*sin(pi*rotz/180) ry3=real(z3)*cos(pi*rotz/180)-imag(c3)*sin(pi*rotz/180) rw1=real(z1)*sin(pi*rotz/180)+imag(c1)*cos(pi*rotz/180) rw2=real(z2)*sin(pi*rotz/180)+imag(c2)*cos(pi*rotz/180) rw3=real(z3)*sin(pi*rotz/180)+imag(c3)*cos(pi*rotz/180) z1=ry1+imag(z1)*1i z2=ry2+imag(z2)*1i z3=ry3+imag(z3)*1i c1=real(c1)+rw1*1i c2=real(c2)+rw2*1i c3=real(c3)+rw3*1i rx1=imag(c1)*sin(pi*rotw/180)+imag(z1)*cos(pi*rotw/180) rx2=imag(c2)*sin(pi*rotw/180)+imag(z2)*cos(pi*rotw/180) rx3=imag(c3)*sin(pi*rotw/180)+imag(z3)*cos(pi*rotw/180) rw1=imag(c1)*cos(pi*rotw/180)-imag(z1)*sin(pi*rotw/180) rw2=imag(c2)*cos(pi*rotw/180)-imag(z2)*sin(pi*rotw/180) rw3=imag(c3)*cos(pi*rotw/180)-imag(z3)*sin(pi*rotw/180) z1=real(z1)+rx1*1i z2=real(z2)+rx2*1i z3=real(z3)+rx3*1i c1=real(c1)+rw1*1i c2=real(c2)+rw2*1i c3=real(c3)+rw3*1i IF (@coloronly) oz1 = z1 oz2 = z2 oz3 = z3 ENDIF Loop: IF (@noiseskip != 0); we are skipping some iterations fiter = fiter - 1; one less to go before we add noise WHILE (fiter < 0.0); iterations all used up IF (noise); we are currently adding noise noise = false; so stop fiter = fiter + @noiseskip; skip this many iterations ELSE; we aren't currently adding noise noise = true; so start fiter = fiter + @noiseiter; do this many iterations ENDIF ENDWHILE ENDIF IF (@coloronly); only using fBm on coloring z1 = oz1; restore z from un-fBm'ed copy z2 = oz2 z3 = oz3 ENDIF int method = iter%modby if (method==0) appc1 = fn4(@p10*c1) appc2 = fn4(@p10*c2) appc3 = fn4(@p10*c3) elseif (method==1) appc1 = @fn5(@p11*c1) appc2 = @fn5(@p11*c2) appc3 = @fn5(@p11*c3) elseif (method==2) appc1 = @fn6(@p12*c1) appc2 = @fn6(@p12*c2) appc3 = @fn6(@p12*c3) endif riz1 = real((z1+@offz)*@muz)^@exz+(imag((z1+@offz)*@muz1)^@exz1)*1i riz2 = real((z2+@offz)*@muz)^@exz+(imag((z2+@offz)*@muz1)^@exz1)*1i riz3 = real((z3+@offz)*@muz)^@exz+(imag((z3+@offz)*@muz1)^@exz1)*1i if (@zbegin==0) z1 = z1 z2 = z2 z3 = z3 elseif (@zbegin==1) z1 = z1+c1 z2 = z2+c2 z3 = z3+c3 elseif (@zbegin==2) z1 = z1-c1 z2 = z2-c2 z3 = z3-c3 elseif (@zbegin==3) z1 = z1*c1 z2 = z2*c2 z3 = z3*c3 elseif (@zbegin==4) z1 = z1/c1 z2 = z2/c2 z3 = z3/c3 elseif (@zbegin==5) z1 = c1/z1 z2 = c2/z2 z3 = c3/z3 elseif (@zbegin==6) z1 = z1^c1 z2 = z2^c2 z3 = z3^c3 elseif (@zbegin==7) z1 = c1^z1 z2 = c2^z2 z3 = c3^z3 elseif (@zbegin==8) z1 = z1+c1 z1 = z1+c1 z2 = z2+c2 z2 = z2+c2 z3 = z3+c3 z3 = z3+c3 elseif (@zbegin==9) z1 = z1+c1 z1 = z1*c1 z2 = z2+c2 z2 = z2*c2 z3 = z3+c3 z3 = z3*c3 elseif (@zbegin==10) z1 = z1*c1 z1 = z1+c1 z2 = z2*c2 z2 = z2+c2 z3 = z3*c3 z3 = z3+c3 elseif (@zbegin==11) z1 = z1+c1 z1 = z1/c1 z2 = z2+c2 z2 = z2/c2 z3 = z3+c3 z3 = z3/c3 elseif (@zbegin==12) z1 = z1/c1 z1 = z1+c1 z2 = z2/c2 z2 = z2+c2 z3 = z3/c3 z3 = z3+c3 elseif (@zbegin==13) z1 = z1+c1 z1 = z1^c1 z2 = z2+c2 z2 = z2^c2 z3 = z3+c3 z3 = z3^c3 elseif (@zbegin==14) z1 = z1^c1 z1 = z1+c1 z2 = z2^c2 z2 = z2+c2 z3 = z3^c3 z3 = z3+c3 elseif (@zbegin==15) z1 = z1/c1 z1 = z1/c1 z2 = z2/c2 z2 = z2/c2 z3 = z3/c3 z3 = z3/c3 elseif (@zbegin==16) z1 = z1/c1 z1 = z1^c1 z2 = z2/c2 z2 = z2^c2 z3 = z3/c3 z3 = z3^c3 elseif (@zbegin==17) z1 = z1*c1 z1 = z1^c1 z2 = z2*c2 z2 = z2^c2 z3 = z3*c3 z3 = z3^c3 elseif (@zbegin==18) z1 = z1^c1 z1 = z1*c1 z2 = z2^c2 z2 = z2*c2 z3 = z3^c3 z3 = z3*c3 elseif (@zbegin==19) z1 = (z1+c1)*riz1 z1 = (z1*c1)+riz1 z2 = (z2+c2)*riz2 z2 = (z2*c2)+riz2 z3 = (z3+c3)*riz3 z3 = (z3*c3)+riz3 elseif (@zbegin==20) z1 = (z1*c1)*riz1 z1 = (z1+c1)+riz1 z2 = (z2*c2)*riz2 z2 = (z2+c2)+riz2 z3 = (z3*c3)*riz3 z3 = (z3+c3)+riz3 elseif (@zbegin==21) z1 = (z1*c1)+riz1 z1 = (z1+c1)*riz1 z2 = (z2*c2)+riz2 z2 = (z2+c2)*riz2 z3 = (z3*c3)+riz3 z3 = (z3+c3)*riz3 elseif (@zbegin==22) z1 = (z1+c1)+riz1 z1 = (z1*c1)*riz1 z2 = (z2+c2)+riz2 z2 = (z2*c2)*riz2 z3 = (z3+c3)+riz3 z3 = (z3*c3)*riz3 elseif (@zbegin==23) z1 = (z1-c1)+riz1 z1 = (z1*c1)*riz1 z2 = (z2-c2)+riz2 z2 = (z2*c2)*riz2 z3 = (z3-c3)+riz3 z3 = (z3*c3)*riz3 elseif (@zbegin==24) z1 = (z1*c1)+riz1 z1 = (z1-c1)*riz1 z2 = (z2*c2)+riz2 z2 = (z2-c2)*riz2 z3 = (z3*c3)+riz3 z3 = (z3-c3)*riz3 elseif (@zbegin==25) z1 = (z1-c1)*riz1 z1 = (z1*c1)+riz1 z2 = (z2-c2)*riz2 z2 = (z2*c2)+riz2 z3 = (z3-c3)*riz3 z3 = (z3*c3)+riz3 elseif (@zbegin==26) z1 = (z1*c1)*riz1 z1 = (z1-c1)+riz1 z2 = (z2*c2)*riz2 z2 = (z2-c2)+riz2 z3 = (z3*c3)*riz3 z3 = (z3-c3)+riz3 elseif (@zbegin==27) z1 = (z1*c1)+riz1 z1 = (z1/c1)*riz1 z2 = (z2*c2)+riz2 z2 = (z2/c2)*riz2 z3 = (z3*c3)+riz3 z3 = (z3/c3)*riz3 elseif (@zbegin==28) z1 = (z1*c1)*riz1 z1 = (z1/c1)+riz1 z2 = (z2*c2)*riz2 z2 = (z2/c2)+riz2 z3 = (z3*c3)*riz3 z3 = (z3/c3)+riz3 elseif (@zbegin==29) z1 = (z1/c1)+riz1 z1 = (z1*c1)*riz1 z2 = (z2/c2)+riz2 z2 = (z2*c2)*riz2 z3 = (z3/c3)+riz3 z3 = (z3*c3)*riz3 elseif (@zbegin==30) z1 = (z1/c1)*riz1 z1 = (z1*c1)+riz1 z2 = (z2/c2)*riz2 z2 = (z2*c2)+riz2 z3 = (z3/c3)*riz3 z3 = (z3*c3)+riz3 elseif (@zbegin==31) z1 = (z1*c1)+riz1 z1 = (z1^c1)*riz1 z2 = (z2*c2)+riz2 z2 = (z2^c2)*riz2 z3 = (z3*c3)+riz3 z3 = (z3^c3)*riz3 elseif (@zbegin==32) z1 = (z1*c1)*riz1 z1 = (z1^c1)+riz1 z2 = (z2*c2)*riz2 z2 = (z2^c2)+riz2 z3 = (z3*c3)*riz3 z3 = (z3^c3)+riz3 elseif (@zbegin==33) z1 = (z1^c1)+riz1 z1 = (z1*c1)*riz1 z2 = (z2^c2)+riz2 z2 = (z2*c2)*riz2 z3 = (z3^c3)+riz3 z3 = (z3*c3)*riz3 elseif (@zbegin==34) z1 = (z1^c1)*riz1 z1 = (z1*c1)+riz1 z2 = (z2^c2)*riz2 z2 = (z2*c2)+riz2 z3 = (z3^c3)*riz3 z3 = (z3*c3)+riz3 endif z1 = fn2(z1) , z2 = fn2(z2) , z3 = fn2(z3) c1 = fn3(c1)*@muc , c2 = fn3(c2)*@muc , c3 = fn3(c3)*@muc if (@select==0) ;Mandelbrot z1 = z1^p1+appc1^@excm*appc1 z2 = z2^p1+appc2^@excm*appc2 z3 = z3^p1+appc3^@excm*appc3 elseif (@select==1) ;Barnsley if real(z1)>0 z1 = (z1-1)^p2*appc1^@excb*appc1 z2 = (z2-1)^p2*appc2^@excb*appc2 z3 = (z3-1)^p2*appc3^@excb*appc3 else z1 = (z1+1)^p2*appc1^@excb*appc1 z2 = (z2+1)^p2*appc2^@excb*appc2 z3 = (z3+1)^p2*appc3^@excb*appc3 endif elseif (@select==2) ;Ikenaga z1 = z1^3+z1^p3*(appc1-1)-appc1^@excik*appc1 z2 = z2^3+z2^p3*(appc2-1)-appc2^@excik*appc2 z3 = z3^3+z3^p3*(appc3-1)-appc3^@excik*appc3 elseif (@select==3) ;Lambda z1 = appc1^@excl*appc1*z1*(1-z1)^(p4-1) z2 = appc2^@excl*appc2*z2*(1-z2)^(p4-1) z3 = appc3^@excl*appc3*z3*(1-z3)^(p4-1) elseif (@select==4) ;Phoenix zn1 = z1^p5+appc1^@excp*appc1+p6*y1 zn2 = z2^p5+appc2^@excp*appc2+p6*y2 zn3 = z3^p5+appc3^@excp*appc3+p6*y3 y1 = z1 y2 = z2 y3 = z3 z1 = zn1 z2 = zn2 z3 = zn3 endif z1 = fn1(z1) , z2 = fn1(z2) , z3 = fn1(z3) z1 = z1^@p7+@p8*appc1^2 z2 = z2^@p7+@p8*appc2^2 z3 = z3^@p7+@p8*appc3^2 z1 = z1+@p9 z2 = z2+@p9 z3 = z3+@p9 IF (@coloronly); only using fBm on coloring oz1 = z1; restore z from un-fBm'ed copy oz2 = z2 oz3 = z3 ENDIF IF (@noiseskip == 0.0 || noise); adding noise this iteration complex pa = z1 * @scale * r + @fbm_offset complex pb = z2 * @scale * r + @fbm_offset complex pc = z3 * @scale * r + @fbm_offset float sum1 = 0.0 float sum2 = 0.0 float sum3 = 0.0 float freq = 1.0 complex va = (0,0) complex vb = (0,0) complex vc = (0,0) int i = @octaves WHILE (i > 0) ; determine integer coordinate for corners of square ; surrounding p float bx0a = floor(real(pa)) % 256 float bx0b = floor(real(pb)) % 256 float bx0c = floor(real(pc)) % 256 float by0a = floor(imag(pa)) % 256 float by0b = floor(imag(pb)) % 256 float by0c = floor(imag(pc)) % 256 IF (bx0a < 0) bx0a = bx0a + 256 ENDIF IF (by0a < 0) by0a = by0a + 256 ENDIF float bx1a = (bx0a + 1) % 256 float by1a = (by0a + 1) % 256 float rx0a = real(pa) - floor(real(pa)) float ry0a = imag(pa) - floor(imag(pa)) float rx1a = rx0a - 1 float ry1a = ry0a - 1 IF (bx0b < 0) bx0b = bx0b + 256 ENDIF IF (by0b < 0) by0b = by0b + 256 ENDIF float bx1b = (bx0b + 1) % 256 float by1b = (by0b + 1) % 256 float rx0b = real(pb) - floor(real(pb)) float ry0b = imag(pb) - floor(imag(pb)) float rx1b = rx0b - 1 float ry1b = ry0b - 1 IF (bx0c < 0) bx0c = bx0c + 256 ENDIF IF (by0c < 0) by0c = by0c + 256 ENDIF float bx1c = (bx0c + 1) % 256 float by1c = (by0c + 1) % 256 float rx0c = real(pc) - floor(real(pc)) float ry0c = imag(pc) - floor(imag(pc)) float rx1c = rx0c - 1 float ry1c = ry0c - 1 ; create a "random" index for each corner ; (this is where Intel's version differs from Perlin's; ; I used Intel's version because it doesn't require a ; pre-computed random table, which is difficult to manage ; in UF.) float b00a = (bx0a^@npower % 65536 + by0a)^@npower % 65536 float b10a = (bx1a^@npower % 65536 + by0a)^@npower % 65536 float b01a = (bx0a^@npower % 65536 + by1a)^@npower % 65536 float b11a = (bx1a^@npower % 65536 + by1a)^@npower % 65536 float b00b = (bx0b^@npower % 65536 + by0b)^@npower % 65536 float b10b = (bx1b^@npower % 65536 + by0b)^@npower % 65536 float b01b = (bx0b^@npower % 65536 + by1b)^@npower % 65536 float b11b = (bx1b^@npower % 65536 + by1b)^@npower % 65536 float b00c = (bx0c^@npower % 65536 + by0c)^@npower % 65536 float b10c = (bx1c^@npower % 65536 + by0c)^@npower % 65536 float b01c = (bx0c^@npower % 65536 + by1c)^@npower % 65536 float b11c = (bx1c^@npower % 65536 + by1c)^@npower % 65536 ; produce a "random" vector for each corner float g_b00_0a = (b00a)^@npower*0.25 % 512 - 256 float g_b10_0a = (b10a)^@npower*0.25 % 512 - 256 float g_b01_0a = (b01a)^@npower*0.25 % 512 - 256 float g_b11_0a = (b11a)^@npower*0.25 % 512 - 256 float g_b00_1a = (b00a+1)^@npower*0.25 % 512 - 256 float g_b10_1a = (b10a+1)^@npower*0.25 % 512 - 256 float g_b01_1a = (b01a+1)^@npower*0.25 % 512 - 256 float g_b11_1a = (b11a+1)^@npower*0.25 % 512 - 256 float g_b00_0b = (b00b)^@npower*0.25 % 512 - 256 float g_b10_0b = (b10b)^@npower*0.25 % 512 - 256 float g_b01_0b = (b01b)^@npower*0.25 % 512 - 256 float g_b11_0b = (b11b)^@npower*0.25 % 512 - 256 float g_b00_1b = (b00b+1)^@npower*0.25 % 512 - 256 float g_b10_1b = (b10b+1)^@npower*0.25 % 512 - 256 float g_b01_1b = (b01b+1)^@npower*0.25 % 512 - 256 float g_b11_1b = (b11b+1)^@npower*0.25 % 512 - 256 float g_b00_0c = (b00c)^@npower*0.25 % 512 - 256 float g_b10_0c = (b10c)^@npower*0.25 % 512 - 256 float g_b01_0c = (b01c)^@npower*0.25 % 512 - 256 float g_b11_0c = (b11c)^@npower*0.25 % 512 - 256 float g_b00_1c = (b00c+1)^@npower*0.25 % 512 - 256 float g_b10_1c = (b10c+1)^@npower*0.25 % 512 - 256 float g_b01_1c = (b01c+1)^@npower*0.25 % 512 - 256 float g_b11_1c = (b11c+1)^@npower*0.25 % 512 - 256 ; normalize each vector float da = 0.0 float db = 0.0 float dc = 0.0; da = @nv / sqrt(sqr(g_b00_0a) + sqr(g_b00_1a)) g_b00_0a = g_b00_0a * da g_b00_1a = g_b00_1a * da da = @nv / sqrt(sqr(g_b10_0a) + sqr(g_b10_1a)) g_b10_0a = g_b10_0a * da g_b10_1a = g_b10_1a * da da = @nv / sqrt(sqr(g_b01_0a) + sqr(g_b01_1a)) g_b01_0a = g_b01_0a * da g_b01_1a = g_b01_1a * da da = @nv / sqrt(sqr(g_b11_0a) + sqr(g_b11_1a)) g_b11_0a = g_b11_0a * da g_b11_1a = g_b11_1a * da db = @nv / sqrt(sqr(g_b00_0b) + sqr(g_b00_1b)) g_b00_0b = g_b00_0b * db g_b00_1b = g_b00_1b * db db = @nv / sqrt(sqr(g_b10_0b) + sqr(g_b10_1b)) g_b10_0b = g_b10_0b * db g_b10_1b = g_b10_1b * db db = @nv / sqrt(sqr(g_b01_0b) + sqr(g_b01_1b)) g_b01_0b = g_b01_0b * db g_b01_1b = g_b01_1b * db db = @nv / sqrt(sqr(g_b11_0b) + sqr(g_b11_1b)) g_b11_0b = g_b11_0b * db g_b11_1b = g_b11_1b * db dc = @nv / sqrt(sqr(g_b00_0c) + sqr(g_b00_1c)) g_b00_0c = g_b00_0c * dc g_b00_1c = g_b00_1c * dc dc = @nv / sqrt(sqr(g_b10_0c) + sqr(g_b10_1c)) g_b10_0c = g_b10_0c * dc g_b10_1c = g_b10_1c * dc dc = @nv / sqrt(sqr(g_b01_0c) + sqr(g_b01_1c)) g_b01_0c = g_b01_0c * dc g_b01_1c = g_b01_1c * dc dc = @nv / sqrt(sqr(g_b11_0c) + sqr(g_b11_1c)) g_b11_0c = g_b11_0c * dc g_b11_1c = g_b11_1c * dc ; produce colors for each corner if (@chcorn==0) float u1a = rx0a * g_b00_0a + ry0a * g_b00_1a float v1a = rx1a * g_b10_0a + ry0a * g_b10_1a float u2a = rx0a * g_b01_0a + ry1a * g_b01_1a float v2a = rx1a * g_b11_0a + ry1a * g_b11_1a float u1b = rx0b * g_b00_0b + ry0b * g_b00_1b float v1b = rx1b * g_b10_0b + ry0b * g_b10_1b float u2b = rx0b * g_b01_0b + ry1b * g_b01_1b float v2b = rx1b * g_b11_0b + ry1b * g_b11_1b float u1c = rx0c * g_b00_0c + ry0c * g_b00_1c float v1c = rx1c * g_b10_0c + ry0c * g_b10_1c float u2c = rx0c * g_b01_0c + ry1c * g_b01_1c float v2c = rx1c * g_b11_0c + ry1c * g_b11_1c elseif (@chcorn==1) float u1a = rx0a * g_b00_0a - ry0a * g_b00_1a float v1a = rx1a * g_b10_0a - ry0a * g_b10_1a float u2a = rx0a * g_b01_0a - ry1a * g_b01_1a float v2a = rx1a * g_b11_0a - ry1a * g_b11_1a float u1b = rx0b * g_b00_0b - ry0b * g_b00_1b float v1b = rx1b * g_b10_0b - ry0b * g_b10_1b float u2b = rx0b * g_b01_0b - ry1b * g_b01_1b float v2b = rx1b * g_b11_0b - ry1b * g_b11_1b float u1c = rx0c * g_b00_0c - ry0c * g_b00_1c float v1c = rx1c * g_b10_0c - ry0c * g_b10_1c float u2c = rx0c * g_b01_0c - ry1c * g_b01_1c float v2c = rx1c * g_b11_0c - ry1c * g_b11_1c elseif (@chcorn==2) float u1a = rx0a * g_b00_0a * ry0a * g_b00_1a float v1a = rx1a * g_b10_0a * ry0a * g_b10_1a float u2a = rx0a * g_b01_0a * ry1a * g_b01_1a float v2a = rx1a * g_b11_0a * ry1a * g_b11_1a float u1b = rx0b * g_b00_0b * ry0b * g_b00_1b float v1b = rx1b * g_b10_0b * ry0b * g_b10_1b float u2b = rx0b * g_b01_0b * ry1b * g_b01_1b float v2b = rx1b * g_b11_0b * ry1b * g_b11_1b float u1c = rx0c * g_b00_0c * ry0c * g_b00_1c float v1c = rx1c * g_b10_0c * ry0c * g_b10_1c float u2c = rx0c * g_b01_0c * ry1c * g_b01_1c float v2c = rx1c * g_b11_0c * ry1c * g_b11_1c endif ; interpolate between corners using ; bilinear filtering float sxa = sqr(rx0a) * (3 - rx0a*2) float sya = sqr(ry0a) * (3 - ry0a*2) float a1 = u1a + sxa*(v1a-u1a) float b1 = u2a + sxa*(v2a-u2a) float sxb = sqr(rx0b) * (3 - rx0b*2) float syb = sqr(ry0b) * (3 - ry0b*2) float a2 = u1b + sxb*(v1b-u1b) float b2 = u2b + sxb*(v2b-u2b) float sxc = sqr(rx0c) * (3 - rx0c*2) float syc = sqr(ry0c) * (3 - ry0c*2) float a3 = u1c + sxc*(v1c-u1c) float b3 = u2c + sxc*(v2c-u2c) sum1 = sum1 + real(@fn_1(a1 + sya*(b1-a1)))*freq sum2 = sum2 + real(@fn_1(a2 + syb*(b2-a2)))*freq sum3 = sum3 + real(@fn_1(a3 + syc*(b3-a3)))*freq freq = freq * @step pa = pa * r2 / @step pb = pb * r2 / @step pc = pc * r2 / @step i = i - 1 ENDWHILE IF (@style == 0); radial distortion va = (z1-c)/cabs(z1-c)*r3; use vector based on angle to distortion center vb = (z2-c)/cabs(z2-c)*r3 vc = (z3-c)/cabs(z3-c)*r3 ELSEIF (@style == 1); linear distortion va = r3-c; just use rotation vector vb = r3-c vc = r3-c ELSEIF (@style == 2); polar distortion th1 = atan2(z1) th2 = atan2(z2) th3 = atan2(z3) rp1 = sqrt(real(z1-c)^2+imag(z1-c)^2)*r3 rp2 = sqrt(real(z2-c)^2+imag(z2-c)^2)*r3 rp3 = sqrt(real(z3-c)^2+imag(z3-c)^2)*r3 va1 = rp1*cos(th1) vb1 = rp2*cos(th2) vc1 = rp3*cos(th3) va11 = rp1*sin(th1) vb11 = rp2*sin(th2) vc11 = rp3*sin(th3) va = va1+va11*(0,1) vb = vb1+vb11*(0,1) vc = vc1+vc11*(0,1) ENDIF z1 = z1 + va * sum1*0.5*@distortion z2 = z2 + vb * sum2*0.5*@distortion z3 = z3 + vc * sum3*0.5*@distortion ENDIF iter = iter+1 IF (@coloronly == false); not using fBm on coloring oz1 = z1 oz2 = z2 oz3 = z3 ENDIF ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if (|oz1|>@bailout || \ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif if (|oz1|>@bailout) ; we're done done = 0 endif Bailout: done > 0 Default: Title="Slope Sets+Fbm" method=multipass periodicity=0 maxiter=250 Heading caption="Mandelbrot Mode" visible=(@mode==0) Endheading Heading caption="Julia Mode" visible=(@mode==1) Endheading param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 visible=false endparam param switchmode caption="Switch To" enum="Mandelbrot""Julia" default=1 visible=false endparam param bailout caption="Bailout" default=64.0 min=0.0 endparam param startseed caption="Start z|Seed Value" default=(0.0,0.0) endparam param plane caption="Select Plane" enum="xy""xw""xz""yw""yz" default=0 endparam param rotx caption="Rotation x" default=0.0 endparam param roty caption="Rotation y" default=0.0 endparam param rotz caption="Rotation z" default=0.0 endparam param rotw caption="Rotation w" default=0.0 endparam Heading caption="Slope Parameters" Endheading float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." endparam Heading caption="fBm Parameters" Endheading param nv caption="Normalize Vectors" default=1.0 min=0.0 hint="This changes the amount of the vectorial normalization" endparam param distortion caption="Distortion Strength" default=1.0 hint="This is the amount the noise distorts the image." endparam param chcorn caption="Color Corner" enum="*+*""*-*""***" default=0 hint="This changes the operators to pruduce colors for each corner" endparam param style caption="Distortion Style" default=0 enum="radial""linear""polar" hint="This selects whether the distortion will be focused" endparam param distangle caption="Distortion Angle" default=0.0 hint="This is the angle to rotate the distortion." endparam param distcenter caption="Distortion Center" default=(0.0,0.0) hint="Sets the center of distortion. If Use Screen \ Center is set, this item is ignored." endparam param centermove caption="Use Screen Center" default=FALSE hint="If set, distortion will be around the center of \ the window, regardless of the Distortion Center \ setting." endparam param fbm_offset caption="Noise Offset" default=(0,0) hint="This is the offset of the pattern. You can use this to shift \ the pattern around on the complex plane." endparam param scale caption="Noise Scale" default=1.0 hint="This is the overall scale of the noise." endparam param angle caption="Noise Rotation" default=0.0 hint="This is the angle, in degrees, of the noise." endparam param step caption="Noise Scale Step" default=0.5 hint="This is the step in scale between noise iterations." endparam param anglestep caption="Noise Rotation Step" default=37.0 hint="This is the angle, in degrees, to rotate between noise \ iterations." endparam param octaves caption="Noise Octaves" default=7 min=1 hint="This is the number of iterations of the noise formula." endparam param npower caption="Noise Exponent" default=2.0 hint="This is the exponent used to scramble numbers." endparam param noisestart caption="Start Iteration" default=0.0 hint="This is the iteration at which to start adding noise." endparam param noiseiter caption="Noise Iterations" default=10000.0 hint="This is the number of iterations to add noise to." endparam param noiseskip caption="Skip Iterations" default=0.0 hint="This is the number of iterations to skip adding noise \ before starting again." endparam func fn_1 caption="Noise Function" default=ident() endfunc param coloronly caption="Coloring Only" default=false hint="If set, noise will only apply to pixel values passed \ to the coloring algorithm; it will not be included in \ the fractal calculation between iterations." endparam Heading caption="Formula Parameters" Endheading param zbegin caption="Select z" enum="z""z+c""z-c""z*c""z/c""c/z""z^c""c^z""z+c|z+c""z+c|z*c""z*c|z+c" \ "z+c|z/c""z/c|z+c""z+c|z^c""z^c|z+c""z/c|z/c""z/c|z^c""z*c|z^c""z^c|z*c"\ "(z+c|z*c)*|+riz""(z*c|z+c)*|+riz""(z*c|z+c)+|*riz""(z+c|z*c)+|*riz" \ "(z-c|z*c)+|*riz""(z*c|z-c)+|*riz""(z-c|z*c)*|+riz""(z*c|z-c)*|+riz" \ "(z*c|z/c)+|*riz""(z*c|z/c)*|+riz""(z/c|z*c)*|+riz""(z/c|z*c)*|+riz" \ "(z*c|z^c)+|*riz""(z*c|z^c)*|+riz""(z^c|z*c)+|*riz""(z^c|z*c)*|+riz" default=0 endparam param muc caption="Multiply C" default=(1.0,0.0) endparam param offz caption="Re|Im Offset" default=(0.0,0.0) visible=(@zbegin!=0)&&(@zbegin!=1)&&(@zbegin!=2)&&(@zbegin!=3)&&(@zbegin!=4) &&\ (@zbegin!=5)&&(@zbegin!=6)&&(@zbegin!=7)&&(@zbegin!=8)&&(@zbegin!=9) &&\ (@zbegin!=10)&&(@zbegin!=11)&&(@zbegin!=12)&&(@zbegin!=13)&&(@zbegin!=14) &&\ (@zbegin!=15)&&(@zbegin!=16)&&(@zbegin!=17)&&(@zbegin!=18) endparam param muz caption="Re Multiply" default=(1.0,0.0) visible=(@zbegin!=0)&&(@zbegin!=1)&&(@zbegin!=2)&&(@zbegin!=3)&&(@zbegin!=4) &&\ (@zbegin!=5)&&(@zbegin!=6)&&(@zbegin!=7)&&(@zbegin!=8)&&(@zbegin!=9) &&\ (@zbegin!=10)&&(@zbegin!=11)&&(@zbegin!=12)&&(@zbegin!=13)&&(@zbegin!=14) &&\ (@zbegin!=15)&&(@zbegin!=16)&&(@zbegin!=17)&&(@zbegin!=18) endparam param muz1 caption="Im Multiply" default=(1.0,0.0) visible=(@zbegin!=0)&&(@zbegin!=1)&&(@zbegin!=2)&&(@zbegin!=3)&&(@zbegin!=4) &&\ (@zbegin!=5)&&(@zbegin!=6)&&(@zbegin!=7)&&(@zbegin!=8)&&(@zbegin!=9) &&\ (@zbegin!=10)&&(@zbegin!=11)&&(@zbegin!=12)&&(@zbegin!=13)&&(@zbegin!=14) &&\ (@zbegin!=15)&&(@zbegin!=16)&&(@zbegin!=17)&&(@zbegin!=18) endparam param exz caption="Re Exponent" default=(1.0,0.0) visible=(@zbegin!=0)&&(@zbegin!=1)&&(@zbegin!=2)&&(@zbegin!=3)&&(@zbegin!=4) &&\ (@zbegin!=5)&&(@zbegin!=6)&&(@zbegin!=7)&&(@zbegin!=8)&&(@zbegin!=9) &&\ (@zbegin!=10)&&(@zbegin!=11)&&(@zbegin!=12)&&(@zbegin!=13)&&(@zbegin!=14) &&\ (@zbegin!=15)&&(@zbegin!=16)&&(@zbegin!=17)&&(@zbegin!=18) endparam param exz1 caption="Im Exponent" default=(1.0,0.0) visible=(@zbegin!=0)&&(@zbegin!=1)&&(@zbegin!=2)&&(@zbegin!=3)&&(@zbegin!=4) &&\ (@zbegin!=5)&&(@zbegin!=6)&&(@zbegin!=7)&&(@zbegin!=8)&&(@zbegin!=9) &&\ (@zbegin!=10)&&(@zbegin!=11)&&(@zbegin!=12)&&(@zbegin!=13)&&(@zbegin!=14) &&\ (@zbegin!=15)&&(@zbegin!=16)&&(@zbegin!=17)&&(@zbegin!=18) endparam param select caption="Select Formula" enum="Mandelbrot""Barnsley""Ikenaga""Lambda""Phoenix" default=0 endparam param seq caption="Sequence" enum="1""2""3" default=0 endparam param p10 caption="Factor 1" default=(1.0,0.0) endparam param p11 caption="Factor 2" default=(1.0,0.0) endparam param p12 caption="Factor 3" default=(1.0,0.0) visible=(@seq!=0) endparam param p8 caption="Parameter" default=(0.0,0.0) endparam param p9 caption="Offset" default=(0.0,0.0) endparam param p1 caption="Exp. Mandelbort" default=(2.0,0.0) visible=(@select==0) endparam param excm caption="Exp. c|Mandelbrot" default=(0.0,0.0) visible=(@select==0) endparam param p2 caption="Exp. Barnsley" default=(1.0,0.0) visible=(@select==1) endparam param excb caption="Exp. c|Barnsley" default=(0.0,0.0) visible=(@select==1) endparam param p3 caption="Exp. Ikenaga" default=(1.0,0.0) visible=(@select==2) endparam param excik caption="Exp. c|Ikenaga" default=(0.0,0.0) visible=(@select==2) endparam param p4 caption="Exponent Lambda" default=(2.0,0.0) visible=(@select==3) endparam param excl caption="Exp. c|Lambda" default=(0.0,0.0) visible=(@select==3) endparam param p5 caption="Exp. Phoenix" default=(2.0,0.0) visible=(@select==4) endparam param excp caption="Exp. c|Phoenix" default=(0.0,0.0) visible=(@select==4) endparam param p6 caption="Phoenix Distorsion" default=(0.5,0.0) visible=(@select==4) endparam param p7 caption="Global Exp." default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1|z" default=ident() endfunc func fn2 caption="Function 2|z" default=ident() endfunc func fn3 caption="Function c" default=ident() endfunc func fn4 caption="Factor1 Fn" default=ident() endfunc func fn5 caption="Factor2 Fn" default=ident() endfunc func fn6 caption="Factor3 Fn" default=ident() visible=(@seq!=0) endfunc param version caption="Version" default=1.5 visible=false endparam Switch: type="SlopeSets+Fbm" startseed=pixel seq=@seq method=@method bailout=@bailout plane=@plane select=@select zbegin=@zbegin muc=@muc offz=@offz muz=@muz muz1=@muz1 exz=@exz exz1=@exz1 p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 p8=@p8 p9=@p9 p10=@p10 p11=@p11 p12=@p12 excm=@excm excb=@excb excik=@excik excl=@excl excp=@excp rotx=@rotx roty=@roty rotz=@rotz rotw=@rotw fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 mode=@switchmode switchmode=@mode version=@version distortion=@distortion style=@style distangle=@distangle distcenter=@distcenter centermove=@centermove fbm_offset=@fbm_offset scale=@scale angle=@angle step=@step anglestep=@anglestep octaves=@octaves npower=@npower noisestart=@noisestart noiseiter=@noiseiter noiseskip=@noiseskip coloronly=@coloronly fn_1=@fn_1 nv=@nv chcorn=@chcorn offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl pow=@pow sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp } as-Slope3D_Set { ; Slope Triternion Mandelbrot Set. ; Original formula by Russell Walsmith. ; Based upon the slope (Mandelbrot) ; formula of Damien Jones ; compound with the models of slope formulas from Ron Barnett. ; Andrea Spinozzi,(May2005). Init: complex z1=(0.0,0.0) complex z2=(0.0,0.0) complex z3=(0.0,0.0) complex z11=(0.0,0.0) complex z12=(0.0,0.0) complex z13=(0.0,0.0) complex z21=(0.0,0.0) complex z22=(0.0,0.0) complex z23=(0.0,0.0) complex a11=(0.0,0.0) complex a12=(0.0,0.0) complex a13=(0.0,0.0) complex a21=(0.0,0.0) complex a22=(0.0,0.0) complex a23=(0.0,0.0) complex b11=(0.0,0.0) complex b12=(0.0,0.0) complex b13=(0.0,0.0) complex b21=(0.0,0.0) complex b22=(0.0,0.0) complex b23=(0.0,0.0) complex c11=(0.0,0.0) complex c12=(0.0,0.0) complex c13=(0.0,0.0) complex c21=(0.0,0.0) complex c22=(0.0,0.0) complex c23=(0.0,0.0) complex w11=(0.0,0.0) complex w12=(0.0,0.0) complex w13=(0.0,0.0) complex w21=(0.0,0.0) complex w22=(0.0,0.0) complex w23=(0.0,0.0) complex cz11=(0.0,0.0) complex cz12=(0.0,0.0) complex cz13=(0.0,0.0) complex cz21=(0.0,0.0) complex cz22=(0.0,0.0) complex cz23=(0.0,0.0) complex cw11=(0.0,0.0) complex cw12=(0.0,0.0) complex cw13=(0.0,0.0) complex cw21=(0.0,0.0) complex cw22=(0.0,0.0) complex cw23=(0.0,0.0) complex v11=(0.0,0.0) complex v12=(0.0,0.0) complex v13=(0.0,0.0) complex v21=(0.0,0.0) complex v22=(0.0,0.0) complex v23=(0.0,0.0) complex cv11=(0.0,0.0) complex cv12=(0.0,0.0) complex cv13=(0.0,0.0) complex cv21=(0.0,0.0) complex cv22=(0.0,0.0) complex cv23=(0.0,0.0) ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 if (@mode == "Mandelbrot") complex z1=pixel complex z2=z1+@offset complex z3=z1+flip(@offset) if (@version == 1.2) cv11=real(p1) cv12=real(p1) cv13=real(p1) cv21=imag(p1) cv22=imag(p1) cv23=imag(p1) else cv11=real(p1)+flip(imag(p1)) cv12=real(p1)+flip(imag(p1)) cv13=real(p1)+flip(imag(p1)) cv21=real(p1)+flip(imag(p1)) cv22=real(p1)+flip(imag(p1)) cv23=real(p1)+flip(imag(p1)) endif p4r=real(p4) p4i=imag(p4) p5r=real(p5) p5i=imag(p5) if (@var == 0) cz11=real(z1)*p4r cz12=real(z2)*p4r cz13=real(z3)*p4r cz21=real(z1)*p4i cz22=real(z2)*p4i cz23=real(z3)*p4i cw11=imag(z1)*p5r cw12=imag(z2)*p5r cw13=imag(z3)*p5r cw21=imag(z1)*p5i cw22=imag(z2)*p5i cw23=imag(z3)*p5i elseif (@var == 1) cz11=flip(real(z1))*p4r cz12=flip(real(z2))*p4r cz13=flip(real(z3))*p4r cz21=flip(real(z1))*p4i cz22=flip(real(z2))*p4i cz23=flip(real(z3))*p4i cw11=flip(imag(z1))*p5r cw12=flip(imag(z2))*p5r cw13=flip(imag(z3))*p5r cw21=flip(imag(z1))*p5i cw22=flip(imag(z2))*p5i cw23=flip(imag(z3))*p5i elseif (@var == 2) cz11=real(z1)*p4r cz12=real(z2)*p4r cz13=real(z3)*p4r cz21=real(z1)*p4i cz22=real(z2)*p4i cz23=real(z3)*p4i cw11=imag(z1)*p5r cw12=imag(z2)*p5r cw13=imag(z3)*p5r cw21=flip(imag(z1))*p5i cw22=flip(imag(z2))*p5i cw23=flip(imag(z3))*p5i elseif (@var == 3) cz11=flip(real(z1))*p4r cz12=flip(real(z2))*p4r cz13=flip(real(z3))*p4r cz21=real(z1)*p4i cz22=real(z2)*p4i cz23=real(z3)*p4i cw11=imag(z1)*p5r cw12=imag(z2)*p5r cw13=imag(z3)*p5r cw21=imag(z1)*p5i cw22=imag(z2)*p5i cw23=imag(z3)*p5i elseif (@var == 4) cz11=real(z1)*p4r cz12=real(z2)*p4r cz13=real(z3)*p4r cz21=flip(real(z1))*p4i cz22=flip(real(z2))*p4i cz23=flip(real(z3))*p4i cw11=imag(z1)*p5r cw12=imag(z2)*p5r cw13=imag(z3)*p5r cw21=imag(z1)*p5i cw22=imag(z2)*p5i cw23=imag(z3)*p5i elseif (@var == 5) cz11=flip(real(z1))*p4r cz12=flip(real(z2))*p4r cz13=flip(real(z3))*p4r cz21=flip(real(z1))*p4i cz22=flip(real(z2))*p4i cz23=flip(real(z3))*p4i cw11=imag(z1)*p5r cw12=imag(z2)*p5r cw13=imag(z3)*p5r cw21=imag(z1)*p5i cw22=imag(z2)*p5i cw23=imag(z3)*p5i elseif (@var == 6) cz11=real(z1)*p4r cz12=real(z2)*p4r cz13=real(z3)*p4r cz21=real(z1)*p4i cz22=real(z2)*p4i cz23=real(z3)*p4i cw11=flip(imag(z1))*p5r cw12=flip(imag(z2))*p5r cw13=flip(imag(z3))*p5r cw21=flip(imag(z1))*p5i cw22=flip(imag(z2))*p5i cw23=flip(imag(z3))*p5i elseif (@var == 7) cz11=real(z1)*p4r cz12=real(z2)*p4r cz13=real(z3)*p4r cz21=flip(real(z1))*p4i cz22=flip(real(z2))*p4i cz23=flip(real(z3))*p4i cw11=flip(imag(z1))*p5r cw12=flip(imag(z2))*p5r cw13=flip(imag(z3))*p5r cw21=flip(imag(z1))*p5i cw22=flip(imag(z2))*p5i cw23=flip(imag(z3))*p5i elseif (@var == 8) cz11=flip(real(z1))*p4r cz12=flip(real(z2))*p4r cz13=flip(real(z3))*p4r cz21=real(z1)*p4i cz22=real(z2)*p4i cz23=real(z3)*p4i cw11=flip(imag(z1))*p5r cw12=flip(imag(z2))*p5r cw13=flip(imag(z3))*p5r cw21=flip(imag(z1))*p5i cw22=flip(imag(z2))*p5i cw23=flip(imag(z3))*p5i elseif (@var == 9) cz11=flip(real(z1))*p4r cz12=flip(real(z2))*p4r cz13=flip(real(z3))*p4r cz21=flip(real(z1))*p4i cz22=flip(real(z2))*p4i cz23=flip(real(z3))*p4i cw11=imag(z1)*p5r cw12=imag(z2)*p5r cw13=imag(z3)*p5r cw21=flip(imag(z1))*p5i cw22=flip(imag(z2))*p5i cw23=flip(imag(z3))*p5i elseif (@var == 10) cz11=real(z1)*p4r cz12=real(z2)*p4r cz13=real(z3)*p4r cz21=flip(real(z1))*p4i cz22=flip(real(z2))*p4i cz23=flip(real(z3))*p4i cw11=imag(z1)*p5r cw12=imag(z2)*p5r cw13=imag(z3)*p5r cw21=flip(imag(z1))*p5i cw22=flip(imag(z2))*p5i cw23=flip(imag(z3))*p5i elseif (@var == 11) cz11=flip(real(z1))*p4r cz12=flip(real(z2))*p4r cz13=flip(real(z3))*p4r cz21=real(z1)*p4i cz22=real(z2)*p4i cz23=real(z3)*p4i cw11=flip(imag(z1))*p5r cw12=flip(imag(z2))*p5r cw13=flip(imag(z3))*p5r cw21=imag(z1)*p5i cw22=imag(z2)*p5i cw23=imag(z3)*p5i endif elseif (@mode == "Julia") z1=pixel z2=z1+@offset z3=z1+flip(@offset) if (@version == 1.2) cv11=real(p1) cv12=real(p1) cv13=real(p1) cv21=imag(p1) cv22=imag(p1) cv23=imag(p1) v11=real(p3) v12=real(p3) v13=real(p3) v21=imag(p3) v22=imag(p3) v23=imag(p3) else cv11=real(p1)+flip(imag(p1)) cv12=real(p1)+flip(imag(p1)) cv13=real(p1)+flip(imag(p1)) cv21=real(p1)+flip(imag(p1)) cv22=real(p1)+flip(imag(p1)) cv23=real(p1)+flip(imag(p1)) if (@selmult==0) v11=real(p3) v12=real(p3) v13=real(p3) v21=imag(p3) v22=imag(p3) v23=imag(p3) elseif (@selmult==1) v11=real(p3)+flip(imag(p3)) v12=real(p3)+flip(imag(p3)) v13=real(p3)+flip(imag(p3)) v21=-(real(p3)+flip(imag(p3))) v22=-(real(p3)+flip(imag(p3))) v23=-(real(p3)+flip(imag(p3))) endif endif p4r=real(p4) p4i=imag(p4) p5r=real(p5) p5i=imag(p5) p6r=real(p6) p6i=imag(p6) p7r=real(@p7) p7i=imag(@p7) if (@var == 0) z11=real(z1)^p6r z12=real(z2)^p6r z13=real(z3)^p6r z21=-real(z1)^p6i z22=-real(z2)^p6i z23=-real(z3)^p6i w11=imag(z1)^p7r w12=imag(z2)^p7r w13=imag(z3)^p7r w21=-imag(z1)^p7i w22=-imag(z2)^p7i w23=-imag(z3)^p7i cz11=real(@p2)*p4r cz12=real(@p2)*p4r cz13=real(@p2)*p4r cz21=real(@p2)*p4i cz22=real(@p2)*p4i cz23=real(@p2)*p4i cw11=imag(@p2)*p5r cw12=imag(@p2)*p5r cw13=imag(@p2)*p5r cw21=imag(@p2)*p5i cw22=imag(@p2)*p5i cw23=imag(@p2)*p5i elseif (@var == 1) z11=flip(real(z1))^p6r z12=flip(real(z2))^p6r z13=flip(real(z3))^p6r z21=-flip(real(z1))^p6i z22=-flip(real(z2))^p6i z23=-flip(real(z3))^p6i w11=flip(imag(z1))^p7r w12=flip(imag(z2))^p7r w13=flip(imag(z3))^p7r w21=-flip(imag(z1))^p7i w22=-flip(imag(z2))^p7i w23=-flip(imag(z3))^p7i cz11=flip(real(@p2))*p4r cz12=flip(real(@p2))*p4r cz13=flip(real(@p2))*p4r cz21=flip(real(@p2))*p4i cz22=flip(real(@p2))*p4i cz23=flip(real(@p2))*p4i cw11=flip(imag(@p2))*p5r cw12=flip(imag(@p2))*p5r cw13=flip(imag(@p2))*p5r cw21=flip(imag(@p2))*p5i cw22=flip(imag(@p2))*p5i cw23=flip(imag(@p2))*p5i elseif (@var == 2) z11=real(z1)^p6r z12=real(z2)^p6r z13=real(z3)^p6r z21=-real(z1)^p6i z22=-real(z2)^p6i z23=-real(z3)^p6i w11=imag(z1)^p7r w12=imag(z2)^p7r w13=imag(z3)^p7r w21=-flip(imag(z1))^p7i w22=-flip(imag(z2))^p7i w23=-flip(imag(z3))^p7i cz11=real(@p2)*p4r cz12=real(@p2)*p4r cz13=real(@p2)*p4r cz21=real(@p2)*p4i cz22=real(@p2)*p4i cz23=real(@p2)*p4i cw11=imag(@p2)*p5r cw12=imag(@p2)*p5r cw13=imag(@p2)*p5r cw21=flip(imag(@p2))*p5i cw22=flip(imag(@p2))*p5i cw23=flip(imag(@p2))*p5i elseif (@var == 3) z11=flip(real(z1))^p6r z12=flip(real(z2))^p6r z13=flip(real(z3))^p6r z21=-real(z1)^p6i z22=-real(z2)^p6i z23=-real(z3)^p6i w11=imag(z1)^p7r w12=imag(z2)^p7r w13=imag(z3)^p7r w21=-imag(z1)^p7i w22=-imag(z2)^p7i w23=-imag(z3)^p7i cz11=flip(real(@p2))*p4r cz12=flip(real(@p2))*p4r cz13=flip(real(@p2))*p4r cz21=real(@p2)*p4i cz22=real(@p2)*p4i cz23=real(@p2)*p4i cw11=imag(@p2)*p5r cw12=imag(@p2)*p5r cw13=imag(@p2)*p5r cw21=imag(@p2)*p5i cw22=imag(@p2)*p5i cw23=imag(@p2)*p5i elseif (@var == 4) z11=real(z1)^p6r z12=real(z2)^p6r z13=real(z3)^p6r z21=-flip(real(z1))^p6i z22=-flip(real(z2))^p6i z23=-flip(real(z3))^p6i w11=imag(z1)^p7r w12=imag(z2)^p7r w13=imag(z3)^p7r w21=-imag(z1)^p7i w22=-imag(z2)^p7i w23=-imag(z3)^p7i cz11=real(@p2)*p4r cz12=real(@p2)*p4r cz13=real(@p2)*p4r cz21=flip(real(@p2))*p4i cz22=flip(real(@p2))*p4i cz23=flip(real(@p2))*p4i cw11=imag(@p2)*p5r cw12=imag(@p2)*p5r cw13=imag(@p2)*p5r cw21=imag(@p2)*p5i cw22=imag(@p2)*p5i cw23=imag(@p2)*p5i elseif (@var == 5) z11=flip(real(z1))^p6r z12=flip(real(z2))^p6r z13=flip(real(z3))^p6r z21=-flip(real(z1))^p6i z22=-flip(real(z2))^p6i z23=-flip(real(z3))^p6i w11=imag(z1)^p7r w12=imag(z2)^p7r w13=imag(z3)^p7r w21=-imag(z1)^p7i w22=-imag(z2)^p7i w23=-imag(z3)^p7i cz11=flip(real(@p2))*p4r cz12=flip(real(@p2))*p4r cz13=flip(real(@p2))*p4r cz21=flip(real(@p2))*p4i cz22=flip(real(@p2))*p4i cz23=flip(real(@p2))*p4i cw11=imag(@p2)*p5r cw12=imag(@p2)*p5r cw13=imag(@p2)*p5r cw21=imag(@p2)*p5i cw22=imag(@p2)*p5i cw23=imag(@p2)*p5i elseif (@var == 6) z11=real(z1)^p6r z12=real(z2)^p6r z13=real(z3)^p6r z21=-real(z1)^p6i z22=-real(z2)^p6i z23=-real(z3)^p6i w11=flip(imag(z1))^p7r w12=flip(imag(z2))^p7r w13=flip(imag(z3))^p7r w21=-flip(imag(z1))^p7i w22=-flip(imag(z2))^p7i w23=-flip(imag(z3))^p7i cz11=real(@p2)*p4r cz12=real(@p2)*p4r cz13=real(@p2)*p4r cz21=real(@p2)*p4i cz22=real(@p2)*p4i cz23=real(@p2)*p4i cw11=flip(imag(@p2))*p5r cw12=flip(imag(@p2))*p5r cw13=flip(imag(@p2))*p5r cw21=flip(imag(@p2))*p5i cw22=flip(imag(@p2))*p5i cw23=flip(imag(@p2))*p5i elseif (@var == 7) z11=real(z1)^p6r z12=real(z2)^p6r z13=real(z3)^p6r z21=-flip(real(z1))^p6i z22=-flip(real(z2))^p6i z23=-flip(real(z3))^p6i w11=flip(imag(z1))^p7r w12=flip(imag(z2))^p7r w13=flip(imag(z3))^p7r w21=-flip(imag(z1))^p7i w22=-flip(imag(z2))^p7i w23=-flip(imag(z3))^p7i cz11=real(@p2)*p4r cz12=real(@p2)*p4r cz13=real(@p2)*p4r cz21=flip(real(@p2))*p4i cz22=flip(real(@p2))*p4i cz23=flip(real(@p2))*p4i cw11=flip(imag(@p2))*p5r cw12=flip(imag(@p2))*p5r cw13=flip(imag(@p2))*p5r cw21=flip(imag(@p2))*p5i cw22=flip(imag(@p2))*p5i cw23=flip(imag(@p2))*p5i elseif (@var == 8) z11=flip(real(z1))^p6r z12=flip(real(z2))^p6r z13=flip(real(z3))^p6r z21=-real(z1)^p6i z22=-real(z2)^p6i z23=-real(z3)^p6i w11=flip(imag(z1))^p7r w12=flip(imag(z2))^p7r w13=flip(imag(z3))^p7r w21=-flip(imag(z1))^p7i w22=-flip(imag(z2))^p7i w23=-flip(imag(z3))^p7i cz11=flip(real(@p2))*p4r cz12=flip(real(@p2))*p4r cz13=flip(real(@p2))*p4r cz21=real(@p2)*p4i cz22=real(@p2)*p4i cz23=real(@p2)*p4i cw11=flip(imag(@p2))*p5r cw12=flip(imag(@p2))*p5r cw13=flip(imag(@p2))*p5r cw21=flip(imag(@p2))*p5i cw22=flip(imag(@p2))*p5i cw23=flip(imag(@p2))*p5i elseif (@var == 9) z11=flip(real(z1))^p6r z12=flip(real(z2))^p6r z13=flip(real(z3))^p6r z21=-flip(real(z1))^p6i z22=-flip(real(z2))^p6i z23=-flip(real(z3))^p6i w11=imag(z1)^p7r w12=imag(z2)^p7r w13=imag(z3)^p7r w21=-flip(imag(z1))^p7i w22=-flip(imag(z2))^p7i w23=-flip(imag(z3))^p7i cz11=flip(real(@p2))*p4r cz12=flip(real(@p2))*p4r cz13=flip(real(@p2))*p4r cz21=flip(real(@p2))*p4i cz22=flip(real(@p2))*p4i cz23=flip(real(@p2))*p4i cw11=imag(@p2)*p5r cw12=imag(@p2)*p5r cw13=imag(@p2)*p5r cw21=flip(imag(@p2))*p5i cw22=flip(imag(@p2))*p5i cw23=flip(imag(@p2))*p5i elseif (@var == 10) z11=real(z1)^p6r z12=real(z2)^p6r z13=real(z3)^p6r z21=-flip(real(z1))^p6i z22=-flip(real(z2))^p6i z23=-flip(real(z3))^p6i w11=imag(z1)^p7r w12=imag(z2)^p7r w13=imag(z3)^p7r w21=-flip(imag(z1))^p7i w22=-flip(imag(z2))^p7i w23=-flip(imag(z3))^p7i cz11=real(@p2)*p4r cz12=real(@p2)*p4r cz13=real(@p2)*p4r cz21=flip(real(@p2))*p4i cz22=flip(real(@p2))*p4i cz23=flip(real(@p2))*p4i cw11=imag(@p2)*p5r cw12=imag(@p2)*p5r cw13=imag(@p2)*p5r cw21=flip(imag(@p2))*p5i cw22=flip(imag(@p2))*p5i cw23=flip(imag(@p2))*p5i elseif (@var == 11) z11=flip(real(z1))^p6r z12=flip(real(z2))^p6r z13=flip(real(z3))^p6r z21=-real(z1)^p6i z22=-real(z2)^p6i z23=-real(z3)^p6i w11=flip(imag(z1))^p7r w12=flip(imag(z2))^p7r w13=flip(imag(z3))^p7r w21=-imag(z1)^p7i w22=-imag(z2)^p7i w23=-imag(z3)^p7i cz11=flip(real(@p2))*p4r cz12=flip(real(@p2))*p4r cz13=flip(real(@p2))*p4r cz21=real(@p2)*p4i cz22=real(@p2)*p4i cz23=real(@p2)*p4i cw11=flip(imag(@p2))*p5r cw12=flip(imag(@p2))*p5r cw13=flip(imag(@p2))*p5r cw21=imag(@p2)*p5i cw22=imag(@p2)*p5i cw23=imag(@p2)*p5i endif endif Loop: if (@selmult==0) ;3D-Mandelbrot a11=z11^2 + z21^2 + 2*w11*w21 + 2*v11*v21 a12=z12^2 + z22^2 + 2*w12*w22 + 2*v12*v22 a13=z13^2 + z23^2 + 2*w13*w23 + 2*v13*v23 a21=2*z11*z21 + 2*w11*v21 + 2*w21*v11 a22=2*z12*z22 + 2*w12*v22 + 2*w22*v12 a23=2*z13*z23 + 2*w13*v23 + 2*w23*v13 b11=w21^2 + v21^2 + 2*z11*w11 + 2*z21*v11 b12=w22^2 + v22^2 + 2*z12*w12 + 2*z22*v12 b13=w23^2 + v23^2 + 2*z13*w13 + 2*z23*v13 b21=w11^2 + v11^2 + 2*z11*w21 + 2*z21*v21 b22=w12^2 + v12^2 + 2*z12*w22 + 2*z22*v22 b23=w13^2 + v13^2 + 2*z13*w23 + 2*z23*v23 c11=2*z11*v11 + 2*z21*w11 + 2*w21*v21 c12=2*z12*v12 + 2*z22*w12 + 2*w22*v22 c13=2*z13*v13 + 2*z23*w13 + 2*w23*v23 c21=2*z11*v21 + 2*z21*w21 + 2*w11*v11 c22=2*z12*v22 + 2*z22*w22 + 2*w12*v12 c23=2*z13*v23 + 2*z23*w23 + 2*w13*v13 elseif (@selmult==1) ;3D-Cubic Mandelbrot a11=z11^3+w11^3+w21^3+3*(z11*z21^2+w11*v11^2+w21*v21^2)+6*(z11*(w11*w21+v11*v21)+z21*(w11*v21+w21*v11)) a12=z12^3+w12^3+w22^3+3*(z12*z22^2+w12*v12^2+w22*v22^2)+6*(z12*(w12*w22+v12*v22)+z22*(w12*v22+w22*v12)) a13=z13^3+w13^3+w23^3+3*(z13*z23^2+w13*v13^2+w23*v23^2)+6*(z13*(w13*w23+v13*v23)+z23*(w13*v23+w23*v13)) a21=z21^3+v21^3+v11^3+3*(z21*z11^2+v11*w11^2+v21*w21^2)+6*(z11*(w11*v21+w21*v11)+z21*(w11*w21+v11*v21)) a22=z22^3+v22^3+v12^3+3*(z22*z12^2+v12*w12^2+v22*w22^2)+6*(z12*(w12*v22+w22*v12)+z22*(w12*w22+v12*v22)) a23=z23^3+v23^3+v13^3+3*(z23*z13^2+v13*w13^2+v23*w23^2)+6*(z13*(w13*v23+w23*v13)+z23*(w13*w23+v13*v23)) b11=3*(w21*(w11^2+v11^2)+z11*(w21^2+v21^2)+w11*(z11^2+z21^2))+6*(z21*w21*v21+z11*z21*v11+w11*v11*v21) b12=3*(w22*(w12^2+v12^2)+z12*(w22^2+v22^2)+w12*(z12^2+z22^2))+6*(z22*w22*v22+z12*z22*v12+w12*v12*v22) b13=3*(w23*(w13^2+v13^2)+z13*(w23^2+v23^2)+w13*(z13^2+z23^2))+6*(z23*w23*v23+z13*z23*v13+w13*v13*v23) b21=3*(w11*(w21^2+v21^2)+z11*(w11^2+v11^2)+w21*(z11^2+z21^2))+6*(z21*w11*v11+v11*w21*v21+z11*z21*v21) b22=3*(w12*(w22^2+v22^2)+z12*(w12^2+v12^2)+w22*(z12^2+z22^2))+6*(z22*w12*v12+v12*w22*v22+z12*z22*v22) b23=3*(w13*(w23^2+v23^2)+z13*(w13^2+v13^2)+w23*(z13^2+z23^2))+6*(z23*w13*v13+v13*w23*v23+z13*z23*v23) c11=3*(v11*(z11^2+z21^2)+z21*(w21^2+v21^2)+v21*(w11^2+v11^2))+6*(z11*w11*z21+z11*w21*v21+w11*v11*w21) c12=3*(v12*(z12^2+z22^2)+z22*(w22^2+v22^2)+v22*(w12^2+v12^2))+6*(z12*w12*z22+z12*w22*v22+w12*v12*w22) c13=3*(v13*(z13^2+z23^2)+z23*(w23^2+v23^2)+v23*(w13^2+v13^2))+6*(z13*w13*z23+z13*w23*v23+w13*v13*w23) c21=3*(v21*(z11^2+z21^2)+z21*(w11^2+v11^2)+v11*(w21^2+v21^2))+6*(z11*z21*w21+z11*w11*v11+w11*w21*v21) c22=3*(v22*(z12^2+z22^2)+z22*(w12^2+v12^2)+v12*(w22^2+v22^2))+6*(z12*z22*w22+z12*w12*v12+w12*w22*v22) c23=3*(v23*(z13^2+z23^2)+z23*(w13^2+v13^2)+v13*(w23^2+v23^2))+6*(z13*z23*w23+z13*w13*v13+w13*w23*v23) endif a11=fn1(a11) a12=fn1(a12) a13=fn1(a13) a21=fn2(a21) a22=fn2(a22) a23=fn2(a23) b11=fn3(b11) b12=fn3(b12) b13=fn3(b13) b21=fn4(b21) b22=fn4(b22) b23=fn4(b23) z11=(a11+cz11) z12=(a12+cz12) z13=(a13+cz13) z21=(a21-cz21) z22=(a22-cz22) z23=(a23-cz23) w11=(b11+cw11) w12=(b12+cw12) w13=(b13+cw13) w21=(b21-cw21) w22=(b22-cw22) w23=(b23-cw23) v11=(c11+cv11) v12=(c12+cv12) v13=(c13+cv13) v21=(c21-cv21) v22=(c22-cv22) v23=(c23-cv23) z11=@fn5(z11) z12=@fn5(z12) z13=@fn5(z13) z21=@fn6(z21) z22=@fn6(z22) z23=@fn6(z23) w11=@fn7(w11) w12=@fn7(w12) w13=@fn7(w13) w21=@fn8(w21) w22=@fn8(w22) w23=@fn8(w23) if (@version == 1.2) if (@flavor == 0) z1=z11-z21+flip(w11-w21) z2=z12-z22+flip(w12-w22) z3=z13-z23+flip(w13-w23) elseif (@flavor == 1) z1=z11-z21-(w11+w21) z2=z12-z22-(w12+w22) z3=z13-z23-(w13+w23) endif else if (@flavor == 0) z1=z11-z21+flip(w11-w21) z2=z12-z22+flip(w12-w22) z3=z13-z23+flip(w13-w23) elseif (@flavor == 1) z1=z11-z21+w11-w21 z2=z12-z22+w12-w22 z3=z13-z23+w13-w23 endif endif z1=z1^@pow z2=z2^@pow z3=z3^@pow if (@slope == true) ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if (@bailout < |z11|+|z21|+|w11|+|w21|+|v11|+|v21| || \ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif else z = z1 endif if ( @bailout < |z11|+|z21|+|w11|+|w21|+|v11|+|v21| ) ; we're done done = 0 endif Bailout: done > 0 Default: title="Slope3D_Set" method=multipass angle=0 maxiter=250 periodicity=0 magn=1.5 Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param bailout caption="Bailout Value" default=64.0 min=0.0 endparam param flavor caption="Flavor" enum="1""2" default=0 endparam Heading caption="Slope Parameters" visible=@slope==true Endheading bool param slope caption="Apply slope?" default=true endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param pow caption="Power" default=(1.0,0.0) visible=(@slope==true) endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6)&&(@slope==true) endfunc param a caption="Polar Parameter 1" default=0.5 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84)&&(@slope==true) endparam param b caption="Polar Parameter 2" default=0.5 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82)&&(@slope==true) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81)&&(@slope==true) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84)&&(@slope==true) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58)&&(@slope==true) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75)&&(@slope==true) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Heading caption="Formula Parameters" Endheading param var caption="Init. Variables" enum="1""2""3""4""5""6""7""8""9""10""11""12" default=0 endparam param selmult caption="Select Mode" enum="Triternion""Cubic Triternion" default=0 endparam param p2 caption="Seed Value" default=(1.0,1.0) visible=(@mode=="Julia") endparam param p1 caption="Parameter 1" default=(0.0,0.0) endparam param p4 caption="Parameter 2" default=(1.0,1.0) endparam param p5 caption="Parameter 3" default=(1.0,1.0) endparam param p3 caption="Parameter 4" default=(0.0,0.0) visible=(@mode=="Julia") endparam param p6 caption="Parameter 5" default=(1.0,1.0) visible=(@mode=="Julia") endparam param p7 caption="Parameter 6" default=(1.0,1.0) visible=(@mode=="Julia") endparam param version caption="Version" default=1.3 visible=false endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc func fn6 caption="Function 6" default=ident() endfunc func fn7 caption="Function 7" default=ident() endfunc func fn8 caption="Function 8" default=ident() endfunc Switch: type="as-Slope3D_Set" bailout=@bailout flavor=@flavor var=@var selmult=@selmult p2=#pixel p1=@p1 p4=@p4 p5=@p5 p6=@p6 p7=@p7 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 fn8=@fn8 mode=@switchmode switchmode=@mode version=@version slope=@slope offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl pow=@pow sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp } Slope-DerivativeMandelbrot- { ; Based upon the slope (Mandelbrot) ; formula of Damien Jones ; compound with the models of slope formulas from Ron Barnett. ; Use Damien's "Lighting" color or Ron's 3D texturizer coloring formulas ; most of others coloring formulas can be used. ; AndreaSpinozzi(February2005). ; version=1.2 : added distances for the Height Value(March2005). Init: z1=@startseed z2=z1 z3=z1 c=pixel c1=c+@offset c2=c+flip(@offset) ;------------------------- z1a=(0.0,0.0) z1b=(0.0,0.0) z1c=(0.0,0.0) z11a=(0.0,0.0) z11b=(0.0,0.0) z11c=(0.0,0.0) z2a=(0.0,0.0) z2b=(0.0,0.0) z2c=(0.0,0.0) z21a=(0.0,0.0) z21b=(0.0,0.0) z21c=(0.0,0.0) z3a=(0.0,0.0) z3b=(0.0,0.0) z3c=(0.0,0.0) z31a=(0.0,0.0) z31b=(0.0,0.0) z31c=(0.0,0.0) z4a=(0.0,0.0) z4b=(0.0,0.0) z4c=(0.0,0.0) z41a=(0.0,0.0) z41b=(0.0,0.0) z41c=(0.0,0.0) z5a=(0.0,0.0) z5b=(0.0,0.0) z5c=(0.0,0.0) ;------------------------- ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 if @mode=="Mandelbrot" z1=@startseed z2=z1 z3=z1 c=pixel c1=c+@offset c2=c+flip(@offset) elseif @mode=="Julia" z1=pixel z2=z1+@offset z3=z1+flip(@offset) c=@startseed c1=c c2=c endif Loop: if @opc==0 z1a=(fn1(z1)^p1)+c z1b=(fn1(z2)^p1)+c1 z1c=(fn1(z3)^p1)+c2 z11a=(p1*fn1(z1)^(p1-1))+c z11b=(p1*fn1(z2)^(p1-1))+c1 z11c=(p1*fn1(z3)^(p1-1))+c2 z2a=(fn2(z1)^p2)+c z2b=(fn2(z2)^p2)+c1 z2c=(fn2(z3)^p2)+c2 z21a=p2*(fn2(z1)^(p2-1))+c z21b=p2*(fn2(z2)^(p2-1))+c1 z21c=p2*(fn2(z3)^(p2-1))+c2 z4a=(fn3(z1)^p3)+c z4b=(fn3(z2)^p3)+c1 z4c=(fn3(z3)^p3)+c2 z41a=p3*(fn3(z1)^(p3-1))+c z41b=p3*(fn3(z2)^(p3-1))+c1 z41c=p3*(fn3(z3)^(p3-1))+c2 elseif @opc==1 z1a=(fn1(z1)^p1)-c z1b=(fn1(z2)^p1)-c1 z1c=(fn1(z3)^p1)-c2 z11a=(p1*fn1(z1)^(p1-1))-c z11b=(p1*fn1(z2)^(p1-1))-c1 z11c=(p1*fn1(z3)^(p1-1))-c2 z2a=(fn2(z1)^p2)-c z2b=(fn2(z2)^p2)-c1 z2c=(fn2(z3)^p2)-c2 z21a=p2*(fn2(z1)^(p2-1))-c z21b=p2*(fn2(z2)^(p2-1))-c1 z21c=p2*(fn2(z3)^(p2-1))-c2 z4a=(fn3(z1)^p3)-c z4b=(fn3(z2)^p3)-c1 z4c=(fn3(z3)^p3)-c2 z41a=p3*(fn3(z1)^(p3-1))-c z41b=p3*(fn3(z2)^(p3-1))-c1 z41c=p3*(fn3(z3)^(p3-1))-c2 elseif @opc==2 z1a=(fn1(z1)^p1)*c z1b=(fn1(z2)^p1)*c1 z1c=(fn1(z3)^p1)*c2 z11a=(p1*fn1(z1)^(p1-1))*c z11b=(p1*fn1(z2)^(p1-1))*c1 z11c=(p1*fn1(z3)^(p1-1))*c2 z2a=(fn2(z1)^p2)*c z2b=(fn2(z2)^p2)*c1 z2c=(fn2(z3)^p2)*c2 z21a=p2*(fn2(z1)^(p2-1))*c z21b=p2*(fn2(z2)^(p2-1))*c1 z21c=p2*(fn2(z3)^(p2-1))*c2 z4a=(fn3(z1)^p3)*c z4b=(fn3(z2)^p3)*c1 z4c=(fn3(z3)^p3)*c2 z41a=p3*(fn3(z1)^(p3-1))*c z41b=p3*(fn3(z2)^(p3-1))*c1 z41c=p3*(fn3(z3)^(p3-1))*c2 elseif @opc==3 z1a=(fn1(z1)^p1)/c z1b=(fn1(z2)^p1)/c1 z1c=(fn1(z3)^p1)/c2 z11a=(p1*fn1(z1)^(p1-1))/c z11b=(p1*fn1(z2)^(p1-1))/c1 z11c=(p1*fn1(z3)^(p1-1))/c2 z2a=(fn2(z1)^p2)/c z2b=(fn2(z2)^p2)/c1 z2c=(fn2(z3)^p2)/c2 z21a=p2*(fn2(z1)^(p2-1))/c z21b=p2*(fn2(z2)^(p2-1))/c1 z21c=p2*(fn2(z3)^(p2-1))/c2 z4a=(fn3(z1)^p3)/c z4b=(fn3(z2)^p3)/c1 z4c=(fn3(z3)^p3)/c2 z41a=p3*(fn3(z1)^(p3-1))/c z41b=p3*(fn3(z2)^(p3-1))/c1 z41c=p3*(fn3(z3)^(p3-1))/c2 endif z1a=@fn7(z1a)^@p11*@p12 z1b=@fn7(z1b)^@p11*@p12 z1c=@fn7(z1c)^@p11*@p12 z11a=@fn8(z11a)^@p13*@p14 z11b=@fn8(z11b)^@p13*@p14 z11c=@fn8(z11c)^@p13*@p14 z2a=@fn9(z2a)^@p15*@p16 z2b=@fn9(z2b)^@p15*@p16 z2c=@fn9(z2c)^@p15*@p16 z21a=@fn10(z21a)^@p17*@p18 z21b=@fn10(z21b)^@p17*@p18 z21c=@fn10(z21c)^@p17*@p18 z4a=@fn11(z4a)^@p19*@p20 z4b=@fn11(z4b)^@p19*@p20 z4c=@fn11(z4c)^@p19*@p20 z41a=@fn12(z41a)^@p21*@p22 z41b=@fn12(z41b)^@p21*@p22 z41c=@fn12(z41c)^@p21*@p22 if @op==0 z3a=(z2a+z21a) z3b=(z2b+z21b) z3c=(z2c+z21c) elseif @op==1 z3a=(z2a-z21a) z3b=(z2b-z21b) z3c=(z2c-z21c) elseif @op==2 z3a=(z2a*z21a) z3b=(z2b*z21b) z3c=(z2c*z21c) elseif @op==3 z3a=(z2a/z21a) z3b=(z2b/z21b) z3c=(z2c/z21c) elseif @op==4 z3a=(z21a-z2a) z3b=(z21b-z2b) z3c=(z21c-z2c) elseif @op==5 z3a=(z21a/z2a) z3b=(z21b/z2b) z3c=(z21c/z2c) endif z3a=@fn4(z3a)^p5*p6 z3b=@fn4(z3b)^p5*p6 z3c=@fn4(z3c)^p5*p6 if @op3==0 z31a=z4a+z41a z31b=z4b+z41b z31c=z4c+z41c elseif @op3==1 z31a=z4a-z41a z31b=z4b-z41b z31c=z4c-z41c elseif @op3==2 z31a=z4a*z41a z31b=z4b*z41b z31c=z4c*z41c elseif @op3==3 z31a=z4a/z41a z31b=z4b/z41b z31c=z4c/z41c elseif @op3==4 z31a=z41a-z4a z31b=z41b-z4b z31c=z41c-z4c elseif @op3==5 z31a=z41a/z4a z31b=z41b/z4b z31c=z41c/z4c endif z31a=@fn5(z31a)^@p7*@p8 z31b=@fn5(z31b)^@p7*@p8 z31c=@fn5(z31c)^@p7*@p8 if @op1==0 if @op2==0 z5a=((z1a+z11a)^p4)+z3a z5b=((z1b+z11b)^p4)+z3b z5c=((z1c+z11c)^p4)+z3c elseif @op2==1 z5a=((z1a+z11a)^p4)-z3a z5b=((z1b+z11b)^p4)-z3b z5c=((z1c+z11c)^p4)-z3c elseif @op2==2 z5a=((z1a+z11a)^p4)*z3a z5b=((z1b+z11b)^p4)*z3b z5c=((z1c+z11c)^p4)*z3c elseif @op2==3 z5a=((z1a+z11a)^p4)/z3a z5b=((z1b+z11b)^p4)/z3b z5c=((z1c+z11c)^p4)/z3c endif elseif @op1==1 if @op2==0 z5a=((z1a*z11a)^p4)+z3a z5b=((z1b*z11b)^p4)+z3b z5c=((z1c*z11c)^p4)+z3c elseif @op2==1 z5a=((z1a*z11a)^p4)-z3a z5b=((z1b*z11b)^p4)-z3b z5c=((z1c*z11c)^p4)-z3c elseif @op2==2 z5a=((z1a*z11a)^p4)*z3a z5b=((z1b*z11b)^p4)*z3b z5c=((z1c*z11c)^p4)*z3c elseif @op2==3 z5a=((z1a*z11a)^p4)/z3a z5b=((z1b*z11b)^p4)/z3b z5c=((z1c*z11c)^p4)/z3c endif elseif @op1==2 if @op2==0 z5a=((z1a/z11a)^p4)+z3a z5b=((z1b/z11b)^p4)+z3b z5c=((z1c/z11c)^p4)+z3c elseif @op2==1 z5a=((z1a/z11a)^p4)-z3a z5b=((z1b/z11b)^p4)-z3b z5c=((z1c/z11c)^p4)-z3c elseif @op2==2 z5a=((z1a/z11a)^p4)*z3a z5b=((z1b/z11b)^p4)*z3b z5c=((z1c/z11c)^p4)*z3c elseif @op2==3 z5a=((z1a/z11a)^p4)/z3a z5b=((z1b/z11b)^p4)/z3b z5c=((z1c/z11c)^p4)/z3c endif elseif @op1==3 if @op2==0 z5a=((z11a/z1a)^p4)+z3a z5b=((z11b/z1b)^p4)+z3b z5c=((z11c/z1c)^p4)+z3c elseif @op2==1 z5a=((z11a/z1a)^p4)-z3a z5b=((z11b/z1b)^p4)-z3b z5c=((z11c/z1c)^p4)-z3c elseif @op2==2 z5a=((z11a/z1a)^p4)*z3a z5b=((z11b/z1b)^p4)*z3b z5c=((z11c/z1c)^p4)*z3c elseif @op2==3 z5a=((z11a/z1a)^p4)/z3a z5b=((z11b/z1b)^p4)/z3b z5c=((z11c/z1c)^p4)/z3c endif endif z5a=@fn6(z5a)^@p9*@p10 z5b=@fn6(z5b)^@p9*@p10 z5c=@fn6(z5c)^@p9*@p10 if @op4==0 z1=z5a*z31a z2=z5b*z31b z3=z5c*z31c elseif @op4==1 z1=z5a/z31a z2=z5b/z31b z3=z5c/z31c elseif @op4==2 z1=z31a-z5a z2=z31b-z5b z3=z31c-z5c endif z1=z1^@pow z2=z2^@pow z3=z3^@pow if (@slope == true) ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if (@bailout < |z1| || \ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif else z = z1 endif if ( @bailout < |z1|) ; we're done done = 0 endif Bailout: done>0 Default: title="Slope-DerivativeMandelbrot-" angle=90 center=(0.0,0.0) maxiter=250 periodicity=0 method=multipass Heading caption="Mandelbrot Mode" visible=(@mode=="Mandelbrot") Endheading Heading caption="Julia Mode" visible=(@mode=="Julia") Endheading param bailout caption="Bailout Value" default=16.0 min = 0.0 endparam param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 endparam param switchmode caption="Switch To..." enum="Mandelbrot""Julia" default=1 endparam Heading caption="Slope Parameters" visible=@slope==true Endheading bool param slope caption="Apply slope?" default=true endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6)&&(@slope==true) endfunc param a caption="Polar Parameter 1" default=0.5 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84)&&(@slope==true) endparam param b caption="Polar Parameter 2" default=0.5 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82)&&(@slope==true) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81)&&(@slope==true) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84)&&(@slope==true) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58)&&(@slope==true) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75)&&(@slope==true) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Heading caption="Operators and Parameters" Endheading complex param startseed caption="Init Z/Seed Value" default=(0.5,0.0) endparam param opc caption="Operator C" enum="+""-""*""/" default=2 endparam param op caption="Operator 1" enum="1""2""3""4""5""6" default=0 endparam param op1 caption="Operator 2" enum="1""2""3""4" default=0 endparam param op2 caption="Operator 3" enum="1""2""3""4" default=0 endparam param op3 caption="Operator 4" enum="1""2""3""4""5""6" default=0 endparam param op4 caption="Operator 5" enum="1""2""3" default=0 endparam param p1 caption="Parameter 1" default=(1.0,0.0) endparam param p2 caption="Parameter 2" default=(1.0,0.0) endparam param p3 caption="Parameter 3" default=(1.0,0.0) endparam param p6 caption="Parameter 4" default=(1.0,0.0) endparam param p8 caption="Parameter 5" default=(1.0,0.0) endparam param p10 caption="Parameter 6" default=(1.0,0.0) endparam param p12 caption="Parameter 7" default=(1.0,0.0) endparam param p14 caption="Parameter 8" default=(1.0,0.0) endparam param p16 caption="Parameter 9" default=(1.0,0.0) endparam param p18 caption="Parameter 10" default=(1.0,0.0) endparam param p20 caption="Parameter 11" default=(1.0,0.0) endparam param p22 caption="Parameter 12" default=(1.0,0.0) endparam param p4 caption="Exponent 1" default=(-1.0,0.0) endparam param p5 caption="Exponent 2" default=(1.0,0.0) endparam param p7 caption="Exponent 3" default=(1.0,0.0) endparam param p9 caption="Exponent 4" default=(1.0,0.0) endparam param pow caption="Exponent 5" default=(1.0,0.0) endparam param p11 caption="Exponent 6" default=(1.0,0.0) endparam param p13 caption="Exponent 7" default=(1.0,0.0) endparam param p15 caption="Exponent 8" default=(1.0,0.0) endparam param p17 caption="Exponent 9" default=(1.0,0.0) endparam param p19 caption="Exponent 10" default=(1.0,0.0) endparam param p21 caption="Exponent 11" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc func fn6 caption="Function 6" default=ident() endfunc func fn7 caption="Function 7" default=ident() endfunc func fn8 caption="Function 8" default=ident() endfunc func fn9 caption="Function 9" default=ident() endfunc func fn10 caption="Function 10" default=ident() endfunc func fn11 caption="Function 11" default=ident() endfunc func fn12 caption="Function 12" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Slope-DerivativeMandelbrot-" startseed=#pixel bailout=@bailout opc=@opc op=@op op1=@op1 op2=@op2 op3=@op3 op4=@op4 p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 p8=@p8 p9=@p9 p10=@p10 p11=@p11 p12=@p12 p13=@p13 p14=@p14 p15=@p15 p16=@p16 p17=@p17 p18=@p18 p19=@p19 p20=@p20 p21=@p21 p22=@p22 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 fn8=@fn8 fn9=@fn9 fn10=@fn10 fn11=@fn11 fn12=@fn12 mode=@switchmode switchmode=@mode slope=@slope offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl pow=@pow sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp version=@version } SlopeFibonacciSerie { ;This formula presents the Fibonacci serie(hypercomplex), my deep thanks to Susan Chambless ;and her formulae and work about the sequence on C, it was the only way to fix this formula. ;Slope code implemented from the formulae of Damien and Ron. ;Andrea Spinozzi(Dec05) Init: z1=@startseed z2=z1 z3=z1 cz1=pixel cz2=cz1+@offset cz3=cz1+flip(@offset) w1=0.0 w2=0.0 w3=0.0 cw1=p5 cw2=p5 cw3=p5 oldz11=oldz12=z1 oldz21=oldz22=z2 oldz31=oldz32=z3 temp=0.0 f0=@p7 f1=@p8 za11=za12=za13=f0 zb11=zb12=zb13=f1 a21=b21=a22=b22=a23=b23=0.0 za1=zb1=za2=zb2=za3=zb3=0.0 if (@mode=="julia") z1=pixel z2=z1+@offset z3=z1+flip(@offset) cz1=@startseed cz2=cz1 cz3=cz1 w1=w2=w3=p6 cw1=cw2=cw3=p5 endif ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 int modby=@seq+1 int iter=0 Loop: int method=iter%modby temp11=real(z1)-imag(w1)+flip(imag(z1)+real(w1)) temp12=real(z1)+imag(w1)+flip(imag(z1)-real(w1)) temp21=real(z2)-imag(w2)+flip(imag(z2)+real(w2)) temp22=real(z2)+imag(w2)+flip(imag(z2)-real(w2)) temp31=real(z3)-imag(w3)+flip(imag(z3)+real(w3)) temp32=real(z3)+imag(w3)+flip(imag(z3)-real(w3)) a11=real(z1)-imag(w1)+flip(imag(z1)+real(w1)) b11=real(z1)+imag(w1)+flip(imag(z1)-real(w1)) a12=real(z2)-imag(w2)+flip(imag(z2)+real(w2)) b12=real(z2)+imag(w2)+flip(imag(z2)-real(w2)) a13=real(z3)-imag(w3)+flip(imag(z3)+real(w3)) b13=real(z3)+imag(w3)+flip(imag(z3)-real(w3)) ca1=real(cz1)-imag(cw1)+flip(imag(cz1)+real(cw1)) cb1=real(cz1)+imag(cw1)+flip(imag(cz1)-real(cw1)) ca2=real(cz2)-imag(cw2)+flip(imag(cz2)+real(cw2)) cb2=real(cz2)+imag(cw2)+flip(imag(cz2)-real(cw2)) ca3=real(cz3)-imag(cw3)+flip(imag(cz3)+real(cw3)) cb3=real(cz3)+imag(cw3)+flip(imag(cz3)-real(cw3)) if(@form==0) a21=fn1(a11)^2 b21=fn1(b11)^2 a22=fn1(a12)^2 b22=fn1(b12)^2 a23=fn1(a13)^2 b23=fn1(b13)^2 elseif(@form==1) a21=fn1(a11*oldz11) b21=fn1(b11*oldz12) a22=fn1(a12*oldz21) b22=fn1(b12*oldz22) a23=fn1(a13*oldz31) b23=fn1(b13*oldz32) elseif(@form==2) a21=fn1(a11)*oldz11^2 b21=fn1(b11)*oldz12^2 a22=fn1(a12)*oldz21^2 b22=fn1(b12)*oldz22^2 a23=fn1(a13)*oldz31^2 b23=fn1(b13)*oldz32^2 endif if(@lenghtw==0) if (method==0) ca1=ca1*(p1-1) cb1=cb1*(p1-2) ca2=ca2*(p1-1) cb2=cb2*(p1-2) ca3=ca3*(p1-1) cb3=cb3*(p1-2) elseif (method==1) ca1=ca1*(p2-1) cb1=cb1*(p2-2) ca2=ca2*(p2-1) cb2=cb2*(p2-2) ca3=ca3*(p2-1) cb3=cb3*(p2-2) elseif (method==2) ca1=ca1*(p3-1) cb1=cb1*(p3-2) ca2=ca2*(p3-1) cb2=cb2*(p3-2) ca3=ca3*(p3-1) cb3=cb3*(p3-2) elseif (method==3) ca1=ca1*(p4-1) cb1=cb1*(p4-2) ca2=ca2*(p4-1) cb2=cb2*(p4-2) ca3=ca3*(p4-1) cb3=cb3*(p4-2) endif elseif (@lenghtw==1) if (method==0) ca1=ca1^(p1-1) cb1=cb1^(p1-2) ca2=ca2^(p1-1) cb2=cb2^(p1-2) ca3=ca3^(p1-1) cb3=cb3^(p1-2) elseif (method==1) ca1=ca1^(p2-1) cb1=cb1^(p2-2) ca2=ca2^(p2-1) cb2=cb2^(p2-2) ca3=ca3^(p2-1) cb3=cb3^(p2-2) elseif (method==2) ca1=ca1^(p3-1) cb1=cb1^(p3-2) ca2=ca2^(p3-1) cb2=cb2^(p3-2) ca3=ca3^(p3-1) cb3=cb3^(p3-2) elseif (method==3) ca1=ca1^(p4-1) cb1=cb1^(p4-2) ca2=ca2^(p4-1) cb2=cb2^(p4-2) ca3=ca3^(p4-1) cb3=cb3^(p4-2) endif endif an1=ca1 bn1=cb1 an2=ca2 bn2=cb2 an3=ca3 bn3=cb3 if (@methodC==0) za1=(1/sqrt(5))*(((1+sqrt(5))/2)^an1-((1-sqrt(5))/2)^an1) zb1=(1/sqrt(5))*(((1+sqrt(5))/2)^bn1-((1-sqrt(5))/2)^bn1) za2=(1/sqrt(5))*(((1+sqrt(5))/2)^an2-((1-sqrt(5))/2)^an2) zb2=(1/sqrt(5))*(((1+sqrt(5))/2)^bn2-((1-sqrt(5))/2)^bn2) za3=(1/sqrt(5))*(((1+sqrt(5))/2)^an3-((1-sqrt(5))/2)^an3) zb3=(1/sqrt(5))*(((1+sqrt(5))/2)^bn3-((1-sqrt(5))/2)^bn3) elseif (@methodC==1) za1=(1/sqrt(5))*(((1+sqrt(5))/2)*an1-((1-sqrt(5))/2)*an1) zb1=(1/sqrt(5))*(((1+sqrt(5))/2)*bn1-((1-sqrt(5))/2)*bn1) za2=(1/sqrt(5))*(((1+sqrt(5))/2)*an2-((1-sqrt(5))/2)*an2) zb2=(1/sqrt(5))*(((1+sqrt(5))/2)*bn2-((1-sqrt(5))/2)*bn2) za3=(1/sqrt(5))*(((1+sqrt(5))/2)*an3-((1-sqrt(5))/2)*an3) zb3=(1/sqrt(5))*(((1+sqrt(5))/2)*bn3-((1-sqrt(5))/2)*bn3) endif if (@fibomethod==0) za11=(1/sqrt(5))*(((1+sqrt(5))/2)^f0-((1-sqrt(5))/2)^f0) zb11=(1/sqrt(5))*(((1+sqrt(5))/2)^f1-((1-sqrt(5))/2)^f1) za12=(1/sqrt(5))*(((1+sqrt(5))/2)^f0-((1-sqrt(5))/2)^f0) zb12=(1/sqrt(5))*(((1+sqrt(5))/2)^f1-((1-sqrt(5))/2)^f1) za13=(1/sqrt(5))*(((1+sqrt(5))/2)^f0-((1-sqrt(5))/2)^f0) zb13=(1/sqrt(5))*(((1+sqrt(5))/2)^f1-((1-sqrt(5))/2)^f1) elseif (@fibomethod==1) za11=(1/sqrt(5))*(((1+sqrt(5))/2)*f0-((1-sqrt(5))/2)*f0) zb11=(1/sqrt(5))*(((1+sqrt(5))/2)*f1-((1-sqrt(5))/2)*f1) za12=(1/sqrt(5))*(((1+sqrt(5))/2)*f0-((1-sqrt(5))/2)*f0) zb12=(1/sqrt(5))*(((1+sqrt(5))/2)*f1-((1-sqrt(5))/2)*f1) za13=(1/sqrt(5))*(((1+sqrt(5))/2)*f0-((1-sqrt(5))/2)*f0) zb13=(1/sqrt(5))*(((1+sqrt(5))/2)*f1-((1-sqrt(5))/2)*f1) endif zac1=za1*(za11+@p9) zbc1=zb1*(zb11+@p9) zac2=za2*(za12+@p9) zbc2=zb2*(zb12+@p9) zac3=za3*(za13+@p9) zbc3=zb3*(zb13+@p9) z11=fn2(a21)+zac1 z12=fn2(b21)+zbc1 z21=fn2(a22)+zac2 z22=fn2(b22)+zbc2 z31=fn2(a23)+zac3 z32=fn2(b23)+zbc3 z1=(real(z11)+real(z12)+flip(imag(z12)+imag(z11)))/2 z2=(real(z21)+real(z22)+flip(imag(z22)+imag(z21)))/2 z3=(real(z31)+real(z32)+flip(imag(z32)+imag(z31)))/2 w1=(imag(z11)-imag(z12)+flip(real(z12)-real(z11)))/2 w2=(imag(z21)-imag(z22)+flip(real(z22)-real(z21)))/2 w3=(imag(z31)-imag(z32)+flip(real(z32)-real(z31)))/2 z1=z1+cz1 z2=z2+cz2 z3=z3+cz3 w1=w1+cw1 w2=w2+cw2 w3=w3+cw3 if (@seltemp==0) temp=f0+f1 elseif (@seltemp==1) temp=f0*f1 elseif (@seltemp==2) temp=f0^f1 endif f0=f1 f1=temp oldz11=temp11 oldz12=temp12 oldz21=temp21 oldz22=temp22 oldz31=temp31 oldz32=temp32 if (@slope == true) ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))); get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if (@bailout < |z1|+|w1| || \ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif else z = z1 endif if ( @bailout < |z1|+|w1| ) ; we're done done = 0 endif iter=iter+1 Bailout: done>0 Default: title="SlopeFibonacci" center=(0.0,0.0) maxiter=250 periodicity=0 method=multipass magn=1.0 Heading caption="Mandelbrot Mode" visible=(@mode==0) Endheading Heading caption="Julia Mode" visible=(@mode==1) Endheading param mode caption="Mode" enum="Mandelbrot""Julia" default=0 visible=false endparam param switchmode caption="Switch Mode" enum="Mandelbrot""Julia" default=1 visible=false endparam param bailout caption="Bailout" default=128.0 min=0.0 endparam param startseed caption="Start Z\Seed" default=(0.0,0.0) endparam Heading caption="Slope Parameters" visible=@slope==true Endheading bool param slope caption="Apply slope?" default=true endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6)&&(@slope==true) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84)&&(@slope==true) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82)&&(@slope==true) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81)&&(@slope==true) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84)&&(@slope==true) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58)&&(@slope==true) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75)&&(@slope==true) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Heading caption="Formula Parameters" Endheading param form caption="Select Z" enum="z^2""z*oldz""z*oldz^2" default=0 endparam param seq caption="Sequence Lenght" enum="1""2""3""4" default=0 endparam param lenghtw caption="Lenght Method" enum="Multiply""Elevate" default=1 endparam param methodC caption="Method on Sequence" enum="Elevate""Multiply" default=1 endparam param fibomethod caption="Fibo Method 1" enum="Elevate""Multiply" default=0 endparam param seltemp caption="Fibo Method 2" enum="Add""Multiply""Elevate" default=1 endparam param p9 caption="Start Sequence" default=(0.0,0.0) endparam param p1 caption="Factor 1" default=2.0 endparam param p2 caption="Factor 2" default=3.0 visible=(@seq!=0) endparam param p3 caption="Factor 3" default=3.0 visible=(@seq!=0)&&(@seq!=1) endparam param p4 caption="Factor 4" default=2.0 visible=(@seq!=0)&&(@seq!=1)&&(@seq!=2) endparam param p5 caption="Parameter 1" default=(0.0,0.0) endparam param p7 caption="Fibo Element1" default=(0.0,0.0) endparam param p8 caption="Fibo Element2" default=(0.0,0.0) endparam param p6 caption="4th. Dimension" default=(0.0,0.0) endparam param version caption="Version" default=1.2 visible=false endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc Switch: type="SlopeFibonacciSerie" bailout=@bailout startseed=pixel lenghtw=@lenghtw fibomethod=@fibomethod methodc=@methodc seq=@seq form=@form seltemp=@seltemp p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 p8=@p8 p9=@p9 fn1=@fn1 fn2=@fn2 mode=@switchmode switchmode=@mode version=@version slope=@slope offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl pow=@pow sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp } as-SlopeHyperMagnet { ;Slope Hypercomplex Magnet formula compound with slope formulae of ;Damien Jones and based on the slope version of Ron Barnett. ;Version(1.1), added Magnet 2 set. ;Verions(1.2), optimized the hyper parameter p1 in the Mandelbrot Mode. ;Andrea Spinozzi(Mar2006) Init: z11=z12=z13=cz1=cz2=cz3=0.0 a1=a2=a3=ca1=ca2=ca3=0.0 b1=b2=b3=cb1=cb2=cb3=0.0 ac1=ac2=ac3=bc1=bc2=bc3=0.0 c11=c12=c13=c21=c22=c23=0.0 c11num=c12num=c13num=c21num=c22num=c23num=0.0 c11den=c12den=c13den=c21den=c22den=c23den=0.0 rotx=@rotx roty=@roty rotw=@rotw rotz=@rotz ;Default to Mandelbrot Mode if (@version<1.2) w1=w2=w3=cw1=cw2=cw3=p1 else w1=w2=w3=0.0 cw1=cw2=cw3=p1 endif if (@plane == 0) ;xy z11=real(@startseed)+flip(imag(@startseed)) z12=z11 z13=z11 cz1=real(pixel)+flip(imag(pixel)) cz2=cz1+@offset cz3=cz1+flip(@offset) elseif (@plane == 1) ;xw z11=real(pixel)+flip(real(@startseed)) z12=z11+@offset z13=z11+flip(@offset) cz1=flip(imag(pixel))+imag(@startseed) cz2=cz1+@offset cz3=cz1+flip(@offset) elseif (@plane == 2) ;xz z11=real(pixel)+flip(real(@startseed)) z12=z11+@offset z13=z11+flip(@offset) cz1=imag(pixel)+flip(imag(@startseed)) cz2=cz1+@offset cz3=cz1+flip(@offset) elseif (@plane == 3) ;yw z11=flip(real(pixel))+real(@startseed) z12=z11+@offset z13=z11+flip(@offset) cz1=flip(imag(pixel))+imag(@startseed) cz2=cz1+@offset cz3=cz1+flip(@offset) elseif (@plane == 4) ;yz z11=flip(real(pixel))+real(@startseed) z12=z11+@offset z13=z11+flip(@offset) cz1=imag(pixel)+flip(imag(@startseed)) cz2=cz1+@offset cz3=cz1+flip(@offset) endif ;Switch to Julia Mode if (@mode=="Julia") if (@plane == 0) ;xy z11=real(pixel)+flip(imag(pixel)) z12=z11+@offset z13=z11+flip(@offset) cz1=real(@startseed)+flip(imag(@startseed)) cz2=cz1 cz3=cz1 elseif (@plane == 1) ;xw z11=real(pixel)+flip(real(@startseed)) z12=z11+@offset z13=z11+flip(@offset) cz1=flip(imag(pixel))+imag(@startseed) cz2=cz1+@offset cz3=cz1+flip(@offset) elseif (@plane == 2) ;xz z11=real(pixel)+flip(real(@startseed)) z12=z11+@offset z13=z11+flip(@offset) cz1=imag(pixel)+flip(imag(@startseed)) cz2=cz1+@offset cz3=cz1+flip(@offset) elseif (@plane == 3) ;yw z11=flip(real(pixel))+real(@startseed) z12=z11+@offset z13=z11+flip(@offset) cz1=flip(imag(pixel))+imag(@startseed) cz2=cz1+@offset cz3=cz1+flip(@offset) elseif (@plane == 4) ;yz z11=flip(real(pixel))+real(@startseed) z12=z11+@offset z13=z11+flip(@offset) cz1=imag(pixel)+flip(imag(@startseed)) cz2=cz1+@offset cz3=cz1+flip(@offset) endif w1=w2=w3=p2 cw1=cw2=cw3=p1 endif ry1=imag(z11)*cos(pi*rotx/180)-real(cz1)*sin(pi*rotx/180) ry2=imag(z12)*cos(pi*rotx/180)-real(cz2)*sin(pi*rotx/180) ry3=imag(z13)*cos(pi*rotx/180)-real(cz3)*sin(pi*rotx/180) rz1=imag(z11)*sin(pi*rotx/180)+real(cz1)*cos(pi*rotx/180) rz2=imag(z12)*sin(pi*rotx/180)+real(cz2)*cos(pi*rotx/180) rz3=imag(z13)*sin(pi*rotx/180)+real(cz3)*cos(pi*rotx/180) z11=real(z11)+ry1*1i z12=real(z12)+ry2*1i z13=real(z13)+ry3*1i cz1=rz1+imag(cz1)*1i cz2=rz2+imag(cz2)*1i cz3=rz3+imag(cz3)*1i rx1=real(cz1)*sin(pi*roty/180)+real(z11)*cos(pi*roty/180) rx2=real(cz2)*sin(pi*roty/180)+real(z12)*cos(pi*roty/180) rx3=real(cz3)*sin(pi*roty/180)+real(z13)*cos(pi*roty/180) rz1=real(cz1)*cos(pi*roty/180)-real(z11)*sin(pi*roty/180) rz2=real(cz2)*cos(pi*roty/180)-real(z12)*sin(pi*roty/180) rz3=real(cz3)*cos(pi*roty/180)-real(z13)*sin(pi*roty/180) z11=rx1+imag(z11)*1i z12=rx2+imag(z12)*1i z13=rx3+imag(z13)*1i cz1=rz1+imag(cz1)*1i cz2=rz2+imag(cz2)*1i cz3=rz3+imag(cz3)*1i ry1=real(z11)*cos(pi*rotz/180)-imag(cz1)*sin(pi*rotz/180) ry2=real(z12)*cos(pi*rotz/180)-imag(cz2)*sin(pi*rotz/180) ry3=real(z13)*cos(pi*rotz/180)-imag(cz3)*sin(pi*rotz/180) rw1=real(z11)*sin(pi*rotz/180)+imag(cz1)*cos(pi*rotz/180) rw2=real(z12)*sin(pi*rotz/180)+imag(cz2)*cos(pi*rotz/180) rw3=real(z13)*sin(pi*rotz/180)+imag(cz3)*cos(pi*rotz/180) z11=ry1+imag(z11)*1i z12=ry2+imag(z12)*1i z13=ry3+imag(z13)*1i cz1=real(cz1)+rw1*1i cz2=real(cz2)+rw2*1i cz3=real(cz3)+rw3*1i rx1=imag(cz1)*sin(pi*rotw/180)+imag(z11)*cos(pi*rotw/180) rx2=imag(cz2)*sin(pi*rotw/180)+imag(z12)*cos(pi*rotw/180) rx3=imag(cz3)*sin(pi*rotw/180)+imag(z13)*cos(pi*rotw/180) rw1=imag(cz1)*cos(pi*rotw/180)-imag(z11)*sin(pi*rotw/180) rw2=imag(cz2)*cos(pi*rotw/180)-imag(z12)*sin(pi*rotw/180) rw3=imag(cz3)*cos(pi*rotw/180)-imag(z13)*sin(pi*rotw/180) z11=real(z11)+rx1*1i z12=real(z12)+rx2*1i z13=real(z13)+rx3*1i cz1=real(cz1)+rw1*1i cz2=real(cz2)+rw2*1i cz3=real(cz3)+rw3*1i ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 int modby=@seq+2 int iter=0 Loop: int method=iter % modby a1=real(z11)-imag(w1)+flip(imag(z11)+real(w1)) a2=real(z12)-imag(w2)+flip(imag(z12)+real(w2)) a3=real(z13)-imag(w3)+flip(imag(z13)+real(w3)) b1=real(z11)+imag(w1)+flip(imag(z11)-real(w1)) b2=real(z12)+imag(w2)+flip(imag(z12)-real(w2)) b3=real(z13)+imag(w3)+flip(imag(z13)-real(w3)) czr1=real(cz1) czr2=real(cz2) czr3=real(cz3) czi1=imag(cz1) czi2=imag(cz2) czi3=imag(cz3) cwr1=real(cw1) cwr2=real(cw2) cwr3=real(cw3) cwi1=imag(cw1) cwi2=imag(cw2) cwi3=imag(cw3) ca1=czr1-cwi1+flip(czi1+cwr1) ca2=czr2-cwi2+flip(czi2+cwr2) ca3=czr3-cwi3+flip(czi3+cwr3) cb1=czr1+cwi1+flip(czi1-cwr1) cb2=czr2+cwi2+flip(czi2-cwr2) cb3=czr3+cwi3+flip(czi3-cwr3) if (method==0) ac1=@fn5(ca1+@p7)*@p9 ac2=@fn5(ca2+@p7)*@p9 ac3=@fn5(ca3+@p7)*@p9 bc1=@fn5(cb1+@p7)*@p9 bc2=@fn5(cb2+@p7)*@p9 bc3=@fn5(cb3+@p7)*@p9 elseif (method==1) ac1=@fn6(ca1+@p8)*@p10 ac2=@fn6(ca2+@p8)*@p10 ac3=@fn6(ca3+@p8)*@p10 bc1=@fn6(cb1+@p8)*@p10 bc2=@fn6(cb2+@p8)*@p10 bc3=@fn6(cb3+@p8)*@p10 endif if (@selectmagnet==0) c11num=fn1(a1)^p3+@fn7(ac1)-1 c12num=fn1(a2)^p3+@fn7(ac2)-1 c13num=fn1(a3)^p3+@fn7(ac3)-1 c21num=fn1(b1)^p3+@fn7(bc1)-1 c22num=fn1(b2)^p3+@fn7(bc2)-1 c23num=fn1(b3)^p3+@fn7(bc3)-1 c11den=fn2(p3*a1)+@fn7(ac1)-2 c12den=fn2(p3*a2)+@fn7(ac2)-2 c13den=fn2(p3*a3)+@fn7(ac3)-2 c21den=fn2(p3*b1)+@fn7(bc1)-2 c22den=fn2(p3*b2)+@fn7(bc2)-2 c23den=fn2(p3*b3)+@fn7(bc3)-2 elseif (@selectmagnet==1) c11num=fn1(a1)^@p11+@p11*(@fn7(ac1)-1)*fn1(a1)+(@fn7(ac1)-1)*(@fn7(ac1)-2) c12num=fn1(a2)^@p11+@p11*(@fn7(ac2)-1)*fn1(a2)+(@fn7(ac2)-1)*(@fn7(ac2)-2) c13num=fn1(a3)^@p11+@p11*(@fn7(ac3)-1)*fn1(a3)+(@fn7(ac3)-1)*(@fn7(ac3)-2) c21num=fn1(b1)^@p11+@p11*(@fn7(bc1)-1)*fn1(b1)+(@fn7(bc1)-1)*(@fn7(bc1)-2) c22num=fn1(b2)^@p11+@p11*(@fn7(bc2)-1)*fn1(b2)+(@fn7(bc2)-1)*(@fn7(bc2)-2) c23num=fn1(b3)^@p11+@p11*(@fn7(bc3)-1)*fn1(b3)+(@fn7(bc3)-1)*(@fn7(bc3)-2) c11den=fn2(@p11*(a1^2))+@p11*(@fn7(ac1)-2)*fn2(a1)+(@fn7(ac1)-1)*(@fn7(ac1)-2)+1 c12den=fn2(@p11*(a2^2))+@p11*(@fn7(ac2)-2)*fn2(a2)+(@fn7(ac2)-1)*(@fn7(ac2)-2)+1 c13den=fn2(@p11*(a3^2))+@p11*(@fn7(ac3)-2)*fn2(a3)+(@fn7(ac3)-1)*(@fn7(ac3)-2)+1 c21den=fn2(@p11*(b1^2))+@p11*(@fn7(bc1)-2)*fn2(b1)+(@fn7(bc1)-1)*(@fn7(bc1)-2)+1 c22den=fn2(@p11*(b2^2))+@p11*(@fn7(bc2)-2)*fn2(b2)+(@fn7(bc2)-1)*(@fn7(bc2)-2)+1 c23den=fn2(@p11*(b3^2))+@p11*(@fn7(bc3)-2)*fn2(b3)+(@fn7(bc3)-1)*(@fn7(bc3)-2)+1 endif c11=sqr(c11num/c11den) c12=sqr(c12num/c12den) c13=sqr(c13num/c13den) c21=sqr(c21num/c21den) c22=sqr(c22num/c22den) c23=sqr(c23num/c23den) c11=c11+fn4(ac1^p5)*p6 c12=c12+fn4(ac2^p5)*p6 c13=c13+fn4(ac3^p5)*p6 c21=c21+fn4(bc1^p5)*p6 c22=c22+fn4(bc2^p5)*p6 c23=c23+fn4(bc3^p5)*p6 c1=fn3(c11)^p4 c2=fn3(c12)^p4 c3=fn3(c13)^p4 f1=fn3(c21)^p4 f2=fn3(c22)^p4 f3=fn3(c23)^p4 z11=(real(c1)+real(f1)+flip(imag(f1)+imag(c1)))/2 z12=(real(c2)+real(f2)+flip(imag(f2)+imag(c2)))/2 z13=(real(c3)+real(f3)+flip(imag(f3)+imag(c3)))/2 w1=(imag(c1)-imag(f1)+flip(real(f1)-real(c1)))/2 w2=(imag(c2)-imag(f2)+flip(real(f2)-real(c2)))/2 w3=(imag(c3)-imag(f3)+flip(real(f3)-real(c3)))/2 z1=z11 z2=z12 z3=z13 iter=iter+1 if (@slope == true) ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if ( |z1|+|w1|>@bailout || |(z1+w1)-1|<@bailout1 || \ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif else z = z1 endif if ( |z1|+|w1|>@bailout || |(z1+w1)-1|<@bailout1 ) ; we're done done = 0 endif Bailout: done > 0 Default: title="SlopeHyperMagnet" magn=0.5 method=multipass periodicity=0 maxiter=500 Heading caption="Mandelbrot Mode" visible=(@mode=="Mandelbrot") Endheading Heading caption="Julia Mode" visible=(@mode=="Julia") Endheading param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 visible=false endparam param switchmode caption="Switch to..." enum="Mandelbrot""Julia" default=1 visible=false endparam param bailout caption="Bailout 1" default=1.0e24 min=0.0 endparam param bailout1 caption="Bailout 2" default=1.0e-24 min=0.0 endparam param @startseed caption="Init Z\Seed Value" default=(0.0,0.0) endparam Heading caption="Planes and Rotations" Endheading param plane caption="Select Plane" enum="xy""xw""xz""yw""yz" default=0 endparam param rotx caption="Rotation x" default=0.0 endparam param roty caption="Rotation y" default=0.0 endparam param rotw caption="Rotation w" default=0.0 endparam param rotz caption="Rotation z" default=0.0 endparam Heading caption="Slope Parameters" visible=@slope==true Endheading bool param slope caption="Apply slope?" default=true endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6)&&(@slope==true) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84)&&(@slope==true) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82)&&(@slope==true) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81)&&(@slope==true) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84)&&(@slope==true) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58)&&(@slope==true) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75)&&(@slope==true) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Heading caption="Sequence on C" Endheading param seq caption="Sequence Lenght" enum="1""2" default=0 endparam param p7 caption="Factor 1 Seq" default=(1.0,0.0) hint="Additive factor" endparam param p8 caption="Factor 2 Seq" default=(1.0,0.0) hint="Additive factor" endparam param p9 caption="Factor 3 Seq" default=(1.0,0.0) hint="Multiply factor" endparam param p10 caption="Factor 4 Seq" default=(1.0,0.0) hint="Multiply factor" endparam Heading caption="Formula Parameters" Endheading param selectmagnet caption="Select Magnet" enum="Magnet 1""Magnet 2" default=0 endparam param p1 caption="Param. Hyper" default=(0.0,0.0) hint="This is the hyper param w=cw=p1(dimensional) in the init section" endparam param p3 caption="Param. Magnet" default=(2.0,0.0) hint="This param. influences the numerator and denominator \ correspondingly in way exponential and multiplicative." visible=(@selectmagnet==0) endparam param p11 caption="Param. Magnet" default=(3.0,0.0) hint="This param. influences the numerator and denominator \ correspondingly in way exponential and multiplicative." visible=(@selectmagnet==1) endparam param p6 caption="Mult. for C Add." default=(0.0,0.0) hint="This parameter is a multiplicator for a variable C \ added to the general equation of a magnet(sqr(num/den)+C)" endparam param p5 caption="Exp C Add." default=(1.0,0.0) enabled=(@p6!=0.0) hint="This is the exponent of the C variable added" endparam param p4 caption="Exp. Global" default=(1.0,0.0) hint="This is the global exponent of the final equation resulting in \ this magnet" endparam param p2 caption="Julia Dimension" default=(0.0,0.0) hint="This is the 4th dimension julia hypercomplex" endparam param version caption="Version" default=1.2 visible=false endparam Heading caption="Functions" Endheading func fn5 caption="Function 1 Sequence" default=ident() endfunc func fn6 caption="Function 2 Sequence" default=ident() endfunc func fn1 caption="Func. Numerator" default=ident() hint="Function general Z of the numerator" endfunc func fn2 caption="Func. Denominator" default=ident() hint="Function general Z of the denominator" endfunc func fn7 caption="Function C" default=ident() hint="Function general C of the standard magnet set" endfunc func fn4 caption="Function C Add." default=ident() enabled=(@p6!=0.0) hint="Funcion applied to the C variable added" endfunc func fn3 caption="Function Global" default=ident() hint="Global function of the equation resulting" endfunc Switch: type="as-SlopeHyperMagnet" startseed=pixel bailout=@bailout bailout1=@bailout1 method=@method selectmagnet=@selectmagnet seq=@seq plane=@plane rotx=@rotx roty=@roty rotw=@rotw rotz=@rotz p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 p8=@p8 p9=@p9 p10=@p10 p11=@p11 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 mode=@switchmode switchmode=@mode version=@version slope=@slope offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp } As-SlopeHyperMan { ;Slope Version of the As-HyperMan.ufm ;Use "Lighting" colors of Damien or 3D-Texturizer colors of Ron, ;most of others colors can be used. ;Andrea Spinozzi(March2005) Init: z1 = (0.0,0.0) z2 = (0.0,0.0) z3 = (0.0,0.0) h1 = (0.0,1.0) h2 = (0.0,1.0) h3 = (0.0,1.0) a1 = (0.0,0.0) a2 = (0.0,0.0) a3 = (0.0,0.0) b1 = (0.0,0.0) b2 = (0.0,0.0) b3 = (0.0,0.0) c1 = pixel c2 = pixel+@offset c3 = pixel+flip(@offset) ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 if (@mode=="Julia") z1 = pixel z2 = z1+@offset z3 = z1+flip(@offset) a1 = z1 a2 = z2 a3 = z3 b1 = z1 b2 = z2 b3 = z3 c1 = @seed c2 = @seed c3 = @seed endif Loop: if (@op==0) a1 = a1^p4+c1+p1*h1 a2 = a2^p4+c2+p1*h2 a3 = a3^p4+c3+p1*h3 b1 = b1^p4+c1-p1*h1 b2 = b2^p4+c2-p1*h2 b3 = b3^p4+c3-p1*h3 elseif (@op==1) a1 = (a1^p4+c1+p1*h1)+a1 a2 = (a2^p4+c2+p1*h2)+a2 a3 = (a3^p4+c3+p1*h3)+a3 b1 = (b1^p4+c1-p1*h1) b2 = (b2^p4+c2-p1*h2) b3 = (b3^p4+c3-p1*h3) elseif (@op==2) a1 = (a1^p4+c1+p1*h1)-a1 a2 = (a2^p4+c2+p1*h2)-a2 a3 = (a3^p4+c3+p1*h3)-a3 b1 = (b1^p4+c1-p1*h1) b2 = (b2^p4+c2-p1*h2) b3 = (b3^p4+c3-p1*h3) elseif (@op==3) a1 = (a1^p4+c1+p1*h1)+b1 a2 = (a2^p4+c2+p1*h2)+b2 a3 = (a3^p4+c3+p1*h3)+b3 b1 = (b1^p4+c1-p1*h1) b2 = (b2^p4+c2-p1*h2) b3 = (b3^p4+c3-p1*h3) elseif (@op==4) a1 = (a1^p4+c1+p1*h1)-b1 a2 = (a2^p4+c2+p1*h2)-b2 a3 = (a3^p4+c3+p1*h3)-b3 b1 = (b1^p4+c1-p1*h1) b2 = (b2^p4+c2-p1*h2) b3 = (b3^p4+c3-p1*h3) elseif (@op==5) a1 = (a1^p4+c1+p1*h1) a2 = (a2^p4+c2+p1*h2) a3 = (a3^p4+c3+p1*h3) b1 = (b1^p4+c1-p1*h1)+a1 b2 = (b2^p4+c2-p1*h2)+a2 b3 = (b3^p4+c3-p1*h3)+a3 elseif (@op==6) a1 = (a1^p4+c1+p1*h1) a2 = (a2^p4+c2+p1*h2) a3 = (a3^p4+c3+p1*h3) b1 = (b1^p4+c1-p1*h1)-a1 b2 = (b2^p4+c2-p1*h2)-a2 b3 = (b3^p4+c3-p1*h3)-a3 elseif (@op==7) a1 = (a1^p4+c1+p1*h1)+a1 a2 = (a2^p4+c2+p1*h2)+a2 a3 = (a3^p4+c3+p1*h3)+a3 b1 = (b1^p4+c1-p1*h1)+b1 b2 = (b2^p4+c2-p1*h2)+b2 b3 = (b3^p4+c3-p1*h3)+b3 elseif (@op==8) a1 = (a1^p4+c1+p1*h1)-a1 a2 = (a2^p4+c2+p1*h2)-a2 a3 = (a3^p4+c3+p1*h3)-a3 b1 = (b1^p4+c1-p1*h1)+b1 b2 = (b2^p4+c2-p1*h2)+b2 b3 = (b3^p4+c3-p1*h3)+b3 elseif (@op==9) a1 = (a1^p4+c1+p1*h1)+b1 a2 = (a2^p4+c2+p1*h2)+b2 a3 = (a3^p4+c3+p1*h3)+b3 b1 = (b1^p4+c1-p1*h1)+a1 b2 = (b2^p4+c2-p1*h2)+a2 b3 = (b3^p4+c3-p1*h3)+a3 elseif (@op==10) a1 = (a1^p4+c1+p1*h1)-b1 a2 = (a2^p4+c2+p1*h2)-b2 a3 = (a3^p4+c3+p1*h3)-b3 b1 = (b1^p4+c1-p1*h1)+a1 b2 = (b2^p4+c2-p1*h2)+a2 b3 = (b3^p4+c3-p1*h3)+a3 elseif (@op==11) a1 = (a1^p4+c1+p1*h1)-b1 a2 = (a2^p4+c2+p1*h2)-b2 a3 = (a3^p4+c3+p1*h3)-b3 b1 = (b1^p4+c1-p1*h1)-a1 b2 = (b2^p4+c2-p1*h2)-a2 b3 = (b3^p4+c3-p1*h3)-a3 elseif (@op==12) a1 = (a1^p4+c1+p1*h1)+b1 a2 = (a2^p4+c2+p1*h2)+b2 a3 = (a3^p4+c3+p1*h3)+b3 b1 = (b1^p4+c1-p1*h1)-a1 b2 = (b2^p4+c2-p1*h2)-a2 b3 = (b3^p4+c3-p1*h3)-a3 endif a1 = fn1(a1+p2) a2 = fn1(a2+p2) a3 = fn1(a3+p2) b1 = fn2(b1-p2) b2 = fn2(b2-p2) b3 = fn2(b3-p2) c1 = fn3(c1+p3) c2 = fn3(c2+p3) c3 = fn3(c3+p3) if (@flavor==0) z1=(fn4(a1)+@fn5(b1))/p5 z2=(fn4(a2)+@fn5(b2))/p5 z3=(fn4(a3)+@fn5(b3))/p5 elseif (@flavor==1) z1=(fn4(a1)-@fn5(b1))/p5 z2=(fn4(a2)-@fn5(b2))/p5 z3=(fn4(a3)-@fn5(b3))/p5 endif if (@slope == true) ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if (@bailout < |a1|+|b1| || \ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z=z1; use primary iteration value to keep periodicity working endif else z=z1 endif if ( @bailout < |a1|+|b1| ) ; we're done done = 0 endif Bailout: done > 0 Default: title="SlopeHyperMan" periodicity=0 method=multipass maxiter=1000 param bailout caption="Bailout Value" default=128.0 min=0.0 endparam Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="Current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param flavor caption="Flavor" enum="(Fn(a)+Fn(b))/p""(Fn(a)-Fn(b))/p" default=0 endparam func fn4 caption="Function Flavor(a)" default=ident() endfunc func fn5 caption="Function Flavor(b)" default=ident() endfunc param p5 caption="Parameter Flavor" default=(2.0,0.0) endparam Heading caption="Slope Parameters" visible=@slope==true Endheading bool param slope caption="Apply slope?" default=true endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6)&&(@slope==true) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84)&&(@slope==true) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82)&&(@slope==true) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81)&&(@slope==true) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84)&&(@slope==true) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58)&&(@slope==true) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75)&&(@slope==true) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Heading caption="Operator and Parameters" Endheading param @seed caption="Seed Value" default=(0.0,0.0) visible=(@mode=="Julia") endparam param op caption="Operator" enum="1""2""3""4""5""6""7""8""9""10""11""12""13" default=0 endparam param p1 caption="Parameter 1" default=(0.0,0.0) endparam param p2 caption="Parameter 2" default=(0.0,0.0) endparam param p3 caption="Parameter 3" default=(0.0,0.0) endparam param p4 caption="Exponent" default=(2.0,0.0) endparam param version caption="Version" default=1.0 visible=false endparam Heading caption="Functions" Endheading func fn1 caption="Function a" default=ident() endfunc func fn2 caption="Function b" default=ident() endfunc func fn3 caption="Function c" default=ident() endfunc Switch: type="As-SlopeHyperMan" seed=pixel bailout=@bailout flavor=@flavor op=@op p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 mode=@switchmode switchmode=@mode slope=@slope offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp version=@version } as-SlopeHyperMetabrot { ;The formula rapresents a personal look of the formula Metabrot of Russell Walsmith. ;Planes variant implemented from "Julibrot" of Gilles Nadeau. ;Based upon the slope (Mandelbrot) formulae of Damien Jones, ;compound with the models of slope formulae of Ron Barnett. ;Verions(1.1), optimized the hyper parameter p1 in the Mandelbrot Mode. ;Andrea Spinozzi(June2005) Init: z1=z2=z3=0.0 z11=z12=z13=cz1=cz2=cz3=0.0 w1=w2=w3=cw1=cw2=cw3=0.0 a1=a2=a3=ca1=ca2=ca3=0.0 b1=b2=b3=cb1=cb2=cb3=0.0 c11=c12=c13=c21=c22=c23=0.0 pm=pm1=0.0 ;Mandelbrot Mode if (@mode=="Mandelbrot") if (@version<1.1) w1=w2=w3=cw1=cw2=cw3=real(p1)+flip(imag(p1)) else w1=w2=w3=0.0 cw1=cw2=cw3=real(p1)+flip(imag(p1)) endif if (@swmethod==0) if (@varplane==0); xy z11=real(@start)+flip(imag(@start)) z12=z11 z13=z11 cz1=real(pixel)+flip(imag(pixel)) cz2=cz1+@offset cz3=cz1+flip(@offset) pm=real(p4)+flip(imag(p4)) elseif (@varplane==1); xw z11=real(pixel)+flip(real(@start)) z12=z11+@offset z13=z11+flip(@offset) cz1=flip(imag(pixel))+imag(@start) cz2=cz1+@offset cz3=cz1+flip(@offset) pm=real(p4)+flip(imag(p4)) elseif (@varplane==2); xz z11=real(pixel)+flip(real(@start)) z12=z11+@offset z13=z11+flip(@offset) cz1=imag(pixel)+flip(imag(@start)) cz2=cz1+@offset cz3=cz1+flip(@offset) pm=real(p4)+flip(imag(p4)) elseif (@varplane==3); yw z11=flip(real(pixel))+real(@start) z12=z11+@offset z13=z11+flip(@offset) cz1=flip(imag(pixel))+imag(@start) cz2=cz1+@offset cz3=cz1+flip(@offset) pm=real(p4)+flip(imag(p4)) elseif (@varplane==4); yz z11=flip(real(pixel))+real(@start) z12=z11+@offset z13=z11+flip(@offset) cz1=imag(pixel)+flip(imag(@start)) cz2=cz1+@offset cz3=cz1+flip(@offset) pm=real(p4)+flip(imag(p4)) endif elseif (@swmethod==1) if (@varplane==0); xy z11=real(@start)+flip(imag(@start)) z12=z11 z13=z11 cz1=real(pixel)+flip(imag(pixel)) cz2=cz1+@offset cz3=cz1+flip(@offset) pm1=real(@p8)+flip(imag(@p8)) elseif (@varplane==1); xw z11=real(pixel)+flip(real(@start)) z12=z11+@offset z13=z11+flip(@offset) cz1=flip(imag(pixel))+imag(@start) cz2=cz1+@offset cz3=cz1+flip(@offset) pm1=real(@p8)+flip(imag(@p8)) elseif (@varplane==2); xz z11=real(pixel)+flip(real(@start)) z12=z11+@offset z13=z11+flip(@offset) cz1=imag(pixel)+flip(imag(@start)) cz2=cz1+@offset cz3=cz1+flip(@offset) pm1=real(@p8)+flip(imag(@p8)) elseif (@varplane==3); yw z11=flip(real(pixel))+real(@start) z12=z11+@offset z13=z11+flip(@offset) cz1=flip(imag(pixel))+imag(@start) cz2=cz1+@offset cz3=cz1+flip(@offset) pm1=real(@p8)+flip(imag(@p8)) elseif (@varplane==4); yz z11=flip(real(pixel))+real(@start) z12=z11+@offset z13=z11+flip(@offset) cz1=imag(pixel)+flip(imag(@start)) cz2=cz1+@offset cz3=cz1+flip(@offset) pm1=real(@p8)+flip(imag(@p8)) endif endif endif ;Julia Mode if (@mode=="Julia") if (@swmethod==0) if (@varplane==0); xy z11=real(pixel)+flip(imag(pixel)) z12=z11+@offset z13=z11+flip(@offset) cz1=real(@seed)+flip(imag(@seed)) cz2=cz1 cz3=cz1 w1=w2=w3=real(p2)+flip(imag(p2)) cw1=cw2=cw3=real(p1)+flip(imag(p1)) pm=real(p4)+flip(imag(p4)) elseif (@varplane==1); xw z11=real(pixel)+flip(real(@seed)) z12=z11+@offset z13=z11+flip(@offset) cz1=flip(imag(pixel))+imag(@seed) cz2=cz1+@offset cz3=cz1+flip(@offset) w1=w2=w3=real(p2)+flip(imag(p2)) cw1=cw2=cw3=real(p1)+flip(imag(p1)) pm=real(p4)+flip(imag(p4)) elseif (@varplane==2); xz z11=real(pixel)+flip(real(@seed)) z12=z11+@offset z13=z11+flip(@offset) cz1=imag(pixel)+flip(imag(@seed)) cz2=cz1+@offset cz3=cz1+flip(@offset) w1=w2=w3=real(p2)+flip(imag(p2)) cw1=cw2=cw3=real(p1)+flip(imag(p1)) pm=real(p4)+flip(imag(p4)) elseif (@varplane==3); yw z11=flip(real(pixel))+real(@seed) z12=z11+@offset z13=z11+flip(@offset) cz1=flip(imag(pixel))+imag(@seed) cz2=cz1+@offset cz3=cz1+flip(@offset) w1=w2=w3=real(p2)+flip(imag(p2)) cw1=cw2=cw3=real(p1)+flip(imag(p1)) pm=real(p4)+flip(imag(p4)) elseif (@varplane==4); yz z11=flip(real(pixel))+real(@seed) z12=z11+@offset z13=z11+flip(@offset) cz1=imag(pixel)+flip(imag(@seed)) cz2=cz1+@offset cz3=cz1+flip(@offset) w1=w2=w3=real(p2)+flip(imag(p2)) cw1=cw2=cw3=real(p1)+flip(imag(p1)) pm=real(p4)+flip(imag(p4)) endif elseif (@swmethod==1) if (@varplane==0); xy z11=real(@start)+flip(imag(@start)) z12=z11 z13=z11 cz1=real(pixel)+flip(imag(pixel)) cz2=cz1+@offset cz3=cz1+flip(@offset) w1=w2=w3=real(p2)+flip(imag(p2)) cw1=cw2=cw3=real(p1)+flip(imag(p1)) pm1=real(@p8)+flip(imag(@p8)) elseif (@varplane==1); xw z11=real(pixel)+flip(real(@start)) z12=z11+@offset z13=z11+flip(@offset) cz1=flip(imag(pixel))+imag(@start) cz2=cz1+@offset cz3=cz1+flip(@offset) w1=w2=w3=real(p2)+flip(imag(p2)) cw1=cw2=cw3=real(p1)+flip(imag(p1)) pm1=real(@p8)+flip(imag(@p8)) elseif (@varplane==2); xz z11=real(pixel)+flip(real(@start)) z12=z11+@offset z13=z11+flip(@offset) cz1=imag(pixel)+flip(imag(@start)) cz2=cz1+@offset cz3=cz1+flip(@offset) w1=w2=w3=real(p2)+flip(imag(p2)) cw1=cw2=cw3=real(p1)+flip(imag(p1)) pm1=real(@p8)+flip(imag(@p8)) elseif (@varplane==3); yw z11=flip(real(pixel))+real(@start) z12=z11+@offset z13=z11+flip(@offset) cz1=flip(imag(pixel))+imag(@start) cz2=cz1+@offset cz3=cz1+flip(@offset) w1=w2=w3=real(p2)+flip(imag(p2)) cw1=cw2=cw3=real(p1)+flip(imag(p1)) pm1=real(@p8)+flip(imag(@p8)) elseif (@varplane==4); yz z11=flip(real(pixel))+real(@start) z12=z11+@offset z13=z11+flip(@offset) cz1=imag(pixel)+flip(imag(@start)) cz2=cz1+@offset cz3=cz1+flip(@offset) w1=w2=w3=real(p2)+flip(imag(p2)) cw1=cw2=cw3=real(p1)+flip(imag(p1)) pm1=real(@p8)+flip(imag(@p8)) endif endif endif ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 Loop: a1=real(z11)-imag(w1)+flip(imag(z11)+real(w1)) a2=real(z12)-imag(w2)+flip(imag(z12)+real(w2)) a3=real(z13)-imag(w3)+flip(imag(z13)+real(w3)) b1=real(z11)+imag(w1)+flip(imag(z11)-real(w1)) b2=real(z12)+imag(w2)+flip(imag(z12)-real(w2)) b3=real(z13)+imag(w3)+flip(imag(z13)-real(w3)) czr1=real(cz1) czr2=real(cz2) czr3=real(cz3) czi1=imag(cz1) czi2=imag(cz2) czi3=imag(cz3) cwr1=real(cw1) cwr2=real(cw2) cwr3=real(cw3) cwi1=imag(cw1) cwi2=imag(cw2) cwi3=imag(cw3) ca1=czr1-cwi1+flip(czi1+cwr1) ca2=czr2-cwi2+flip(czi2+cwr2) ca3=czr3-cwi3+flip(czi3+cwr3) cb1=czr1+cwi1+flip(czi1-cwr1) cb2=czr2+cwi2+flip(czi2-cwr2) cb3=czr3+cwi3+flip(czi3-cwr3) a1=a1+ca1*@p7 a2=a2+ca2*@p7 a3=a3+ca3*@p7 b1=b1+cb1*@p7 b2=b2+cb2*@p7 b3=b3+cb3*@p7 if (@swmethod==0) c11=(fn1(a1^p6)+pm*ca1^2+real(p5))+ca1 c12=(fn1(a2^p6)+pm*ca2^2+real(p5))+ca2 c13=(fn1(a3^p6)+pm*ca3^2+real(p5))+ca3 c21=(fn1(b1^p6)+pm*cb1^2-imag(p5))+cb1 c22=(fn1(b2^p6)+pm*cb2^2-imag(p5))+cb2 c23=(fn1(b3^p6)+pm*cb3^2-imag(p5))+cb3 elseif (@swmethod==1) c11=fn1(a1^p6)+(pm1*ca1^2+real(p5))+ca1 c12=fn1(a2^p6)+(pm1*ca2^2+real(p5))+ca2 c13=fn1(a3^p6)+(pm1*ca3^2+real(p5))+ca3 c21=fn1(b1^p6)+(pm1*cb1^2-imag(p5))+cb1 c22=fn1(b2^p6)+(pm1*cb2^2-imag(p5))+cb2 c23=fn1(b3^p6)+(pm1*cb3^2-imag(p5))+cb3 endif if (@formula==0) ;Mandelbrot c11=c11 c12=c12 c13=c13 c21=c21 c22=c22 c23=c23 elseif (@formula==1) ;Barnsley if (real(a1)>=0) c11=(a1-@p9)*c11 c12=(a2-@p9)*c12 c13=(a3-@p9)*c13 else c11=(a1+@p9)*c11 c12=(a2+@p9)*c12 c13=(a3+@p9)*c13 endif if (real(b1)>=0) c21=(b1-@p9)*c21 c22=(b2-@p9)*c22 c23=(b3-@p9)*c23 else c21=(b1+@p9)*c21 c22=(b2+@p9)*c22 c23=(b3+@p9)*c23 endif elseif (@formula==2) ;Ikenaga c11=a1^3+a1*(c11-@p9)-c11 c12=a2^3+a2*(c12-@p9)-c12 c13=a3^3+a3*(c13-@p9)-c13 c21=b1^3+b1*(c21-@p9)-c21 c22=b2^3+b2*(c22-@p9)-c22 c23=b3^3+b3*(c23-@p9)-c23 endif c1=fn2(c11+real(p3)) c2=fn2(c12+real(p3)) c3=fn2(c13+real(p3)) f1=fn2(c21-imag(p3)) f2=fn2(c22-imag(p3)) f3=fn2(c23-imag(p3)) z11=(real(c1)+real(f1)+flip(imag(f1)+imag(c1)))/2 z12=(real(c2)+real(f2)+flip(imag(f2)+imag(c2)))/2 z13=(real(c3)+real(f3)+flip(imag(f3)+imag(c3)))/2 w1=(imag(c1)-imag(f1)+flip(real(f1)-real(c1)))/2 w2=(imag(c2)-imag(f2)+flip(real(f2)-real(c2)))/2 w3=(imag(c3)-imag(f3)+flip(real(f3)-real(c3)))/2 z11=fn3(z11) z12=fn3(z12) z13=fn3(z13) w1=fn3(w1) w2=fn3(w2) w3=fn3(w3) z1=z11 z2=z12 z3=z13 ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if (@bailout < |z1|+|w1| || \ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif if ( @bailout < |z1|+|w1| ) ; we're done done = 0 endif Bailout: done > 0 Default: title="SlopeHyperMetabrot" method=multipass periodicity=0 maxiter=500 Heading caption="Mandelbrot Mode" visible=(@mode=="Mandelbrot") Endheading Heading caption="Julia Mode" visible=(@mode=="Julia") Endheading param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 visible=false endparam param switchmode caption="Switch to..." enum="Mandelbrot""Julia" default=1 visible=false endparam param bailout caption="Bailout" default=64.0 min=0.0 endparam param @start caption="Init Z" default=(0.0,0.0) endparam param @seed caption="Seed Value" default=(0.0,0.0) visible=(@mode=="Julia")&&(@swmethod==0) endparam Heading caption="Slope Parameters" Endheading float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." endparam Heading caption="Formula Parameters" Endheading param swmethod caption="Switch Method" enum="Normal""Metabrot" default=0 endparam param formula caption="Formula" enum="Mandelbrot""Barnsley""Ikenaga" default=0 endparam param varplane caption="Plane" enum="xy""xw""xz""yw""yz" default=0 endparam param p1 caption="Parameter 1" default=(0.0,0.0) endparam param p3 caption="Parameter 2" default=(0.0,0.0) endparam param p7 caption="Parameter 3" default=(0.0,0.0) endparam param p4 caption="Parameter 4" default=(0.0,0.0) visible=(@swmethod==0) endparam param p8 caption="Parameter 4" default=(0.0,0.0) visible=(@swmethod==1) endparam param p5 caption="Parameter 5" default=(0.0,0.0) endparam param p9 caption="Parameter 6" default=(1.0,0.0) visible=(@formula!=0) endparam param p2 caption="4-Dim.Value" default=(0.0,0.0) visible=(@mode=="Julia") endparam param p6 caption="Exponent" default=(2.0,0.0) endparam param version caption="Version" default=1.1 visible=false endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc Switch: type="as-SlopeHyperMetabrot" start=@start seed=pixel bailout=@bailout swmethod=@swmethod varplane=@varplane formula=@formula p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 p8=pixel p9=@p9 fn1=@fn1 fn2=@fn2 fn3=@fn3 mode=@switchmode switchmode=@mode version=@version slope=@slope offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl pow=@pow sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp } SlopeHyperPrecogna { ;Hypercomplex SlopePrecogna, original formula of Jim Muth in the orgform collection ;under Frac_art.frm, slope version based on the formulae slope of Damien Jones and ;Ron Barnett.Planes and Rotations from lessons of Gilles Nadeau, Sequence on C from ;lessons of Susan D.C., loop modified and parameters added by me. ;Andrea Spinozzi(April2006),v==1.0 Init: z1=0.0 z2=0.0 z3=0.0 cz1=0.0 cz2=0.0 cz3=0.0 cw1=cw2=cw3=p1 w1=w2=w3=0.0 rotx=@rotx roty=@roty rotz=@rotz rotw=@rotw int iter = 0 int modby = @seq+2 if (@plane == 0) ;xy z1=real(@startseed)+flip(imag(@startseed)) z2=z1 z3=z1 cz1=real(pixel)+flip(imag(pixel)) cz2=cz1+@offset cz3=cz1+flip(@offset) elseif (@plane == 1) ;xw z1=real(pixel)+flip(real(@startseed)) z2=z1+@offset z3=z1+flip(@offset) cz1=flip(imag(pixel))+imag(@startseed) cz2=cz1+@offset cz3=cz1+flip(@offset) elseif (@plane == 2) ;xz z1=real(pixel)+flip(real(@startseed)) z2=z1+@offset z3=z1+flip(@offset) cz1=imag(pixel)+flip(imag(@startseed)) cz2=cz1+@offset cz3=cz1+flip(@offset) elseif (@plane == 3) ;yw z1=flip(real(pixel))+real(@startseed) z2=z1+@offset z3=z1+flip(@offset) cz1=flip(imag(pixel))+imag(@startseed) cz2=cz1+@offset cz3=cz1+flip(@offset) elseif (@plane == 4) ;yz z1=flip(real(pixel))+real(@startseed) z2=z1+@offset z3=z1+flip(@offset) cz1=imag(pixel)+flip(imag(@startseed)) cz2=cz1+@offset cz3=cz1+flip(@offset) endif if (@mode=="Julia") cw1=cw2=cw3=p1 w1=w2=w3=p2 if (@plane == 0) ;xy z1=real(pixel)+flip(imag(pixel)) z2=z1+@offset z3=z1+flip(@offset) cz1=real(@startseed)+flip(imag(@startseed)) cz2=cz1 cz3=cz1 elseif (@plane == 1) ;xw z1=real(pixel)-flip(real(@startseed)) z2=z1+@offset z3=z1+flip(@offset) cz1=flip(imag(pixel))-imag(@startseed) cz2=cz1+@offset cz3=cz1+flip(@offset) elseif (@plane == 2) ;xz z1=real(pixel)+flip(real(@startseed)) z2=z1+@offset z3=z1+flip(@offset) cz1=imag(pixel)+flip(imag(@startseed)) cz2=cz1+@offset cz3=cz1+flip(@offset) elseif (@plane == 3) ;yw z1=flip(real(pixel))+real(@startseed) z2=z1+@offset z3=z1+flip(@offset) cz1=flip(imag(pixel))+imag(@startseed) cz2=cz1+@offset cz3=cz1+flip(@offset) elseif (@plane == 4) ;yz z1=flip(real(pixel))+real(@startseed) z2=z1+@offset z3=z1+flip(@offset) cz1=imag(pixel)+flip(imag(@startseed)) cz2=cz1+@offset cz3=cz1+flip(@offset) endif endif pz11=pz12=pz13=0.0 pz21=pz22=pz23=0.0 ps11=ps12=ps13=0.0 ps21=ps22=ps23=0.0 appc11=appc12=appc13=0.0 appc21=appc22=appc23=0.0 ; Rotations-------------------------------------------- if (@rotate==0) ry1=imag(z1)*cos(pi*rotx/180)-real(cz1)*sin(pi*rotx/180) ry2=imag(z2)*cos(pi*rotx/180)-real(cz2)*sin(pi*rotx/180) ry3=imag(z3)*cos(pi*rotx/180)-real(cz3)*sin(pi*rotx/180) rz1=imag(z1)*sin(pi*rotx/180)+real(cz1)*cos(pi*rotx/180) rz2=imag(z2)*sin(pi*rotx/180)+real(cz2)*cos(pi*rotx/180) rz3=imag(z3)*sin(pi*rotx/180)+real(cz3)*cos(pi*rotx/180) z1=real(z1)+ry1*1i z2=real(z2)+ry2*1i z3=real(z3)+ry3*1i cz1=rz1+imag(cz1)*1i cz2=rz2+imag(cz2)*1i cz3=rz3+imag(cz3)*1i rx1=real(cz1)*sin(pi*roty/180)+real(z1)*cos(pi*roty/180) rx2=real(cz2)*sin(pi*roty/180)+real(z2)*cos(pi*roty/180) rx3=real(cz3)*sin(pi*roty/180)+real(z3)*cos(pi*roty/180) rz1=real(cz1)*cos(pi*roty/180)-real(z1)*sin(pi*roty/180) rz2=real(cz2)*cos(pi*roty/180)-real(z2)*sin(pi*roty/180) rz3=real(cz3)*cos(pi*roty/180)-real(z3)*sin(pi*roty/180) z1=rx1+imag(z1)*1i z2=rx2+imag(z2)*1i z3=rx3+imag(z3)*1i cz1=rz1+imag(cz1)*1i cz2=rz2+imag(cz2)*1i cz3=rz3+imag(cz3)*1i ry1=real(z1)*cos(pi*rotz/180)-imag(cz1)*sin(pi*rotz/180) ry2=real(z2)*cos(pi*rotz/180)-imag(cz2)*sin(pi*rotz/180) ry3=real(z3)*cos(pi*rotz/180)-imag(cz3)*sin(pi*rotz/180) rw1=real(z1)*sin(pi*rotz/180)+imag(cz1)*cos(pi*rotz/180) rw2=real(z2)*sin(pi*rotz/180)+imag(cz2)*cos(pi*rotz/180) rw3=real(z3)*sin(pi*rotz/180)+imag(cz3)*cos(pi*rotz/180) z1=ry1+imag(z1)*1i z2=ry2+imag(z2)*1i z3=ry3+imag(z3)*1i cz1=real(cz1)+rw1*1i cz2=real(cz2)+rw2*1i cz3=real(cz3)+rw3*1i rx1=imag(cz1)*sin(pi*rotw/180)+imag(z1)*cos(pi*rotw/180) rx2=imag(cz2)*sin(pi*rotw/180)+imag(z2)*cos(pi*rotw/180) rx3=imag(cz3)*sin(pi*rotw/180)+imag(z3)*cos(pi*rotw/180) rw1=imag(cz1)*cos(pi*rotw/180)-imag(z1)*sin(pi*rotw/180) rw2=imag(cz2)*cos(pi*rotw/180)-imag(z2)*sin(pi*rotw/180) rw3=imag(cz3)*cos(pi*rotw/180)-imag(z3)*sin(pi*rotw/180) z1=real(z1)+rx1*1i z2=real(z2)+rx2*1i z3=real(z3)+rx3*1i cz1=real(cz1)+rw1*1i cz2=real(cz2)+rw2*1i cz3=real(cz3)+rw3*1i elseif (@rotate==1) rx1=real(w1)*sin(pi*roty/180)+real(z1)*cos(pi*roty/180) rx2=real(w2)*sin(pi*roty/180)+real(z2)*cos(pi*roty/180) rx3=real(w3)*sin(pi*roty/180)+real(z3)*cos(pi*roty/180) rz1=real(w1)*cos(pi*roty/180)-real(z1)*sin(pi*roty/180) rz2=real(w2)*cos(pi*roty/180)-real(z2)*sin(pi*roty/180) rz3=real(w3)*cos(pi*roty/180)-real(z3)*sin(pi*roty/180) z1=rx1+imag(z1)*1i z2=rx2+imag(z2)*1i z3=rx3+imag(z3)*1i w1=rz1+imag(w1)*1i w2=rz2+imag(w2)*1i w3=rz3+imag(w3)*1i rx1=real(cw1)*sin(pi*roty/180)+real(cz1)*cos(pi*roty/180) rx2=real(cw2)*sin(pi*roty/180)+real(cz2)*cos(pi*roty/180) rx3=real(cw3)*sin(pi*roty/180)+real(cz3)*cos(pi*roty/180) rz1=real(cw1)*cos(pi*roty/180)-real(cz1)*sin(pi*roty/180) rz2=real(cw2)*cos(pi*roty/180)-real(cz2)*sin(pi*roty/180) rz3=real(cw3)*cos(pi*roty/180)-real(cz3)*sin(pi*roty/180) cz1=rx1+imag(cz1)*1i cz2=rx2+imag(cz2)*1i cz3=rx3+imag(cz3)*1i cw1=rz1+imag(cw1)*1i cw2=rz2+imag(cw2)*1i cw3=rz3+imag(cw3)*1i ry1=imag(z1)*cos(pi*rotx/180)-real(w1)*sin(pi*rotx/180) ry2=imag(z2)*cos(pi*rotx/180)-real(w2)*sin(pi*rotx/180) ry3=imag(z3)*cos(pi*rotx/180)-real(w3)*sin(pi*rotx/180) rz1=imag(z1)*sin(pi*rotx/180)+real(w1)*cos(pi*rotx/180) rz2=imag(z2)*sin(pi*rotx/180)+real(w2)*cos(pi*rotx/180) rz3=imag(z3)*sin(pi*rotx/180)+real(w3)*cos(pi*rotx/180) z1=real(z1)+ry1*1i z2=real(z2)+ry2*1i z3=real(z3)+ry3*1i w1=rz1+imag(w1)*1i w2=rz2+imag(w2)*1i w3=rz3+imag(w3)*1i ry1=imag(cz1)*cos(pi*rotx/180)-real(cw1)*sin(pi*rotx/180) ry2=imag(cz2)*cos(pi*rotx/180)-real(cw2)*sin(pi*rotx/180) ry3=imag(cz3)*cos(pi*rotx/180)-real(cw3)*sin(pi*rotx/180) rz1=imag(cz1)*sin(pi*rotx/180)+real(cw1)*cos(pi*rotx/180) rz2=imag(cz2)*sin(pi*rotx/180)+real(cw2)*cos(pi*rotx/180) rz3=imag(cz3)*sin(pi*rotx/180)+real(cw3)*cos(pi*rotx/180) cz1=real(cz1)+ry1*1i cz2=real(cz2)+ry2*1i cz3=real(cz3)+ry3*1i cw1=rz1+imag(cw1)*1i cw2=rz2+imag(cw2)*1i cw3=rz3+imag(cw3)*1i rx1=real(z1)*cos(pi*rotz/180)-imag(z1)*sin(pi*rotz/180) rx2=real(z2)*cos(pi*rotz/180)-imag(z2)*sin(pi*rotz/180) rx3=real(z3)*cos(pi*rotz/180)-imag(z3)*sin(pi*rotz/180) ry1=real(z1)*sin(pi*rotz/180)+imag(z1)*cos(pi*rotz/180) ry2=real(z2)*sin(pi*rotz/180)+imag(z2)*cos(pi*rotz/180) ry3=real(z3)*sin(pi*rotz/180)+imag(z3)*cos(pi*rotz/180) z1=rx1+ry1*1i z2=rx2+ry2*1i z3=rx3+ry3*1i rx1=real(cz1)*cos(pi*rotz/180)-imag(cz1)*sin(pi*rotz/180) rx2=real(cz2)*cos(pi*rotz/180)-imag(cz2)*sin(pi*rotz/180) rx3=real(cz3)*cos(pi*rotz/180)-imag(cz3)*sin(pi*rotz/180) ry1=real(cz1)*sin(pi*rotz/180)+imag(cz1)*cos(pi*rotz/180) ry2=real(cz2)*sin(pi*rotz/180)+imag(cz2)*cos(pi*rotz/180) ry3=real(cz3)*sin(pi*rotz/180)+imag(cz3)*cos(pi*rotz/180) cz1=rx1+ry1*1i cz2=rx2+ry2*1i cz3=rx3+ry3*1i rx1=real(w1)*cos(pi*rotw/180)-imag(w1)*sin(pi*rotw/180) rx2=real(w2)*cos(pi*rotw/180)-imag(w2)*sin(pi*rotw/180) rx3=real(w3)*cos(pi*rotw/180)-imag(w3)*sin(pi*rotw/180) ry1=real(w1)*sin(pi*rotw/180)+imag(w1)*cos(pi*rotw/180) ry2=real(w2)*sin(pi*rotw/180)+imag(w2)*cos(pi*rotw/180) ry3=real(w3)*sin(pi*rotw/180)+imag(w3)*cos(pi*rotw/180) w1=rx1+ry1*1i w2=rx2+ry2*1i w3=rx3+ry3*1i rx1=real(cw1)*cos(pi*rotw/180)-imag(cw1)*sin(pi*rotw/180) rx2=real(cw2)*cos(pi*rotw/180)-imag(cw2)*sin(pi*rotw/180) rx3=real(cw3)*cos(pi*rotw/180)-imag(cw3)*sin(pi*rotw/180) ry1=real(cw1)*sin(pi*rotw/180)+imag(cw1)*cos(pi*rotw/180) ry2=real(cw2)*sin(pi*rotw/180)+imag(cw2)*cos(pi*rotw/180) ry3=real(cw3)*sin(pi*rotw/180)+imag(cw3)*cos(pi*rotw/180) cw1=rx1+ry1*1i cw2=rx2+ry2*1i cw3=rx3+ry3*1i endif ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 Loop: int method = iter%modby a1=real(z1)-imag(w1)+flip(imag(z1)+real(w1)) a2=real(z2)-imag(w2)+flip(imag(z2)+real(w2)) a3=real(z3)-imag(w3)+flip(imag(z3)+real(w3)) b1=real(z1)+imag(w1)+flip(imag(z1)-real(w1)) b2=real(z2)+imag(w2)+flip(imag(z2)-real(w2)) b3=real(z3)+imag(w3)+flip(imag(z3)-real(w3)) ar1=real(a1) ar2=real(a2) ar3=real(a3) ai1=imag(a1) ai2=imag(a2) ai3=imag(a3) br1=real(b1) br2=real(b2) br3=real(b3) bi1=imag(b1) bi2=imag(b2) bi3=imag(b3) ca1=real(cz1)-imag(cw1)+flip(imag(cz1)+real(cw1)) ca2=real(cz2)-imag(cw2)+flip(imag(cz2)+real(cw2)) ca3=real(cz3)-imag(cw3)+flip(imag(cz3)+real(cw3)) cb1=real(cz1)+imag(cw1)+flip(imag(cz1)-real(cw1)) cb2=real(cz2)+imag(cw2)+flip(imag(cz2)-real(cw2)) cb3=real(cz3)+imag(cw3)+flip(imag(cz3)-real(cw3)) car1=real(ca1) car2=real(ca2) car3=real(ca3) cai1=imag(ca1) cai2=imag(ca2) cai3=imag(ca3) cbr1=real(cb1) cbr2=real(cb2) cbr3=real(cb3) cbi1=imag(cb1) cbi2=imag(cb2) cbi3=imag(cb3) c11=fn2(car1+flip(cai1))*p4 c12=fn2(car2+flip(cai2))*p4 c13=fn2(car3+flip(cai3))*p4 c21=fn2(cbr1+flip(cbi1))*p4 c22=fn2(cbr2+flip(cbi2))*p4 c23=fn2(cbr3+flip(cbi3))*p4 if (method==0) appc11 = @fn5(@p9*c11) appc12 = @fn5(@p9*c12) appc13 = @fn5(@p9*c13) appc21 = @fn5(@p9*c21) appc22 = @fn5(@p9*c22) appc23 = @fn5(@p9*c23) elseif (method==1) appc11 = @fn6(@p10*c11) appc12 = @fn6(@p10*c12) appc13 = @fn6(@p10*c13) appc21 = @fn6(@p10*c21) appc22 = @fn6(@p10*c22) appc23 = @fn6(@p10*c23) elseif (method==2) appc11 = @fn7(@p11*c11) appc12 = @fn7(@p11*c12) appc13 = @fn7(@p11*c13) appc21 = @fn7(@p11*c21) appc22 = @fn7(@p11*c22) appc23 = @fn7(@p11*c23) endif u11=fn1(ar1+flip(ai1)) u12=fn1(ar2+flip(ai2)) u13=fn1(ar3+flip(ai3)) u21=fn1(br1+flip(bi1)) u22=fn1(br2+flip(bi2)) u23=fn1(br3+flip(bi3)) x1=sqr(pz11)*pz11 + sqr(ps11)*ps11 + u11^@p8 + appc11 x2=sqr(pz12)*pz12 + sqr(ps12)*ps12 + u12^@p8 + appc12 x3=sqr(pz13)*pz13 + sqr(ps13)*ps13 + u13^@p8 + appc13 y1=sqr(pz21)*pz21 + sqr(ps21)*ps21 + u21^@p8 + appc21 y2=sqr(pz22)*pz22 + sqr(ps22)*ps22 + u22^@p8 + appc22 y3=sqr(pz23)*pz23 + sqr(ps23)*ps23 + u23^@p8 + appc23 pz11=fn3(a1)+p3 pz12=fn3(a2)+p3 pz13=fn3(a3)+p3 pz21=fn3(b1)+p3 pz22=fn3(b2)+p3 pz23=fn3(b3)+p3 ps11=a1*p6+appc11*@p7 ps12=a2*p6+appc12*@p7 ps13=a3*p6+appc13*@p7 ps21=b1*p6+appc21*@p7 ps22=b2*p6+appc22*@p7 ps23=b3*p6+appc23*@p7 a1=fn4(x1)*p5 a2=fn4(x2)*p5 a3=fn4(x3)*p5 b1=fn4(y1)*p5 b2=fn4(y2)*p5 b3=fn4(y3)*p5 c1=a1 c2=a2 c3=a3 da1=b1 da2=b2 da3=b3 z1=(real(c1)+real(da1)+flip(imag(da1)+imag(c1)))/2 z2=(real(c2)+real(da2)+flip(imag(da2)+imag(c2)))/2 z3=(real(c3)+real(da3)+flip(imag(da3)+imag(c3)))/2 w1=(imag(c1)-imag(da1)+flip(real(da1)-real(c1)))/2 w2=(imag(c2)-imag(da2)+flip(real(da2)-real(c2)))/2 w3=(imag(c3)-imag(da3)+flip(real(da3)-real(c3)))/2 iter = iter+1 if (@slope == true) ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if (@bailout < |z1|+|w1| || \ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif else z = z1 endif if ( @bailout < |z1|+|w1| ) ; we're done done = 0 endif Bailout: done>0 Default: Title="SlopeHyperPrecogna" method=Multipass periodicity=0 maxiter=250 param mode caption="Mode" enum="Mandelbrot""Julia" default=0 visible=false endparam param switchmode caption="Mode" enum="Mandelbrot""Julia" default=1 visible=false endparam Heading caption="Mandelbrot Mode" visible=(@mode=="Mandelbrot") Endheading Heading caption="Julia Mode" visible=(@mode=="Julia") Endheading param bailout caption="Bailout" default=64.0 min=0.0 endparam param startseed caption="Start Z\Seed Value" default=(0.0,0.0) endparam Heading caption="Planes and Rotations" Endheading param plane caption="Select Plane" enum="xy""xw""xz""yw""yz" default=0 endparam param rotate caption="Rotation Mode" enum="1""2" default=0 endparam param rotx caption="Rotation x" default=0.0 endparam param roty caption="Rotation y" default=0.0 endparam param rotz caption="Rotation z" default=0.0 endparam param rotw caption="Rotation w" default=0.0 endparam Heading caption="Slope Parameters" visible=@slope==true Endheading bool param slope caption="Apply slope?" default=true endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6)&&(@slope==true) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84)&&(@slope==true) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82)&&(@slope==true) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81)&&(@slope==true) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84)&&(@slope==true) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58)&&(@slope==true) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75)&&(@slope==true) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Heading caption="Sequence on C" Endheading param seq caption="Sequence" enum="1""2""3" default=0 endparam param p9 caption="Factor 1" default=(1.0,0.0) endparam param p10 caption="Factor 2" default=(1.0,0.0) endparam param p11 caption="Factor 3" default=(1.0,0.0) visible=(@seq!=0) endparam func fn5 caption="Func. Factor 1" default=ident() endfunc func fn6 caption="Func. Factor 2" default=ident() endfunc func fn7 caption="Func. Factor 3" default=ident() visible=(@seq!=0) endfunc Heading caption="Formula Parameters" Endheading param p1 caption="Parameter 1" default=(0.0,0.0) endparam param p3 caption="Parameter 2" default=(0.0,0.0) endparam param p4 caption="Multiply 1" default=(1.0,0.0) endparam param p5 caption="Multiply 2" default=(1.0,0.0) endparam param p6 caption="Multiply 3" default=(0.0,0.0) endparam param p7 caption="Multiply 4" default=(0.0,0.0) endparam param p8 caption="Exponent" default=(2.0,0.0) endparam param p2 caption="Julia Dimension" default=(0.0,0.0) visible=(@mode=="Julia") endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn3 caption="Function 2" default=ident() endfunc func fn4 caption="Function 3" default=ident() endfunc func fn2 caption="Function c" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="SlopeHyperPrecogna" bailout=@bailout startseed=pixel rotate=@rotate plane=@plane seq=@seq p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 p8=@p8 p9=@p9 p10=@p10 p11=@p11 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 rotx=@rotx roty=@roty rotz=@rotz rotw=@rotw version=@version mode=@switchmode switchmode=@mode slope=@slope offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl pow=@pow sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp } As-SlopeHyperQuatMan { ;Hypercomplex Quaternion Mandelbrot_yz with different initiation of variables. ;Slope version based on the slope(Mandelbrot) formulae of Damien Jones, ;compound with the models of slope formulae of Ron Barnett. ;Many thanks to Gilles Nadeau to show me this beautiful loop. ;Andrea Spinozzi(May2005) Init: z1=z2=z3=cz1=cz2=cz3=0.0 w1=w2=w3=cw1=cw2=cw3=0.0 a1=a2=a3=b1=b2=b3=0.0 ca1=ca2=ca3=cb1=cb2=cb3=0.0 ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 if (@mode == "Mandelbrot" ) if (@intvar == 0) ;Quat z11=pixel z12=pixel+@offset z13=pixel+flip(@offset) z1=real(p1) + flip(real(z11)) z2=real(p1) + flip(real(z12)) z3=real(p1) + flip(real(z13)) cz1=real(p1) + flip(real(z11)) cz2=real(p1) + flip(real(z12)) cz3=real(p1) + flip(real(z13)) cw1=imag(z11)+ flip(imag(p1)) cw2=imag(z12)+ flip(imag(p1)) cw3=imag(z13)+ flip(imag(p1)) w1=imag(z11) + flip(imag(p1)) w2=imag(z12) + flip(imag(p1)) w3=imag(z13) + flip(imag(p1)) elseif (@intvar == 1) ;Variant1 RCL z11=pixel z12=pixel+@offset z13=pixel+flip(@offset) z1=real(@start) + flip(imag(@start)) z2=real(@start) + flip(imag(@start)) z3=real(@start) + flip(imag(@start)) cz1=real(z11)+ flip(imag(z11)) cz2=real(z12)+ flip(imag(z12)) cz3=real(z13)+ flip(imag(z13)) cw1=real(z11)+ flip(imag(z11)) cw2=real(z12)+ flip(imag(z12)) cw3=real(z13)+ flip(imag(z13)) w1=real(p1) + flip(imag(p1)) w2=real(p1) + flip(imag(p1)) w3=real(p1) + flip(imag(p1)) elseif (@intvar == 2) ;Variant2 Mandelbrot z11=pixel z12=pixel+@offset z13=pixel+flip(@offset) z1=real(@start) + flip(imag(@start)) z2=real(@start) + flip(imag(@start)) z3=real(@start) + flip(imag(@start)) cz1=real(z11)+ flip(imag(z11)) cz2=real(z12)+ flip(imag(z12)) cz3=real(z13)+ flip(imag(z13)) cw1=real(p1) + flip(imag(p1)) cw2=real(p1) + flip(imag(p1)) cw3=real(p1) + flip(imag(p1)) w1=real(p1) + flip(imag(p1)) w2=real(p1) + flip(imag(p1)) w3=real(p1) + flip(imag(p1)) endif elseif (@mode == "Julia") if (@intvar == 0) ;Quat z11=pixel z12=pixel+@offset z13=pixel+flip(@offset) z1=real(p1) + flip(real(z11)) z2=real(p1) + flip(real(z12)) z3=real(p1) + flip(real(z13)) cz1=real(p1) + flip(real(@seed)) cz2=real(p1) + flip(real(@seed)) cz3=real(p1) + flip(real(@seed)) cw1=imag(@seed)+ flip(imag(p1)) cw2=imag(@seed)+ flip(imag(p1)) cw3=imag(@seed)+ flip(imag(p1)) w1=imag(z11) + flip(imag(p1)) w2=imag(z12) + flip(imag(p1)) w3=imag(z13) + flip(imag(p1)) elseif (@intvar == 1) ;Variant1 RCL z11=pixel z12=pixel+@offset z13=pixel+flip(@offset) z1=real(z11) + flip(imag(z11)) z2=real(z12) + flip(imag(z12)) z3=real(z13) + flip(imag(z13)) cz1=real(@seed)+ flip(imag(@seed)) cz2=real(@seed)+ flip(imag(@seed)) cz3=real(@seed)+ flip(imag(@seed)) cw1=real(@seed)+ flip(imag(@seed)) cw2=real(@seed)+ flip(imag(@seed)) cw3=real(@seed)+ flip(imag(@seed)) w1=real(p1) + flip(imag(p1)) w2=real(p1) + flip(imag(p1)) w3=real(p1) + flip(imag(p1)) elseif (@intvar == 2) ;Variant2 Mandelbrot z11=pixel z12=pixel+@offset z13=pixel+flip(@offset) z1=real(z11) + flip(imag(z11)) z2=real(z12) + flip(imag(z12)) z3=real(z13) + flip(imag(z13)) cz1=real(@seed)+ flip(imag(@seed)) cz2=real(@seed)+ flip(imag(@seed)) cz3=real(@seed)+ flip(imag(@seed)) cw1=real(p1) + flip(imag(p1)) cw2=real(p1) + flip(imag(p1)) cw3=real(p1) + flip(imag(p1)) w1=real(p2) + flip(imag(p2)) w2=real(p2) + flip(imag(p2)) w3=real(p2) + flip(imag(p2)) endif endif Loop: a1=fn1(z1-w1*(0,1)) a2=fn1(z2-w2*(0,1)) a3=fn1(z3-w3*(0,1)) b1=fn1(z1+w1*(0,1)) b2=fn1(z2+w2*(0,1)) b3=fn1(z3+w3*(0,1)) ca1=(a1+real(p6))^p3 ca2=(a2+real(p6))^p3 ca3=(a3+real(p6))^p3 cb1=(b1-imag(p6))^p3 cb2=(b2-imag(p6))^p3 cb3=(b3-imag(p6))^p3 c1=fn2(a1*ca1)^p4+real(p5) c2=fn2(a2*ca2)^p4+real(p5) c3=fn2(a3*ca3)^p4+real(p5) f1=fn2(b1*cb1)^p4-imag(p5) f2=fn2(b2*cb2)^p4-imag(p5) f3=fn2(b3*cb3)^p4-imag(p5) z1=fn3(c1+f1)/2+cz1 z2=fn3(c2+f2)/2+cz2 z3=fn3(c3+f3)/2+cz3 w1=fn3((c1-f1)*(0,1))/2+cw1 w2=fn3((c2-f2)*(0,1))/2+cw2 w3=fn3((c3-f3)*(0,1))/2+cw3 z1=fn4(z1) z2=fn4(z2) z3=fn4(z3) w1=fn4(w1) w2=fn4(w2) w3=fn4(w3) ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if (@bailout < |z1|+|w1| || \ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z=z1; use primary iteration value to keep periodicity working endif if ( @bailout < |z1|+|w1| ) ; we're done done = 0 endif Bailout: done > 0 Default: title="SlopeHyperQuatMan" magn=1.0 angle=0 method=multipass periodicity=0 maxiter=250 Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="Current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param bailout caption="Bailout Value" default=64.0 min=0.0 endparam param @start caption="Init Z" default=(0.0,0.0) visible=(@mode=="Mandelbrot")!=(@intvar==0) endparam param @seed caption="Seed Value" default=(0.0,0.0) visible=(@mode=="Julia") endparam Heading caption="Slope Parameters" Endheading float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." endparam Heading caption="Formula Parameters" Endheading param intvar caption="Init. Variables" enum="Quat""Variant 1 RCL""Variant 2 Mandelbrot" default=0 endparam param p1 caption="Parameter 1" default=(0.0,0.0) endparam param p5 caption="Parameter 2" default=(0.0,0.0) endparam param p6 caption="Parameter 3" default=(0.0,0.0) endparam param p2 caption="4-Dim. Value" default=(0.0,0.0) visible=(@intvar==2)&&(@mode=="Julia") endparam param p3 caption="Exponent 1" default=(1.0,0.0) endparam param p4 caption="Exponent 2" default=(1.0,0.0) endparam param version caption="Version" default=1.0 visible=false endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc Switch: type="As-SlopeHyperQuatMan" seed=pixel bailout=@bailout p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 intvar=@intvar mode=@switchmode switchmode=@mode slope=@slope offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp version=@version } as-SlopeHyperSets { ;Slope Hypercomplex Sets, slope code implemented from the SlopeMandelbrot ;of Damien Jones and SlopeCayley of Ronald Barnett, sequence on C implemented from ;formulae of Susan Chambless, Planes and Rotation implemented from formulae of Gilles Nadeau. ;Version(1.1):Optimized the hypercomplex code for standard hyper complex values , expecially ;for "Parameter 1" and added a rotation metod(March2006). ;Andrea Spinozzi(Nov2005) Init: z1=z2=z3=0.0 cz1=cz2=cz3=0.0 if (@version<1.1) w1=w2=w3=cw1=cw2=cw3=p1 else w1=w2=w3=0.0 cw1=cw2=cw3=p1 endif a1=a2=a3=0.0 b1=b2=b3=0.0 c1a=c1b=c1c=0.0 c2a=c2b=c2c=0.0 appca1=appca2=appca3=0.0 appcb1=appcb2=appcb3=0.0 zl=0.0 p3r=real(p3) p3i=imag(p3) r_rcl=real(@p7) i_rcl=imag(@p7) rotx=@rotx roty=@roty rotz=@rotz rotw=@rotw int iter=0 int modby=@seq+2 ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 if (@plane==0) ;xy if (@selectform==5) zl=@startseed+(1/(@lamb+1))^(1/@lamb) z1=real(zl)+flip(imag(zl)) z2=z1 z3=z1 cz1=real(pixel)+flip(imag(pixel)) cz2=cz1+@offset cz3=cz1+flip(@offset) else z1=real(@startseed)+flip(imag(@startseed)) z2=z1 z3=z1 cz1=real(pixel)+flip(imag(pixel)) cz2=cz1+@offset cz3=cz1+flip(@offset) endif elseif (@plane==1) ;xw if (@selectform==5) zl=@startseed+(1/(@lamb+1))^(1/@lamb) z1=real(pixel)+flip(real(zl)) z2=z1+@offset z3=z1+flip(@offset) cz1=flip(imag(pixel))+imag(zl) cz2=cz1+@offset cz3=cz1+flip(@offset) else z1=real(pixel)+flip(real(@startseed)) z2=z1+@offset z3=z1+flip(@offset) cz1=flip(imag(pixel))+imag(@startseed) cz2=cz1+@offset cz3=cz1+flip(@offset) endif elseif (@plane==2) ;xz if (@selectform==5) zl=@startseed+(1/(@lamb+1))^(1/@lamb) z1=real(pixel)+flip(real(zl)) z2=z1+@offset z3=z1+flip(@offset) cz1=imag(pixel)+flip(imag(zl)) cz2=cz1+@offset cz3=cz1+flip(@offset) else z1=real(pixel)+flip(real(@startseed)) z2=z1+@offset z3=z1+flip(@offset) cz1=imag(pixel)+flip(imag(@startseed)) cz2=cz1+@offset cz3=cz1+flip(@offset) endif elseif (@plane==3) ;yw if (@selectform==5) zl=@startseed+(1/(@lamb+1))^(1/@lamb) z1=flip(real(pixel))+real(zl) z2=z1+@offset z3=z1+flip(@offset) cz1=flip(imag(pixel))+imag(zl) cz2=cz1+@offset cz3=cz1+flip(@offset) else z1=flip(real(pixel))+real(@startseed) z2=z1+@offset z3=z1+flip(@offset) cz1=flip(imag(pixel))+imag(@startseed) cz2=cz1+@offset cz3=cz1+flip(@offset) endif elseif (@plane==4) ;yz if (@selectform==5) zl=@startseed+(1/(@lamb+1))^(1/@lamb) z1=flip(real(pixel))+real(zl) z2=z1+@offset z3=z1+flip(@offset) cz1=imag(pixel)+flip(imag(zl)) cz2=cz1+@offset cz3=cz1+flip(@offset) else z1=flip(real(pixel))+real(@startseed) z2=z1+@offset z3=z1+flip(@offset) cz1=imag(pixel)+flip(imag(@startseed)) cz2=cz1+@offset cz3=cz1+flip(@offset) endif endif if (@mode=="Julia") if (@plane==0) ;xy z1=real(pixel)+flip(imag(pixel)) z2=z1+@offset z3=z1+flip(@offset) cz1=real(@startseed)+flip(imag(@startseed)) cz2=cz1 cz3=cz1 elseif (@plane==1) ;xw z1=real(pixel)+flip(real(@startseed)) z2=z1+@offset z3=z1+flip(@offset) cz1=flip(imag(pixel))+imag(@startseed) cz2=cz1+@offset cz3=cz1+flip(@offset) elseif (@plane==2) ;xz z1=real(pixel)+flip(real(@startseed)) z2=z1+@offset z3=z1+flip(@offset) cz1=imag(pixel)+flip(imag(@startseed)) cz2=cz1+@offset cz3=cz1+flip(@offset) elseif (@plane==3) ;yw z1=flip(real(pixel))+real(@startseed) z2=z1+@offset z3=z1+flip(@offset) cz1=flip(imag(pixel))+imag(@startseed) cz2=cz1+@offset cz3=cz1+flip(@offset) elseif (@plane==4) ;yz z1=flip(real(pixel))+real(@startseed) z2=z1+@offset z3=z1+flip(@offset) cz1=imag(pixel)+flip(imag(@startseed)) cz2=cz1+@offset cz3=cz1+flip(@offset) endif w1=w2=w3=p2 cw1=cw2=cw3=p1 endif ; Rotations-------------------------------------------- if (@rotate==0) ry1=imag(z1)*cos(pi*rotx/180)-real(cz1)*sin(pi*rotx/180) ry2=imag(z2)*cos(pi*rotx/180)-real(cz2)*sin(pi*rotx/180) ry3=imag(z3)*cos(pi*rotx/180)-real(cz3)*sin(pi*rotx/180) rz1=imag(z1)*sin(pi*rotx/180)+real(cz1)*cos(pi*rotx/180) rz2=imag(z2)*sin(pi*rotx/180)+real(cz2)*cos(pi*rotx/180) rz3=imag(z3)*sin(pi*rotx/180)+real(cz3)*cos(pi*rotx/180) z1=real(z1)+ry1*1i z2=real(z2)+ry2*1i z3=real(z3)+ry3*1i cz1=rz1+imag(cz1)*1i cz2=rz2+imag(cz2)*1i cz3=rz3+imag(cz3)*1i rx1=real(cz1)*sin(pi*roty/180)+real(z1)*cos(pi*roty/180) rx2=real(cz2)*sin(pi*roty/180)+real(z2)*cos(pi*roty/180) rx3=real(cz3)*sin(pi*roty/180)+real(z3)*cos(pi*roty/180) rz1=real(cz1)*cos(pi*roty/180)-real(z1)*sin(pi*roty/180) rz2=real(cz2)*cos(pi*roty/180)-real(z2)*sin(pi*roty/180) rz3=real(cz3)*cos(pi*roty/180)-real(z3)*sin(pi*roty/180) z1=rx1+imag(z1)*1i z2=rx2+imag(z2)*1i z3=rx3+imag(z3)*1i cz1=rz1+imag(cz1)*1i cz2=rz2+imag(cz2)*1i cz3=rz3+imag(cz3)*1i ry1=real(z1)*cos(pi*rotz/180)-imag(cz1)*sin(pi*rotz/180) ry2=real(z2)*cos(pi*rotz/180)-imag(cz2)*sin(pi*rotz/180) ry3=real(z3)*cos(pi*rotz/180)-imag(cz3)*sin(pi*rotz/180) rw1=real(z1)*sin(pi*rotz/180)+imag(cz1)*cos(pi*rotz/180) rw2=real(z2)*sin(pi*rotz/180)+imag(cz2)*cos(pi*rotz/180) rw3=real(z3)*sin(pi*rotz/180)+imag(cz3)*cos(pi*rotz/180) z1=ry1+imag(z1)*1i z2=ry2+imag(z2)*1i z3=ry3+imag(z3)*1i cz1=real(cz1)+rw1*1i cz2=real(cz2)+rw2*1i cz3=real(cz3)+rw3*1i rx1=imag(cz1)*sin(pi*rotw/180)+imag(z1)*cos(pi*rotw/180) rx2=imag(cz2)*sin(pi*rotw/180)+imag(z2)*cos(pi*rotw/180) rx3=imag(cz3)*sin(pi*rotw/180)+imag(z3)*cos(pi*rotw/180) rw1=imag(cz1)*cos(pi*rotw/180)-imag(z1)*sin(pi*rotw/180) rw2=imag(cz2)*cos(pi*rotw/180)-imag(z2)*sin(pi*rotw/180) rw3=imag(cz3)*cos(pi*rotw/180)-imag(z3)*sin(pi*rotw/180) z1=real(z1)+rx1*1i z2=real(z2)+rx2*1i z3=real(z3)+rx3*1i cz1=real(cz1)+rw1*1i cz2=real(cz2)+rw2*1i cz3=real(cz3)+rw3*1i elseif (@rotate==1) rx1=real(w1)*sin(pi*roty/180)+real(z1)*cos(pi*roty/180) rx2=real(w2)*sin(pi*roty/180)+real(z2)*cos(pi*roty/180) rx3=real(w3)*sin(pi*roty/180)+real(z3)*cos(pi*roty/180) rz1=real(w1)*cos(pi*roty/180)-real(z1)*sin(pi*roty/180) rz2=real(w2)*cos(pi*roty/180)-real(z2)*sin(pi*roty/180) rz3=real(w3)*cos(pi*roty/180)-real(z3)*sin(pi*roty/180) z1=rx1+imag(z1)*1i z2=rx2+imag(z2)*1i z3=rx3+imag(z3)*1i w1=rz1+imag(w1)*1i w2=rz2+imag(w2)*1i w3=rz3+imag(w3)*1i rx1=real(cw1)*sin(pi*roty/180)+real(cz1)*cos(pi*roty/180) rx2=real(cw2)*sin(pi*roty/180)+real(cz2)*cos(pi*roty/180) rx3=real(cw3)*sin(pi*roty/180)+real(cz3)*cos(pi*roty/180) rz1=real(cw1)*cos(pi*roty/180)-real(cz1)*sin(pi*roty/180) rz2=real(cw2)*cos(pi*roty/180)-real(cz2)*sin(pi*roty/180) rz3=real(cw3)*cos(pi*roty/180)-real(cz3)*sin(pi*roty/180) cz1=rx1+imag(cz1)*1i cz2=rx2+imag(cz2)*1i cz3=rx3+imag(cz3)*1i cw1=rz1+imag(cw1)*1i cw2=rz2+imag(cw2)*1i cw3=rz3+imag(cw3)*1i ry1=imag(z1)*cos(pi*rotx/180)-real(w1)*sin(pi*rotx/180) ry2=imag(z2)*cos(pi*rotx/180)-real(w2)*sin(pi*rotx/180) ry3=imag(z3)*cos(pi*rotx/180)-real(w3)*sin(pi*rotx/180) rz1=imag(z1)*sin(pi*rotx/180)+real(w1)*cos(pi*rotx/180) rz2=imag(z2)*sin(pi*rotx/180)+real(w2)*cos(pi*rotx/180) rz3=imag(z3)*sin(pi*rotx/180)+real(w3)*cos(pi*rotx/180) z1=real(z1)+ry1*1i z2=real(z2)+ry2*1i z3=real(z3)+ry3*1i w1=rz1+imag(w1)*1i w2=rz2+imag(w2)*1i w3=rz3+imag(w3)*1i ry1=imag(cz1)*cos(pi*rotx/180)-real(cw1)*sin(pi*rotx/180) ry2=imag(cz2)*cos(pi*rotx/180)-real(cw2)*sin(pi*rotx/180) ry3=imag(cz3)*cos(pi*rotx/180)-real(cw3)*sin(pi*rotx/180) rz1=imag(cz1)*sin(pi*rotx/180)+real(cw1)*cos(pi*rotx/180) rz2=imag(cz2)*sin(pi*rotx/180)+real(cw2)*cos(pi*rotx/180) rz3=imag(cz3)*sin(pi*rotx/180)+real(cw3)*cos(pi*rotx/180) cz1=real(cz1)+ry1*1i cz2=real(cz2)+ry2*1i cz3=real(cz3)+ry3*1i cw1=rz1+imag(cw1)*1i cw2=rz2+imag(cw2)*1i cw3=rz3+imag(cw3)*1i rx1=real(z1)*cos(pi*rotz/180)-imag(z1)*sin(pi*rotz/180) rx2=real(z2)*cos(pi*rotz/180)-imag(z2)*sin(pi*rotz/180) rx3=real(z3)*cos(pi*rotz/180)-imag(z3)*sin(pi*rotz/180) ry1=real(z1)*sin(pi*rotz/180)+imag(z1)*cos(pi*rotz/180) ry2=real(z2)*sin(pi*rotz/180)+imag(z2)*cos(pi*rotz/180) ry3=real(z3)*sin(pi*rotz/180)+imag(z3)*cos(pi*rotz/180) z1=rx1+ry1*1i z2=rx2+ry2*1i z3=rx3+ry3*1i rx1=real(cz1)*cos(pi*rotz/180)-imag(cz1)*sin(pi*rotz/180) rx2=real(cz2)*cos(pi*rotz/180)-imag(cz2)*sin(pi*rotz/180) rx3=real(cz3)*cos(pi*rotz/180)-imag(cz3)*sin(pi*rotz/180) ry1=real(cz1)*sin(pi*rotz/180)+imag(cz1)*cos(pi*rotz/180) ry2=real(cz2)*sin(pi*rotz/180)+imag(cz2)*cos(pi*rotz/180) ry3=real(cz3)*sin(pi*rotz/180)+imag(cz3)*cos(pi*rotz/180) cz1=rx1+ry1*1i cz2=rx2+ry2*1i cz3=rx3+ry3*1i rx1=real(w1)*cos(pi*rotw/180)-imag(w1)*sin(pi*rotw/180) rx2=real(w2)*cos(pi*rotw/180)-imag(w2)*sin(pi*rotw/180) rx3=real(w3)*cos(pi*rotw/180)-imag(w3)*sin(pi*rotw/180) ry1=real(w1)*sin(pi*rotw/180)+imag(w1)*cos(pi*rotw/180) ry2=real(w2)*sin(pi*rotw/180)+imag(w2)*cos(pi*rotw/180) ry3=real(w3)*sin(pi*rotw/180)+imag(w3)*cos(pi*rotw/180) w1=rx1+ry1*1i w2=rx2+ry2*1i w3=rx3+ry3*1i rx1=real(cw1)*cos(pi*rotw/180)-imag(cw1)*sin(pi*rotw/180) rx2=real(cw2)*cos(pi*rotw/180)-imag(cw2)*sin(pi*rotw/180) rx3=real(cw3)*cos(pi*rotw/180)-imag(cw3)*sin(pi*rotw/180) ry1=real(cw1)*sin(pi*rotw/180)+imag(cw1)*cos(pi*rotw/180) ry2=real(cw2)*sin(pi*rotw/180)+imag(cw2)*cos(pi*rotw/180) ry3=real(cw3)*sin(pi*rotw/180)+imag(cw3)*cos(pi*rotw/180) cw1=rx1+ry1*1i cw2=rx2+ry2*1i cw3=rx3+ry3*1i endif Loop: int method=iter%modby a1=real(z1)-imag(w1)+flip(imag(z1)+real(w1)) a2=real(z2)-imag(w2)+flip(imag(z2)+real(w2)) a3=real(z3)-imag(w3)+flip(imag(z3)+real(w3)) b1=real(z1)+imag(w1)+flip(imag(z1)-real(w1)) b2=real(z2)+imag(w2)+flip(imag(z2)-real(w2)) b3=real(z3)+imag(w3)+flip(imag(z3)-real(w3)) a1=@fn5(a1) a2=@fn5(a2) a3=@fn5(a3) b1=@fn5(b1) b2=@fn5(b2) b3=@fn5(b3) czr1=real(cz1) czi1=imag(cz1) cwr1=real(cw1) cwi1=imag(cw1) czr2=real(cz2) czi2=imag(cz2) cwr2=real(cw2) cwi2=imag(cw2) czr3=real(cz3) czi3=imag(cz3) cwr3=real(cw3) cwi3=imag(cw3) if (@version<1.1) ca1=czr1-cwr1+flip(czi1+cwi1) ca2=czr2-cwr2+flip(czi2+cwi2) ca3=czr3-cwr3+flip(czi3+cwi3) cb1=czr1+cwr1+flip(czi1-cwi1) cb2=czr2+cwr2+flip(czi2-cwi2) cb3=czr3+cwr3+flip(czi3-cwi3) else ca1=czr1-cwi1+flip(czi1+cwr1) ca2=czr2-cwi2+flip(czi2+cwr2) ca3=czr3-cwi3+flip(czi3+cwr3) cb1=czr1+cwi1+flip(czi1-cwr1) cb2=czr2+cwi2+flip(czi2-cwr2) cb3=czr3+cwi3+flip(czi3-cwr3) endif ca1=fn2(ca1) ca2=fn2(ca2) ca3=fn2(ca3) cb1=fn2(cb1) cb2=fn2(cb2) cb3=fn2(cb3) if (method==0) appca1=fn3(ca1)*p4 appca2=fn3(ca2)*p4 appca3=fn3(ca3)*p4 appcb1=fn3(cb1)*p4 appcb2=fn3(cb2)*p4 appcb3=fn3(cb3)*p4 elseif (method==1) appca1=fn4(ca1)*p6 appca2=fn4(ca2)*p6 appca3=fn4(ca3)*p6 appcb1=fn4(cb1)*p6 appcb2=fn4(cb2)*p6 appcb3=fn4(cb3)*p6 endif appca1=appca1+@offa appca2=appca2+@offa appca3=appca3+@offa appcb1=appcb1+@offb appcb2=appcb2+@offb appcb3=appcb3+@offb if (@selectform==0) ; Mandelbrot c1a=a1^2 c1b=a2^2 c1c=a3^2 c2a=b1^2 c2b=b2^2 c2c=b3^2 c1a=c1a+appca1 c1b=c1b+appca2 c1c=c1c+appca3 c2a=c2a+appcb1 c2b=c2b+appcb2 c2c=c2c+appcb3 elseif (@selectform==1) ; Variant RCL c1a=a1^2-r_rcl^2-b1^2-i_rcl^2 c1b=a2^2-r_rcl^2-b2^2-i_rcl^2 c1c=a3^2-r_rcl^2-b3^2-i_rcl^2 c2a=2*a1*b1 c2b=2*a2*b2 c2c=2*a3*b3 c1a=c1a+appca1 c1b=c1b+appca2 c1c=c1c+appca3 c2a=c2a+appcb1 c2b=c2b+appcb2 c2c=c2c+appcb3 elseif (@selectform==2) ; Ikenaga c1a=a1^3+a1*appca1-a1-appca1 c1b=a2^3+a2*appca2-a2-appca2 c1c=a3^3+a3*appca3-a3-appca3 c2a=b1^3+b1*appcb1-b1-appcb1 c2b=b2^3+b2*appcb2-b2-appcb2 c2c=b3^3+b3*appcb3-b3-appcb3 elseif (@selectform==3) ; Barnsley if real(a1)>=0 c1a=(a1-1)*appca1 c1b=(a2-1)*appca2 c1c=(a3-1)*appca3 else c1a=(a1+1)*appca1 c1b=(a2+1)*appca2 c1c=(a3+1)*appca3 endif if real(b1)>=0 c2a=(b1-1)*appcb1 c2b=(b2-1)*appcb2 c2c=(b3-1)*appcb3 else c2a=(b1+1)*appcb1 c2b=(b2+1)*appcb2 c2c=(b3+1)*appcb3 endif elseif (@selectform==4) ; Lambda c1a=appca1*a1*(1-a1)^(@lamb-1)+appca1 c1b=appca2*a2*(1-a2)^(@lamb-1)+appca2 c1c=appca3*a3*(1-a3)^(@lamb-1)+appca3 c2a=appcb1*b1*(1-b1)^(@lamb-1)+appcb1 c2b=appcb2*b2*(1-b2)^(@lamb-1)+appcb2 c2c=appcb3*b3*(1-b3)^(@lamb-1)+appcb3 elseif (@selectform==5) ; Lambda pwr c1a=appca1*a1*(1-a1^@lamb) c1b=appca2*a2*(1-a2^@lamb) c1c=appca3*a3*(1-a3^@lamb) c2a=appcb1*b1*(1-b1^@lamb) c2b=appcb2*b2*(1-b2^@lamb) c2c=appcb3*b3*(1-b3^@lamb) elseif (@selectform==6) ; As-HyperBrot c11=a1^2*appca1^2+a1*b1*appca1*appcb1 c12=a2^2*appca2^2+a2*b2*appca2*appcb2 c13=a3^2*appca3^2+a3*b3*appca3*appcb3 c21=a1*b1*appca1^2+b1^2*appca1*appcb1 c22=a2*b2*appca2^2+b2^2*appca2*appcb2 c23=a3*b3*appca3^2+b3^2*appca3*appcb3 c31=a1^2*appca1*appcb1+a1*b1*appcb1^2 c32=a2^2*appca2*appcb2+a2*b2*appcb2^2 c33=a3^2*appca3*appcb3+a3*b3*appcb3^2 c41=a1*b1*appca1*appcb1+b1^2*appcb1^2 c42=a2*b2*appca2*appcb2+b2^2*appcb2^2 c43=a3*b3*appca3*appcb3+b3^2*appcb3^2 c1a=c11+real(@p8)+c21*imag(@p8)*1i c1b=c12+real(@p8)+c22*imag(@p8)*1i c1c=c13+real(@p8)+c23*imag(@p8)*1i c2a=c31+real(@p8)+c41*imag(@p8)*1i c2b=c32+real(@p8)+c42*imag(@p8)*1i c2c=c33+real(@p8)+c43*imag(@p8)*1i c1a=c1a+appca1 c1b=c1b+appca2 c1c=c1c+appca3 c2a=c2a+appcb1 c2b=c2b+appcb2 c2c=c2c+appcb3 endif c1a=fn1(c1a)+p3r c1b=fn1(c1b)+p3r c1c=fn1(c1c)+p3r c2a=fn1(c2a)-p3i c2b=fn1(c2b)-p3i c2c=fn1(c2c)-p3i c11a=c1a c11b=c1b c11c=c1c d11a=c2a d11b=c2b d11c=c2c z1=(real(c11a)+real(d11a)+flip(imag(d11a)+imag(c11a)))/2 z2=(real(c11b)+real(d11b)+flip(imag(d11b)+imag(c11b)))/2 z3=(real(c11c)+real(d11c)+flip(imag(d11c)+imag(c11c)))/2 w1=(imag(c11a)-imag(d11a)+flip(real(d11a)-real(c11a)))/2 w2=(imag(c11b)-imag(d11b)+flip(real(d11b)-real(c11b)))/2 w3=(imag(c11c)-imag(d11c)+flip(real(d11c)-real(c11c)))/2 z1=z1^p5 z2=z2^p5 z3=z3^p5 if (@slope == true) ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if (@bailout < |z1|+|w1| || \ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif else z = z1 endif if ( @bailout < |z1|+|w1| ) ; we're done done = 0 endif iter=iter+1 Bailout: done>0 Default: title="SlopeHyperSets" periodicity=0 method=multipass maxiter=250 Heading caption="Mandelbrot Mode" visible=(@mode=="Mandelbrot") Endheading Heading caption="Mandelbrot Mode" visible=(@mode=="Julia") Endheading param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 visible=false endparam param switchmode caption="Switch to..." enum="Mandelbrot""Julia" default=1 visible=false endparam param bailout caption="Bailout" default=64.0 min=0.0 endparam param @startseed caption="Init Z/Seed Value" default=(0.0,0.0) endparam Heading caption="Planes and Rotations" Endheading param plane caption="Plane" enum="xy""xw""xz""yw""yz" default=0 endparam param rotate caption="Rotation Mode" enum="1""2" default=0 endparam param rotx caption="Rotation x" default=0.0 endparam param roty caption="Rotation y" default=0.0 endparam param rotz caption="Rotation z" default=0.0 endparam param rotw caption="Rotation w" default=0.0 endparam Heading caption="Slope Parameters" visible=@slope==true Endheading bool param slope caption="Apply slope?" default=true endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6)&&(@slope==true) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84)&&(@slope==true) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82)&&(@slope==true) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81)&&(@slope==true) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84)&&(@slope==true) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58)&&(@slope==true) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75)&&(@slope==true) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Heading caption="Formula Parameters" Endheading param selectform caption="Formula Used" enum="Mandelbrot""Variant RCL""Ikenaga""Barnsley""Lambda"\ "Lambda Power""as-HyperBrot" default=0 endparam param seq caption="Sequence" enum="1""2" default=0 endparam param offa caption="Offset a" default=(0.0,0.0) endparam param offb caption="Offset b" default=(0.0,0.0) endparam param p4 caption="Factor 1" default=(1.0,0.0) endparam param p6 caption="Factor 2" default=(1.0,0.0) endparam param p1 caption="Parameter 1" default=(0.0,0.0) endparam param p3 caption="Parameter 2" default=(0.0,0.0) endparam param p7 caption="Parameter RCL" default=(0.0,0.0) visible=(@selectform==1) endparam param p8 caption="Param HyperBrot" default=(1.0,0.0) visible=(@selectform==6) endparam param lamb caption="Lambda Power" default=(2.0,0.0) visible=(@selectform==4)||(@selectform==5) endparam param p5 caption="Global Exponent" default=(1.0,0.0) endparam param p2 caption="Julia Dimension" default=(0.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn5 caption="Function 3" default=ident() endfunc func fn3 caption="Function1 Factor" default=ident() endfunc func fn4 caption="Function2 Factor" default=ident() endfunc param version caption="Version" default=1.1 visible=false endparam Switch: type="as-SlopeHyperSets" startseed=pixel bailout=@bailout selectform=@selectform plane=@plane rotate=@rotate seq=@seq opc=@opc opc1=@opc1 opc2=@opc2 opc3=@opc3 p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 p8=@p8 rotx=@rotx roty=@roty rotz=@rotz rotw=@rotw lamb=@lamb offa=@offa offb=@offb fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 mode=@switchmode switchmode=@mode version=@version slope=@slope offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl pow=@pow sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp } SlopeMandy { ; Based upon the slope (Mandelbrot) ; formula of Damien Jones ; compound with the models of slope formulas from Ron Barnett. ; Version 1.1:optimized the bailout conditions. ; Andrea Spinozzi(February2005) Init: z1=0.0 z2=z1 z3=z1 c=pixel c1=c+@offset c2=c+flip(@offset) z11=@startseed z12=@startseed z13=@startseed z21=@startseed z22=@startseed z23=@startseed newz11=0.0 newz12=0.0 newz13=0.0 newz21=0.0 newz22=0.0 newz23=0.0 a1=0.0 a2=0.0 a3=0.0 b1=0.0 b2=0.0 b3=0.0 ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 if (@mode=="Julia") z1=pixel z2=z1+@offset z3=z1+flip(@offset) c=@startseed c1=c c2=c z11=z1 z12=z2 z13=z3 z21=z1 z22=z2 z23=z3 endif Loop: if (@version>=1.0) z11=@fz1(z11+@p10)^@p11*@p12 z12=@fz1(z12+@p10)^@p11*@p12 z13=@fz1(z13+@p10)^@p11*@p12 z21=@fz2(z21+@p13)^@p14*@p15 z22=@fz2(z22+@p13)^@p14*@p15 z23=@fz2(z23+@p13)^@p14*@p15 if (@sela==0) a1=z11*z21 a2=z12*z22 a3=z13*z23 elseif (@sela==1) a1=(z11*z21)+c a2=(z12*z22)+c1 a3=(z13*z23)+c2 elseif (@sela==2) a1=(z11*z21)-c a2=(z12*z22)-c1 a3=(z13*z23)-c2 elseif (@sela==3) a1=(z11*z21)*c a2=(z12*z22)*c1 a3=(z13*z23)*c2 elseif (@sela==4) a1=(z11*z21)/c a2=(z12*z22)/c1 a3=(z13*z23)/c2 endif z11=@fz11(z11+@p16)^@p17*@p18 z12=@fz11(z12+@p16)^@p17*@p18 z13=@fz11(z13+@p16)^@p17*@p18 a1=fn1(a1+p5)^p1*p2 a2=fn1(a2+p5)^p1*p2 a3=fn1(a3+p5)^p1*p2 if (@selb==0) b1=z11*z11 b2=z12*z12 b3=z13*z13 elseif (@selb==1) b1=(z11*z11)+c b2=(z12*z12)+c1 b3=(z13*z13)+c2 elseif (@selb==2) b1=(z11*z11)-c b2=(z12*z12)-c1 b3=(z13*z13)-c2 elseif (@selb==3) b1=(z11*z11)*c b2=(z12*z12)*c1 b3=(z13*z13)*c2 elseif (@selb==4) b1=(z11*z11)/c b2=(z12*z12)/c1 b3=(z13*z13)/c2 endif b1=fn2(b1+p6)^p3*p4 b2=fn2(b2+p6)^p3*p4 b3=fn2(b3+p6)^p3*p4 c=fn3(c+@p7)^@p8*@p9 c1=fn3(c1+@p7)^@p8*@p9 c2=fn3(c2+@p7)^@p8*@p9 newz11=a1 newz12=a2 newz13=a3 newz21=b1 newz22=b2 newz23=b3 if (@op1==0) z11=newz11+c z12=newz12+c1 z13=newz13+c2 z21=newz21+c z22=newz22+c1 z23=newz23+c2 elseif (@op1==1) z11=newz11-c z12=newz12-c1 z13=newz13-c2 z21=newz21*c z22=newz22*c1 z23=newz23*c2 endif if (@flavor==0) z1=fn4(z11)+@fn5(z21) z2=fn4(z12)+@fn5(z22) z3=fn4(z13)+@fn5(z23) elseif (@flavor==1) z1=fn4(z11)-@fn5(flip(z21)) z2=fn4(z12)-@fn5(flip(z22)) z3=fn4(z13)-@fn5(flip(z23)) elseif (@flavor==2) z1=fn4(z11)+@fn5(flip(z21)) z2=fn4(z12)+@fn5(flip(z22)) z3=fn4(z13)+@fn5(flip(z23)) endif if (@slope == true) ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if (@bailout < |z11|+|z21| || \ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif else z = z1 endif if ( @bailout < |z11|+|z21| ) ; we're done done = 0 endif endif Bailout: done>0 Default: title="SlopeMandy" maxiter=250 method=multipass periodicity=0 magn=0.8 Heading caption="Mandelbrot Mode" visible=(@mode==0) Endheading Heading caption="Julia Mode" visible=(@mode==1) Endheading param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 visible=false endparam param SwitchMode caption="Select Switch" enum="Mandelbrot""Julia" default=1 visible=false endparam param bailout caption="Bailout Value" default=64.0 min=0.0 endparam param startseed caption="Init z/Seed Value" default=(0.0,0.0) endparam param flavor caption="Flavor" enum="1""2""3" default=0 endparam func fn4 caption="Function Flavor 1" default=ident() endfunc func fn5 caption="Function Flavor 2" default=ident() endfunc Heading caption="Slope Parameters" visible=@slope==true Endheading bool param slope caption="Apply slope?" default=true endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6)&&(@slope==true) endfunc param a caption="Polar Parameter 1" default=0.5 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84)&&(@slope==true) endparam param b caption="Polar Parameter 2" default=0.5 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82)&&(@slope==true) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81)&&(@slope==true) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) ||\ (@zmode==84)&&(@slope==true) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58)&&(@slope==true) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75)&&(@slope==true) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Heading caption="Formula Parameters" Endheading param sela caption="Operator 1" enum="1""2""3""4""5" default=0 endparam param selb caption="Operator 2" enum="1""2""3""4""5" default=0 endparam param op1 caption="Operator 3" enum="1""2" default=0 endparam param p11 caption="Exponent 1" default=(1.0,0.0) endparam param p14 caption="Exponent 2" default=(1.0,0.0) endparam param p17 caption="Exponent 3" default=(1.0,0.0) endparam param p1 caption="Exponent 4" default=(1.0,0.0) endparam param p3 caption="Exponent 5" default=(1.0,0.0) endparam param p12 caption="Multiplier 1" default=(1.0,0.0) endparam param p15 caption="Multiplier 2" default=(1.0,0.0) endparam param p18 caption="Multiplier 3" default=(1.0,0.0) endparam param p2 caption="Multiplier 4" default=(1.0,0.0) endparam param p4 caption="Multiplier 5" default=(1.0,0.0) endparam param p10 caption="Parameter 1" default=(0.0,0.0) endparam param p13 caption="Parameter 2" default=(0.0,0.0) endparam param p16 caption="Parameter 3" default=(0.0,0.0) endparam param p5 caption="Parameter 4" default=(0.0,0.0) endparam param p6 caption="Parameter 5" default=(0.0,0.0) endparam param p8 caption="Exponent c" default=(1.0,0.0) endparam param p9 caption="Multiplier c" default=(1.0,0.0) endparam param p7 caption="Parameter c" default=(0.0,0.0) endparam param version caption="Version" default=1.1 visible=false endparam Heading caption="Functions" Endheading func fz1 caption="Function 1" default=ident() endfunc func fz2 caption="Function 2" default=ident() endfunc func fz11 caption="Function 3" default=ident() endfunc func fn1 caption="Function 4" default=ident() endfunc func fn2 caption="Function 5" default=ident() endfunc func fn3 caption="Function c" default=ident() endfunc Switch: type="SlopeMandy" startseed=pixel bailout=@bailout sela=@sela selb=@selb op1=@op1 flavor=@flavor p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 p8=@p8 p9=@p9 p10=@p10 p11=@p11 p12=@p12 p13=@p13 p14=@p14 p15=@p15 p16=@p16 p17=@p17 p18=@p18 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fz1=@fz1 fz11=@fz11 fz2=@fz2 mode=@switchmode switchmode=@mode version=@version slope=@slope offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp } As-SlopeQuatMandy { ; "Slope Quaternion Mandelbrot" based on the method of Ron Barnett. ; Use Damien's "Lighting" color or Ron's 3D texturizer coloring formulas ; most of others coloring formulas can be used. ; Many thanks to Gilles Nadeau to help me in the loop code and Ron Barnett ; to allow me to use his slope code. ; Version(1.1), optimized the bailout conditions. ; Andrea Spinozzi(February2005) Init: z1=0.0 z2=0.0 z3=0.0 cz1=z11=0.0 cz2=z12=0.0 cz3=z13=0.0 cw1=w1=0.0 cw2=w2=0.0 cw3=w3=0.0 x=0.0 y=0.0 float n=0 ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 if (@mode=="Mandelbrot") z1=pixel z2=pixel+@offset z3=pixel+flip(@offset) z11=z1 z12=z2 z13=z3 cz1=z11 cz2=z12 cz3=z13 cw1=w1=p1 cw2=w2=p1 cw3=w3=p1 elseif (@mode=="Julia") z1=pixel z2=pixel+@offset z3=pixel+flip(@offset) z11=z1 z12=z2 z13=z3 c=@seed cz1=c cz2=c cz3=c cw1=p1 cw2=p1 cw3=p1 w1=p2 w2=p2 w3=p2 endif Loop: if (@version>=1.0) n=sqrt(imag(z11)^2+real(w1)^2+imag(w1)^2) if n==0.0 n=1.0e-20 endif q=real(z11)+flip(n) t=atan2(q)/n a=@pow*(0.5*log(|z11|+|w1|)+t*flip(imag(z11))) b=@pow*(t*w1) z11=a w1=b w1=w1+p3 n=sqrt(imag(z11)^2+real(w1)^2+imag(w1)^2) if n==0.0 n=1.0e-20 endif x=exp(real(z11)) y=sin(n)/n a=x*cos(n)+x*y*flip(imag(z11)) b=x*y*w1 a=a+p4 b=b+p5 z11=@fn(a)+fn1(cz1) w1=b+cw1 z1=fn2(z11) ;------------------------------------------------------------------------------ n=sqrt(imag(z12)^2+real(w2)^2+imag(w2)^2) if n==0.0 n=1.0e-20 endif q=real(z12)+flip(n) t=atan2(q)/n a=@pow*(0.5*log(|z12|+|w2|)+t*flip(imag(z12))) b=@pow*(t*w2) z12=a w2=b w2=w2+p3 n=sqrt(imag(z12)^2+real(w2)^2+imag(w2)^2) if n==0.0 n=1.0e-20 endif x=exp(real(z12)) y=sin(n)/n a=x*cos(n)+x*y*flip(imag(z12)) b=x*y*w2 a=a+p4 b=b+p5 z12=@fn(a)+fn1(cz2) w2=b+cw2 z2=fn2(z12) ;------------------------------------------------------------------------------- n=sqrt(imag(z13)^2+real(w3)^2+imag(w3)^2) if n==0.0 n=1.0e-20 endif q=real(z13)+flip(n) t=atan2(q)/n a=@pow*(0.5*log(|z13|+|w3|)+t*flip(imag(z13))) b=@pow*(t*w3) z13=a w3=b w3=w3+p3 n=sqrt(imag(z13)^2+real(w3)^2+imag(w3)^2) if n==0.0 n=1.0e-20 endif x=exp(real(z13)) y=sin(n)/n a=x*cos(n)+x*y*flip(imag(z13)) b=x*y*w3 a=a+p4 b=b+p5 z13=@fn(a)+fn1(cz3) w3=b+cw3 z3=fn2(z13) ;------------------------------------------------------------------------------- if (@slope == true) ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if (@bailout < |z11|+|w1| || \ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif else z = z1 endif if ( @bailout < |z11|+|w1|) ; we're done done = 0 endif endif Bailout: done>0 Default: title="SlopeQuatMandy" method=multipass periodicity=0 maxiter=250 center=(0.00001,0.00001) Heading caption="Mandelbrot Mode" visible=(@mode == 0) Endheading Heading caption="Julia Mode" visible=(@mode == 1) Endheading param mode caption="Mode" enum="Mandelbrot" "Julia" default=0 visible=false endparam param switchmode caption="Switch Mode" enum="Mandelbrot" "Julia" default=1 visible=false endparam param bailout caption="Bailout Value" default=64.0 min=0.0 endparam func fn2 caption="Function Flavor" default=ident() endfunc Heading caption="Slope Parameters" visible=@slope==true Endheading bool param slope caption="Apply slope?" default=true endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6)&&(@slope==true) endfunc param a caption="Polar Parameter 1" default=0.5 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84)&&(@slope==true) endparam param b caption="Polar Parameter 2" default=0.5 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82)&&(@slope==true) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81)&&(@slope==true) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84)&&(@slope==true) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58)&&(@slope==true) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75)&&(@slope==true) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Heading caption="Formula Parameters" Endheading param seed caption="Seed Value" default=(0.0,0.0) visible=(@mode=="Julia") endparam param pow caption="Power" default=(2.0,0.0) endparam param p1 caption="Parameter 1" default=(0.0,0.0) endparam param p3 caption="Parameter 2" default=(0.0,0.0) endparam param p4 caption="Parameter 3" default=(0.0,0.0) endparam param p5 caption="Parameter 4" default=(0.0,0.0) endparam param p2 caption="Julia Dimension" default=(0.0,0.0) visible=(@mode=="Julia") endparam param version caption="Version" default=1.1 visible=false endparam Heading caption="Functions" Endheading func fn caption="Function 1" default=ident() endfunc func fn1 caption="Function 2" default=ident() endfunc Switch: type="As-SlopeQuatMandy" @seed=pixel power=@power bailout=@bailout pow=@pow p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 fn=@fn fn1=@fn1 fn2=@fn2 mode=@switchmode switchmode=@mode version=@version slope=@slope offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl pow=@pow sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp } as-SlopeTMan { ;Variation of TMan of Russell Walsmith. ;Slope version based on the slope formulae of Ron Barnett and Gilles Nadeau. ;Andrea Spinozzi(March2006)-(v1.0) ;Version 1.1 fixed offset in slope Init: z1=z2=z3=0.0 z11=real(@startseed)*p1 z12=z11 z13=z11 z21=imag(@startseed)*p4 z22=z21 z23=z21 z31=0.0 z32=z31 z33=z31 c11=real(pixel)*p1 c12=c11+@offset c13=c11+flip(@offset) c21=imag(pixel)*p4 c22=c21+@offset c23=c21+flip(@offset) c31=p2 c32=c31 c33=c31 if (@mode=="Julia") z11=real(pixel)*p1 z12=z11+@offset z13=z11+flip(@offset) z21=imag(pixel)*p4 z22=z21+@offset z23=z21+flip(@offset) z31=p3 z32=z31 z33=z31 c11=real(@startseed)*p1 c12=c11 c13=c11 c21=imag(@startseed)*p4 c22=c21 c23=c21 c31=p2 c32=c31 c33=c31 endif if (@version==1.1) z11=real(@startseed)*p1 z12=real(@startseed)*p1 z13=real(@startseed)*p1 z21=imag(@startseed)*p4 z22=imag(@startseed)*p4 z23=imag(@startseed)*p4 z31=0.0 z32=0.0 z33=0.0 c11=real(#pixel)*p1 c12=real(#pixel+@offset)*p1 c13=real(#pixel+flip(@offset))*p1 c21=imag(#pixel)*p4 c22=imag(#pixel+@offset)*p4 c23=imag(#pixel+flip(@offset))*p4 c31=p2 c32=p2 c33=p2 if (@mode=="Julia") z11=real(#pixel)*p1 z12=real(#pixel+@offset)*p1 z13=real(#pixel+flip(@offset))*p1 z21=imag(#pixel)*p4 z22=imag(#pixel+@offset)*p4 z23=imag(#pixel+flip(@offset))*p4 z31=p3 z32=p3 z33=p3 c11=real(@startseed)*p1 c12=real(@startseed)*p1 c13=real(@startseed)*p1 c21=imag(@startseed)*p4 c22=imag(@startseed)*p4 c23=imag(@startseed)*p4 c31=p2 c32=p2 c33=p2 endif endif ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 Loop: t11 = z11 ^ 2 + 2 * z21 * z31 t12 = z12 ^ 2 + 2 * z22 * z32 t13 = z13 ^ 2 + 2 * z23 * z33 t21 = z31 ^ 2 + 2 * z11 * z21 t22 = z32 ^ 2 + 2 * z12 * z22 t23 = z33 ^ 2 + 2 * z13 * z23 t31 = z21 ^ 2 + 2 * z31 * z11 t32 = z22 ^ 2 + 2 * z32 * z12 t33 = z23 ^ 2 + 2 * z33 * z13 if (@method==0) z11 = fn1(t11 * @p5) + c11 z12 = fn1(t12 * @p5) + c12 z13 = fn1(t13 * @p5) + c13 z21 = fn2(t21 * @p5) - c21 ^ 2 z22 = fn2(t22 * @p5) - c22 ^ 2 z23 = fn2(t23 * @p5) - c23 ^ 2 z31 = fn3(t31 * @p5) + c31 z32 = fn3(t32 * @p5) + c32 z33 = fn3(t33 * @p5) + c33 elseif(@method==1) z11 = fn1(t11 * @p5) + c11 z12 = fn1(t12 * @p5) + c12 z13 = fn1(t13 * @p5) + c13 z21 = fn2(t21 * @p5) + c21 z22 = fn2(t22 * @p5) + c22 z23 = fn2(t23 * @p5) + c23 z31 = fn3(t31 * @p5) + c31 z32 = fn3(t32 * @p5) + c32 z33 = fn3(t33 * @p5) + c33 elseif(@method==2) z11 = fn1(t11 * @p5) + c11 z12 = fn1(t12 * @p5) + c12 z13 = fn1(t13 * @p5) + c13 z21 = fn2(t21 * @p5) + c21 ^2 z22 = fn2(t22 * @p5) + c22 ^2 z23 = fn2(t23 * @p5) + c23 ^2 z31 = fn3(t31 * @p5) + c31 z32 = fn3(t32 * @p5) + c32 z33 = fn3(t33 * @p5) + c33 elseif(@method==3) z11 = fn1(t11 * @p5) - c11 * c11 z12 = fn1(t12 * @p5) - c12 * c12 z13 = fn1(t13 * @p5) - c13 * c13 z21 = fn2(t21 * @p5) - c21 * c21 z22 = fn2(t22 * @p5) - c22 * c22 z23 = fn2(t23 * @p5) - c23 * c23 z31 = fn3(t31 * @p5) - c31 * c31 z32 = fn3(t32 * @p5) - c32 * c32 z33 = fn3(t33 * @p5) - c33 * c33 endif if (@flavor==0) z1 = z11 + z21 z2 = z12 + z22 z3 = z13 + z23 elseif (@flavor==1) z1 = z11 - z21 z2 = z12 - z22 z3 = z13 - z23 elseif (@flavor==2) z1 = z11 + flip(z21) z2 = z12 + flip(z22) z3 = z13 + flip(z23) elseif (@flavor==3) z1 = z11 - flip(z21) z2 = z12 - flip(z22) z3 = z13 - flip(z23) endif if (@slope == true) ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if ( @bailout < |z11|+|z21|+|z31| ||\ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif else z = z1 endif if ( @bailout < |z11|+|z21|+|z31| ) ; we're done done = 0 endif Bailout: done > 0 Default: title="SlopeTMan" method=multipass periodicity=0 maxiter=500 param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 visible=false endparam param switchmode caption="Current Mode" enum="Mandelbrot""Julia" default=1 visible=false endparam Heading caption="Mandelbrot Mode" visible=(@mode=="Mandelbrot") Endheading Heading caption="Julia Mode" visible=(@mode=="Julia") Endheading param startseed caption="Start Z/Seed" default=(0.0,0.0) endparam param bailout caption="Bailout" default=128.0 min=0.0 endparam param flavor caption="Flavor" enum="z=z1+z2""z=z1-z2""z=z1+flip(z2)""z=z1-flip(z2)" default=2 endparam Heading caption="Slope Parameters" visible=@slope==true Endheading bool param slope caption="Apply slope?" default=true endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6)&&(@slope==true) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84)&&(@slope==true) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82)&&(@slope==true) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81)&&(@slope==true) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84)&&(@slope==true) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58)&&(@slope==true) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75)&&(@slope==true) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Heading caption="Formula Parameters" Endheading param method caption="Formula Variation" enum="1""2""3""4" default=0 endparam param p2 caption="Parameter 1" default=(0.0,0.0) endparam param p3 caption="Parameter 2" default=(0.0,0.0) visible=(@mode=="Julia") endparam param p5 caption="Multiply" default=(1.0,0.0) endparam param p1 caption="Rotation 1" default=(1.0,0.0) endparam param p4 caption="Rotation 2" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc param version caption="Formula Version" default=1.1 visible=false endparam Switch: type="as-SlopeTMan" bailout=@bailout flavor=@flavor method=@method startseed=pixel p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 fn1=@fn1 fn2=@fn2 fn3=@fn3 version=@version mode=@switchmode switchmode=@mode slope=@slope offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp } SpiraBrot { ;Andrea Spinozzi(Oct2003) Init: z=@startSeed c=#pixel complex a=(1.0,0.0) x=(0.0,0.0) y=(0.0,0.0) w=(0.0,0.0) j=(0.0,0.0) k=(0.0,0.0) if @mode=="Mandelbrot" z=@StartSeed c=#pixel elseif @mode=="Julia" z=#pixel c=@StartSeed if @scale != 1.0 z=z/@scale endif if @center != (0,0) z=z+@center endif endif Loop: if @oper==false x=fn4(@fn5(cos(c-cotan(c)*z))) y=fn1(cabs(z)*cabs(c))*(z)/(p2^p2) w=fn3(@fn7(sin(c))*(p1^p1)) j=p5*fn2(exp(sqrt(a))*cos(z)*(p5^p5)) k=@fn6(c*p4)*sqr(z/p3)+@fn8(c) elseif @oper==true x=fn4(@fn5(cos(c-(c)*z))) y=fn1((z)*(c))*(z)/(p2^p2) w=fn3(@fn7((c))*(p1^p1)) j=p5*fn2(((a))*(z)*(p5^p5)) k=@fn6(c*p4)*(z/p3)+@fn8(c) endif ;---------------------------------- if @op=="1" if @op1=="+" z=sqrt((x^j*y-w+k)*c+z) elseif @op1=="-" z=sqrt((x^j*y-w-k)*c+z) elseif @op1=="*" z=sqrt(sqrt(c)*(x*sqrt(c)+j+y+w)*c*z)*k endif elseif @op=="2" if @op1=="+" z=sqrt((x^j*y-w+k)*c-z) elseif @op1=="-" z=sqrt((x^j*y-w-k)*c-z) elseif @op1=="*" z=sqrt((x+j*y+w)*c*z)*k endif elseif @op=="3" if @op1=="+" z=sqrt((x^j*y-w+k)*c*z) elseif @op1=="-" z=sqrt((x^j*y-w-k)*c*z) elseif @op1=="*" z=sqrt((x-j^y-w)*c*z)*k endif elseif @op=="4" if @op1=="+" z=sqrt((x^j*y-w+k)*c) elseif @op1=="-" z=sqrt((x^j*y-w-k)*c) elseif @op1=="*" z=sqrt((x+j^y-w)*c*z)*k endif endif Bailout: |z|<@bailout Default: title="SpiraBrot" center=(0.0,0.0) magn=1.5 angle=90 maxiter=250 method=multipass periodicity=0 param bailout caption="Bailout Value" default=4.0 min=0.0 endparam param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 endparam param SwitchMode caption="Select Switch" enum="Mandelbrot""Julia" default=1 endparam Heading caption="Switch Parameters" visible=@show endheading param @show caption="Show Switch Parameters" default=false endparam param swscale caption="Magnification" default=1.2 visible=@show endparam param swcenter caption="Switch Center" default=(0.0,0.0) visible=@show endparam param scale caption="Magnification Reset" default=1.0 visible=@show endparam param center caption="Center Reset" default=(0.0,0.0) visible=@show endparam Heading caption="Operators and Parameters" endheading param StartSeed caption="Start/Seed" default=(-0.1083333333,-6.550388126e-21) endparam param oper caption="Change Brot" default=false endparam param op caption="Operator 1" enum="1""2""3""4" default=0 endparam param op1 caption="Operator 2" enum="+""-""*" default=0 endparam param p1 caption="Parameter 1" default=(0.0,0.0) endparam param p2 caption="Parameter 2" default=(0.5,0.0) endparam param p3 caption="Parameter 3" default=(0.5,0.0) endparam param p4 caption="Parameter 4" default=(0.5,0.0) endparam param p5 caption="Parameter 5" default=(0.5,0.0) endparam Heading caption="Functions" endheading Func fn1 caption="Function 1" default=ident() endfunc Func fn2 caption="Function 2" default=ident() endfunc Func fn3 caption="Function 3" default=sqrt() endfunc Func fn4 caption="Function 4" default=sqrt() endfunc Func fn5 caption="Function 5" default=sqrt() endfunc Func fn6 caption="Function 6" default=sqrt() endfunc Func fn7 caption="Function 7" default=sqrt() endfunc Func fn8 caption="Function 8" default=sqrt() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="SpiraBrot" bailout=@bailout startseed=#pixel oper=@oper op=@op op1=@op1 p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 fn8=@fn8 mode=@switchmode switchmode=@mode center=@swcenter scale=@swscale version=@version } SpiralJazz { ;Toby Marshall and Andrea Spinozzi. ;July2005.v 1.8 Init: z=@startseed c=pixel z0=(0.0,0.0) z1=(0.0,0.0) z2=(0.0,0.0) z3=(0.0,0.0) z4=(0.0,0.0) z5=(0.0,0.0) z6=(0.0,0.0) riz = (0.0,0.0) x=(0.0,0.0) complex imz = @imz*(0,1) complex imagz = @imagz*(0,1) if @mode2=="Mandelbrot" z=@startseed c=#pixel endif if @mode2=="Julia" z=pixel c=@startseed if @scale!=1.0 z = z/@scale endif if @center!=(0.0,0.0) z=z+@center endif endif Loop: if @type == false if @zprime == 0 z0 = real(@fnreal(z-@realz))+flip(imag(@fnimag(z-imagz))) elseif @zprime == 1 z0 = real(@fnreal(z-@realz))-flip(imag(@fnimag(z-imagz))) elseif @zprime == 2 z0 = flip(imag(@fnimag(z-imagz)))-real(@fnreal(z-@realz)) endif else if @zprime == 0 z0 = @fnreal(real(z-@realz))+@fnimag(flip(imag(z-imagz))) elseif @zprime == 1 z0 = @fnreal(real(z-@realz))-@fnimag(flip(imag(z-imagz))) elseif @zprime == 2 z0 = @fnimag(flip(imag(z-imagz)))-@fnreal(real(z-@realz)) endif endif if (@version==1.6) if @select==0; ---------------------SELECT VARIABLES z0 = @fnz(z0-@z1)*@ez1 elseif @select==1 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) elseif @select==2 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) elseif @select==3 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) elseif @select==4 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) elseif @select==5 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) elseif @select==6 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) elseif @select==7 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) elseif @select==8 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) elseif @select==9 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) elseif @select==10 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) elseif @select==11 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) elseif @select==12 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) elseif @select==13 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) elseif @select==14 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) elseif @select==15 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) elseif @select==16 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) elseif @select==17 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) elseif @select==18 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) elseif @select==19 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) elseif @select==20 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) elseif @select==21 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1) elseif @select==22 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1) elseif @select==23 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1) elseif @select==24 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1) elseif @select==25 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1) elseif @select==26 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1) elseif @select==27 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1) elseif @select==28 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1) elseif @select==29 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) elseif @select==30 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) elseif @select==31 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) elseif @select==32 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) elseif @select==33 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) elseif @select==34 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) elseif @select==35 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) elseif @select==36 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) elseif @select==37; -------------SELECT VARIABLES REAL AND IMAG z0 = (@fnz(z0-@z1)*@ez1)+(real(z+@addz)^@exz*@muz+imag(z-@addz)^@exz1*@muz1) elseif @select==38 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==39 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==40 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==41 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==42 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==43 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==44 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==45 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==46 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==47 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==48 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==49 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==50 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==51 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==52 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==53 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==54 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==55 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==56 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==57 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==58 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==59 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==60 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==61 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==62 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==63 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==64 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==65 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==66 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==67 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==68 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==69 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==70 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==71 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==72 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==73 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==74 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==75 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==76 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==77 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==78 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==79 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==80 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==81 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==82 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==83 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==84 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==85 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==86 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==87 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==88 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==89 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==90 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==91 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==92 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==93 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==94 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==95 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==96 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==97 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==98 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==99 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==100 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==101 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==102 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==103 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==104 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==105 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==106 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==107 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==108 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==109 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==110 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==111 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==112 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==113 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==114 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==115 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==116 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==117 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==118 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==119 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==120 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==121 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==122 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==123 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==124 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==125 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==126 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==127 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==128 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==129 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==130 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==131 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==132 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==133 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==134 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==135 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==136 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==137 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==138 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==139 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==140 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==141 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==142 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==143 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==144 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==145 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==146 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==147 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==148 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==149 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==150 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==151 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==152 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==153 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==154 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==155 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==156 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==157 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==158 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==159 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==160 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==161 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==162 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==163 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==164 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==165 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==166 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==167 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==168 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==169 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==170 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==171 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==172 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==173 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==174 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==175 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==176 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==177 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==178 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==179 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==180 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==181 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==182 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==183 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==184 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==185 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==186 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==187 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==188 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==189 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==190 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==191 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==192 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==193 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==194 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==195 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==196 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==197 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==198 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==199 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==200 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==201 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==202 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==203 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==204 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==205 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==206 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==207 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==208 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==209 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==210 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==211 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==212 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==213 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==214 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==215 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==216 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==217 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==218 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==219 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==220 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==221 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==222 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==223 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==224 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==225 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==226 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==227 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==228 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==229 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==230 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==231 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==232 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==233 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==234 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==235 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==236 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==237 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==238 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==239 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==240 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==241 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==242 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==243 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==244 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==245 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==246 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==247 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==248 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==249 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==250 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==251 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==252 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==253 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==254 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==255 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==256 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==257 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==258 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==259 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==260 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==261 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==262 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==263 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==264 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==265 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==266 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==267 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==268 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==269 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==270 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==271 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==272 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==273 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==274 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==275 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==276 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==277 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==278 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==279 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==280 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==281 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==282 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==283 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==284 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==285 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==286 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==287 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==288 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==289 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==290 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==291 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==292 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==293 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==294 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==295 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==296 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==297 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==298 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==299 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==300 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==301 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==302 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==303 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==304 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==305 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==306 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==307 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==308 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==309 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==310 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==311 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==312 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==313 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==314 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==315 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==316 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==317 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==318 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==319 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==320 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==321 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==322 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==323 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==324 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==325 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==326 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==327 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==328 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==329 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==330 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==331 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==332 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==333 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==334 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==335 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==336 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==337 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==338 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==339 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==340 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==341 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==342 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==343 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==344 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==345 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==346 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==347 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==348 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==349 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==350 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==351 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==352 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==353 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==354 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==355 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==356 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==357 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==358 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==359 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==360 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==361 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==362 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==363 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==364 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==365 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==366 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==367 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==368 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==369 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==370 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==371 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==372 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==373 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==374 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==375 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==376 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==377 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==378 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==379 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==380 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==381 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==382 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==383 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==384 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==385 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==386 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==387 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==388 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==389 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==390 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==391 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==392 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) elseif @select==393 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/(real(z0+@addz)^@exz*@muz+imag(z0-@addz)^@exz1*@muz1) endif endif if (@version==1.7) if @select==0; ---------------------SELECT VARIABLES z0 = @fnz(z0-@z1)*@ez1 elseif @select==1 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) elseif @select==2 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) elseif @select==3 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) elseif @select==4 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) elseif @select==5 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) elseif @select==6 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) elseif @select==7 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) elseif @select==8 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) elseif @select==9 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) elseif @select==10 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) elseif @select==11 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) elseif @select==12 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) elseif @select==13 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) elseif @select==14 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) elseif @select==15 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) elseif @select==16 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) elseif @select==17 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) elseif @select==18 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) elseif @select==19 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) elseif @select==20 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) elseif @select==21 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1) elseif @select==22 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1) elseif @select==23 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1) elseif @select==24 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1) elseif @select==25 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1) elseif @select==26 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1) elseif @select==27 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1) elseif @select==28 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1) elseif @select==29 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) elseif @select==30 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) elseif @select==31 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) elseif @select==32 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) elseif @select==33 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) elseif @select==34 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) elseif @select==35 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) elseif @select==36 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) elseif @select==37; -------------SELECT VARIABLES REAL AND IMAG z0 = (@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==38 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==39 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==40 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==41 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==42 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==43 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==44 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==45 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==46 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==47 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==48 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==49 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==50 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==51 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==52 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==53 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==54 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==55 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==56 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==57 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==58 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==59 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==60 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==61 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==62 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==63 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==64 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==65 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==66 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==67 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==68 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==69 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==70 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==71 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==72 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==73 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==74 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==75 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==76 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==77 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==78 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==79 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==80 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==81 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==82 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==83 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==84 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==85 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==86 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==87 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==88 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==89 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==90 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==91 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==92 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==93 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==94 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==95 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==96 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==97 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==98 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==99 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==100 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==101 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==102 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==103 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==104 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==105 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==106 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==107 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==108 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==109 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==110 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==111 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==112 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==113 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==114 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==115 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==116 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==117 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==118 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==119 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==120 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==121 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==122 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==123 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==124 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==125 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==126 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==127 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==128 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==129 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==130 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==131 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==132 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==133 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==134 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==135 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==136 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==137 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==138 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==139 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==140 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==141 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==142 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==143 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==144 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==145 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==146 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==147 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==148 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==149 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==150 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==151 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==152 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==153 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==154 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==155 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==156 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==157 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==158 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==159 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==160 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==161 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==162 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==163 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==164 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==165 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==166 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==167 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==168 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==169 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==170 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==171 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==172 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==173 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==174 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==175 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==176 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==177 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==178 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==179 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==180 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==181 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==182 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==183 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==184 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==185 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==186 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==187 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==188 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==189 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==190 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==191 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==192 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==193 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==194 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==195 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==196 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==197 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==198 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==199 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==200 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==201 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==202 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==203 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==204 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==205 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==206 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==207 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==208 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==209 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==210 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==211 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==212 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==213 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==214 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==215 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==216 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==217 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==218 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==219 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==220 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==221 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==222 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==223 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==224 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==225 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==226 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==227 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==228 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==229 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==230 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==231 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==232 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==233 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==234 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==235 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==236 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==237 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==238 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==239 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==240 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==241 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==242 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==243 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==244 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==245 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==246 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==247 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==248 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==249 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==250 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==251 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==252 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==253 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==254 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==255 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==256 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==257 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==258 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==259 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==260 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==261 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==262 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==263 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==264 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==265 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==266 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==267 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==268 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==269 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==270 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==271 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==272 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==273 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==274 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==275 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==276 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==277 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==278 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==279 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==280 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==281 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==282 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==283 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==284 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==285 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==286 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==287 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==288 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==289 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==290 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==291 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==292 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==293 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==294 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==295 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==296 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==297 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==298 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==299 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==300 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==301 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==302 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==303 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==304 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==305 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==306 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==307 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==308 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==309 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==310 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==311 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==312 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==313 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==314 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==315 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==316 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==317 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==318 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==319 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==320 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==321 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==322 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==323 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==324 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==325 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==326 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==327 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==328 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==329 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==330 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==331 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==332 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==333 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==334 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==335 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==336 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==337 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==338 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==339 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==340 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==341 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==342 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==343 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==344 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==345 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==346 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==347 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==348 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==349 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==350 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==351 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==352 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==353 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==354 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==355 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==356 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==357 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==358 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==359 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==360 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==361 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==362 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==363 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==364 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==365 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==366 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==367 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==368 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==369 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==370 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==371 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==372 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==373 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==374 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==375 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==376 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==377 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==378 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==379 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==380 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==381 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==382 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==383 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==384 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==385 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==386 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==387 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==388 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==389 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==390 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==391 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==392 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif @select==393 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) endif endif if (@version==1.8) if (@selriz==0) riz = ((real(z0+@addz)*@muz)^@exz+(imag(z0+@addz)*@muz1)^@exz1) elseif (@selriz==1) riz = ((real(z0+@addz)*@muz)^@exz*(imag(z0+@addz)*@muz1)^@exz1) elseif (@selriz==2) riz = ((real(z0+@addz)*@muz)^@exz/(imag(z0+@addz)*@muz1)^@exz1) elseif (@selriz==3) riz = ((real(z0+@addz)*@muz)^@exz^(imag(z0+@addz)*@muz1)^@exz1) endif riz = ((riz+p6)*@p7)^@p8 if @select==0; ---------------------SELECT VARIABLES z0 = @fnz(z0-@z1)*@ez1 elseif @select==1 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) elseif @select==2 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) elseif @select==3 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) elseif @select==4 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) elseif @select==5 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) elseif @select==6 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) elseif @select==7 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) elseif @select==8 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) elseif @select==9 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) elseif @select==10 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) elseif @select==11 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) elseif @select==12 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) elseif @select==13 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) elseif @select==14 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) elseif @select==15 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) elseif @select==16 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) elseif @select==17 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) elseif @select==18 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) elseif @select==19 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) elseif @select==20 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) elseif @select==21 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1) elseif @select==22 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1) elseif @select==23 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1) elseif @select==24 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1) elseif @select==25 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1) elseif @select==26 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1) elseif @select==27 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1) elseif @select==28 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1) elseif @select==29 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) elseif @select==30 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) elseif @select==31 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) elseif @select==32 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) elseif @select==33 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1) z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1) elseif @select==34 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1) z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1) elseif @select==35 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1) z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1) elseif @select==36 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1) z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1) elseif @select==37; -------------SELECT VARIABLES REAL AND IMAG(riz) z0 = (@fnz(z0-@z1)*@ez1)+riz elseif @select==38 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==39 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==40 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==41 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==42 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==43 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==44 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==45 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==46 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==47 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==48 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==49 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==50 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==51 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==52 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==53 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==54 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==55 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==56 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==57 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==58 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz elseif @select==59 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz elseif @select==60 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz elseif @select==61 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz elseif @select==62 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz elseif @select==63 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz elseif @select==64 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz elseif @select==65 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz elseif @select==66 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==67 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==68 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==69 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==70 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==71 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==72 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==73 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==74 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==75 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==76 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==77 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==78 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==79 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==80 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==81 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==82 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==83 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==84 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==85 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==86 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==87 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==88 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==89 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==90 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz elseif @select==91 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz elseif @select==92 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz elseif @select==93 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz elseif @select==94 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz elseif @select==95 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz elseif @select==96 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz elseif @select==97 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz elseif @select==98 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==99 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==100 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==101 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==102 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==103 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==104 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==105 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==106 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==107 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==108 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==109 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==110 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==111 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==112 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==113 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==114 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==115 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==116 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==117 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==118 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==119 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==120 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==121 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==122 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz elseif @select==123 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz elseif @select==124 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz elseif @select==125 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz elseif @select==126 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz elseif @select==127 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz elseif @select==128 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz elseif @select==129 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz elseif @select==130 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==131 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==132 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==133 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==134 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==135 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==136 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==137 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==138 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==139 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==140 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==141 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==142 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==143 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==144 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==145 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==146 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==147 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==148 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==149 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==150 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==151 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==152 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==153 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==154 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz elseif @select==155 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz elseif @select==156 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz elseif @select==157 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz elseif @select==158 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz elseif @select==159 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz elseif @select==160 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz elseif @select==161 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz elseif @select==162 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==163 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==164 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==165 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==166 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==167 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==168 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==169 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==170 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==171 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==172 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==173 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==174 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==175 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==176 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==177 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==178 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==179 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==180 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==181 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==182 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==183 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==184 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==185 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==186 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz elseif @select==187 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz elseif @select==188 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz elseif @select==189 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz elseif @select==190 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz elseif @select==191 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz elseif @select==192 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz elseif @select==193 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz elseif @select==194 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==195 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==196 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==197 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==198 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==199 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==200 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==201 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==202 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==203 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==204 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==205 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==206 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==207 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==208 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==209 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==210 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==211 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==212 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==213 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==214 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==215 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==216 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==217 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==218 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz elseif @select==219 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz elseif @select==220 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz elseif @select==221 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz elseif @select==222 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz elseif @select==223 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz elseif @select==224 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz elseif @select==225 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz elseif @select==226 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==227 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==228 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==229 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==230 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==231 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==232 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==233 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==234 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==235 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==236 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==237 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==238 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==239 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==240 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==241 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==242 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==243 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==244 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==245 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==246 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==247 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==248 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==249 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==250 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz elseif @select==251 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz elseif @select==252 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz elseif @select==253 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz elseif @select==254 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz elseif @select==255 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz elseif @select==256 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz elseif @select==257 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz elseif @select==258 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==259 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==260 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==261 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==262 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==263 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==264 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==265 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==266 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==267 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==268 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==269 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==270 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==271 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==272 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==273 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==274 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==275 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==276 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==277 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==278 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==279 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==280 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==281 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==282 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz elseif @select==283 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz elseif @select==284 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz elseif @select==285 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz elseif @select==286 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz elseif @select==287 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz elseif @select==288 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz elseif @select==289 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz elseif @select==290 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==291 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==292 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==293 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==294 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==295 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==296 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==297 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==298 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==299 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==300 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==301 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==302 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==303 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==304 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==305 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==306 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==307 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==308 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==309 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==310 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==311 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==312 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==313 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==314 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz elseif @select==315 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz elseif @select==316 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz elseif @select==317 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz elseif @select==318 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz elseif @select==319 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz elseif @select==320 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz elseif @select==321 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz elseif @select==322 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==323 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==324 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==325 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==326 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==327 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==328 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==329 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==330 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==331 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==332 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==333 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==334 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==335 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==336 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==337 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==338 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==339 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==340 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==341 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==342 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==343 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==344 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==345 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==346 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz elseif @select==347 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz elseif @select==348 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz elseif @select==349 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz elseif @select==350 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz elseif @select==351 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz elseif @select==352 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz elseif @select==353 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz elseif @select==354 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==355 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==356 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==357 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==358 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==359 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==360 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==361 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==362 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==363 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==364 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==365 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==366 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==367 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==368 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==369 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==370 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==371 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==372 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==373 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==374 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==375 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==376 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==377 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==378 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz elseif @select==379 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz elseif @select==380 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz elseif @select==381 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz elseif @select==382 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz elseif @select==383 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz elseif @select==384 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz elseif @select==385 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz elseif @select==386 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==387 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==388 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==389 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==390 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==391 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==392 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==393 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==394 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==395 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==396 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==397 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==398 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==399 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==400 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==401 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==402 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==403 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==404 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==405 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==406 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==407 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==408 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==409 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==410 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz elseif @select==411 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz elseif @select==412 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz elseif @select==413 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz elseif @select==414 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz elseif @select==415 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz elseif @select==416 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz elseif @select==417 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz elseif @select==418 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==419 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==420 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==421 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==422 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==423 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==424 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==425 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==426 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==427 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==428 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==429 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==430 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==431 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==432 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==433 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==434 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==435 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==436 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==437 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==438 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==439 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==440 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==441 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==442 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz elseif @select==443 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz elseif @select==444 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz elseif @select==445 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz elseif @select==446 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz elseif @select==447 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz elseif @select==448 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz elseif @select==449 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz elseif @select==450 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==451 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==452 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==453 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==454 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==455 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==456 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==457 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==458 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==459 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==460 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==461 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==462 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==463 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==464 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==465 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==466 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==467 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==468 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==469 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==470 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==471 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==472 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==473 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==474 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz elseif @select==475 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz elseif @select==476 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz elseif @select==477 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz elseif @select==478 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz elseif @select==479 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz elseif @select==480 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz elseif @select==481 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz elseif @select==482 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==483 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==484 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==485 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==486 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==487 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==488 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==489 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==490 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==491 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==492 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==493 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==494 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==495 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==496 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==497 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==498 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==499 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==500 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==501 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==502 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==503 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==504 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==505 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==506 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz elseif @select==507 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz elseif @select==508 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz elseif @select==509 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz elseif @select==510 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz elseif @select==511 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz elseif @select==512 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz elseif @select==513 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz elseif @select==514 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==515 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==516 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==517 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==518 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==519 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==520 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==521 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==522 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==523 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==524 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==525 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==526 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==527 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==528 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==529 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==530 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==531 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==532 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==533 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==534 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==535 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==536 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==537 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==538 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz elseif @select==539 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz elseif @select==540 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz elseif @select==541 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz elseif @select==542 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz elseif @select==543 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz elseif @select==544 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz elseif @select==545 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz elseif @select==546 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==547 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==548 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==549 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==550 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==551 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==552 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==553 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==554 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==555 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==556 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==557 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==558 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==559 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==560 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==561 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==562 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==563 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==564 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==565 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==566 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==567 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==568 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==569 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==570 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz elseif @select==571 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz elseif @select==572 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz elseif @select==573 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz elseif @select==574 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz elseif @select==575 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz elseif @select==576 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz elseif @select==577 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz elseif @select==578 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==579 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==580 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==581 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==582 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==583 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==584 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==585 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz elseif @select==586 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==587 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==588 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==589 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==590 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==591 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==592 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==593 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==594 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==595 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==596 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==597 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==598 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==599 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==600 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==601 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==602 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz elseif @select==603 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz elseif @select==604 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz elseif @select==605 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz elseif @select==606 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz elseif @select==607 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz elseif @select==608 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz elseif @select==609 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz elseif @select==610 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==611 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==612 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==613 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==614 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==615 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==616 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==617 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz elseif @select==618 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==619 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==620 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==621 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==622 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==623 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==624 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==625 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==626 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==627 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==628 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==629 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==630 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==631 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==632 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==633 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==634 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz elseif @select==635 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz elseif @select==636 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz elseif @select==637 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz elseif @select==638 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz elseif @select==639 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz elseif @select==640 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz elseif @select==641 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz elseif @select==642 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==643 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==644 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==645 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==646 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==647 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==648 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==649 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz elseif @select==650 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==651 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==652 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==653 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==654 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==655 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==656 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==657 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==658 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==659 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==660 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==661 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==662 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==663 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==664 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==665 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==666 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz elseif @select==667 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz elseif @select==668 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz elseif @select==669 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz elseif @select==670 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz elseif @select==671 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz elseif @select==672 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz elseif @select==673 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz elseif @select==674 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==675 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==676 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==677 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==678 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==679 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==680 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==681 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz elseif @select==682 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==683 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==684 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==685 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==686 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==687 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==688 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==689 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==690 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==691 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==692 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==693 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==694 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==695 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==696 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==697 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==698 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz elseif @select==699 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz elseif @select==700 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz elseif @select==701 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz elseif @select==702 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz elseif @select==703 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz elseif @select==704 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz elseif @select==705 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz elseif @select==706 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==707 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==708 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==709 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==710 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==711 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==712 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==713 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==714 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==715 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==716 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==717 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==718 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==719 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==720 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==721 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==722 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==723 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==724 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==725 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==726 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==727 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==728 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==729 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==730 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz elseif @select==731 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz elseif @select==732 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz elseif @select==733 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz elseif @select==734 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz elseif @select==735 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz elseif @select==736 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz elseif @select==737 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)+riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz elseif @select==738 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==739 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==740 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==741 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==742 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==743 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==744 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==745 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)+riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==746 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==747 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==748 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==749 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==750 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==751 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==752 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==753 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==754 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==755 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==756 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==757 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==758 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==759 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==760 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==761 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==762 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz elseif @select==763 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz elseif @select==764 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz elseif @select==765 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz elseif @select==766 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz elseif @select==767 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz elseif @select==768 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz elseif @select==769 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)-riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz elseif @select==770 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==771 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==772 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==773 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==774 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==775 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==776 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==777 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)-riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==778 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==779 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==780 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==781 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==782 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==783 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==784 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==785 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==786 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==787 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==788 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==789 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==790 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==791 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==792 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==793 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==794 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz elseif @select==795 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz elseif @select==796 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz elseif @select==797 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz elseif @select==798 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz elseif @select==799 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz elseif @select==800 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz elseif @select==801 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)*riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz elseif @select==802 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==803 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==804 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==805 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==806 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==807 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==808 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==809 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)*riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==810 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==811 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==812 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==813 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==814 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==815 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==816 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==817 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==818 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==819 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==820 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==821 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==822 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==823 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==824 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==825 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==826 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz elseif @select==827 z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz elseif @select==828 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz elseif @select==829 z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz elseif @select==830 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz elseif @select==831 z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz elseif @select==832 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)^riz elseif @select==833 z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)/riz z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)^riz elseif @select==834 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==835 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==836 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==837 z0 = (@fnc(c-@c1)*@cm1^@ec1)-(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==838 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)+(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==839 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)-(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==840 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)*(@fnc(c-@c1)*@cm1^@ec1)^riz elseif @select==841 z0 = (@fnc(c-@c1)*@cm1^@ec1)/(@fnz(z0-@z1)*@ez1)/riz z0 = (@fnz(z0-@z1)*@ez1)/(@fnc(c-@c1)*@cm1^@ec1)^riz endif endif if (@zsplit==false) if (@selform==0) ; Normal z0 = z0 elseif (@selform==1) ; Mandelbrot z0 = z0^2+c elseif (@selform==2) ; Barnsley if real(z0) > 0 z0 = (z0-1)*c else z0 = (z0+1)*c endif elseif (@selform==3) ; Ikenaga Modified z0 = z0^3+z0*(c-1)*c elseif (@selform==4) ; Ikenaga Original z0 = z0*z0*z0+z0*c-z0-c endif if (@version<1.8) z0 = real(z0+(z+@addz1)*@muz0*0)^@exz2+flip(imag(z0+(z+@addz1)*@muz01*0)^@exz3)*@muz02 z0 = ((z0+p5)*p4)^p3 else z0 = real(z0+(z+@addz1)*@muz0)^@exz2+flip(imag(z0+(z+@addz1)*@muz01)^@exz3)*@muz02 z0 = ((z0+p5)*p4)^p3 endif endif if @mode1 == "1"; R/I combination Z1 if @op5=="+"; Z1 param operator z1 = (@fna(real(z0-@rez)*@rzm)+p1)+(@fnb(imag(z0-imz)*@izm)+p1) elseif @op5=="-" z1 = (@fna(real(z0-@rez)*@rzm)-p1)+(@fnb(imag(z0-imz)*@izm)+p1) elseif @op5=="*" z1 = (@fna(real(z0-@rez)*@rzm)*p1)+(@fnb(imag(z0-imz)*@izm)+p1) elseif @op5=="/" z1 = (@fna(real(z0-@rez)*@rzm)/p1)+(@fnb(imag(z0-imz)*@izm)+p1) endif elseif @mode1 == "2" if @op5=="+" z1 = (@fna(real(z0-@rez)*@rzm)+p1)-(@fnb(imag(z0-imz)*@izm)+p1) elseif @op5=="-" z1 = (@fna(real(z0-@rez)*@rzm)-p1)-(@fnb(imag(z0-imz)*@izm)+p1) elseif @op5=="*" z1 = (@fna(real(z0-@rez)*@rzm)*p1)-(@fnb(imag(z0-imz)*@izm)+p1) elseif @op5=="/" z1 = (@fna(real(z0-@rez)*@rzm)/p1)-(@fnb(imag(z0-imz)*@izm)+p1) endif elseif @mode1 == "3" if @op5=="+" z1 = (@fna(real(z0-@rez)*@rzm)+p1)*(@fnb(imag(z0-imz)*@izm)+p1) elseif @op5=="-" z1 = (@fna(real(z0-@rez)*@rzm)-p1)*(@fnb(imag(z0-imz)*@izm)+p1) elseif @op5=="*" z1 = (@fna(real(z0-@rez)*@rzm)*p1)*(@fnb(imag(z0-imz)*@izm)+p1) elseif @op5=="/" z1 = (@fna(real(z0-@rez)*@rzm)/p1)*(@fnb(imag(z0-imz)*@izm)+p1) endif elseif @mode1 == "4" if @op5=="+" z1 = (@fna(real(z0-@rez)*@rzm)+p1)/(@fnb(imag(z0-imz)*@izm)+p1) elseif @op5=="-" z1 = (@fna(real(z0-@rez)*@rzm)-p1)/(@fnb(imag(z0-imz)*@izm)+p1) elseif @op5=="*" z1 = (@fna(real(z0-@rez)*@rzm)*p1)/(@fnb(imag(z0-imz)*@izm)+p1) elseif @op5=="/" z1 = (@fna(real(z0-@rez)*@rzm)/p1)/(@fnb(imag(z0-imz)*@izm)+p1) endif elseif @mode1 == "5" if @op5=="+" z1 = (@fnb(imag(z0-imz)*@izm)+p1)-(@fna(real(z0-@rez)*@rzm)+p1) elseif @op5=="-" z1 = (@fnb(imag(z0-imz)*@izm)-p1)-(@fna(real(z0-@rez)*@rzm)+p1) elseif @op5=="*" z1 = (@fnb(imag(z0-imz)*@izm)*p1)-(@fna(real(z0-@rez)*@rzm)+p1) elseif @op5=="/" z1 = (@fnb(imag(z0-imz)*@izm)/p1)-(@fna(real(z0-@rez)*@rzm)+p1) endif elseif @mode1 == "6" if @op5=="+" z1 = (@fnb(imag(z0-imz)*@izm)+p1)/(@fna(real(z0-@rez)*@rzm)+p1) elseif @op5=="-" z1 = (@fnb(imag(z0-imz)*@izm)-p1)/(@fna(real(z0-@rez)*@rzm)+p1) elseif @op5=="*" z1 = (@fnb(imag(z0-imz)*@izm)*p1)/(@fna(real(z0-@rez)*@rzm)+p1) elseif @op5=="/" z1 = (@fnb(imag(z0-imz)*@izm)/p1)/(@fna(real(z0-@rez)*@rzm)+p1) endif endif if @op2 == "1"; Z2 operator z2 = @fn4(z0-@z2)*@zm2+fn2((c-@c2)*@cm2)^@ec2 elseif @op2 == "2" z2 = @fn4(z0-@z2)*@zm2-fn2((c-@c2)*@cm2)^@ec2 elseif @op2 == "3" z2 = @fn4(z0-@z2)*@zm2*fn2((c-@c2)*@cm2)^@ec2 elseif @op2 == "4" z2 = @fn4(z0-@z2)*@zm2/fn2((c-@c2)*@cm2)^@ec2 elseif @op2 == "5" z2 = fn2((c-@c2)*@cm2)^@ec2-@fn4(z0-@z2)*@zm2 elseif @op2 == "6" z2 = fn2((c-@c2)*@cm2)^@ec2/@fn4(z0-@z2)*@zm2 endif if @op3 == "1"; Z3 operator z3 = @fn5(z0-@z3)/@zm3+fn3((c-@c3)*@cm3)^@ec3 elseif @op3 == "2" z3 = @fn5(z0-@z3)/@zm3-fn3((c-@c3)*@cm3)^@ec3 elseif @op3 == "3" z3 = @fn5(z0-@z3)/@zm3*fn3((c-@c3)*@cm3)^@ec3 elseif @op3 == "4" z3 = @fn5(z0-@z3)/@zm3/fn3((c-@c3)*@cm3)^@ec3 elseif @op3 == "5" z3 = fn3((c-@c3)*@cm3)^@ec3-@fn5(z0-@z3)/@zm3 elseif @op3 == "6" z3 = fn3((c-@c3)*@cm3)^@ec3/@fn5(z0-@z3)/@zm3 endif if @opfn1==0; Z4 Operator z4 = (p2)+fn1(c) elseif @opfn1==1 z4 = (p2)-fn1(c) elseif @opfn1==2 z4 = (p2)*fn1(c) elseif @opfn1==3 z4 = (p2)/fn1(c) elseif @opfn1==4 z4 = fn1(c)-p2 elseif @opfn1==5 z4 = fn1(c)/p2 endif if @pz1 == "1"; Z1\Z2 Operator x = z1+z2 elseif @pz1 == "2" x = z1-z2 elseif @pz1 == "3" x = z2-z1 elseif @pz1 == "4" x = z1*z2 elseif @pz1 == "5" x = z1/z2 elseif @pz1 == "6" x = z2/z1 endif if @op1==0; Z5 Operator z5 = @fn6(x)+z3 elseif @op1==1 z5 = @fn6(x)-z3 elseif @op1==2 z5 = @fn6(x)*z3 elseif @op1==3 z5 = @fn6(x)/z3 elseif @op1==4 z5 = z3-@fn6(x) elseif @op1==5 z5 = z3/@fn6(x) endif if @opz6=="1"; Z6 Operator z6 = (@fn9(c^@ec6)*@fn7(z0+@z6))+@fn8(z4^@ez4) elseif @opz6=="2" z6 = (@fn9(c^@ec6)*@fn7(z0+@z6))-@fn8(z4^@ez4) elseif @opz6=="3" z6 = (@fn9(c^@ec6)*@fn7(z0+@z6))*@fn8(z4^@ez4) elseif @opz6=="4" z6 = (@fn9(c^@ec6)*@fn7(z0+@z6))/@fn8(z4^@ez4) elseif @opz6=="5" z6 = @fn8(z4^@ez4)-(@fn9(c^@ec6)*@fn7(z0+@z6)) elseif @opz6=="6" z6 = @fn8(z4^@ez4)/(@fn9(c^@ec6)*@fn7(z0+@z6)) endif if @final == "1" z = z5+z6 elseif @final == "2" z = z5-z6 elseif @final == "3" z = z5*z6 elseif @final == "4" z = z5/z6 elseif @final == "5" z = z6-z5 elseif @final == "6" z = z6/z5 endif if (@zsplit==true) if (@selform==0) ; Normal z = z elseif (@selform==1) ; Mandelbrot z = z^2+c elseif (@selform==2) ; Barnsley if real(z) > 0 z = (z-1)*c else z = (z+1)*c endif elseif (@selform==3) ; Ikenaga Modified z = z^3+z*(c-1)*c elseif (@selform==4) ; Ikenaga Original z = z*z*z+z*c-z-c endif if (@version<1.8) z = real(z+(z0+@addz1)*@muz0*0)^@exz2+flip(imag(z+(z0+@addz1)*@muz01*0)^@exz3)*@muz02 z = ((z+p5)*p4)^p3 else z = real(z+(z0+@addz1)*@muz0)^@exz2+flip(imag(z+(z0+@addz1)*@muz01)^@exz3)*@muz02 z = ((z+p5)*p4)^p3 endif endif Bailout: |z|<=@bailout Default: title = "Spiral Jazz" center=(0.0,0.0) angle=90.0 magn=0.8 maxiter=250 method=multipass periodicity=0 Heading caption = "Switch Parameters" visible = @show Endheading param mode2 caption = "Current Mode" enum = "Mandelbrot""Julia" default = 0 endparam param SwitchMode caption = "Select Switch" enum = "Mandelbrot""Julia" default = 1 endparam param @show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show endparam complex param swcenter caption = "Switch Center" default = (0.0,0.0) visible = @show endparam float param scale caption = "Scale Reset" default = 1.0 visible = @show endparam complex param center caption = "Center Reset" default = (0.0,0.0) visible = @show endparam Heading caption="Bailout" Endheading float param bailout caption="Bailout Value" default=64.0 min=0.0 endparam Heading caption="General Parameters" Endheading complex param startseed caption = "Start/Seed" default = (0.5,0.0) endparam int param zprime caption = "Change Operator" enum = "Normal""Var 1""Var 2" default = 0 endparam bool param type caption = "Change R/I Fn Flavor" default = false hint = "Effective only with certain Real and Imag Function choices" endparam func fnreal caption = "Real Function" default = ident() endfunc func fnimag caption = "Imag Function" default = ident() endfunc float param realz caption = "Real Offset" default = 0 endparam float param imagz caption = "Imag Offset" default = 0 endparam param select caption = "Z Mode" enum = "1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16""17""18""19"\ "20""21""22""23""24""25""26""27""28""29""30""31""32""33""34""35""36""37""38(Starting Re|Im)""39"\ "40""41""42""43""44""45""46""47""48""49""50""51""52""53""54""55""56""57""58""59"\ "60""61""62""63""64""65""66""67""68""69""70""71""72""73""74""75""76""77""78""79"\ "80""81""82""83""84""85""86""87""88""89""90""91""92""93""94""95""96""97""98""99"\ "100""101""102""103""104""105""106""107""108""109""110""111""112""113""114""115""116""117""118""119"\ "120""121""122""123""124""125""126""127""128""129""130""131""132""133""134""135""136""137""138""139"\ "140""141""142""143""144""145""146""147""148""149""150""151""152""153""154""155""156""157""158""159"\ "160""161""162""163""164""165""166""167""168""169""170""171""172""173""174""175""176""177""178""179"\ "180""181""182""183""184""185""186""187""188""189""190""191""192""193""194""195""196""197""198""199"\ "200""201""202""203""204""205""206""207""208""209""210""211""212""213""214""215""216""217""218""219"\ "220""221""222""223""224""225""226""227""228""229""230""231""232""233""234""235""236""237""238""239"\ "240""241""242""243""244""245""246""247""248""249""250""251""252""253""254""255""256""257""258""259"\ "260""261""262""263""264""265""266""267""268""269""270""271""272""273""274""275""276""277""278""279"\ "280""281""282""283""284""285""286""287""288""289""290""291""292""293""294""295""296""297""298""299"\ "300""301""302""303""304""305""306""307""308""309""310""311""312""313""314""315""316""317""318""319"\ "320""321""322""323""324""325""326""327""328""329""330""331""332""333""334""335""336""337""338""339"\ "340""341""342""343""344""345""346""347""348""349""350""351""352""353""354""355""356""357""358""359"\ "360""361""362""363""364""365""366""367""368""369""370""371""372""373""374""375""376""377""378""379"\ "380""381""382""383""384""385""386""387""388""389""390""391""392""393""394""395""396""397""398""399"\ "400""401""402""403""404""405""406""407""408""409""410""411""412""413""414""415""416""417""418""419"\ "420""421""422""423""424""425""426""427""428""429""430""431""432""433""434""435""436""437""438""439"\ "440""441""442""443""444""445""446""447""448""449""450""451""452""453""454""455""456""457""458""459"\ "460""461""462""463""464""465""466""467""468""469""470""471""472""473""474""475""476""477""478""479"\ "480""481""482""483""484""485""486""487""488""489""490""491""492""493""494""495""496""497""498""499"\ "500""501""502""503""504""505""506""507""508""509""510""511""512""513""514""515""516""517""518""519"\ "520""521""522""523""524""525""526""527""528""529""530""531""532""533""534""535""536""537""538""539"\ "540""541""542""543""544""545""546""547""548""549""550""551""552""553""554""555""556""557""558""559"\ "560""561""562""563""564""565""566""567""568""569""570""571""572""573""574""575""576""577""578""579"\ "580""581""582""583""584""585""586""587""588""589""590""591""592""593""594""595""596""597""598""599"\ "600""601""602""603""604""605""606""607""608""609""610""611""612""613""614""615""616""617""618""619"\ "620""621""622""623""624""625""626""627""628""629""630""631""632""633""634""635""636""637""638""639"\ "640""641""642""643""644""645""646""647""648""649""650""651""652""653""654""655""656""657""658""659"\ "660""661""662""663""664""665""666""667""668""669""670""671""672""673""674""675""676""677""678""679"\ "680""681""682""683""684""685""686""687""688""689""690""691""692""693""694""695""696""697""698""699"\ "700""701""702""703""704""705""706""707""708""709""710""711""712""713""714""715""716""717""718""719"\ "720""721""722""723""724""725""726""727""728""729""730""731""732""733""734""735""736""737""738""739"\ "740""741""742""743""744""745""746""747""748""749""750""751""752""753""754""755""756""757""758""759"\ "760""761""762""763""764""765""766""767""768""769""770""771""772""773""774""775""776""777""778""779"\ "780""781""782""783""784""785""786""787""788""789""790""791""792""793""794""795""796""797""798""799"\ "800""801""802""803""804""805""806""807""808""809""810""811""812""813""814""815""816""817""818""819"\ "820""821""822""823""824""825""826""827""828""829""830""831""832""833""834""835""836""837""838""839"\ "840""841""842" default = 0 endparam param selriz caption = "Operator RIz" enum = "ReZ+ImZ""ReZ*ImZ""ReZ/ImZ""ReZ^ImZ" default = 0 visible = (@select!=0)&&(@select!=1)&&(@select!=2)&&(@select!=3)&&(@select!=4)&&(@select!=5)&&\ (@select!=6)&&(@select!=7)&&(@select!=8)&&(@select!=9)&&(@select!=10)&&(@select!=11)&&\ (@select!=12)&&(@select!=13)&&(@select!=14)&&(@select!=15)&&(@select!=16)&&(@select!=17)&&\ (@select!=18)&&(@select!=19)&&(@select!=20)&&(@select!=21)&&(@select!=22)&&(@select!=23)&&\ (@select!=24)&&(@select!=25)&&(@select!=26)&&(@select!=27)&&(@select!=28)&&(@select!=29)&&\ (@select!=30)&&(@select!=31)&&(@select!=32)&&(@select!=33)&&(@select!=34)&&(@select!=35)&&\ (@select!=36) endparam complex param addz caption = "Z Param RIz" default = (1.0,0.0) visible = (@select!=0)&&(@select!=1)&&(@select!=2)&&(@select!=3)&&(@select!=4)&&(@select!=5)&&\ (@select!=6)&&(@select!=7)&&(@select!=8)&&(@select!=9)&&(@select!=10)&&(@select!=11)&&\ (@select!=12)&&(@select!=13)&&(@select!=14)&&(@select!=15)&&(@select!=16)&&(@select!=17)&&\ (@select!=18)&&(@select!=19)&&(@select!=20)&&(@select!=21)&&(@select!=22)&&(@select!=23)&&\ (@select!=24)&&(@select!=25)&&(@select!=26)&&(@select!=27)&&(@select!=28)&&(@select!=29)&&\ (@select!=30)&&(@select!=31)&&(@select!=32)&&(@select!=33)&&(@select!=34)&&(@select!=35)&&\ (@select!=36) endparam complex param exz caption = "Z Exp Re|RIz" default = (1.0,0.0) visible = (@select!=0)&&(@select!=1)&&(@select!=2)&&(@select!=3)&&(@select!=4)&&(@select!=5)&&\ (@select!=6)&&(@select!=7)&&(@select!=8)&&(@select!=9)&&(@select!=10)&&(@select!=11)&&\ (@select!=12)&&(@select!=13)&&(@select!=14)&&(@select!=15)&&(@select!=16)&&(@select!=17)&&\ (@select!=18)&&(@select!=19)&&(@select!=20)&&(@select!=21)&&(@select!=22)&&(@select!=23)&&\ (@select!=24)&&(@select!=25)&&(@select!=26)&&(@select!=27)&&(@select!=28)&&(@select!=29)&&\ (@select!=30)&&(@select!=31)&&(@select!=32)&&(@select!=33)&&(@select!=34)&&(@select!=35)&&\ (@select!=36) endparam complex param exz1 caption = "Z Exp Im|RIz" default = (2.0,0.0) visible = (@select!=0)&&(@select!=1)&&(@select!=2)&&(@select!=3)&&(@select!=4)&&(@select!=5)&&\ (@select!=6)&&(@select!=7)&&(@select!=8)&&(@select!=9)&&(@select!=10)&&(@select!=11)&&\ (@select!=12)&&(@select!=13)&&(@select!=14)&&(@select!=15)&&(@select!=16)&&(@select!=17)&&\ (@select!=18)&&(@select!=19)&&(@select!=20)&&(@select!=21)&&(@select!=22)&&(@select!=23)&&\ (@select!=24)&&(@select!=25)&&(@select!=26)&&(@select!=27)&&(@select!=28)&&(@select!=29)&&\ (@select!=30)&&(@select!=31)&&(@select!=32)&&(@select!=33)&&(@select!=34)&&(@select!=35)&&\ (@select!=36) endparam complex param muz caption = "Z Mult Re|RIz" default = (1.0,0.0) visible = (@select!=0)&&(@select!=1)&&(@select!=2)&&(@select!=3)&&(@select!=4)&&(@select!=5)&&\ (@select!=6)&&(@select!=7)&&(@select!=8)&&(@select!=9)&&(@select!=10)&&(@select!=11)&&\ (@select!=12)&&(@select!=13)&&(@select!=14)&&(@select!=15)&&(@select!=16)&&(@select!=17)&&\ (@select!=18)&&(@select!=19)&&(@select!=20)&&(@select!=21)&&(@select!=22)&&(@select!=23)&&\ (@select!=24)&&(@select!=25)&&(@select!=26)&&(@select!=27)&&(@select!=28)&&(@select!=29)&&\ (@select!=30)&&(@select!=31)&&(@select!=32)&&(@select!=33)&&(@select!=34)&&(@select!=35)&&\ (@select!=36) endparam complex param muz1 caption = "Z Mult Im|RIz" default = (1.0,0.0) visible = (@select!=0)&&(@select!=1)&&(@select!=2)&&(@select!=3)&&(@select!=4)&&(@select!=5)&&\ (@select!=6)&&(@select!=7)&&(@select!=8)&&(@select!=9)&&(@select!=10)&&(@select!=11)&&\ (@select!=12)&&(@select!=13)&&(@select!=14)&&(@select!=15)&&(@select!=16)&&(@select!=17)&&\ (@select!=18)&&(@select!=19)&&(@select!=20)&&(@select!=21)&&(@select!=22)&&(@select!=23)&&\ (@select!=24)&&(@select!=25)&&(@select!=26)&&(@select!=27)&&(@select!=28)&&(@select!=29)&&\ (@select!=30)&&(@select!=31)&&(@select!=32)&&(@select!=33)&&(@select!=34)&&(@select!=35)&&\ (@select!=36) endparam param p6 caption="Global Offset RIz" default=(0.0,0.0) visible = (@select!=0)&&(@select!=1)&&(@select!=2)&&(@select!=3)&&(@select!=4)&&(@select!=5)&&\ (@select!=6)&&(@select!=7)&&(@select!=8)&&(@select!=9)&&(@select!=10)&&(@select!=11)&&\ (@select!=12)&&(@select!=13)&&(@select!=14)&&(@select!=15)&&(@select!=16)&&(@select!=17)&&\ (@select!=18)&&(@select!=19)&&(@select!=20)&&(@select!=21)&&(@select!=22)&&(@select!=23)&&\ (@select!=24)&&(@select!=25)&&(@select!=26)&&(@select!=27)&&(@select!=28)&&(@select!=29)&&\ (@select!=30)&&(@select!=31)&&(@select!=32)&&(@select!=33)&&(@select!=34)&&(@select!=35)&&\ (@select!=36) endparam param p7 caption="Global Mult. RIz" default=(1.0,0.0) visible = (@select!=0)&&(@select!=1)&&(@select!=2)&&(@select!=3)&&(@select!=4)&&(@select!=5)&&\ (@select!=6)&&(@select!=7)&&(@select!=8)&&(@select!=9)&&(@select!=10)&&(@select!=11)&&\ (@select!=12)&&(@select!=13)&&(@select!=14)&&(@select!=15)&&(@select!=16)&&(@select!=17)&&\ (@select!=18)&&(@select!=19)&&(@select!=20)&&(@select!=21)&&(@select!=22)&&(@select!=23)&&\ (@select!=24)&&(@select!=25)&&(@select!=26)&&(@select!=27)&&(@select!=28)&&(@select!=29)&&\ (@select!=30)&&(@select!=31)&&(@select!=32)&&(@select!=33)&&(@select!=34)&&(@select!=35)&&\ (@select!=36) endparam param p8 caption="Global Exp. RIz" default=(1.0,0.0) visible = (@select!=0)&&(@select!=1)&&(@select!=2)&&(@select!=3)&&(@select!=4)&&(@select!=5)&&\ (@select!=6)&&(@select!=7)&&(@select!=8)&&(@select!=9)&&(@select!=10)&&(@select!=11)&&\ (@select!=12)&&(@select!=13)&&(@select!=14)&&(@select!=15)&&(@select!=16)&&(@select!=17)&&\ (@select!=18)&&(@select!=19)&&(@select!=20)&&(@select!=21)&&(@select!=22)&&(@select!=23)&&\ (@select!=24)&&(@select!=25)&&(@select!=26)&&(@select!=27)&&(@select!=28)&&(@select!=29)&&\ (@select!=30)&&(@select!=31)&&(@select!=32)&&(@select!=33)&&(@select!=34)&&(@select!=35)&&\ (@select!=36) endparam complex param z1 caption = "Z Param 1" default = (-1.0,0.0) endparam complex param ez1 caption = "Z Param 2" default = (1.0,0.0) endparam complex param c1 caption = "C Param 1" default = (0.0,0.0) visible = (@select!=0)&&(@select!=37) endparam complex param cm1 caption = "C Multiplying" default = (1.0,0.0) visible = (@select!=0)&&(@select!=37) endparam complex param ec1 caption = "C Exponent" default = (1.0,0.0) visible = (@select!=0)&&(@select!=37) endparam func fnz caption = "Z Function" default = ident() endfunc func fnc caption = "C Function" default = ident() visible = (@select!=0)&&(@select!=37) endfunc param selform caption = "Split Type" enum = "Normal""Mandelbrot""Barnsley""Ikenaga 1""Ikenaga 2" default = 0 endparam param zsplit caption = "Change Z Split" default = false endparam complex param addz1 caption="Re|Im Add. z" default = (1.0,0.0) endparam complex param muz0 caption="Re Mult. z" default = (1.0,0.0) endparam complex param muz01 caption="Im Mult. z|1" default = (1.0,0.0) endparam complex param muz02 caption="Im Mult. z|2" default = (1.0,0.0) endparam complex param exz2 caption="Re Exp. z" default = (1.0,0.0) endparam complex param exz3 caption="Im Exp. z" default = (1.0,0.0) endparam complex param p5 caption = "Global Offset" default = (0.0,0.0) endparam complex param p4 caption = "Global Mult." default = (0.5,0.0) endparam complex param p3 caption = "Global Exp." default = (1.0,0.0) endparam Heading caption = "Z1 Parameters" Endheading param mode1 caption = "R|I Operator" enum = "1""2""3""4""5""6" default = 2 endparam param op5 caption = "R|I Operator 1" enum = "+""-""*""/" default = 2 endparam complex param p1 caption = "R|I Parameter" default = (0.3,0.0) endparam float param rez caption = "Re Z1 Param 1" default = 0.0 endparam float param imz caption = "Im Z1 Param 1" default = 0.0 endparam complex param rzm caption = "Re Z1 Param 2" default = (1.0,0.0) endparam complex param izm caption = "Im Z1 Param 2" default = (1.0,0.0) endparam func fna caption = "Z1 Function 1" default = cos() endfunc func fnb caption = "Z1 Function 2" default = cos() endfunc Heading caption = "Z2 Parameters" Endheading param pz1 caption = "Z1|Z2 Operator" enum = "1""2""3""4""5""6" default =0 endparam param op2 caption = "Z2 Operator" enum = "1""2""3""4""5""6" default = 1 endparam complex param z2 caption = "Z2 Param 1" default = (0.0,0.0) endparam complex param zm2 caption = "Z2 Param 2" default = (1.0,0.0) endparam complex param c2 caption = "Z2 Param 3" default = (0.0,0.0) endparam complex param cm2 caption = "Z2 Param 4" default = (1.0,0.0) endparam complex param ec2 caption = "Z2 Exponent" default = (1.0,0.0) endparam func fn2 caption = "Z2 Function 1" default = ident() endfunc func fn4 caption = "Z2 Function 2" default = ident() endfunc Heading caption = "Z3 Parameters" Endheading param op3 caption = "Z3 Operator" enum = "1""2""3""4""5""6" default = 0 endparam complex param z3 caption = "Z3 Param 1" default = (0.0,0.0) endparam complex param zm3 caption = "Z3 Param 2" default = (1.0,0.0) endparam complex param c3 caption = "Z3 Param 3" default = (0.0,0.0) endparam complex param cm3 caption = "Z3 Param 4" default = (1.0,0.0) endparam complex param ec3 caption = "Z3 Param 5" default = (1.0,0.0) endparam func fn3 caption = "Z3 Function 1" default = ident() endfunc func fn5 caption = "Z3 Function 2" default = ident() endfunc Heading caption = "Z4 Parameters" Endheading param opfn1 caption = "Z4 Operator" enum = "1""2""3""4""5""6" default = 2 endparam complex param p2 caption = "Z4 Parameter 1" default = (1.0,0.0) endparam func fn1 caption = "Z4 Function" default = ident() endfunc Heading caption = "Z5 Parameters" Endheading param op1 caption = "Z5 Operator" enum="1""2""3""4""5""6" default = 1 endparam func fn6 caption = "Z5 Function" default = ident() endfunc Heading caption = "Z6 Parameters" Endheading param final caption = "Z5|Z6 Operator" enum = "1""2""3""4""5""6" default = 0 endparam param opz6 caption = "Z6 Operator" enum = "1""2""3""4""5""6" default = 1 endparam complex param z6 caption = "Z6 Parameter 1" default = (1.0,0.0) endparam complex param ez4 caption = "Z6 Parameter 2" default = (1.0,0.0) endparam complex param ec6 caption = "Z6 Parameter 3" default = (1.0,0.0) endparam func fn7 caption = "Z6 Function 1" default = ident() endfunc func fn8 caption = "Z6 Function 2" default = ident() endfunc func fn9 caption = "Z6 Function 3" default = ident() endfunc param version caption = "Version" default = 1.8 visible = false endparam Switch: type = "SpiralJazz" startseed = #pixel bailout = @bailout selform = @selform zsplit = @zsplit selriz = @selriz select = @select mode1 = @mode1 op1 = @op1 op2 = @op2 op3 = @op3 op5 = @op5 opz6 = @opz6 opfn1 = @opfn1 pz1 = @pz1 final = @final p1 = @p1 p2 = @p2 p3 = @p3 p4 = @p4 p5 = @p5 p6 = @p6 p7 = @p7 p8 = @p8 exz = @exz exz1 = @exz1 exz2 = @exz2 exz3 = @exz3 muz0 = @muz0 muz01 = @muz01 muz02 = @muz02 muz = @muz muz1 = @muz1 addz = @addz addz1 = @addz1 realz = @realz imagz = @imagz fnreal = @fnreal fnimag = @fnimag zprime = @zprime z1 = @z1 z2 = @z2 z3 = @z3 z6 = @z6 zm2 = @zm2 zm3 = @zm3 ez1 = @ez1 ez4 = @ez4 c1 = @c1 c2 = @c2 c3 = @c3 cm1 = @cm1 cm2 = @cm2 cm3 = @cm3 ec1 = @ec1 ec2 = @ec2 ec3 = @ec3 ec6 = @ec6 rez = @rez imz = @imz rzm = @rzm izm = @izm fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 fn4 = @fn4 fn5 = @fn5 fn6 = @fn6 fn7 = @fn7 fn8 = @fn8 fn9 = @fn9 fna = @fna fnb = @fnb fnc = @fnc fnz = @fnz mode2 = @switchmode switchmode = @mode2 center = @swcenter scale = @swscale version = @version type = @type } spizz1 { ;Andrea Spinozzi(Updated Aug2004) Init: z=0 c=tan(3)+#pixel+tan(4) Loop: z=fn1(z^p1)+#pixel/fn2(c^p2)+fn3(z^p3)*fn4(z^p4) c=@parb+@para+tan(z)*@parc Bailout: |z| < @bailout Default: title="Spizz1" center=(0.0,0.0) angle=270 maxiter= 250 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Parameters" Endheading param para caption="Parameter 1" default=(1.0,0.0) endparam param parb caption="Parameter 2" default=(1.0,0.0) endparam param parc caption="Parameter 3" default=(1.0,0.0) endparam param p1 caption="Parameter 4" default=(2.0,0.0) endparam param p2 caption="Parameter 5" default=(2.0,0.0) endparam param p3 caption="Parameter 6" default=(1.0,0.0) endparam param p4 caption="Parameter 7" default=(3.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=zero() endfunc func fn2 caption="Function 2" default=sqrt() endfunc func fn3 caption="Function 3" default=sqrt() endfunc func fn4 caption="Function 4" default=sqrt() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Spizz1-J" seed=pixel bailout=@bailout para=@para parb=@parb parc=@parc p1=@p1 p2=@p2 p3=@p3 p4=@p4 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 version=@version } spizz1-J { ;Andrea Spinozzi(Updated Aug2004) Init: z=0 c=tan(3)+pixel+tan(4) Loop: z=fn1(z^p1)+@seed/fn2(c^p2)+fn3(z^p3)*fn4(z^p4) c=@parb+@para+tan(z)*@parc Bailout: |z| < @bailout Default: title="Spizz1-J" center=(-1.0,0.0) angle=270 maxiter= 250 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Parameters" Endheading param seed caption="Seed Value" default=(0.7,1.650697808e-18) endparam param para caption="Parameter 1" default=(1.0,0.0) endparam param parb caption="Parameter 2" default=(1.0,0.0) endparam param parc caption="Parameter 3" default=(1.0,0.0) endparam param p1 caption="Parameter 4" default=(2.0,0.0) endparam param p2 caption="Parameter 5" default=(2.0,0.0) endparam param p3 caption="Parameter 6" default=(1.0,0.0) endparam param p4 caption="Parameter 7" default=(3.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=zero() endfunc func fn2 caption="Function 2" default=sqrt() endfunc func fn3 caption="Function 3" default=sqrt() endfunc func fn4 caption="Function 4" default=sqrt() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Spizz1" seed=pixel bailout=@bailout para=@para parb=@parb parc=@parc p1=@p1 p2=@p2 p3=@p3 p4=@p4 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 version=@version } Spizzalia { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel z1=(0.0,0.0) z2=(0.0,0.0) Loop: if (@op3==0) if (@op1==0) if (@op2==0) z1=fn1(z^p1)+fn2(z^p2)+fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)+fn2(z^p2)+fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)+fn2(z^p2)+fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)+fn2(z^p2)+fn3(z^p3)/fn4(z^p4) endif elseif (@op1==1) if (@op2==0) z1=fn1(z^p1)+fn2(z^p2)-fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)+fn2(z^p2)-fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)+fn2(z^p2)-fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)+fn2(z^p2)-fn3(z^p3)/fn4(z^p4) endif elseif (@op1==2) if (@op2==0) z1=fn1(z^p1)+fn2(z^p2)*fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)+fn2(z^p2)*fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)+fn2(z^p2)*fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)+fn2(z^p2)*fn3(z^p3)/fn4(z^p4) endif elseif (@op1==3) if (@op2==0) z1=fn1(z^p1)+fn2(z^p2)/fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)+fn2(z^p2)/fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)+fn2(z^p2)/fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)+fn2(z^p2)/fn3(z^p3)/fn4(z^p4) endif endif elseif (@op3==1) if (@op1==0) if (@op2==0) z1=fn1(z^p1)-fn2(z^p2)+fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)-fn2(z^p2)+fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)-fn2(z^p2)+fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)-fn2(z^p2)+fn3(z^p3)/fn4(z^p4) endif elseif (@op1==1) if (@op2==0) z1=fn1(z^p1)-fn2(z^p2)-fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)-fn2(z^p2)-fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)-fn2(z^p2)-fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)-fn2(z^p2)-fn3(z^p3)/fn4(z^p4) endif elseif (@op1==2) if (@op2==0) z1=fn1(z^p1)-fn2(z^p2)*fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)-fn2(z^p2)*fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)-fn2(z^p2)*fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)-fn2(z^p2)*fn3(z^p3)/fn4(z^p4) endif elseif (@op1==3) if (@op2==0) z1=fn1(z^p1)-fn2(z^p2)/fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)-fn2(z^p2)/fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)-fn2(z^p2)/fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)-fn2(z^p2)/fn3(z^p3)/fn4(z^p4) endif endif elseif (@op3==2) if (@op1==0) if (@op2==0) z1=fn1(z^p1)*fn2(z^p2)+fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)*fn2(z^p2)+fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)*fn2(z^p2)+fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)*fn2(z^p2)+fn3(z^p3)/fn4(z^p4) endif elseif (@op1==1) if (@op2==0) z1=fn1(z^p1)*fn2(z^p2)-fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)*fn2(z^p2)-fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)*fn2(z^p2)-fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)*fn2(z^p2)-fn3(z^p3)/fn4(z^p4) endif elseif (@op1==2) if (@op2==0) z1=fn1(z^p1)*fn2(z^p2)*fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)*fn2(z^p2)*fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)*fn2(z^p2)*fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)*fn2(z^p2)*fn3(z^p3)/fn4(z^p4) endif elseif (@op1==3) if (@op2==0) z1=fn1(z^p1)*fn2(z^p2)/fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)*fn2(z^p2)/fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)*fn2(z^p2)/fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)*fn2(z^p2)/fn3(z^p3)/fn4(z^p4) endif endif elseif (@op3==3) if (@op1==0) if (@op2==0) z1=fn1(z^p1)/fn2(z^p2)+fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)/fn2(z^p2)+fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)/fn2(z^p2)+fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)/fn2(z^p2)+fn3(z^p3)/fn4(z^p4) endif elseif (@op1==1) if (@op2==0) z1=fn1(z^p1)/fn2(z^p2)-fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)/fn2(z^p2)-fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)/fn2(z^p2)-fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)/fn2(z^p2)-fn3(z^p3)/fn4(z^p4) endif elseif (@op1==2) if (@op2==0) z1=fn1(z^p1)/fn2(z^p2)*fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)/fn2(z^p2)*fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)/fn2(z^p2)*fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)/fn2(z^p2)*fn3(z^p3)/fn4(z^p4) endif elseif (@op1==3) if (@op2==0) z1=fn1(z^p1)/fn2(z^p2)/fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)/fn2(z^p2)/fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)/fn2(z^p2)/fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)/fn2(z^p2)/fn3(z^p3)/fn4(z^p4) endif endif endif if (@op == 0) z2=@fn5(z1)^@seed^@p6+@power elseif (@op == 1) z2=@fn5(z1)^@power+@seed^@p6 elseif (@op == 2) z2=@fn5(z1)^@power-@seed^@p6 elseif (@op == 3) z2=@fn5(z1)^@power/@seed^@p6 endif if (@op4==0) z=@fn6(z2^@p5) elseif (@op4==1) z=@fn7(z1)+@fn6(z2^@p5) elseif (@op4==2) z=@fn7(z1)-@fn6(z2^@p5) elseif (@op4==3) z=@fn7(z1)*@fn6(z2^@p5) elseif (@op4==4) z=@fn7(z1)/@fn6(z2^@p5) elseif (@op4==5) z=@fn6(z2^@p5)-@fn7(z1) elseif (@op4==6) z=@fn6(z2^@p5)/@fn7(z1) endif Bailout: |z|<=@bailout Default: title="Spizzalia" center=(0.0,0.0) angle=90 magn=1.0 maxiter=250 method=multipass periodicity=0 param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param op caption="Operator 1" enum="1""2""3""4" default=0 endparam param op1 caption="Operator 2" enum="1""2""3""4" default=2 endparam param op2 caption="Operator 3" enum="1""2""3""4" default=2 endparam param op3 caption="Operator 4" enum="1""2""3""4" default=2 endparam param op4 caption="Operator 5" enum="1""2""3""4""5""6""7" default=0 endparam param seed caption="Julia Seed" default=(0.41875,3.291570033e-19) endparam param power caption="Parameter" default=(0.2,0.0) endparam param p1 caption="Exponent 1" default=(1.0,0.0) endparam param p2 caption="Exponent 2" default=(1.0,0.0) endparam param p3 caption="Exponent 3" default=(1.0,0.0) endparam param p4 caption="Exponent 4" default=(1.0,0.0) endparam param p5 caption="Exponent 5" default=(1.0,0.0) endparam param p6 caption="Exponent 6" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc func fn6 caption="Function 6" default=ident() endfunc func fn7 caption="Function 7" default=ident() visible=(@op4!=0) endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Spizzalia-M" seed=#pixel bailout=@bailout op=@op op1=@op1 op2=@op2 op3=@op3 op4=@op4 power=@power p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 version=@version } Spizzalia1 { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel c=@seed Loop: if @op=="+" z=(fn1(z)*fn2(z)*fn3(z)*fn4(z))+c elseif @op=="-" z=(fn1(z)*fn2(z)*fn3(z)*fn4(z))-c elseif @op=="*" z=(fn1(z)*fn2(z)*fn3(z)*fn4(z))*c elseif @op=="/" z=(fn1(z)*fn2(z)*fn3(z)*fn4(z))/c elseif @op=="^" z=(fn1(z)*fn2(z)*fn3(z)*fn4(z))^c endif if @op1=="+" z=@fn5(z)+@seed+@power elseif @op1=="-" z=@fn5(z)-@seed+@power elseif @op1=="*" z=@fn5(z)*@seed+@power elseif @op1=="/" z=@fn5(z)/@seed+@power elseif @op1=="^" z=@fn5(z)^@seed+@power endif c=pixel^@seed+p1 Bailout: |z|<=@bailout Default: title="Spizzalia1" angle=90 center=(0.0,0.0) maxiter=250 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param op caption="Operator 1" enum="+""-""*""/""^" default=4 endparam param op1 caption="Operator 2" enum="+""-""*""/""^" default=4 endparam param @seed caption="Seed Value" default=(0.7,0.0) endparam param power caption="Parameter 1" default=(0.5,0.0) endparam param p1 caption="Parameter 2" default=(0.5,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=exp() endfunc func fn3 caption="Function 3" default=tanh() endfunc func fn4 caption="Function 4" default=sin() endfunc func fn5 caption="Function 5" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam } Spizzalia1+ { ;Andrea Spinozzi(Updated Aug2004) Init: z=(0.0,0.0) c=(0.0,0.0) if (@mode=="Mandelbrot") z=pixel c=pixel elseif (@mode=="Julia") z=pixel c=@seed endif Loop: if (@op3==0) if (@op=="+") z=(fn1(z^p2)*fn2(z^p3)*fn3(z)*fn4(z))+c*p1 elseif (@op=="-") z=(fn1(z^p2)*fn2(z^p3)*fn3(z)*fn4(z))-c*p1 elseif (@op=="*") z=(fn1(z^p2)*fn2(z^p3)*fn3(z)*fn4(z))*c*p1 elseif (@op=="/") z=(fn1(z^p2)*fn2(z^p3)*fn3(z)*fn4(z))/c*p1 elseif (@op=="^") z=(fn1(z^p2)*fn2(z^p3)*fn3(z)*fn4(z))^c*p1 endif elseif (@op3==1) if (@op=="+") z=(fn1(z^p2)+fn2(z^p3)+fn3(z)+fn4(z))+c*p1 elseif (@op=="-") z=(fn1(z^p2)+fn2(z^p3)+fn3(z)+fn4(z))-c*p1 elseif (@op=="*") z=(fn1(z^p2)+fn2(z^p3)+fn3(z)+fn4(z))*c*p1 elseif (@op=="/") z=(fn1(z^p2)+fn2(z^p3)+fn3(z)+fn4(z))/c*p1 elseif (@op=="^") z=(fn1(z^p2)+fn2(z^p3)+fn3(z)+fn4(z))^c*p1 endif elseif (@op3==2) if (@op=="+") z=(fn1(z^p2)+fn2(z^p3)-fn3(z)+fn4(z))+c*p1 elseif (@op=="-") z=(fn1(z^p2)+fn2(z^p3)-fn3(z)+fn4(z))-c*p1 elseif (@op=="*") z=(fn1(z^p2)+fn2(z^p3)-fn3(z)+fn4(z))*c*p1 elseif (@op=="/") z=(fn1(z^p2)+fn2(z^p3)-fn3(z)+fn4(z))/c*p1 elseif (@op=="^") z=(fn1(z^p2)+fn2(z^p3)-fn3(z)+fn4(z))^c*p1 endif elseif (@op3==3) if (@op=="+") z=(fn1(z^p2)-fn2(z^p3)-fn3(z)-fn4(z))+c*p1 elseif (@op=="-") z=(fn1(z^p2)-fn2(z^p3)-fn3(z)-fn4(z))-c*p1 elseif (@op=="*") z=(fn1(z^p2)-fn2(z^p3)-fn3(z)-fn4(z))*c*p1 elseif (@op=="/") z=(fn1(z^p2)-fn2(z^p3)-fn3(z)-fn4(z))/c*p1 elseif (@op=="^") z=(fn1(z^p2)-fn2(z^p3)-fn3(z)-fn4(z))^c*p1 endif elseif (@op3==4) if (@op=="+") z=(fn1(z^p2)+fn2(z^p3)-fn3(z)*fn4(z))+c*p1 elseif (@op=="-") z=(fn1(z^p2)+fn2(z^p3)-fn3(z)*fn4(z))-c*p1 elseif (@op=="*") z=(fn1(z^p2)+fn2(z^p3)-fn3(z)*fn4(z))*c*p1 elseif (@op=="/") z=(fn1(z^p2)+fn2(z^p3)-fn3(z)*fn4(z))/c*p1 elseif (@op=="^") z=(fn1(z^p2)+fn2(z^p3)-fn3(z)*fn4(z))^c*p1 endif endif if (@op2==0) if @op1=="+" z=@fn5(z)+c+@power elseif @op1=="-" z=@fn5(z)-c+@power elseif @op1=="*" z=@fn5(z)*c+@power elseif @op1=="/" z=@fn5(z)/c+@power elseif @op1=="^" z=@fn5(z)^c+@power endif elseif (@op2==1) if @op1=="+" z=@fn5(z)+c^@power elseif @op1=="-" z=@fn5(z)-c^@power elseif @op1=="*" z=@fn5(z)*c^@power elseif @op1=="/" z=@fn5(z)/c^@power elseif @op1=="^" z=@fn5(z)^c^@power endif elseif (@op2==2) if @op1=="+" z=@fn5(z)^@power+c elseif @op1=="-" z=@fn5(z)^@power-c elseif @op1=="*" z=@fn5(z)^@power*c elseif @op1=="/" z=@fn5(z)^@power/c elseif @op1=="^" z=@fn5(z)^@power^c endif endif Bailout: |z|<=@bailout Default: title="Spizzalia1+" angle=90 center=(0.0,0.0) maxiter=250 magn=0.8 periodicity=0 method=multipass Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param op caption="Operator 1" enum="+""-""*""/""^" default=3 endparam param op1 caption="Operator 2" enum="+""-""*""/""^" default=3 endparam param op2 caption="Operator 3" enum="1""2""3" default=0 endparam param op3 caption="Operator 4" enum="1""2""3""4""5" default=0 endparam param seed caption="Julia Seed" default=(-1.0859375,0.015625) visible=(@mode=="Julia") endparam param power caption="Parameter 1" default=(0.5,0.0) endparam param p1 caption="Parameter 2" default=(0.5,0.0) endparam param p2 caption="Exponent 1" default=(1.0,0.0) endparam param p3 caption="Exponent 2" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=conj() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Spizzalia1+" @seed=#pixel bailout=@bailout power=@power p1=@p1 p2=@p2 p3=@p3 op=@op op1=op1 op2=@op2 op3=@op3 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 mode=@switchmode switchmode=@mode version=@version } Spizzalia2 { ;Andrea Spinozzi(Updated Aug2004) Init: z=(0.0,0.0) c=(0.0,0.0) a=(0.0,0.0) if (@mode=="Mandelbrot") z=#pixel c=#pixel a=@fn5(pixel)^p1 elseif (@mode=="Julia") z=#pixel c=@seed1 a=@fn5(@seed1)^p1 endif Loop: if @op=="+" z=(fn1(z^p3))*(fn2(z))*(fn3(z))*(fn4(z))+c+a elseif @op=="-" z=(fn1(z^p3))*(fn2(z))*(fn3(z))*(fn4(z))-c+a elseif @op=="*" z=(fn1(z^p3))*(fn2(z))*(fn3(z))*(fn4(z))*c+a elseif @op=="/" z=(fn1(z^p3))*(fn2(z))*(fn3(z))*(fn4(z))/c+a elseif @op=="^" z=(fn1(z^p3))*(fn2(z))*(fn3(z))*(fn4(z))^c+a endif if (@op2==0) if @op1=="+" z=z+@seed+@power elseif @op1=="-" z=z-@seed+@power elseif @op1=="*" z=z*@seed+@power elseif @op1=="/" z=z/@seed+@power elseif @op1=="^" z=z^@seed+@power endif elseif (@op2==1) if @op1=="+" z=(z+z)+@seed+@power elseif @op1=="-" z=(z+z)-@seed+@power elseif @op1=="*" z=(z+z)*@seed+@power elseif @op1=="/" z=(z+z)/@seed+@power elseif @op1=="^" z=(z+z)^@seed+@power endif elseif (@op2==2) if @op1=="+" z=(z*z)+@seed+@power elseif @op1=="-" z=(z*z)-@seed+@power elseif @op1=="*" z=(z*z)*@seed+@power elseif @op1=="/" z=(z*z)/@seed+@power elseif @op1=="^" z=(z*z)^@seed+@power endif elseif (@op2==3) if @op1=="+" z=(z^z)+@seed+@power elseif @op1=="-" z=(z^z)-@seed+@power elseif @op1=="*" z=(z^z)*@seed+@power elseif @op1=="/" z=(z^z)/@seed+@power elseif @op1=="^" z=(z^z)^@seed+@power endif endif Bailout: |z|<=@bailout Default: title="Spizzalia2" center=(0.0,0.0) maxiter=250 angle=90 periodicity=0 method=multipass Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param op caption="Operator 1" enum="+""-""*""/""^" default=0 endparam param op1 caption="Operator 2" enum="+""-""*""/""^" default=0 endparam param op2 caption="Operator 3" enum="1""2""3""4" default=3 endparam param @seed1 caption="Seed Value" default=(0.0,0.0) visible=(@mode=="Julia") endparam param power caption="Parameter 1" default=(0.6,0.0) endparam param @seed caption="Parameter 2" default=(-2.2,0.0) endparam param p1 caption="Exponent 1" default=(0.0,0.0) endparam param p3 caption="Exponent 2" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Spizzalia2" seed1=#pixel bailout=@bailout power=@power p1=@p1 seed=@seed p3=@p3 op=@op op1=@op1 op2=@op2 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 mode=@switchmode switchmode=@mode version=@version } Spizzalia3 { ;Andrea Spinozzi(Updated Aug2004) Init: z=(0.0,0.0) c=(0.0,0.0) a=(0.0,0.0) if (@mode=="Mandelbrot") z=pixel c=fn1(z)*fn2(z)*fn3(z)*fn4(z)^pixel a=z^pixel elseif (@mode=="Julia") if (@variant==0) z=pixel c=fn1(z)*fn2(z)*fn3(z)*fn4(z)^@seed1 a=z^pixel elseif (@variant==1) z=#pixel c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*fn4(z)^@seed1 a=z^@seed1 elseif (@variant==2) z=#pixel c=fn1(@seed1)*fn2(@seed1)*fn3(z)*fn4(@seed1)^@seed1 a=z^@seed1 elseif (@variant==3) z=#pixel c=fn1(@seed1)*fn2(pixel)*fn3(@seed1)*fn4(@seed1)^@seed1 a=z^@seed1 elseif (@variant==4) z=#pixel c=fn1(pixel)*fn2(@seed1)*fn3(@seed1)*fn4(@seed1)^@seed1 a=z^@seed1 elseif (@variant==5) z=#pixel c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*fn4(@seed1)^@seed1 a=z^@seed1 elseif (@variant==6) z=#pixel c=fn1(@seed1)*fn2(@seed1)*fn3(@seed1)*fn4(@seed1)^@seed1 a=z^pixel endif endif Loop: if (@op=="+") z=z+(c*a) elseif (@op=="-") z=z-(c*a) elseif (@op=="*") z=z*(c*a) elseif (@op=="/") z=z/(c*a) elseif (@op=="^") z=z^(c*a) endif if (@op1=="+") z=z^(c*a) elseif (@op1=="-") z=z/(c*a) elseif (@op1=="*") z=z+(c*a) elseif (@op1=="/") z=z-(c*a) elseif (@op1=="^") z=z*(c*a) endif z=z^@seed+@power+c*a a=z^c Bailout: |z|<=@bailout Default: title="Spizzalia3" angle=90 center=(0.0,0.0) maxiter=250 periodicity=0 method=multipass Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="current Mode" default=0 enum="Mandelbrot""Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot""Julia" visible=false endparam param bailout caption="Bailout Value" default=10.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param variant caption="Julia Variant" enum="1""2""3""4""5""6""7" default=0 endparam param op caption="Operator 1" enum="+""-""*""/""^" default=0 endparam param op1 caption="Operator 2" enum="+""-""*""/""^" default=3 endparam param power caption="Parameter 1" default=(0.0,0.0) endparam param @seed caption="Parameter 2" default=(1.077,0.0) endparam param seed1 caption="Julia Seed" default=(1.077297077,0.0) visible=(@mode=="Julia") endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=cosh() endfunc func fn2 caption="Function 2" default=sqr() endfunc func fn3 caption="Function 3" default=tanh() endfunc func fn4 caption="Function 4" default=sin() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Spizzalia3" seed1=#pixel bailout=@bailout variant=@variant power=@power seed=@seed op=@op op1= @op1 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 mode=@switchmode switchmode=@mode version=@version } Spizzalia4 { ;Andrea Spinozzi(Updated Aug2004) Init: z=pixel z=@seed^@fn1(z)+@fn2(z)+@fn3(z)+@fn4(z) c=(-1.5,0.0) Loop: if (@op=="+") z=@fn5(z^p1)+c elseif (@op=="-") z=@fn5(z^p1)-c elseif (@op=="*") z=@fn5(z^p1)*c elseif (@op=="/") z=@fn5(z^p1)/c elseif (@op=="^") z=@fn5(z^p1)^c endif if (@op1=="+") z=@fn6(z^p2)+c elseif (@op1=="-") z=@fn6(z^p2)-c elseif (@op1=="*") z=@fn6(z^p2)*c elseif (@op1=="/") z=@fn6(z^p2)/c elseif (@op1=="^") z=@fn6(z^p2)^c endif z=@fn7(z)^@seed+@power Bailout: |z|<=@bailout Default: title="Spizzalia4" center=(0.0,0.0) maxiter=250 angle=90 periodicity=0 method=multipass param bailout caption="Bailout Value" default=10.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param op caption="Operator 1" enum="+""-""*""/""^" default=0 endparam param op1 caption="Operator 2" enum="+""-""*""/""^" default=1 endparam param power caption="Parameter" default=(0.0,0.0) endparam param p1 caption="Exponent 1" default=(1.0,0.0) endparam param p2 caption="Exponent 2" default=(1.0,0.0) endparam param @seed caption="Seed Value" default=(-0.65625,0.825) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=sqr() endfunc func fn2 caption="Function 2" default=zero() endfunc func fn3 caption="Function 3" default=abs() endfunc func fn4 caption="Function 4" default=abs() endfunc func fn5 caption="Function 5" default=ident() endfunc func fn6 caption="Function 6" default=ident() endfunc func fn7 caption="Function 7" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Spizzalia4-M" seed=pixel bailout=@bailout power=@power p1=@p1 p2=@p2 op=@op op1=@op1 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 version=@version } Spizzalia4+ { ;Andrea Spinozzi(Updated Aug2004) Init: z=(0.0,0.0) c=(0.0,0.0) if (@mode=="Mandelbrot") z=#pixel z=@fn1(z^p1)+@fn2(z^p2)+@fn3(z^p3)+@fn4(z^p4)^pixel c=pixel elseif (@mode=="Julia") z=#pixel z=@fn1(z^p1)+@fn2(z^p2)+@fn3(z^p3)+@fn4(z^p4)^@seed c=@seed endif Loop: if (@op=="+") z=z+c elseif (@op=="-") z=z-c elseif (@op=="*") z=z*c elseif (@op=="/") z=z/c elseif (@op=="^") z=z^c endif if (@op1=="+") z=z+c elseif (@op1=="-") z=z-c elseif (@op1=="*") z=z*c elseif (@op1=="/") z=z/c elseif (@op1=="^") z=z^c endif if (@op2==0) z=z^c+@power elseif (@op2==1) z=z^@power+c endif Bailout: |z|<=@bailout Default: title="Spizzalia4+" center=(0.0,0.0) maxiter=250 angle=90 periodicity=0 method=multipass Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="current Mode" default=0 enum="Mandelbrot""Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot""Julia" visible=false endparam param bailout caption="Bailout Value" default=10.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param op caption="Operator 1" enum="+""-""*""/""^" default=1 endparam param op1 caption="Operator 2" enum="+""-""*""/""^" default=0 endparam param op2 caption="Operator 3" enum="1""2" default=1 endparam param @seed caption="Seed Value" default=(-0.65625,0.825) visible=(@mode=="Julia") endparam param power caption="Parameter 1" default=(2.0,0.0) endparam param p1 caption="Parameter 2" default=(2.0,0.0) endparam param p2 caption="Parameter 3" default=(1.0,0.0) endparam param p3 caption="Parameter 4" default=(1.0,0.0) endparam param p4 caption="Parameter 5" default=(0.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=cabs() endfunc func fn4 caption="Function 4" default=log() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Spizzalia4+" seed=#pixel bailout=@bailout power=@power p1=@p1 p2=@p2 p3=@p3 p4=@p4 op=@op op1= @op1 op2=@op2 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 mode=@switchmode switchmode=@mode version=@version } Spizzalia4-M { ;Andrea Spinozzi(Updated Aug2004) Init: z=pixel z=pixel^@fn1(z)+@fn2(z)+@fn3(z)+@fn4(z) c=(-1.5,0.0) Loop: if (@op=="+") z=@fn5(z^p1)+c elseif (@op=="-") z=@fn5(z^p1)-c elseif (@op=="*") z=@fn5(z^p1)*c elseif (@op=="/") z=@fn5(z^p1)/c elseif (@op=="^") z=@fn5(z^p1)^c endif if (@op1=="+") z=@fn6(z^p2)+c elseif (@op1=="-") z=@fn6(z^p2)-c elseif (@op1=="*") z=@fn6(z^p2)*c elseif (@op1=="/") z=@fn6(z^p2)/c elseif (@op1=="^") z=@fn6(z^p2)^c endif z=@fn7(z)^pixel+@power Bailout: |z|<=@bailout Default: title="Spizzalia4-M" center=(0.0,0.0) maxiter=250 angle=90 periodicity=0 method=multipass param bailout caption="Bailout Value" default=10.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param op caption="Operator 1" enum="+""-""*""/""^" default=4 endparam param op1 caption="Operator 2" enum="+""-""*""/""^" default=4 endparam param power caption="Parameter" default=(0.0,0.0) endparam param p1 caption="Exponent 1" default=(1.0,0.0) endparam param p2 caption="Exponent 2" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc func fn6 caption="Function 6" default=ident() endfunc func fn7 caption="Function 7" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Spizzalia4" seed=pixel bailout=@bailout power=@power p1=@p1 p2=@p2 op=@op op1=@op1 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 version=@version } Spizzalia-M { ;Andrea Spinozzi(Updated Aug2004) Init: z=#pixel z1=(0.0,0.0) z2=(0.0,0.0) Loop: if (@op3==0) if (@op1==0) if (@op2==0) z1=fn1(z^p1)+fn2(z^p2)+fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)+fn2(z^p2)+fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)+fn2(z^p2)+fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)+fn2(z^p2)+fn3(z^p3)/fn4(z^p4) endif elseif (@op1==1) if (@op2==0) z1=fn1(z^p1)+fn2(z^p2)-fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)+fn2(z^p2)-fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)+fn2(z^p2)-fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)+fn2(z^p2)-fn3(z^p3)/fn4(z^p4) endif elseif (@op1==2) if (@op2==0) z1=fn1(z^p1)+fn2(z^p2)*fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)+fn2(z^p2)*fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)+fn2(z^p2)*fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)+fn2(z^p2)*fn3(z^p3)/fn4(z^p4) endif elseif (@op1==3) if (@op2==0) z1=fn1(z^p1)+fn2(z^p2)/fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)+fn2(z^p2)/fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)+fn2(z^p2)/fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)+fn2(z^p2)/fn3(z^p3)/fn4(z^p4) endif endif elseif (@op3==1) if (@op1==0) if (@op2==0) z1=fn1(z^p1)-fn2(z^p2)+fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)-fn2(z^p2)+fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)-fn2(z^p2)+fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)-fn2(z^p2)+fn3(z^p3)/fn4(z^p4) endif elseif (@op1==1) if (@op2==0) z1=fn1(z^p1)-fn2(z^p2)-fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)-fn2(z^p2)-fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)-fn2(z^p2)-fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)-fn2(z^p2)-fn3(z^p3)/fn4(z^p4) endif elseif (@op1==2) if (@op2==0) z1=fn1(z^p1)-fn2(z^p2)*fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)-fn2(z^p2)*fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)-fn2(z^p2)*fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)-fn2(z^p2)*fn3(z^p3)/fn4(z^p4) endif elseif (@op1==3) if (@op2==0) z1=fn1(z^p1)-fn2(z^p2)/fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)-fn2(z^p2)/fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)-fn2(z^p2)/fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)-fn2(z^p2)/fn3(z^p3)/fn4(z^p4) endif endif elseif (@op3==2) if (@op1==0) if (@op2==0) z1=fn1(z^p1)*fn2(z^p2)+fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)*fn2(z^p2)+fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)*fn2(z^p2)+fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)*fn2(z^p2)+fn3(z^p3)/fn4(z^p4) endif elseif (@op1==1) if (@op2==0) z1=fn1(z^p1)*fn2(z^p2)-fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)*fn2(z^p2)-fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)*fn2(z^p2)-fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)*fn2(z^p2)-fn3(z^p3)/fn4(z^p4) endif elseif (@op1==2) if (@op2==0) z1=fn1(z^p1)*fn2(z^p2)*fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)*fn2(z^p2)*fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)*fn2(z^p2)*fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)*fn2(z^p2)*fn3(z^p3)/fn4(z^p4) endif elseif (@op1==3) if (@op2==0) z1=fn1(z^p1)*fn2(z^p2)/fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)*fn2(z^p2)/fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)*fn2(z^p2)/fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)*fn2(z^p2)/fn3(z^p3)/fn4(z^p4) endif endif elseif (@op3==3) if (@op1==0) if (@op2==0) z1=fn1(z^p1)/fn2(z^p2)+fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)/fn2(z^p2)+fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)/fn2(z^p2)+fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)/fn2(z^p2)+fn3(z^p3)/fn4(z^p4) endif elseif (@op1==1) if (@op2==0) z1=fn1(z^p1)/fn2(z^p2)-fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)/fn2(z^p2)-fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)/fn2(z^p2)-fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)/fn2(z^p2)-fn3(z^p3)/fn4(z^p4) endif elseif (@op1==2) if (@op2==0) z1=fn1(z^p1)/fn2(z^p2)*fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)/fn2(z^p2)*fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)/fn2(z^p2)*fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)/fn2(z^p2)*fn3(z^p3)/fn4(z^p4) endif elseif (@op1==3) if (@op2==0) z1=fn1(z^p1)/fn2(z^p2)/fn3(z^p3)+fn4(z^p4) elseif (@op2==1) z1=fn1(z^p1)/fn2(z^p2)/fn3(z^p3)-fn4(z^p4) elseif (@op2==2) z1=fn1(z^p1)/fn2(z^p2)/fn3(z^p3)*fn4(z^p4) elseif (@op2==3) z1=fn1(z^p1)/fn2(z^p2)/fn3(z^p3)/fn4(z^p4) endif endif endif if (@op == 0) z2=@fn5(z1)^#pixel^@p6+@power elseif (@op == 1) z2=@fn5(z1)^@power+#pixel^@p6 elseif (@op == 2) z2=@fn5(z1)^@power-#pixel^@p6 elseif (@op == 3) z2=@fn5(z1)^@power/#pixel^@p6 endif if (@op4==0) z=@fn6(z2^@p5) elseif (@op4==1) z=@fn7(z1)+@fn6(z2^@p5) elseif (@op4==2) z=@fn7(z1)-@fn6(z2^@p5) elseif (@op4==3) z=@fn7(z1)*@fn6(z2^@p5) elseif (@op4==4) z=@fn7(z1)/@fn6(z2^@p5) elseif (@op4==5) z=@fn6(z2^@p5)-@fn7(z1) elseif (@op4==6) z=@fn6(z2^@p5)/@fn7(z1) endif Bailout: |z|<=@bailout Default: title="Spizzalia-M" center=(0.0,0.0) angle=90 magn=1.0 maxiter=250 method=multipass periodicity=0 param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param op caption="Operator 1" enum="1""2""3""4" default=0 endparam param op1 caption="Operator 2" enum="1""2""3""4" default=2 endparam param op2 caption="Operator 3" enum="1""2""3""4" default=2 endparam param op3 caption="Operator 4" enum="1""2""3""4" default=2 endparam param op4 caption="Operator 5" enum="1""2""3""4""5""6""7" default=0 endparam param power caption="Parameter" default=(0.2,0.0) endparam param p1 caption="Exponent 1" default=(1.0,0.0) endparam param p2 caption="Exponent 2" default=(1.0,0.0) endparam param p3 caption="Exponent 3" default=(1.0,0.0) endparam param p4 caption="Exponent 4" default=(1.0,0.0) endparam param p5 caption="Exponent 5" default=(1.0,0.0) endparam param p6 caption="Exponent 6" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc func fn6 caption="Function 6" default=ident() endfunc func fn7 caption="Function 7" default=ident() visible=(@op4!=0) endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Spizzalia" seed=#pixel bailout=@bailout op=@op op1=@op1 op2=@op2 op3=@op3 op4=@op4 power=@power p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 version=@version } As-Triternion { ;Based on a formula of Jim Muth. ;Andrea Spinozzi(July2004) Init: complex z=(0.0,0.0) z1=z2=z3=(0.0,0.0) nz1=nz2=nz3=(0.0,0.0) c1=c2=(0.0,0.0) c3=p3 z3=p4 if (@mode=="Mandelbrot") z=(0.0,0.0) if (@initmode==0) c1=real(pixel) c2=imag(pixel)*p1 elseif (@initmode==1) c1=@fn5(real(pixel)) c2=@fn6(imag(pixel))*p1 endif z1=(0.0,0.0) z2=(0.0,0.0) elseif (@mode=="Julia") z=pixel c1=real(@seed) c2=imag(@seed) if (@initmode==0) z1=real(pixel) z2=imag(pixel)*p1 elseif (@initmode==1) z1=@fn5(real(pixel)) z2=@fn6(imag(pixel))*p1 endif endif Loop: if (@op==0) nz1=z1*z1+2*z2*z3+c1 nz2=2*z1*z2+z3*z3+c2 nz3=z2*z2+2*z3*z1+c3 elseif (@op==1) nz1=z1-(z1*z1+2*z2*z3+c1) nz2=z2-(2*z1*z2+z3*z3+c2) nz3=z3-(z2*z2+2*z3*z1+c3) endif z1=fn1(nz1)/p2 z2=fn2(nz2)*p5 z3=fn3(nz3) if (@flavor==0) z=fn4(nz1)-flip(nz2)-nz3 elseif (@flavor==1) z=fn4(nz1)-flip(nz2)+nz3 elseif (@flavor==2) z=fn4(nz1)-flip(nz2) endif Bailout: |z1|+|z2|+|z3|<=@bailout Default: title="Triternion" maxiter=500 method=multipass periodicity=0 Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="Current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param bailout caption="Bailout Value" default=64.0 endparam param flavor caption="Flavor" enum="1""2""3" default=0 endparam func fn4 caption="Function Flavor" default=ident() endfunc Heading caption="Operators and Parameters" Endheading param seed caption="Seed Value" default=(0.0,0.0) visible=(@mode=="Julia") endparam param initmode caption="Init Mode" enum="Normal""Functions Re|Im" default=0 endparam param op caption="Select Loop" enum="1""2" default=0 endparam param p1 caption="Parameter 1" default=(1.0,0.0) endparam param p2 caption="Parameter 2" default=(1.0,0.0) endparam param p3 caption="Parameter 3" default=(0.0,0.0) endparam param p4 caption="Parameter 4" default=(0.0,0.0) endparam param p5 caption="Parameter 5" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn5 caption="Init Func(Re)" default=flip() visible=(@initmode==1) endfunc func fn6 caption="Init Func(Im)" default=flip() visible=(@initmode==1) endfunc func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="As-Triternion" seed=#pixel bailout=@bailout initmode=@initmode op=@op flavor=@flavor p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 mode=@switchmode switchmode=@mode version=@version } Ubik { ;Andrea Spinozzi(Aug2003) Init: z=@StartSeed c=#pixel w=(@fn5(z^@c)*z+@fn6(z^@e)/c) x=fn1(fn2(z^@b)-fn3(z^@f))+(fn1(z)*fn2(c)) y=(fn4(z)*z+fn1(z)*c)+(z*c) if (@mode=="Mandelbrot") z=@startseed c=pixel elseif @mode == "Julia" z=#pixel c=@startSeed endif Loop: if @opw=="1" w=(@fn5(z^@c)*z+@fn6(z^@e)/c) elseif @opw=="2" w=(@fn5(z^@c)*z-@fn6(z^@e)/c) elseif @opw=="3" w=(@fn6(z^@e)/c-@fn5(z^@c)*z) elseif @opw=="4" w=(@fn5(z^@c)*z*@fn6(z^@e)/c) elseif @opw=="5" w=(@fn5(z^@c)*z/@fn6(z^@e)/c) elseif @opw=="6" w=(@fn6(z^@e)/c/@fn5(z^@c)*z) elseif @opw=="7" w=(@fn5(z^@c)*z^@fn6(z^@e)/c) elseif @opw=="8" w=(@fn6(z^@e)/c^@fn5(z^@c)*z) endif if @opx=="1" if @opx1=="-" x=fn1(fn2(z^@b)-fn3(z^@f))+(fn1(z)*fn2(c)) elseif @opx1=="/" x=fn1(fn2(z^@b)/fn3(z^@f))+(fn1(z)*fn2(c)) elseif @opx1=="^" x=fn1(fn2(z^@b)^fn3(z^@f))+(fn1(z)*fn2(c)) endif elseif @opx=="2" if @opx1=="-" x=fn1(fn2(z^@b)-fn3(z^@f))-(fn1(z)*fn2(c)) elseif @opx1=="/" x=fn1(fn2(z^@b)/fn3(z^@f))-(fn1(z)*fn2(c)) elseif @opx1=="^" x=fn1(fn2(z^@b)^fn3(z^@f))-(fn1(z)*fn2(c)) endif elseif @opx=="3" if @opx1=="-" x=fn1(fn2(z^@b)-fn3(z^@f))*(fn1(z)*fn2(c)) elseif @opx1=="/" x=fn1(fn2(z^@b)/fn3(z^@f))*(fn1(z)*fn2(c)) elseif @opx1=="^" x=fn1(fn2(z^@b)^fn3(z^@f))*(fn1(z)*fn2(c)) endif endif if @opy=="1" if @opy1=="+" y=(fn4(z)*z+fn1(z)*c)+(z*c) elseif @opy1=="-" y=(fn4(z)*z+fn1(z)*c)-(z*c) elseif @opy1=="*" y=(fn4(z)*z+fn1(z)*c)*(z*c) elseif @opy1=="/" y=(fn4(z)*z+fn1(z)*c)/(z*c) elseif @opy1=="^" y=(fn4(z)*z+fn1(z)*c)^(z*c) endif elseif @opy=="2" if @opy1=="+" y=(fn4(z)*z-fn1(z)*c)+(z*c) elseif @opy1=="-" y=(fn4(z)*z-fn1(z)*c)-(z*c) elseif @opy1=="*" y=(fn4(z)*z-fn1(z)*c)*(z*c) elseif @opy1=="/" y=(fn4(z)*z-fn1(z)*c)/(z*c) elseif @opy1=="^" y=(fn4(z)*z-fn1(z)*c)^(z*c) endif elseif @opy=="3" if @opy1=="+" y=(fn1(z)*c-fn4(z)*z)+(z*c) elseif @opy1=="-" y=(fn1(z)*c-fn4(z)*z)-(z*c) elseif @opy1=="*" y=(fn1(z)*c-fn4(z)*z)*(z*c) elseif @opy1=="/" y=(fn1(z)*c-fn4(z)*z)/(z*c) elseif @opy1=="^" y=(fn1(z)*c-fn4(z)*z)^(z*c) endif elseif @opy=="4" if @opy1=="+" y=(fn4(z)*z*fn1(z)*c)+(z*c) elseif @opy1=="-" y=(fn4(z)*z*fn1(z)*c)-(z*c) elseif @opy1=="*" y=(fn4(z)*z*fn1(z)*c)*(z*c) elseif @opy1=="/" y=(fn4(z)*z*fn1(z)*c)/(z*c) elseif @opy1=="^" y=(fn4(z)*z*fn1(z)*c)^(z*c) endif elseif @opy=="5" if @opy1=="+" y=(fn4(z)*z/fn1(z)*c)+(z*c) elseif @opy1=="-" y=(fn4(z)*z/fn1(z)*c)-(z*c) elseif @opy1=="*" y=(fn4(z)*z/fn1(z)*c)*(z*c) elseif @opy1=="/" y=(fn4(z)*z/fn1(z)*c)/(z*c) elseif @opy1=="^" y=(fn4(z)*z/fn1(z)*c)^(z*c) endif elseif @opy=="6" if @opy1=="+" y=(fn1(z)*c/fn4(z)*z)+(z*c) elseif @opy1=="-" y=(fn1(z)*c/fn4(z)*z)-(z*c) elseif @opy1=="*" y=(fn1(z)*c/fn4(z)*z)*(z*c) elseif @opy1=="/" y=(fn1(z)*c/fn4(z)*z)/(z*c) elseif @opy1=="^" y=(fn1(z)*c/fn4(z)*z)^(z*c) endif elseif @opy=="7" if @opy1=="+" y=(fn4(z)*z^fn1(z)*c)+(z*c) elseif @opy1=="-" y=(fn4(z)*z^fn1(z)*c)-(z*c) elseif @opy1=="*" y=(fn4(z)*z^fn1(z)*c)*(z*c) elseif @opy1=="/" y=(fn4(z)*z^fn1(z)*c)/(z*c) elseif @opy1=="^" y=(fn4(z)*z^fn1(z)*c)^(z*c) endif elseif @opy=="8" if @opy1=="+" y=(fn1(z)*c^fn4(z)*z)+(z*c) elseif @opy1=="-" y=(fn1(z)*c^fn4(z)*z)-(z*c) elseif @opy1=="*" y=(fn1(z)*c^fn4(z)*z)*(z*c) elseif @opy1=="/" y=(fn1(z)*c^fn4(z)*z)/(z*c) elseif @opy1=="^" y=(fn1(z)*c^fn4(z)*z)^(z*c) endif endif if @op1=="1" if@op2=="+" z=w/((x+y))+(c*z) elseif @op2=="-" z=w/((x+y))-(c*z) elseif @op2=="*" z=w/((x+y))*(c*z) elseif @op2=="/" z=w/((x+y))/(c*z) elseif @op2=="^" z=w/((x+y))^(c*z) endif elseif @op1=="2" if@op2=="+" z=w/((x-y))+(c*z) elseif @op2=="-" z=w/((x-y))-(c*z) elseif @op2=="*" z=w/((x-y))*(c*z) elseif @op2=="/" z=w/((x-y))/(c*z) elseif @op2=="^" z=w/((x-y))^(c*z) endif elseif @op1=="3" if@op2=="+" z=w/((y-x))+(c*z) elseif @op2=="-" z=w/((y-x))-(c*z) elseif @op2=="*" z=w/((y-x))*(c*z) elseif @op2=="/" z=w/((y-x))/(c*z) elseif @op2=="^" z=w/((y-x))^(c*z) endif elseif @op1=="4" if@op2=="+" z=w/((x*y))+(c*z) elseif @op2=="-" z=w/((x*y))-(c*z) elseif @op2=="*" z=w/((x*y))*(c*z) elseif @op2=="/" z=w/((x*y))/(c*z) elseif @op2=="^" z=w/((x*y))^(c*z) endif elseif @op1=="5" if@op2=="+" z=w/((x/y))+(c*z) elseif @op2=="-" z=w/((x/y))-(c*z) elseif @op2=="*" z=w/((x/y))*(c*z) elseif @op2=="/" z=w/((x/y))/(c*z) elseif @op2=="^" z=w/((x/y))^(c*z) endif endif Bailout: |z|<@bailout Default: title="Ubik" center=(0.0,0.0) angle=90 periodicity=0 method=multipass Heading caption="Mandelbrot Mode" visible=(@mode=="Mandelbrot") endheading Heading caption="Julia Mode" visible=(@mode=="Julia") endheading param mode caption="Current mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch to" default=1 enum="Mandelbrot" "Julia" visible=false endparam param Bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Operators and Parameters" endheading param StartSeed caption="Start/Seed" default=(0.09375,7.369186641e-20) endparam param @opw caption="Select W" enum="1""2""3""4""5""6""7""8" default=0 endparam param opx caption="Operator 1" enum="1""2""3" default=0 endparam param opx1 caption="Operator 2" enum="-""/""^" default=0 endparam param opy caption="Operator 3" enum="1""2""3""4""5""6""7""8" default=1 endparam param opy1 caption="Operator 4" enum="+""-""*""/""^" default=0 endparam param op1 caption="Operator 5" enum="1""2""3""4""5" default=0 endparam param op2 caption="Operator 6" enum="+""-""*""/""^" default=0 endparam param b caption="Parameter 1" default=(1.0,0.0) endparam param @c caption="Parameter 2" default=(1.0,0.0) endparam param @e caption="Parameter 3" default=(0.2,0.0) endparam param f caption="Parameter 4" default=(0.2,0.0) endparam Heading caption="Functions" endheading Func fn1 caption="Function 1" default=ident() endfunc Func fn2 caption="Function 2" default=ident() endfunc Func fn3 caption="Function 3" default=ident() endfunc Func fn4 caption="Function 4" default=ident() endfunc Func fn5 caption="Function 5" default=ident() endfunc Func fn6 caption="Function 6" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Ubik" StartSeed=#pixel bailout=@bailout opw=@opw opx=@opx opx1=@opx1 opy=@opy opy1=@opy1 op1=@op1 op2=@op2 b=@b @c=@c @e=@e f=@f fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 @fn5=@fn5 @fn6=@fn6 mode=@switchmode switchmode=@mode version=@version } Zazzle { ;Andrea Spinozzi(Sep2003) Init: z=@startSeed c=#pixel if @mode=="Mandelbrot" z=@StartSeed c=#pixel endif if @mode=="Julia" z=#pixel c=@StartSeed if @scale != 1.0 z=z/@scale endif if @center != (0,0) z=z + @center endif if @changesw != false z=#pixel^z*z c=@startseed*c endif endif Loop: x=fn1(z^p1)*fn2(z^p2) y=fn3(z^p3)+fn4(z^p4) w=@fn5(z^p5)+@fn6(z^p6) j=@fn7(z^@p7)*@fn8(z^@p8) ;---------------------------------- if @op=="1" if @op1=="+" z=((x*y+c)*z)+((j/w)^c) elseif @op1=="-" z=((x*y+c)*z)-((j/w)^c) elseif @op1=="*" z=((x*y+c)*z)*((j/w)^c) elseif @op1=="/" z=((x*y+c)*z)/((j/w)^c) endif elseif @op=="2" if @op1=="+" z=((x*y-c)*z)+(j/w) elseif @op1=="-" z=((x*y-c)*z)-(j/w) elseif @op1=="*" z=((x*y-c)*z)*(j/w) elseif @op1=="/" z=((x*y-c)*z)/(j/w) endif elseif @op=="3" if @op1=="+" z=((x*y*c)*z)+((j/w)*c) elseif @op1=="-" z=((x*y*c)*z)-((j/w)*c) elseif @op1=="*" z=((x*y*c)*z)*((j/w)*c) elseif @op1=="/" z=((x*y*c)*z)/((j/w)*c) endif elseif @op=="4" if @op1=="+" z=((x*y/c)*z)+((j/w)*c) elseif @op1=="-" z=((x*y/c)*z)-((j/w)*c) elseif @op1=="*" z=((x*y/c)*z)*((j/w)*c) elseif @op1=="/" z=((x*y/c)*z)/((j/w)*c) endif elseif @op=="5" if @op1=="+" z=((x*y^c)*z)+((j/w)*c) elseif @op1=="-" z=((x*y^c)*z)-((j/w)*c) elseif @op1=="*" z=((x*y^c)*z)*((j/w)*c) elseif @op1=="/" z=((x*y^c)*z)/((j/w)*c) endif elseif @op=="6" if @op1=="+" z=((x*y^c)*z)+((j/w)+c) elseif @op1=="-" z=((x*y^c)*z)-((j/w)+c) elseif @op1=="*" z=((x*y^c)*z)*((j/w)+c) elseif @op1=="/" z=((x*y^c)*z)/((j/w)+c) endif elseif @op=="7" if @op1=="+" z=((x*y^c)*z)+((j/w)-c) elseif @op1=="-" z=((x*y^c)*z)-((j/w)-c) elseif @op1=="*" z=((x*y^c)*z)*((j/w)-c) elseif @op1=="/" z=((x*y^c)*z)/((j/w)-c) endif elseif @op=="8" if @op1=="+" z=((x*y/c)*z)+((j/w)+c) elseif @op1=="-" z=((x*y/c)*z)-((j/w)+c) elseif @op1=="*" z=((x*y/c)*z)*((j/w)+c) elseif @op1=="/" z=((x*y/c)*z)/((j/w)+c) endif elseif @op=="9" if @op1=="+" z=((x*y/c)*z)+((j/w)-c) elseif @op1=="-" z=((x*y/c)*z)-((j/w)-c) elseif @op1=="*" z=((x*y/c)*z)*((j/w)-c) elseif @op1=="/" z=((x*y/c)*z)/((j/w)-c) endif elseif @op=="10" if @op1=="+" z=((x*y/c)*z)+((j/w)^c) elseif @op1=="-" z=((x*y/c)*z)-((j/w)^c) elseif @op1=="*" z=((x*y/c)*z)*((j/w)^c) elseif @op1=="/" z=((x*y/c)*z)/((j/w)^c) endif elseif @op=="11" if @op1=="+" z=((x*y/c)*z)+((j/w)/c) elseif @op1=="-" z=((x*y/c)*z)-((j/w)/c) elseif @op1=="*" z=((x*y/c)*z)*((j/w)/c) elseif @op1=="/" z=((x*y/c)*z)/((j/w)/c) endif elseif @op=="12" if @op1=="+" z=((x*y/c)^z)+((j/w)/c) elseif @op1=="-" z=((x*y/c)^z)-((j/w)/c) elseif @op1=="*" z=((x*y/c)^z)*((j/w)/c) elseif @op1=="/" z=((x*y/c)^z)/((j/w)/c) endif elseif @op=="13" if @op1=="+" z=((x*y+c)^z)+((j/w)^c) elseif @op1=="-" z=((x*y+c)^z)-((j/w)^c) elseif @op1=="*" z=((x*y+c)^z)*((j/w)^c) elseif @op1=="/" z=((x*y+c)^z)/((j/w)^c) endif elseif @op=="14" if @op1=="+" z=((x*y-c)^z)+(j/w) elseif @op1=="-" z=((x*y-c)^z)-(j/w) elseif @op1=="*" z=((x*y-c)^z)*(j/w) elseif @op1=="/" z=((x*y-c)^z)/(j/w) endif elseif @op=="15" if @op1=="+" z=((x*y*c)^z)+((j/w)*c) elseif @op1=="-" z=((x*y*c)^z)-((j/w)*c) elseif @op1=="*" z=((x*y*c)^z)*((j/w)*c) elseif @op1=="/" z=((x*y*c)^z)/((j/w)*c) endif elseif @op=="16" if @op1=="+" z=((x*y/c)^z)+((j/w)*c) elseif @op1=="-" z=((x*y/c)^z)-((j/w)*c) elseif @op1=="*" z=((x*y/c)^z)*((j/w)*c) elseif @op1=="/" z=((x*y/c)^z)/((j/w)*c) endif elseif @op=="17" if @op1=="+" z=((x*y^c)^z)+((j/w)*c) elseif @op1=="-" z=((x*y^c)^z)-((j/w)*c) elseif @op1=="*" z=((x*y^c)^z)*((j/w)*c) elseif @op1=="/" z=((x*y^c)^z)/((j/w)*c) endif elseif @op=="18" if @op1=="+" z=((x*y^c)^z)+((j/w)+c) elseif @op1=="-" z=((x*y^c)^z)-((j/w)+c) elseif @op1=="*" z=((x*y^c)^z)*((j/w)+c) elseif @op1=="/" z=((x*y^c)^z)/((j/w)+c) endif elseif @op=="19" if @op1=="+" z=((x*y^c)^z)+((j/w)-c) elseif @op1=="-" z=((x*y^c)^z)-((j/w)-c) elseif @op1=="*" z=((x*y^c)^z)*((j/w)-c) elseif @op1=="/" z=((x*y^c)^z)/((j/w)-c) endif elseif @op=="20" if @op1=="+" z=((x*y/c)^z)+((j/w)+c) elseif @op1=="-" z=((x*y/c)^z)-((j/w)+c) elseif @op1=="*" z=((x*y/c)^z)*((j/w)+c) elseif @op1=="/" z=((x*y/c)^z)/((j/w)+c) endif elseif @op=="9" if @op1=="+" z=((x*y/c)^z)+((j/w)-c) elseif @op1=="-" z=((x*y/c)^z)-((j/w)-c) elseif @op1=="*" z=((x*y/c)^z)*((j/w)-c) elseif @op1=="/" z=((x*y/c)^z)/((j/w)-c) endif endif Bailout: |z|<@bailout Default: title="Zazzle" center=(0.0,0.0) magn=1 angle=90 maxiter=250 method=multipass periodicity=0 param bailout caption ="Bailout Value" default=4.0 min=0.0 endparam param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 endparam param SwitchMode caption="Select Switch" enum="Mandelbrot""Julia" default=1 endparam Heading caption="Switch Parameters" visible=@show endheading param changesw caption="Another Switch method" default=false endparam param @show caption="Show Switch Parameters" default=false endparam param swscale caption="Switch Scale" default=1.5 visible=@show endparam param swcenter caption="Switch Center" default=(0.0,0.0) visible=@show endparam param scale caption="Scale Reset" default=1.0 visible=@show endparam param center caption="Center Reset" default=(0,0) visible=@show endparam Heading caption="Operators and Parameters" endheading param StartSeed caption="Start/Seed" default=(0.39375,8.164550579e-18) endparam param op caption="Select" enum="1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16""17""18""19""20" default=0 endparam param op1 caption="Operator" enum="+""-""*""/" default=0 endparam param p1 caption="Parameter 1" default=(0.5,0.0) endparam param p2 caption="Parameter 2" default=(0.5,0.0) endparam param p3 caption="Parameter 3" default=(0.5,0.0) endparam param p4 caption="Parameter 4" default=(0.5,0.0) endparam param p5 caption="Parameter 5" default=(0.5,0.0) endparam param p6 caption="Parameter 6" default=(0.5,0.0) endparam param p7 caption="Parameter 7" default=(0.5,0.0) endparam param p8 caption="Parameter 8" default=(0.5,0.0) endparam Heading caption="Functions" endheading Func fn1 caption="Function 1" default=log() endfunc Func fn2 caption="Function 2" default=cos() endfunc Func fn3 caption="Function 3" default=sqrt() endfunc Func fn4 caption="Function 4" default=ident() endfunc Func fn5 caption="Function 5" default=exp() endfunc Func fn6 caption="Function 6" default=exp() endfunc Func fn7 caption="Function 7" default=exp() endfunc Func fn8 caption="Function 8" default=exp() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Zazzle" bailout=@bailout startseed=#pixel op=@op op1=@op1 p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 p8=@p8 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 fn8=@fn8 mode=@switchmode switchmode=@mode center=@swcenter scale=@swscale changesw=@changesw version=@version } Curve+fbm { ;This formula presents some of the commons curves with fbm, implemented Popcorn and Gnarl ;perturbations. ;Compound with the formulae of Damien Jones and Mark Townsend for the FBM implementation ;and the crazy spiral effect. ;Andrea Spinozzi(Aug2006) Init: z=pixel oz=z int iter=0 float rad=0.0 dist=0.0 float x=0.0 float y=0.0 float theta=0.0 complex r = (0,1) ^ (@angle / 90.0) complex r2 = (0,1) ^ (@anglestep / 90.0) complex r3 = (0,1) ^ (@distangle / 90.0) complex c = @distcenter IF (@centermove) c = #center ENDIF float fiter = @noisestart BOOL noise = false IF (@noiseskip != 0); we are skipping some iterations fiter = fiter - 1; one less to go before we add noise WHILE (fiter < 0.0); iterations all used up IF (noise); we are currently adding noise noise = false; so stop fiter = fiter + @noiseskip; skip this many iterations ELSE; we aren't currently adding noise noise = true; so start fiter = fiter + @noiseiter; do this many iterations ENDIF ENDWHILE ENDIF float x=real(z) float y=imag(z) float theta=atan2(@fth(z))*@thinc IF (@noiseskip == 0.0 || noise); adding noise this iteration complex p = z * @scale * r + @offset float sum = 0.0 float freq = 1.0 complex v = (0,0) int i = @octaves WHILE (i > 0) ; determine integer coordinate for corners of square ; surrounding p float bx0 = floor(real(p)) % 256 float by0 = floor(imag(p)) % 256 IF (bx0 < 0) bx0 = bx0 + 256 ENDIF IF (by0 < 0) by0 = by0 + 256 ENDIF float bx1 = (bx0 + 1) % 256 float by1 = (by0 + 1) % 256 float rx0 = real(p) - floor(real(p)) float ry0 = imag(p) - floor(imag(p)) float rx1 = rx0 - 1 float ry1 = ry0 - 1 ; create a "random" index for each corner ; (this is where Intel's version differs from Perlin's; ; I used Intel's version because it doesn't require a ; pre-computed random table, which is difficult to manage ; in UF.) float b00 = (bx0^@npower % 65536 + by0)^@npower % 65536 float b10 = (bx1^@npower % 65536 + by0)^@npower % 65536 float b01 = (bx0^@npower % 65536 + by1)^@npower % 65536 float b11 = (bx1^@npower % 65536 + by1)^@npower % 65536 ; produce a "random" vector for each corner float g_b00_0 = (b00)^@npower*0.25 % 512 - 256 float g_b10_0 = (b10)^@npower*0.25 % 512 - 256 float g_b01_0 = (b01)^@npower*0.25 % 512 - 256 float g_b11_0 = (b11)^@npower*0.25 % 512 - 256 float g_b00_1 = (b00+1)^@npower*0.25 % 512 - 256 float g_b10_1 = (b10+1)^@npower*0.25 % 512 - 256 float g_b01_1 = (b01+1)^@npower*0.25 % 512 - 256 float g_b11_1 = (b11+1)^@npower*0.25 % 512 - 256 ; normalize each vector float d = 0.0; d = 1 / sqrt(sqr(g_b00_0) + sqr(g_b00_1)) g_b00_0 = g_b00_0 * d g_b00_1 = g_b00_1 * d d = 1 / sqrt(sqr(g_b10_0) + sqr(g_b10_1)) g_b10_0 = g_b10_0 * d g_b10_1 = g_b10_1 * d d = 1 / sqrt(sqr(g_b01_0) + sqr(g_b01_1)) g_b01_0 = g_b01_0 * d g_b01_1 = g_b01_1 * d d = 1 / sqrt(sqr(g_b11_0) + sqr(g_b11_1)) g_b11_0 = g_b11_0 * d g_b11_1 = g_b11_1 * d ; produce colors for each corner float u1 = rx0 * g_b00_0 + ry0 * g_b00_1 float v1 = rx1 * g_b10_0 + ry0 * g_b10_1 float u2 = rx0 * g_b01_0 + ry1 * g_b01_1 float v2 = rx1 * g_b11_0 + ry1 * g_b11_1 ; interpolate between corners using ; bilinear filtering float sx = sqr(rx0) * (3 - rx0*2) float sy = sqr(ry0) * (3 - ry0*2) float a = u1 + sx*(v1-u1) float b = u2 + sx*(v2-u2) sum = sum + (a + sy*(b-a))*freq freq = freq * @step p = p * r2 / @step i = i - 1 ENDWHILE IF (@style == 0); radial distortion v = (z-c)/cabs(z-c) * r3; use vector based on angle to distortion center ELSEIF (@style == 1); linear distortion v = r3-c; just use rotation ENDIF z = z + v * sum*0.5*@distortion ENDIF IF (@coloronly); only using fBm on coloring z = oz; restore z from un-fBm'ed copy ENDIF if (@spiral==true) w = z float rad_s = cabs(w) float theta_w = atan2(w) if theta_w < 0 theta_w = theta_w + 2 * #pi endif theta_w = @sp1*real(@fnsp1(rad_s))+theta_w+@sp2*real(@fnsp2(@sp3*theta_w)) float xw = rad_s * cos(theta_w) float yw = rad_s * sin(theta_w) z = xw + flip(yw) z = z+@offz else z = z+@offz endif float x=real(z) float y=imag(z) float theta=atan2(@fth(z))*@thinc IF (@coloronly == false); not just using fBm on coloring oz = z; value for bailout is fBm'ed z ENDIF Loop: if (@useins==false) iter=iter+1 else iter=iter endif if (@trap_mode==0) ; Cardioid float rad=2*@card1*(1+cos(theta))*@card2 trap_p=rad*@ftrap1(cos(theta))+flip(rad*@ftrap2(sin(theta))) float x=real(x)*@xinc float y=real(y)*@yinc float fx=x float fy=y if (@perturb==0) ; Gnarl x=fx-@gnastep*real(fy+@fp1(@gnalpha*(fy+@fp2(@gnbeta*fy)))) y=fy+@gnastep*real(fx+@fp3(@gnalpha*(fx+@fp4(@gnbeta*fx)))) elseif (@perturb==1) ; Popcorn x=fx-@popstep*real(@fnp1(fy+@fnp2(3*@popalpha*fy*@popbeta))) y=fy-@popstep*real(@fnp3(fx+@fnp4(3*@popalpha*fx*@popbeta))) endif t=cabs(x-flip(y)) trap_p1=@fnt(t)+@fntrp(trap_p) dist=cabs(@fnz(z)-trap_p1) elseif (@trap_mode==1) ; Limacon of Pascal float rad=@lima1+2*@lima2*cos(theta) trap_p=rad*@ftrap1(cos(theta))+flip(rad*@ftrap2(sin(theta))) float x=real(x)*@xinc float y=real(y)*@yinc float fx=x float fy=y if (@perturb==0) ; Gnarl x=fx-@gnastep*real(fy+@fp1(@gnalpha*(fy+@fp2(@gnbeta*fy)))) y=fy+@gnastep*real(fx+@fp3(@gnalpha*(fx+@fp4(@gnbeta*fx)))) elseif (@perturb==1) ; Popcorn x=fx-@popstep*real(@fnp1(fy+@fnp2(3*@popalpha*fy*@popbeta))) y=fy-@popstep*real(@fnp3(fx+@fnp4(3*@popalpha*fx*@popbeta))) endif t=cabs(x+flip(y)) trap_p=@fnt(t)+@fntrp(trap_p) dist=cabs(@fnz(z)-trap_p) elseif (@trap_mode==2) ; Lemniscate of Bernoulli float rad=sqrt(@lemni1^2+cos(2*theta)*@lemni2) trap_p=rad*@ftrap1(cos(theta))+flip(rad*@ftrap2(sin(theta))) float x=real(x)*@xinc float y=real(y)*@yinc float fx=x float fy=y if (@perturb==0) ; Gnarl x=fx-@gnastep*real(fy+@fp1(@gnalpha*(fy+@fp2(@gnbeta*fy)))) y=fy+@gnastep*real(fx+@fp3(@gnalpha*(fx+@fp4(@gnbeta*fx)))) elseif (@perturb==1) ; Popcorn x=fx-@popstep*real(@fnp1(fy+@fnp2(3*@popalpha*fy*@popbeta))) y=fy-@popstep*real(@fnp3(fx+@fnp4(3*@popalpha*fx*@popbeta))) endif t=cabs(x+flip(y)) trap_p=@fnt(t)+@fntrp(trap_p) dist=cabs(@fnz(z)-trap_p) elseif (@trap_mode==3) ; Cissoid of Diocles float rad=(2*@ciss1*tan(theta)*sin(theta))*@ciss2 trap_p=rad*@ftrap1(cos(theta))+flip(rad*@ftrap2(sin(theta))) float x=real(x)*@xinc float y=real(y)*@yinc float fx=x float fy=y if (@perturb==0) ; Gnarl x=fx-@gnastep*real(fy+@fp1(@gnalpha*(fy+@fp2(@gnbeta*fy)))) y=fy+@gnastep*real(fx+@fp3(@gnalpha*(fx+@fp4(@gnbeta*fx)))) elseif (@perturb==1) ; Popcorn x=fx-@popstep*real(@fnp1(fy+@fnp2(3*@popalpha*fy*@popbeta))) y=fy-@popstep*real(@fnp3(fx+@fnp4(3*@popalpha*fx*@popbeta))) endif t=cabs(x+flip(y)) trap_p=@fnt(t)+@fntrp(trap_p) dist=cabs(@fnz(z)-trap_p) elseif (@trap_mode==4) ; Kampyle of Eudoxus float rad=@kamp1^2/(@kamp2*cos(theta)^2) trap_p=rad*@ftrap1(cos(theta))+flip(rad*@ftrap2(sin(theta))) float x=real(x)*@xinc float y=real(y)*@yinc float fx=x float fy=y if (@perturb==0) ; Gnarl x=fx-@gnastep*real(fy+@fp1(@gnalpha*(fy+@fp2(@gnbeta*fy)))) y=fy+@gnastep*real(fx+@fp3(@gnalpha*(fx+@fp4(@gnbeta*fx)))) elseif (@perturb==1) ; Popcorn x=fx-@popstep*real(@fnp1(fy+@fnp2(3*@popalpha*fy*@popbeta))) y=fy-@popstep*real(@fnp3(fx+@fnp4(3*@popalpha*fx*@popbeta))) endif t=cabs(x+flip(y)) trap_p=@fnt(t)+@fntrp(trap_p) dist=cabs(@fnz(z)-trap_p) elseif (@trap_mode==5) ; Strophoid float rad=@stroph1*sin(@stroph2-2*theta)/cos(@stroph2-theta) trap_p=rad*@ftrap1(cos(theta))+flip(rad*@ftrap2(sin(theta))) float x=real(x)*@xinc float y=real(y)*@yinc float fx=x float fy=y if (@perturb==0) ; Gnarl x=fx-@gnastep*real(fy+@fp1(@gnalpha*(fy+@fp2(@gnbeta*fy)))) y=fy+@gnastep*real(fx+@fp3(@gnalpha*(fx+@fp4(@gnbeta*fx)))) elseif (@perturb==1) ; Popcorn x=fx-@popstep*real(@fnp1(fy+@fnp2(3*@popalpha*fy*@popbeta))) y=fy-@popstep*real(@fnp3(fx+@fnp4(3*@popalpha*fx*@popbeta))) endif t=cabs(x+flip(y)) trap_p=@fnt(t)+@fntrp(trap_p) dist=cabs(@fnz(z)-trap_p) elseif (@trap_mode==6) ; Quadratix of Hippias float rad=@quadr1*theta/(#pi*sin(theta)*@quadr2) trap_p=rad*@ftrap1(cos(theta))+flip(rad*@ftrap2(sin(theta))) float x=real(x)*@xinc float y=real(y)*@yinc float fx=x float fy=y if (@perturb==0) ; Gnarl x=fx-@gnastep*real(fy+@fp1(@gnalpha*(fy+@fp2(@gnbeta*fy)))) y=fy+@gnastep*real(fx+@fp3(@gnalpha*(fx+@fp4(@gnbeta*fx)))) elseif (@perturb==1) ; Popcorn x=fx-@popstep*real(@fnp1(fy+@fnp2(3*@popalpha*fy*@popbeta))) y=fy-@popstep*real(@fnp3(fx+@fnp4(3*@popalpha*fx*@popbeta))) endif t=cabs(x+flip(y)) trap_p=@fnt(t)+@fntrp(trap_p) dist=cabs(@fnz(z)-trap_p) elseif (@trap_mode==7) ; Folium of Descartes float rad=(3*@fdesc1*sin(theta)*cos(theta))/(sin(theta)^3+cos(theta)^3)*@fdesc2 trap_p=rad*@ftrap1(cos(theta))+flip(rad*@ftrap2(sin(theta))) float x=real(x)*@xinc float y=real(y)*@yinc float fx=x float fy=y if (@perturb==0) ; Gnarl x=fx-@gnastep*real(fy+@fp1(@gnalpha*(fy+@fp2(@gnbeta*fy)))) y=fy+@gnastep*real(fx+@fp3(@gnalpha*(fx+@fp4(@gnbeta*fx)))) elseif (@perturb==1) ; Popcorn x=fx-@popstep*real(@fnp1(fy+@fnp2(3*@popalpha*fy*@popbeta))) y=fy-@popstep*real(@fnp3(fx+@fnp4(3*@popalpha*fx*@popbeta))) endif t=cabs(x+flip(y)) trap_p=@fnt(t)+@fntrp(trap_p) dist=cabs(@fnz(z)-trap_p) elseif (@trap_mode==8) ; Folium float rad=-@foli1*cos(theta)+4*@foli2*cos(theta)*(1-cos(theta)^2) trap_p=rad*@ftrap1(cos(theta))+flip(rad*@ftrap2(sin(theta))) float x=real(x)*@xinc float y=real(y)*@yinc float fx=x float fy=y if (@perturb==0) ; Gnarl x=fx-@gnastep*real(fy+@fp1(@gnalpha*(fy+@fp2(@gnbeta*fy)))) y=fy+@gnastep*real(fx+@fp3(@gnalpha*(fx+@fp4(@gnbeta*fx)))) elseif (@perturb==1) ; Popcorn x=fx-@popstep*real(@fnp1(fy+@fnp2(3*@popalpha*fy*@popbeta))) y=fy-@popstep*real(@fnp3(fx+@fnp4(3*@popalpha*fx*@popbeta))) endif t=cabs(x+flip(y)) trap_p=@fnt(t)+@fntrp(trap_p) dist=cabs(@fnz(z)-trap_p) elseif (@trap_mode==9) ; Hopalong float x=real(@startx(x)) float y=real(@starty(y)) float sxa = 1.0 if x < 0.0 sxa=-1.0 endif float tx=x float ty=y x=ty-sxa*sqrt(abs(@hop1*tx-@hop2)) y=@hop3-tx float sxa = 1.0 if x < 0.0 sxa=-1.0 endif tx=x+1*@xinc ty=y+1*@yinc if (@perturb==0) ; Gnarl x=tx-@gnastep1*real(ty+@fp1(@gnalpha*(ty+@fp2(@gnbeta*ty)))) y=ty+@gnastep1*real(tx+@fp3(@gnalpha*(tx+@fp4(@gnbeta*tx)))) elseif (@perturb==1) ; Popcorn x=tx-@popstep1*real(@fnp1(ty+@fnp2(3*@popalpha*ty*@popbeta))) y=ty-@popstep1*real(@fnp3(tx+@fnp4(3*@popalpha*tx*@popbeta))) endif dist=@fnx(x)+@fny1(flip(@fny2(y))) elseif (@trap_mode==10) ; Modified Hopalong "change operator in +" float x=real(@startx(x)) float y=real(@starty(y)) float sxa = 1.0 if x < 0.0 sxa=-1.0 endif float tx=x float ty=y x=ty-sxa+sqrt(abs(@mhop1*tx-@mhop2)) y=@mhop3-tx float sxa = 1.0 if x < 0.0 sxa=-1.0 endif tx=x+1*@xinc ty=y+1*@yinc if (@perturb==0) ; Gnarl x=tx-@gnastep1*real(ty+@fp1(@gnalpha*(ty+@fp2(@gnbeta*ty)))) y=ty+@gnastep1*real(tx+@fp3(@gnalpha*(tx+@fp4(@gnbeta*tx)))) elseif (@perturb==1) ; Popcorn x=tx-@popstep1*real(@fnp1(ty+@fnp2(3*@popalpha*ty*@popbeta))) y=ty-@popstep1*real(@fnp3(tx+@fnp4(3*@popalpha*tx*@popbeta))) endif dist=@fnx(x)+@fny1(flip(@fny2(y))) elseif (@trap_mode==11) ; Modified1 Hopalong "change operator in -" float x=real(@startx(x)) float y=real(@starty(y)) float sxa = 1.0 if x < 0.0 sxa=-1.0 endif float tx=x float ty=y x=ty-sxa-sqrt(abs(@mhop11*tx-@mhop12)) y=@mhop13-tx float sxa = 1.0 if x < 0.0 sxa=-1.0 endif tx=x+1*@xinc ty=y+1*@yinc if (@perturb==0) ; Gnarl x=tx-@gnastep1*real(ty+@fp1(@gnalpha*(ty+@fp2(@gnbeta*ty)))) y=ty+@gnastep1*real(tx+@fp3(@gnalpha*(tx+@fp4(@gnbeta*tx)))) elseif (@perturb==1) ; Popcorn x=tx-@popstep1*real(@fnp1(ty+@fnp2(3*@popalpha*ty*@popbeta))) y=ty-@popstep1*real(@fnp3(tx+@fnp4(3*@popalpha*tx*@popbeta))) endif dist=@fnx(x)+@fny1(flip(@fny2(y))) elseif (@trap_mode==12) ; Modified2 Hopalong "change operator in /" float x=real(@startx(x)) float y=real(@starty(y)) float sxa = 1.0 if x < 0.0 sxa=-1.0 endif float tx=x float ty=y x=ty-sxa/sqrt(abs(@mhop111*tx-@mhop112)) y=@mhop113-tx float sxa = 1.0 if x < 0.0 sxa=-1.0 endif tx=x+1*@xinc ty=y+1*@yinc if (@perturb==0) ; Gnarl x=tx-@gnastep1*real(ty+@fp1(@gnalpha*(ty+@fp2(@gnbeta*ty)))) y=ty+@gnastep1*real(tx+@fp3(@gnalpha*(tx+@fp4(@gnbeta*tx)))) elseif (@perturb==1) ; Popcorn x=tx-@popstep1*real(@fnp1(ty+@fnp2(3*@popalpha*ty*@popbeta))) y=ty-@popstep1*real(@fnp3(tx+@fnp4(3*@popalpha*tx*@popbeta))) endif dist=@fnx(x)+@fny1(flip(@fny2(y))) elseif (@trap_mode==13) ; Quadrup Two float x=real(@startx(x)) float y=real(@starty(y)) float sxa = 1.0 if x < 0.0 sxa=-1.0 endif float tx=x float ty=y x=ty-sxa*sin(log(abs(@quadtwo1*tx-@quadtwo2)))*atan(sqr(abs(@quadtwo2*tx-@quadtwo1))) y=@quadtwo3-tx float sxa = 1.0 if x < 0.0 sxa=-1.0 endif tx=x+1*@xinc ty=y+1*@yinc if (@perturb==0) ; Gnarl x=tx-@gnastep1*real(ty+@fp1(@gnalpha*(ty+@fp2(@gnbeta*ty)))) y=ty+@gnastep1*real(tx+@fp3(@gnalpha*(tx+@fp4(@gnbeta*tx)))) elseif (@perturb==1) ; Popcorn x=tx-@popstep1*real(@fnp1(ty+@fnp2(3*@popalpha*ty*@popbeta))) y=ty-@popstep1*real(@fnp3(tx+@fnp4(3*@popalpha*tx*@popbeta))) endif dist=@fnx(x)+@fny1(flip(@fny2(y))) elseif (@trap_mode==14) ; Popcorn float x=real(@startx(x)) float y=real(@starty(y)) float sxa = 1.0 if x < 0.0 sxa=-1.0 endif float tx=x float ty=y x=tx-@pop1*sin(ty+tan(3*@pop2*ty*@pop3)) y=ty-@pop1*sin(tx+tan(3*@pop2*tx*@pop3)) float sxa = 1.0 if x < 0.0 sxa=-1.0 endif tx=x+1*@xinc ty=y+1*@yinc if (@perturb==0) ; Gnarl x=tx-@gnastep1*real(ty+@fp1(@gnalpha*(ty+@fp2(@gnbeta*ty)))) y=ty+@gnastep1*real(tx+@fp3(@gnalpha*(tx+@fp4(@gnbeta*tx)))) elseif (@perturb==1) ; Popcorn x=tx-@popstep1*real(@fnp1(ty+@fnp2(3*@popalpha*ty*@popbeta))) y=ty-@popstep1*real(@fnp3(tx+@fnp4(3*@popalpha*tx*@popbeta))) endif dist=@fnx(x)+@fny1(flip(@fny2(y))) elseif (@trap_mode==15) ; Gingerbread float x=real(@startx(x)) float y=real(@starty(y)) float sxa = 1.0 if x < 0.0 sxa=-1.0 endif float tx=x float ty=y x=(1-ty+abs(tx))*@ging1 y=@ging2*tx*@ging3 float sxa = 1.0 if x < 0.0 sxa=-1.0 endif tx=x+1*@xinc ty=y+1*@yinc if (@perturb==0) ; Gnarl x=tx-@gnastep1*real(ty+@fp1(@gnalpha*(ty+@fp2(@gnbeta*ty)))) y=ty+@gnastep1*real(tx+@fp3(@gnalpha*(tx+@fp4(@gnbeta*tx)))) elseif (@perturb==1) ; Popcorn x=tx-@popstep1*real(@fnp1(ty+@fnp2(3*@popalpha*ty*@popbeta))) y=ty-@popstep1*real(@fnp3(tx+@fnp4(3*@popalpha*tx*@popbeta))) endif dist=@fnx(x)+@fny1(flip(@fny2(y))) elseif (@trap_mode==16) ; Three Ply float x=real(@startx(x)) float y=real(@starty(y)) float sxa = 1.0 if x < 0.0 sxa=-1.0 endif float tx=x float ty=y x=ty-sxa*abs(sin(tx*cos(@thrply1)+@thrply2-tx*sin(@thrply3+@thrply1+@thrply2))) y=@thrply3-tx float sxa = 1.0 if x < 0.0 sxa=-1.0 endif tx=x+1*@xinc ty=y+1*@yinc if (@perturb==0) ; Gnarl x=tx-@gnastep1*real(ty+@fp1(@gnalpha*(ty+@fp2(@gnbeta*ty)))) y=ty+@gnastep1*real(tx+@fp3(@gnalpha*(tx+@fp4(@gnbeta*tx)))) elseif (@perturb==1) ; Popcorn x=tx-@popstep1*real(@fnp1(ty+@fnp2(3*@popalpha*ty*@popbeta))) y=ty-@popstep1*real(@fnp3(tx+@fnp4(3*@popalpha*tx*@popbeta))) endif dist=@fnx(x)+@fny1(flip(@fny2(y))) elseif (@trap_mode==17) ; Martin float x=real(@startx(x)) float y=real(@starty(y)) float sxa = 1.0 if x < 0.0 sxa=-1.0 endif float tx=x float ty=y x=@mart1*ty-sin(tx)*@mart2 y=@mart3-tx float sxa = 1.0 if x < 0.0 sxa=-1.0 endif tx=x+1*@xinc ty=y+1*@yinc if (@perturb==0) ; Gnarl x=tx-@gnastep1*real(ty+@fp1(@gnalpha*(ty+@fp2(@gnbeta*ty)))) y=ty+@gnastep1*real(tx+@fp3(@gnalpha*(tx+@fp4(@gnbeta*tx)))) elseif (@perturb==1) ; Popcorn x=tx-@popstep1*real(@fnp1(ty+@fnp2(3*@popalpha*ty*@popbeta))) y=ty-@popstep1*real(@fnp3(tx+@fnp4(3*@popalpha*tx*@popbeta))) endif dist=@fnx(x)+@fny1(flip(@fny2(y))) elseif (@trap_mode==18) ; Modified Martin "x=abs(ty-tx)" float x=real(@startx(x)) float y=real(@starty(y)) float sxa = 1.0 if x < 0.0 sxa=-1.0 endif float tx=x float ty=y x=abs(@mmart1*ty-tx*@mmart2) y=@mmart3-tx float sxa = 1.0 if x < 0.0 sxa=-1.0 endif tx=x+1*@xinc ty=y+1*@yinc if (@perturb==0) ; Gnarl x=tx-@gnastep1*real(ty+@fp1(@gnalpha*(ty+@fp2(@gnbeta*ty)))) y=ty+@gnastep1*real(tx+@fp3(@gnalpha*(tx+@fp4(@gnbeta*tx)))) elseif (@perturb==1) ; Popcorn x=tx-@popstep1*real(@fnp1(ty+@fnp2(3*@popalpha*ty*@popbeta))) y=ty-@popstep1*real(@fnp3(tx+@fnp4(3*@popalpha*tx*@popbeta))) endif dist=@fnx(x)+@fny1(flip(@fny2(y))) elseif (@trap_mode==19) ; Modified Quadrup Two (x=abs(.....)) float x=real(@startx(x)) float y=real(@starty(y)) float sxa = 1.0 if x < 0.0 sxa=-1.0 endif float tx=x float ty=y x=abs(ty-sxa*sin(log(abs(@mquadtwo1*tx-@mquadtwo2)))*atan(sqr(abs(@mquadtwo2*tx-@mquadtwo1)))) y=@mquadtwo3-tx float sxa = 1.0 if x < 0.0 sxa=-1.0 endif tx=x+1*@xinc ty=y+1*@yinc if (@perturb==0) ; Gnarl x=tx-@gnastep1*real(ty+@fp1(@gnalpha*(ty+@fp2(@gnbeta*ty)))) y=ty+@gnastep1*real(tx+@fp3(@gnalpha*(tx+@fp4(@gnbeta*tx)))) elseif (@perturb==1) ; Popcorn x=tx-@popstep1*real(@fnp1(ty+@fnp2(3*@popalpha*ty*@popbeta))) y=ty-@popstep1*real(@fnp3(tx+@fnp4(3*@popalpha*tx*@popbeta))) endif dist=@fnx(x)+@fny1(flip(@fny2(y))) elseif (@trap_mode==20) ; Modified Three Ply (x=abs(......)) float x=real(@startx(x)) float y=real(@starty(y)) float sxa = 1.0 if x < 0.0 sxa=-1.0 endif float tx=x float ty=y x=abs(ty-sxa*abs(sin(tx*cos(@mthrply1)+@mthrply2-tx*sin(@mthrply3+@mthrply1+@mthrply2)))) y=@mthrply3-tx float sxa = 1.0 if x < 0.0 sxa=-1.0 endif tx=x+1*@xinc ty=y+1*@yinc if (@perturb==0) ; Gnarl x=tx-@gnastep1*real(ty+@fp1(@gnalpha*(ty+@fp2(@gnbeta*ty)))) y=ty+@gnastep1*real(tx+@fp3(@gnalpha*(tx+@fp4(@gnbeta*tx)))) elseif (@perturb==1) ; Popcorn x=tx-@popstep1*real(@fnp1(ty+@fnp2(3*@popalpha*ty*@popbeta))) y=ty-@popstep1*real(@fnp3(tx+@fnp4(3*@popalpha*tx*@popbeta))) endif dist=@fnx(x)+@fny1(flip(@fny2(y))) elseif (@trap_mode==21) ; Gnarl float x=real(@startx(x)) float y=real(@starty(y)) float sxa = 1.0 if x < 0.0 sxa=-1.0 endif float tx=x float ty=y x=x-@gnar1*real(y+sin(@gnar2*(y+sin(@gnar3*y)))) y=y+@gnar1*real(x+sin(@gnar2*(x+sin(@gnar3*x)))) float sxa = 1.0 if x < 0.0 sxa=-1.0 endif tx=x+1*@xinc ty=y+1*@yinc if (@perturb==0) ; Gnarl x=tx-@gnastep1*real(ty+@fp1(@gnalpha*(ty+@fp2(@gnbeta*ty)))) y=ty+@gnastep1*real(tx+@fp3(@gnalpha*(tx+@fp4(@gnbeta*tx)))) elseif (@perturb==1) ; Popcorn x=tx-@popstep1*real(@fnp1(ty+@fnp2(3*@popalpha*ty*@popbeta))) y=ty-@popstep1*real(@fnp3(tx+@fnp4(3*@popalpha*tx*@popbeta))) endif dist=@fnx(x)+@fny1(flip(@fny2(y))) endif z=dist Bailout: #maxiter>iter Default: title="Curve+fbm" maxiter=20 method=multipass periodicity=0 magn=0.8 center=(0.0,0.0) Heading caption="Formula Parameters" Endheading param useins caption="Use Inside" default=false endparam Heading caption="Spiral Parameters" visible=(@spiral==true) Endheading param spiral caption="Crazy Spiral" default=false endparam float param sp1 caption="Tightness" default=3.0 visible=(@spiral==true) endparam float param sp3 caption="Wave Frequency" default=20.0 visible=(@spiral==true) endparam float param sp2 caption="Wave Amplitude" default=1.0 visible=(@spiral==true) endparam func fnsp1 caption="Function1 Spiral" default=ident() visible=(@spiral==true) endfunc func fnsp2 caption="Function2 Spiral" default=sin() visible=(@spiral==true) endfunc Heading caption="Trap" Endheading param trap_mode caption="Select Trap" enum="Cardioid""Limacon of Pascal""Lemniscate of Bernoulli""Cissoid of Diocles"\ "Kampyle of Eudoxus""Strophoid""Quadratix of Hippias""Folium Of Descartes"\ "Folium""Hopalong""Modified Hopalong""Modified1 Hopalong""Modified2 Hopalong"\ "Quadrup Two""Popcorn""Gingerbread""Three Ply""Martin""Modified Martin"\ "Modified Quadrup Two""Modified Three Ply""Gnarl" default=0 endparam Heading caption="Cardioid" visible=(@trap_mode==0) Endheading float param card1 caption="Trap Parameter 1" default=0.5 visible=(@trap_mode==0) endparam float param card2 caption="Trap Parameter 2" default=1.0 visible=(@trap_mode==0) endparam Heading caption="Limacon of Pascal" visible=(@trap_mode==1) Endheading param lima1 caption="Trap Parameter 1" default=0.5 visible=(@trap_mode==1) endparam param lima2 caption="Trap Parameter 2" default=0.5 visible=(@trap_mode==1) endparam Heading caption="Lemniscate of Bernoulli" visible=(@trap_mode==2) Endheading param lemni1 caption="Trap Parameter 1" default=1.0 visible=(@trap_mode==2) endparam param lemni2 caption="Trap Parameter 2" default=1.0 visible=(@trap_mode==2) endparam Heading caption="Cissoid of Diocles" visible=(@trap_mode==3) Endheading param ciss1 caption="Trap Parameter 1" default=1.0 visible=(@trap_mode==3) endparam param ciss2 caption="Trap Parameter 2" default=1.0 visible=(@trap_mode==3) endparam Heading caption="Kampyle of Eudoxus" visible=(@trap_mode==4) Endheading param kamp1 caption="Trap Parameter 1" default=1.0 visible=(@trap_mode==4) endparam param kamp2 caption="Trap Parameter 2" default=1.0 visible=(@trap_mode==4) endparam Heading caption="Strophoid" visible=(@trap_mode==5) Endheading param stroph1 caption="Trap Parameter 1" default=1.0 visible=(@trap_mode==5) endparam param stroph2 caption="Trap Parameter 2" default=1.0 visible=(@trap_mode==5) endparam Heading caption="Quadratix of Hippias" visible=(@trap_mode==6) Endheading param quadr1 caption="Trap Parameter 1" default=1.0 visible=(@trap_mode==6) endparam param quadr2 caption="Trap Parameter 2" default=1.0 visible=(@trap_mode==6) endparam Heading caption="Folium of Descartes" visible=(@trap_mode==7) Endheading param fdesc1 caption="Trap Parameter 1" default=1.0 visible=(@trap_mode==7) endparam param fdesc2 caption="Trap Parameter 2" default=1.0 visible=(@trap_mode==7) endparam Heading caption="Folium" visible=(@trap_mode==8) Endheading param foli1 caption="Trap Parameter 1" default=1.0 visible=(@trap_mode==8) endparam param foli2 caption="Trap Parameter 2" default=1.0 visible=(@trap_mode==8) endparam float param thinc caption="Theta Increment" default=1.0 visible=(@trap_mode==0)||(@trap_mode==1)||(@trap_mode==2)||(@trap_mode==3)||\ (@trap_mode==4)||(@trap_mode==5)||(@trap_mode==6)||(@trap_mode==7)||\ (@trap_mode==8) endparam Heading caption="Hopalong" visible=(@trap_mode==9) Endheading param hop1 caption="Trap Parameter 1" default=1.0 visible=(@trap_mode==9) endparam param hop2 caption="Trap Parameter 2" default=0.0 visible=(@trap_mode==9) endparam param hop3 caption="Trap Parameter 3" default=0.4 visible=(@trap_mode==9) endparam Heading caption="Modified Hopalong" visible=(@trap_mode==10) Endheading param mhop1 caption="Trap Parameter 1" default=1.0 visible=(@trap_mode==10) endparam param mhop2 caption="Trap Parameter 2" default=0.0 visible=(@trap_mode==10) endparam param mhop3 caption="Trap Parameter 3" default=0.4 visible=(@trap_mode==10) endparam Heading caption="Modified1 Hopalong" visible=(@trap_mode==11) Endheading param mhop11 caption="Trap Parameter 1" default=1.0 visible=(@trap_mode==11) endparam param mhop12 caption="Trap Parameter 2" default=1.5 visible=(@trap_mode==11) endparam param mhop13 caption="Trap Parameter 3" default=0.5 visible=(@trap_mode==11) endparam Heading caption="Modified2 Hopalong" visible=(@trap_mode==12) Endheading param mhop111 caption="Trap Parameter 1" default=0.5 visible=(@trap_mode==12) endparam param mhop112 caption="Trap Parameter 2" default=1.5 visible=(@trap_mode==12) endparam param mhop113 caption="Trap Parameter 3" default=0.5 visible=(@trap_mode==12) endparam Heading caption="Quadrup Two" visible=(@trap_mode==13) Endheading param quadtwo1 caption="Trap Parameter 1" default=1.0 visible=(@trap_mode==13) endparam param quadtwo2 caption="Trap Parameter 2" default=1.0 visible=(@trap_mode==13) endparam param quadtwo3 caption="Trap Parameter 3" default=1.0 visible=(@trap_mode==13) endparam Heading caption="Popcorn" visible=(@trap_mode==14) Endheading param pop1 caption="Step" default=0.05 visible=(@trap_mode==14) endparam param pop2 caption="Alpha" default=2.7 visible=(@trap_mode==14) endparam param pop3 caption="Beta" default=0.5 visible=(@trap_mode==14) endparam Heading caption="Gingerbread" visible=(@trap_mode==15) Endheading param ging1 caption="Trap Parameter 1" default=1.0 visible=(@trap_mode==15) endparam param ging2 caption="Trap Parameter 2" default=1.0 visible=(@trap_mode==15) endparam param ging3 caption="Trap Parameter 3" default=1.0 visible=(@trap_mode==15) endparam Heading caption="Three Ply" visible=(@trap_mode==16) Endheading param thrply1 caption="Trap Parameter 1" default=1.0 visible=(@trap_mode==16) endparam param thrply2 caption="Trap Parameter 2" default=1.0 visible=(@trap_mode==16) endparam param thrply3 caption="Trap Parameter 3" default=1.0 visible=(@trap_mode==16) endparam Heading caption="Martin" visible=(@trap_mode==17) Endheading param mart1 caption="Trap Parameter 1" default=1.0 visible=(@trap_mode==17) endparam param mart2 caption="Trap Parameter 2" default=1.0 visible=(@trap_mode==17) endparam param mart3 caption="Trap Parameter 3" default=1.0 visible=(@trap_mode==17) endparam Heading caption="Modified Martin" visible=(@trap_mode==18) Endheading param mmart1 caption="Trap Parameter 1" default=1.0 visible=(@trap_mode==18) endparam param mmart2 caption="Trap Parameter 2" default=1.0 visible=(@trap_mode==18) endparam param mmart3 caption="Trap Parameter 3" default=1.0 visible=(@trap_mode==18) endparam Heading caption="Modified Quadrup Two" visible=(@trap_mode==19) Endheading param mquadtwo1 caption="Trap Parameter 1" default=1.0 visible=(@trap_mode==19) endparam param mquadtwo2 caption="Trap Parameter 2" default=1.0 visible=(@trap_mode==19) endparam param mquadtwo3 caption="Trap Parameter 3" default=1.0 visible=(@trap_mode==19) endparam Heading caption="Modified Three Ply" visible=(@trap_mode==20) Endheading param mthrply1 caption="Trap Parameter 1" default=1.0 visible=(@trap_mode==20) endparam param mthrply2 caption="Trap Parameter 2" default=1.0 visible=(@trap_mode==20) endparam param mthrply3 caption="Trap Parameter 3" default=1.0 visible=(@trap_mode==20) endparam Heading caption="Gnarl" visible=(@trap_mode==21) Endheading param gnar1 caption="Step" default=0.1 visible=(@trap_mode==21) endparam param gnar2 caption="Alpha" default=2.7 visible=(@trap_mode==21) endparam param gnar3 caption="Beta" default=2.7 visible=(@trap_mode==21) endparam param offz caption="Offset z" default=(0.0008,0.0008) endparam Heading caption="Gnarl Perturbation" visible=(@perturb==0) Endheading Heading caption="Popcorn Perturbation" visible=(@perturb==1) Endheading param xinc caption="Perturb. x increment" default=0.0 endparam param yinc caption="Perturb. y increment" default=0.0 endparam param perturb caption="Select Perturbation" enum="Gnarl""Popcorn" default=0 endparam param gnastep caption="Gnarl Step" default=0.1 visible=(@trap_mode==0)||(@trap_mode==1)||(@trap_mode==2)||(@trap_mode==3)||\ (@trap_mode==4)||(@trap_mode==5)||(@trap_mode==6)||(@trap_mode==7)||\ (@trap_mode==8)&&(@perturb==0) endparam param gnastep1 caption="Gnarl Step" default=0.0 visible=(@trap_mode==9)||(@trap_mode==10)||(@trap_mode==11)||(@trap_mode==12) ||\ (@trap_mode==13)||(@trap_mode==14)||(@trap_mode==15)||(@trap_mode==16)||\ (@trap_mode==17)||(@trap_mode==18)||(@trap_mode==19)||(@trap_mode==20)||\ (@trap_mode==21)||(@trap_mode==22)&&(@perturb==0) endparam param gnalpha caption="Alpha" default=2.7 visible=(@perturb==0) endparam param gnbeta caption="Beta" default=2.7 visible=(@perturb==0) endparam param popstep caption="Popcorn Step" default=0.05 visible=(@trap_mode==0)||(@trap_mode==1)||(@trap_mode==2)||(@trap_mode==3)||\ (@trap_mode==4)||(@trap_mode==5)||(@trap_mode==6)||(@trap_mode==7)||\ (@trap_mode==8)&&(@perturb==1) endparam param popstep1 caption="Popcorn Step" default=0.0 visible=(@trap_mode==9)||(@trap_mode==10)||(@trap_mode==11)||(@trap_mode==12) ||\ (@trap_mode==13)||(@trap_mode==14)||(@trap_mode==15)||(@trap_mode==16)||\ (@trap_mode==17)||(@trap_mode==18)||(@trap_mode==19)||(@trap_mode==20)||\ (@trap_mode==21)||(@trap_mode==22)&&(@perturb==1) endparam param popalpha caption="Alpha" default=2.7 visible=(@perturb==1) endparam param popbeta caption="Beta" default=1.0 visible=(@perturb==1) endparam func fp1 caption="Function 1" default=sin() visible=(@perturb==0) endfunc func fp2 caption="Function 2" default=sin() visible=(@perturb==0) endfunc func fp3 caption="Function 3" default=sin() visible=(@perturb==0) endfunc func fp4 caption="Function 4" default=sin() visible=(@perturb==0) endfunc func fnp1 caption="Function 1" default=sin() visible=(@perturb==1) endfunc func fnp2 caption="Function 2" default=tan() visible=(@perturb==1) endfunc func fnp3 caption="Function 3" default=sin() visible=(@perturb==1) endfunc func fnp4 caption="Function 4" default=tan() visible=(@perturb==1) endfunc func fnt caption="Function 5" default=ident() visible=(@trap_mode==0)||(@trap_mode==1)||(@trap_mode==2)||(@trap_mode==3)||\ (@trap_mode==4)||(@trap_mode==5)||(@trap_mode==6)||(@trap_mode==7)||\ (@trap_mode==8) endfunc Heading caption="Functions" Endheading func fth caption="Function Theta" default=ident() visible=(@trap_mode==0)||(@trap_mode==1)||(@trap_mode==2)||(@trap_mode==3)||\ (@trap_mode==4)||(@trap_mode==5)||(@trap_mode==6)||(@trap_mode==7)||\ (@trap_mode==8) endfunc func ftrap1 caption="Function Trap1" default=ident() visible=(@trap_mode==0)||(@trap_mode==1)||(@trap_mode==2)||(@trap_mode==3)||\ (@trap_mode==4)||(@trap_mode==5)||(@trap_mode==6)||(@trap_mode==7)||\ (@trap_mode==8) endfunc func ftrap2 caption="Function Trap2" default=ident() visible=(@trap_mode==0)||(@trap_mode==1)||(@trap_mode==2)||(@trap_mode==3)||\ (@trap_mode==4)||(@trap_mode==5)||(@trap_mode==6)||(@trap_mode==7)||\ (@trap_mode==8) endfunc func fntrp caption="Function Global Trap" default=ident() visible=(@trap_mode==0)||(@trap_mode==1)||(@trap_mode==2)||(@trap_mode==3)||\ (@trap_mode==4)||(@trap_mode==5)||(@trap_mode==6)||(@trap_mode==7)||\ (@trap_mode==8) endfunc func fnz caption="Function z" default=ident() visible=(@trap_mode==0)||(@trap_mode==1)||(@trap_mode==2)||(@trap_mode==3)||\ (@trap_mode==4)||(@trap_mode==5)||(@trap_mode==6)||(@trap_mode==7)||\ (@trap_mode==8) endfunc func startx caption="Function start|x" default=ident() visible=(@trap_mode==9)||(@trap_mode==10)||(@trap_mode==11)||(@trap_mode==12) ||\ (@trap_mode==13)||(@trap_mode==14)||(@trap_mode==15)||(@trap_mode==16)||\ (@trap_mode==17)||(@trap_mode==18)||(@trap_mode==19)||(@trap_mode==20)||\ (@trap_mode==21)||(@trap_mode==22) endfunc func starty caption="Function start|y" default=ident() visible=(@trap_mode==9)||(@trap_mode==10)||(@trap_mode==11)||(@trap_mode==12) ||\ (@trap_mode==13)||(@trap_mode==14)||(@trap_mode==15)||(@trap_mode==16)||\ (@trap_mode==17)||(@trap_mode==18)||(@trap_mode==19)||(@trap_mode==20)||\ (@trap_mode==21)||(@trap_mode==22) endfunc func fnx caption="Function 1x" default=ident() visible=(@trap_mode==9)||(@trap_mode==10)||(@trap_mode==11)||(@trap_mode==12) ||\ (@trap_mode==13)||(@trap_mode==14)||(@trap_mode==15)||(@trap_mode==16)||\ (@trap_mode==17)||(@trap_mode==18)||(@trap_mode==19)||(@trap_mode==20)||\ (@trap_mode==21)||(@trap_mode==22) endfunc func fny1 caption="Function 1y" default=ident() visible=(@trap_mode==9)||(@trap_mode==10)||(@trap_mode==11)||(@trap_mode==12) ||\ (@trap_mode==13)||(@trap_mode==14)||(@trap_mode==15)||(@trap_mode==16)||\ (@trap_mode==17)||(@trap_mode==18)||(@trap_mode==19)||(@trap_mode==20)||\ (@trap_mode==21)||(@trap_mode==22) endfunc func fny2 caption="Function 2y" default=ident() visible=(@trap_mode==9)||(@trap_mode==10)||(@trap_mode==11)||(@trap_mode==12) ||\ (@trap_mode==13)||(@trap_mode==14)||(@trap_mode==15)||(@trap_mode==16)||\ (@trap_mode==17)||(@trap_mode==18)||(@trap_mode==19)||(@trap_mode==20)||\ (@trap_mode==21)||(@trap_mode==22) endfunc Heading caption="Fbm Parameters" Endheading param distortion caption = "Distortion Strength" default = 1.0 hint = "This is the amount the noise distorts the image." endparam param style caption = "Distortion Style" default = 0 enum = "radial" "linear" hint = "This selects whether the distortion will be focused \ around a single point, or directed along a line." endparam param distangle caption = "Distortion Angle" default = 0.0 hint = "This is the angle to rotate the distortion." endparam param distcenter caption = "Distortion Center" default = (0,0) hint = "Sets the center of distortion. If Use Screen \ Center is set, this item is ignored." endparam param centermove caption = "Use Screen Center" default = FALSE hint = "If set, distortion will be around the center of \ the window, regardless of the Distortion Center \ setting." endparam param offset caption = "Noise Offset" default = (0,0) hint = "This is the offset of the pattern. You can use this to shift \ the pattern around on the complex plane." endparam param scale caption = "Noise Scale" default = 1.0 hint = "This is the overall scale of the noise." endparam param angle caption = "Noise Rotation" default = 0.0 hint = "This is the angle, in degrees, of the noise." endparam param step caption = "Noise Scale Step" default = 0.5 hint = "This is the step in scale between noise iterations." endparam param anglestep caption = "Noise Rotation Step" default = 37.0 hint = "This is the angle, in degrees, to rotate between noise \ iterations." endparam param octaves caption = "Noise Octaves" default = 7 min = 1 hint = "This is the number of iterations of the noise formula." endparam param npower caption = "Noise Exponent" default = 2.0 hint = "This is the exponent used to scramble numbers." endparam param noisestart caption = "Start Iteration" default = 0.0 hint = "This is the iteration at which to start adding noise." endparam param noiseiter caption = "Noise Iterations" default = 10000.0 hint = "This is the number of iterations to add noise to." endparam param noiseskip caption = "Skip Iterations" default = 0.0 hint = "This is the number of iterations to skip adding noise \ before starting again." endparam param coloronly caption = "Coloring Only" default = false hint = "If set, noise will only apply to pixel values passed \ to the coloring algorithm; it will not be included in \ the fractal calculation between iterations." endparam param version caption="Version Param" default=1.0 visible=false endparam } as-Mandy { ; Generic Mandelbrot set. Global: complex rota[4] complex rota[0]=(0,1)^(@rota0/90) complex rota[1]=(0,1)^(@rota1/90) complex rota[2]=(0,1)^(@rota2/90) complex rota[3]=(0,1)^(@rota3/90) Init: cx=real(p1) cy=imag(p1) incx=real(#pixel)*rota[0] incy=imag(#pixel)*rota[1] x=real(@startseed)*rota[0] y=imag(@startseed)*rota[1] xx=yy=0.0 if @mode=="Julia" incx=real(@startseed)*rota[0] incy=imag(@startseed)*rota[1] x=real(#pixel)*rota[0] y=imag(#pixel)*rota[1] endif Loop: x=@fnx(x)*p2 y=@fny(y)*p3 if (@selform==0) ; Mandy^4 xx = (x*x - y*y)*(x*x - y*y) - 4*x*x*y*y + Incx yy = 4*x*y*(x*x - y*y) + Incy elseif (@selform==1);Mandy xx = x*x - y*y + incx yy = 2*x*y + incy elseif (@selform==2);Quad xx = x*x + y*y + incx yy = 2*x*y + incy endif xx=xx-x*(cx-flip(cy)) yy=yy-y*(cx-flip(cy)) x = xx*rota[2] y = yy*rota[3] if (@flavour==0) z=x+flip(y) elseif (@flavour==1) z=x-flip(y) endif Bailout: |x|+|y| <= @bailout Default: title="Mandy" center=(0.0,0.0) maxiter=250 method=multipass periodicity=0 param mode caption="Mode" enum="Mandelbrot""Julia" default=0 visible=false endparam param switchmode caption="SwitchMode" enum="Mandelbrot""Julia" default=1 visible=false endparam float param bailout caption="Bailout value" default=64.0 min=1.0 endparam param flavour caption="Flavour" enum="x+flip(y)""x-flip(y)" default=0 endparam param startseed caption="Starting point" default=(0,0) endparam param selform caption="Formula" enum="Mandy^4""Mandy""Quad" default=0 endparam param p1 caption="Parameter 1" default=(0.0,0.0) endparam param p2 caption="Parameter x" default=1.0 endparam param p3 caption="Parameter y" default=1.0 endparam param rota0 caption="Rotation Pix|1" default=0.0 endparam param rota1 caption="Rotation Pix|2" default=0.0 endparam param rota2 caption="Rotation x" default=0.0 endparam param rota3 caption="Rotation y" default=0.0 endparam func fnx caption="Function x" default=ident() endfunc func fny caption="Function y" default=ident() endfunc Switch: type="as-Mandy" startseed=#pixel p1=@p1 p2=@p2 p3=@p3 rota0=@rota0 rota1=@rota1 rota2=@rota2 rota3=@rota3 fnx=@fnx fny=@fny selform=@selform bailout=bailout mode=switchmode switchmode=mode } as-SlopeHyperCSets { ;Generic slope hypercomplex sets. ;Version 1.0. ;Andrea Spinozzi(December 2006) Global: complex rota[4] complex rota[0]=(0,1)^(@rota0/90) complex rota[1]=(0,1)^(@rota1/90) complex rota[2]=(0,1)^(@rota2/90) complex rota[3]=(0,1)^(@rota3/90) Init: a1=a2=a3=real(p1) b1=b2=b3=imag(p1) aa1=aa2=aa3=real(p3) bb1=bb2=bb3=imag(p3) b_incx1=b_incx2=b_incx3=0.0 b_incy1=b_incy2=b_incy3=0.0 appincx1=appincx2=appincx3=0.0 appincy1=appincy2=appincy3=0.0 x1=real(@fnx(@startseed))*rota[0] x2=x1 x3=x1 y1=imag(@fny(@startseed))*rota[1] y2=y1 y3=y1 incx1=real(@fnx(#pixel))*rota[0] incx2=real(@fnx(#pixel+@offset))*rota[0] incx3=real(@fnx(#pixel+flip(@offset)))*rota[0] incy1=imag(@fny(#pixel))*rota[1] incy2=imag(@fny(#pixel+@offset))*rota[1] incy3=imag(@fny(#pixel+flip(@offset)))*rota[1] if @mode=="Julia" if @selform!=4 incx1=real(@fnx(@startseed))*rota[0] incx2=incx1 incx3=incx1 incy1=imag(@fny(@startseed))*rota[1] incy2=incy1 incy3=incy1 x1=real(@fnx(#pixel))*rota[0] x2=real(@fnx(#pixel+@offset))*rota[0] x3=real(@fnx(#pixel+flip(@offset)))*rota[0] y1=imag(@fny(#pixel))*rota[1] y2=imag(@fny(#pixel+@offset))*rota[1] y3=imag(@fny(#pixel+flip(@offset)))*rota[1] else x1=( real(@fnx(#pixel))+flip(imag(@fnx(#pixel))) )*rota[0] x2=( real(@fnx(#pixel+@offset))+flip(imag(@fnx(#pixel+@offset))) )*rota[0] x3=( real(@fnx(#pixel+flip(@offset)))+flip(imag(@fnx(#pixel+flip(@offset)))) )*rota[0] y1=( real(@fny(#pixel))+flip(imag(@fny(#pixel))) )*rota[1] y2=( real(@fny(#pixel+@offset))+flip(imag(@fny(#pixel+@offset))) )*rota[1] y3=( real(@fny(#pixel+flip(@offset)))+flip(imag(@fny(#pixel+flip(@offset)))) )*rota[1] incx1=real(@fnx(@startseed))*rota[0] incx2=incx1 incx3=incx1 incy1=imag(@fny(@startseed))*rota[1] incy2=incy1 incy3=incy1 endif endif ;------------------ xx1=xx2=xx3=0.0 yy1=yy2=yy3=0.0 z1=z2=z3=0.0 ;------------------ ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 int iter = 0 int modby = @seq+3 Loop: int method = iter%modby if (method==0) appincx1=(fn1(incx1+p4)*@p7)/@p10 appincx2=(fn1(incx2+p4)*@p7)/@p10 appincx3=(fn1(incx3+p4)*@p7)/@p10 appincy1=(fn1(incy1+p4)*@p7)/@p10 appincy2=(fn1(incy2+p4)*@p7)/@p10 appincy3=(fn1(incy3+p4)*@p7)/@p10 elseif (method==1) appincx1=fn2((incx1+p5)*@p8)/@p11 appincx2=fn2((incx2+p5)*@p8)/@p11 appincx3=fn2((incx3+p5)*@p8)/@p11 appincy1=fn2((incy1+p5)*@p8)/@p11 appincy2=fn2((incy2+p5)*@p8)/@p11 appincy3=fn2((incy3+p5)*@p8)/@p11 elseif (method==2) appincx1=((fn3(incx1)+p6)*@p9)/@p12 appincx2=((fn3(incx2)+p6)*@p9)/@p12 appincx3=((fn3(incx3)+p6)*@p9)/@p12 appincy1=((fn3(incy1)+p6)*@p9)/@p12 appincy2=((fn3(incy2)+p6)*@p9)/@p12 appincy3=((fn3(incy3)+p6)*@p9)/@p12 endif if (@selform==0) ; Mandy xx1 = x1*x1 - y1*y1 + appincx1 xx2 = x2*x2 - y2*y2 + appincx2 xx3 = x3*x3 - y3*y3 + appincx3 yy1 = 2*x1*y1 + appincy1 yy2 = 2*x2*y2 + appincy2 yy3 = 2*x3*y3 + appincy3 elseif (@selform==1) ; Mandy^4 xx1 = (x1*x1 - y1*y1) * (x1*x1 - y1*y1) - 4*x1*x1*y1*y1 + appincx1 xx2 = (x2*x2 - y2*y2) * (x2*x2 - y2*y2) - 4*x2*x2*y2*y2 + appincx2 xx3 = (x3*x3 - y3*y3) * (x3*x3 - y3*y3) - 4*x3*x3*y3*y3 + appincx3 yy1 = 4*x1*y1*(x1*x1 - y1*y1) + appincy1 yy2 = 4*x2*y2*(x2*x2 - y2*y2) + appincy2 yy3 = 4*x3*y3*(x3*x3 - y3*y3) + appincy3 elseif (@selform==2) ; Quad xx1 = x1*x1 + y1*y1 + appincx1 xx2 = x2*x2 + y2*y2 + appincx2 xx3 = x3*x3 + y3*y3 + appincx3 yy1 = 2*x1*y1 + appincy1 yy2 = 2*x2*y2 + appincy2 yy3 = 2*x3*y3 + appincy3 elseif (@selform==3) ; Quad^4 xx1 = (x1*x1 + y1*y1) * (x1*x1 + y1*y1) + 4*x1*x1*y1*y1 + appincx1 xx2 = (x2*x2 + y2*y2) * (x2*x2 + y2*y2) + 4*x2*x2*y2*y2 + appincx2 xx3 = (x3*x3 + y3*y3) * (x3*x3 + y3*y3) + 4*x3*x3*y3*y3 + appincx3 yy1 = 4*x1*y1*(x1*x1 + y1*y1) + appincy1 yy2 = 4*x2*y2*(x2*x2 + y2*y2) + appincy2 yy3 = 4*x3*y3*(x3*x3 + y3*y3) + appincy3 elseif (@selform==4) ; Barny b_incx1 = appincx1-bb1+flip(appincy1+aa1) b_incx2 = appincx2-bb2+flip(appincy2+aa2) b_incx3 = appincx3-bb3+flip(appincy3+aa3) b_incy1 = appincx1+bb1+flip(appincy1-aa1) b_incy2 = appincx2+bb2+flip(appincy2-aa2) b_incy3 = appincx3+bb3+flip(appincy3-aa3) if real(x1)>=0 xx1 = (x1 - 1) * b_incx1 xx2 = (x2 - 1) * b_incx2 xx3 = (x3 - 1) * b_incx3 else xx1 = (x1 + 1) * b_incx1 xx2 = (x2 + 1) * b_incx2 xx3 = (x3 + 1) * b_incx3 endif if real(y1)>=0 yy1 = (y1 - 1) * b_incy1 yy2 = (y2 - 1) * b_incy2 yy3 = (y3 - 1) * b_incy3 else yy1 = (y1 + 1) * b_incy1 yy2 = (y2 + 1) * b_incy2 yy3 = (y3 + 1) * b_incy3 endif endif x1 = xx1*rota[2] x2 = xx2*rota[2] x3 = xx3*rota[2] y1 = yy1*rota[3] y2 = yy2*rota[3] y3 = yy3*rota[3] x1 = real(x1)-a1+flip(imag(x1)+a1) x2 = real(x2)-a2+flip(imag(x2)+a2) x3 = real(x3)-a3+flip(imag(x3)+a3) y1 = real(y1)+b1+flip(imag(y1)-b1) y2 = real(y2)+b2+flip(imag(y2)-b2) y3 = real(y3)+b3+flip(imag(y3)-b3) x1 = x1*p2 x2 = x2*p2 x3 = x3*p2 y1 = y1*p2 y2 = y2*p2 y3 = y3*p2 if (@flavour==0) z1 = @fnflx(x1) + @fnfly(y1) z2 = @fnflx(x2) + @fnfly(y2) z3 = @fnflx(x3) + @fnfly(y3) elseif (@flavour==1) z1 = @fnflx(x1) - @fnfly(y1) z2 = @fnflx(x2) - @fnfly(y2) z3 = @fnflx(x3) - @fnfly(y3) elseif (@flavour==2) z1 = @fnflx(x1) + flip(@fnfly(y1)) z2 = @fnflx(x2) + flip(@fnfly(y2)) z3 = @fnflx(x3) + flip(@fnfly(y3)) elseif (@flavour==3) z1 = @fnflx(x1) - flip(@fnfly(y1)) z2 = @fnflx(x2) - flip(@fnfly(y2)) z3 = @fnflx(x3) - flip(@fnfly(y3)) elseif (@flavour==4) z1 = @fnflx(x1) + imag(@fnfly(y1)) z2 = @fnflx(x2) + imag(@fnfly(y2)) z3 = @fnflx(x3) + imag(@fnfly(y3)) elseif (@flavour==5) z1 = @fnflx(x1) - imag(@fnfly(y1)) z2 = @fnflx(x2) - imag(@fnfly(y2)) z3 = @fnflx(x3) - imag(@fnfly(y3)) elseif (@flavour==6) z1 = flip(@fnflx(x1)) + @fnfly(y1) z2 = flip(@fnflx(x2)) + @fnfly(y2) z3 = flip(@fnflx(x3)) + @fnfly(y3) elseif (@flavour==7) z1 = flip(@fnflx(x1)) - @fnfly(y1) z2 = flip(@fnflx(x2)) - @fnfly(y2) z3 = flip(@fnflx(x3)) - @fnfly(y3) endif iter=iter+1 if (@slope == true) ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if ( @bailout < |x1|+|y1| ||\ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif else z = z1 endif if ( @bailout < |x1|+|y1| ) ; we're done done = 0 endif Bailout: done > 0 Default: title="HyperCSets" center=(0.0,0.0) maxiter=250 method=multipass periodicity=0 Heading caption="Mandelbrot Mode" visible=(@mode=="Mandelbrot") Endheading Heading caption="Julia Mode" visible=(@mode=="Julia") Endheading param mode caption="Mode" enum="Mandelbrot""Julia" default=0 visible=false endparam param switchmode caption="SwitchMode" enum="Mandelbrot""Julia" default=1 visible=false endparam float param bailout caption="Bailout value" default=1000.0 min=0.0 endparam param startseed caption="Start Z|Seed" default=(0,0) endparam param flavour caption="Flavour" enum="x+y""x-y""x+flip(y)""x-flip(y)""x+imag(y)""x-imag(y)""flip(x)+y"\ "flip(x)-y" default=2 endparam func fnflx caption="Func. flavor x" default=ident() endfunc func fnfly caption="Func. flavor y" default=ident() endfunc Heading caption="Slope Parameters" visible=(@slope==true) Endheading bool param slope caption="Apply slope?" default=true endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6)&&(@slope==true) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84)&&(@slope==true) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82)&&(@slope==true) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81)&&(@slope==true) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84)&&(@slope==true) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58)&&(@slope==true) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75)&&(@slope==true) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Heading caption="Formula Parameters" Endheading param rota0 caption="Init rotation real(x)" default=0.0 endparam param rota1 caption="Init rotation imag(y)" default=0.0 endparam param rota2 caption="Loop rotation x" default=0.0 endparam param rota3 caption="Loop rotation y" default=0.0 endparam Heading caption="C Sequence" visible=(@show==true) Endheading param show caption="C sequence" default=false endparam param seq caption="Lenght Sequence" enum="1""2""3" default=0 visible=(@show==true) endparam param p4 caption="Add.Factor 1" default=(0.0,0.0) visible=(@show==true) endparam param p5 caption="Add.Factor 2" default=(0.0,0.0) visible=(@show==true) endparam param p6 caption="Add.Factor 3" default=(0.0,0.0) visible=(@show==true) endparam param p7 caption="Mult.Factor 1" default=(1.0,0.0) visible=(@show==true) endparam param p8 caption="Mult.Factor 2" default=(1.0,0.0) visible=(@show==true) endparam param p9 caption="Mult.Factor 3" default=(1.0,0.0) visible=(@show==true) endparam param p10 caption="Div.Factor 1" default=(1.0,0.0) visible=(@show==true) endparam param p11 caption="Div.Factor 2" default=(1.0,0.0) visible=(@show==true) endparam param p12 caption="Div.Factor 3" default=(1.0,0.0) visible=(@show==true) endparam func fn1 caption="Function Factor1" default=ident() visible=(@show==true) endfunc func fn2 caption="Function Factor2" default=ident() visible=(@show==true) endfunc func fn3 caption="Function Factor3" default=ident() visible=(@show==true) endfunc Heading caption="Mandelbrot" visible=(@selform==0) Endheading Heading caption="Mandelbrot^4" visible=(@selform==1) Endheading Heading caption="Quad" visible=(@selform==2) Endheading Heading caption="Quad^4" visible=(@selform==3) Endheading Heading caption="Barnsley" visible=(@selform==4) Endheading param selform caption="Formula" enum="Mandelbrot""Mandelbrot^4""Quad""Quad^4""Barnsley" default=0 endparam param p3 caption="Hyper. Barnsley" default=(0.0,0.0) visible=(@selform==4) endparam param p1 caption="Hypercomplex" default=(0.0,0.0) endparam param p2 caption="Complex Mult." default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fnx caption="Init function x" default=ident() endfunc func fny caption="Init function y" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type = "as-SlopeHyperCSets" bailout = @bailout startseed = #pixel flavour = @flavour p1 = @p1 p2 = @p2 p3 = @p3 p4 = @p4 p5 = @p5 p6 = @p6 p7 = @p7 p8 = @p8 p9 = @p9 p10 = @p10 p11 = @p11 p12 = @p12 rota0 = @rota0 rota1 = @rota1 rota2 = @rota2 rota3 = @rota3 fnx = @fnx fny = @fny fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 fnflx = @fnflx fnfly = @fnfly selform = @selform seq = @seq mode = @switchmode switchmode = @mode version=@version show = @show slope=@slope offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp } SlopeHyperMath-MandelbrotVSBarnsley- { ;Slope version of "MandyVsBarny". ;Andrea Spinozzi(April2007) Init: complex z1=z2=z3=0.0 complex cz1=cz2=cz3=0.0 complex w1=w2=w3=0.0 complex cw1=cw2=cw3=0.0 complex a1=a2=a3=0.0 complex b1=b2=b3=0.0 complex ca1=ca2=ca3=0.0 complex cb1=cb2=cb3=0.0 if (@mode=="Mandelbrot") z1=pixel z2=z1+@offset z3=z1+flip(@offset) cz1=pixel cz2=cz1+@offset cz3=cz1+flip(@offset) cw1=p1 cw2=p1 cw3=p1 w1=p1 w2=p1 w3=p1 elseif (@mode=="Julia") z1=pixel z2=z1+@offset z3=z1+flip(@offset) cz1=@seed cz2=cz1 cz3=cz1 cw1=p1 cw2=p1 cw3=p1 w1=p2 w2=p2 w3=p2 endif ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 int modby=@seq+2 int iter=0 Loop: int method=iter%modby complex appca1=appca2=appca3=0.0 complex appcb1=appcb2=appcb3=0.0 a1=real(z1)-imag(w1)+flip(imag(z1)+real(w1)) a2=real(z2)-imag(w2)+flip(imag(z2)+real(w2)) a3=real(z3)-imag(w3)+flip(imag(z3)+real(w3)) b1=real(z1)+imag(w1)+flip(imag(z1)-real(w1)) b2=real(z2)+imag(w2)+flip(imag(z2)-real(w2)) b3=real(z3)+imag(w3)+flip(imag(z3)-real(w3)) czr1=real(cz1) czr2=real(cz2) czr3=real(cz3) czi1=imag(cz1) czi2=imag(cz2) czi3=imag(cz3) cwr1=real(cw1) cwr2=real(cw2) cwr3=real(cw3) cwi1=imag(cw1) cwi2=imag(cw2) cwi3=imag(cw3) ca1=czr1-cwi1+flip(czi1+cwr1) ca2=czr2-cwi2+flip(czi2+cwr2) ca3=czr3-cwi3+flip(czi3+cwr3) cb1=czr1+cwi1+flip(czi1-cwr1) cb2=czr2+cwi2+flip(czi2-cwr2) cb3=czr3+cwi3+flip(czi3-cwr3) appca1=fn1(ca1) appca2=fn1(ca2) appca3=fn1(ca3) appcb1=fn1(cb1) appcb2=fn1(cb2) appcb3=fn1(cb3) a1=fn2(a1) a2=fn2(a2) a3=fn2(a3) b1=fn2(b1) b2=fn2(b2) b3=fn2(b3) if (method==0) appca1=@fnfact1(appca1*@factor) appca2=@fnfact1(appca2*@factor) appca3=@fnfact1(appca3*@factor) appcb1=@fnfact1(appcb1*@factor) appcb2=@fnfact1(appcb2*@factor) appcb3=@fnfact1(appcb3*@factor) elseif (method==1) appca1=@fnfact2(appca1)*@factor1 appca2=@fnfact2(appca2)*@factor1 appca3=@fnfact2(appca3)*@factor1 appcb1=@fnfact2(appcb1)*@factor1 appcb2=@fnfact2(appcb2)*@factor1 appcb3=@fnfact2(appcb3)*@factor1 endif if (@mix==0) ;Only Mandelbrot a1=fn3(a1)^p3+appca1 a2=fn3(a2)^p3+appca2 a3=fn3(a3)^p3+appca3 b1=fn3(b1)^p3+appcb1 b2=fn3(b2)^p3+appcb2 b3=fn3(b3)^p3+appcb3 elseif (@mix==1) ;Only Barnsley if (@select==0) if real(a1)>=0 a1=fn3(a1-1)+appca1 a2=fn3(a2-1)+appca2 a3=fn3(a3-1)+appca3 else a1=fn3(a1+1)+appca1 a2=fn3(a2+1)+appca2 a3=fn3(a3+1)+appca3 endif if real(b1)>=0 b1=fn3(b1-1)+appcb1 b2=fn3(b2-1)+appcb2 b3=fn3(b3-1)+appcb3 else b1=fn3(b1+1)+appcb1 b2=fn3(b2+1)+appcb2 b3=fn3(b3+1)+appcb3 endif elseif (@select==1) if real(a1)>=0 a1=fn3(a1-1)*appca1 a2=fn3(a2-1)*appca2 a3=fn3(a3-1)*appca3 else a1=fn3(a1+1)*appca1 a2=fn3(a2+1)*appca2 a3=fn3(a3+1)*appca3 endif if real(b1)>=0 b1=fn3(b1-1)*appcb1 b2=fn3(b2-1)*appcb2 b3=fn3(b3-1)*appcb3 else b1=fn3(b1+1)*appcb1 b2=fn3(b2+1)*appcb2 b3=fn3(b3+1)*appcb3 endif endif elseif (@mix==2) ;Mandelbrot VS Barnsley if (@select==0) if real(a1)>=0 a1=fn3(a1-1)+appca1 a2=fn3(a2-1)+appca2 a3=fn3(a3-1)+appca3 else a1=fn3(a1+1)+appca1 a2=fn3(a2+1)+appca2 a3=fn3(a3+1)+appca3 endif if real(b1)>=0 b1=fn3(b1-1)+appcb1 b2=fn3(b2-1)+appcb2 b3=fn3(b3-1)+appcb3 else b1=fn3(b1+1)+appcb1 b2=fn3(b2+1)+appcb2 b3=fn3(b3+1)+appcb3 endif elseif (@select==1) if real(a1)>=0 a1=fn3(a1-1)*appca1 a2=fn3(a2-1)*appca2 a3=fn3(a3-1)*appca3 else a1=fn3(a1+1)*appca1 a2=fn3(a2+1)*appca2 a3=fn3(a3+1)*appca3 endif if real(b1)>=0 b1=fn3(b1-1)*appcb1 b2=fn3(b2-1)*appcb2 b3=fn3(b3-1)*appcb3 else b1=fn3(b1+1)*appcb1 b2=fn3(b2+1)*appcb2 b3=fn3(b3+1)*appcb3 endif endif a1=fn3(a1)^p3+appca1 a2=fn3(a2)^p3+appca2 a3=fn3(a3)^p3+appca3 b1=fn3(b1)^p3+appcb1 b2=fn3(b2)^p3+appcb2 b3=fn3(b3)^p3+appcb3 endif z1=(real(a1)+real(b1))/2+flip(imag(b1)+imag(a1))/2 z2=(real(a2)+real(b2))/2+flip(imag(b2)+imag(a2))/2 z3=(real(a3)+real(b3))/2+flip(imag(b3)+imag(a3))/2 w1=(imag(a1)-imag(b1))/2+flip(real(b1)-real(a1))/2 w2=(imag(a2)-imag(b2))/2+flip(real(b2)-real(a2))/2 w3=(imag(a3)-imag(b3))/2+flip(real(b3)-real(a3))/2 iter = iter+1 if (@slope == true) ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if ( @bailout < |z1|+|w1| ||\ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif else z = z1 endif if ( @bailout < |z1|+|w1| ) ; we're done done = 0 endif Bailout: done > 0 Default: title="SlopeHyperMath-MandelbrotVSBarnsley-" method=multipass periodicity=0 maxiter=250 center=(0.0,0.0) Heading caption="Mandelbrot Mode" visible=(@mode == 0) Endheading Heading caption="Julia Mode" visible=(@mode == 1) Endheading param mode caption="Mode" enum="Mandelbrot" "Julia" default=0 visible=false endparam param switchmode caption="Switch Mode" enum="Mandelbrot" "Julia" default=1 visible=false endparam param bailout caption="Bailout Value" default=64.0 min=0.0 endparam param seed caption="Seed Value" default=(0.0,0.0) visible=(@mode=="Julia") endparam Heading caption="Slope Parameters" visible=@slope==true Endheading bool param slope caption="Apply slope?" default=true endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6)&&(@slope==true) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84)&&(@slope==true) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82)&&(@slope==true) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81)&&(@slope==true) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84)&&(@slope==true) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58)&&(@slope==true) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75)&&(@slope==true) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Heading caption="Formula Parameters" Endheading param mix caption="Formula" enum="Mandelbrot""Barnsley""Mandelbrot vs Barnsley" default=0 endparam param select caption="Operator c Barnsley" enum="+""*" default=1 visible=(@mix!=0) endparam param p1 caption="Parameter 1" default=(0.0,0.0) endparam param p3 caption="Exponent" default=(2.0,0.0) visible=(@mix!=1) endparam param p2 caption="Julia dim." default=(0.0,0.0) endparam Heading caption="C Sequence" Endheading param seq caption="C Method" enum="1""2" default=0 endparam param factor caption="Factor 1" default=(1.0,0.0) endparam param factor1 caption="Factor 2" default=(1.0,0.0) endparam func fnfact1 caption="Function Factor 1" default=ident() endfunc func fnfact2 caption="Function Factor 2" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc func fn3 caption="Function 3" default=ident() endfunc Switch: type = "SlopeHyperMath-MandelbrotVSBarnsley-" @seed = pixel bailout = @bailout select = @select mix = @mix seq = @seq p1 = @p1 p2 = @p2 p3 = @p3 factor = @factor factor1 = @factor1 fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 fnfact1 = @fnfact1 fnfact2 = @fnfact2 version = @version mode = @switchmode switchmode = @mode slope=@slope offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp } RoseJulia2Func { ;Andrea Spinozzi(Updated Aug2004) Init: float c=1.0 z=pixel z=@seed^fn1(z)+fn2(z) Loop: if p1==c z=c+fn3(z) elseif p1==-c z=c-fn3(z) else z=fn3(z) endif z=fn4(z^p2)^@fn5(@seed)+@power+p1 Bailout: |z|<=@bailout Default: title="RoseJulia2Func" center=(0.0,0.0) maxiter=250 angle=90 periodicity=0 method=multipass param bailout caption="Bailout Value" default=4.0 min=0.0 endparam Heading caption="Parameters" Endheading param @seed caption="Seed Value" default=(-1.08125,0.09375) endparam param power caption="Parameter 1" default=(1.0,0.0) endparam param p1 caption="Parameter 2" default=(-1.0,0.0) endparam param p2 caption="Exponent" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function 1" default=zero() endfunc func fn2 caption="Function 2" default=sqr() endfunc func fn3 caption="Function 3" default=ident() endfunc func fn4 caption="Function 4" default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="RoseMandel2Func" seed=pixel bailout=@bailout power=@power p1=@p1 p2=@p2 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 version=@version } SlopeNewBarney-3 { ;Andrea Spinozzi(Sep2007) Init: complex z1=@start complex z2=z1 complex z3=z1 complex c1=pixel complex c2=pixel+@offset complex c3=pixel+flip(@offset) complex x1=x2=x3=(0.0,0.0) complex y1=y2=y3=(0.0,0.0) complex zapc[3] complex zstz[3] complex zap1a[3] complex zap2a[3] complex zap3a[3] complex zap4a[3] complex zap5a[3] p4r=real(p4) p4i=imag(p4) int iter = 0 int modby = @seq+2 if @mode=="Julia" z1=pixel z2=pixel+@offset z3=pixel+flip(@offset) c1=@seed c2=c1 c3=c1 if @scale!=1.0 z1=z1/@scale z2=z2/@scale z3=z3/@scale endif if @center!=(0.0,0.0) z1=z1+@center z2=z2+@center z3=z3+@center endif endif ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 Loop: int method = iter%modby x1 = real(z1) x2 = real(z2) x3 = real(z3) y1 = imag(z1) y2 = imag(z2) y3 = imag(z3) x1=sqrt(@ratio)*x1 x2=sqrt(@ratio)*x2 x3=sqrt(@ratio)*x3 y1=1/sqrt(@ratio)*y1 y2=1/sqrt(@ratio)*y2 y3=1/sqrt(@ratio)*y3 if @op4==0 if (method==0) zapc[0]=(fn1(c1)+p2) zapc[1]=(fn1(c2)+p2) zapc[2]=(fn1(c3)+p2) elseif (method==1) zapc[0]=(@fn1c(c1)+@p2c) zapc[1]=(@fn1c(c2)+@p2c) zapc[2]=(@fn1c(c3)+@p2c) elseif (method==2) zapc[0]=(@fn21c(c1)+@p21c) zapc[1]=(@fn21c(c2)+@p21c) zapc[2]=(@fn21c(c3)+@p21c) endif elseif @op4==1 if (method==0) zapc[0]=(fn1(c1)*p2) zapc[1]=(fn1(c2)*p2) zapc[2]=(fn1(c3)*p2) elseif (method==1) zapc[0]=(@fn1c(c1)*@p2c) zapc[1]=(@fn1c(c2)*@p2c) zapc[2]=(@fn1c(c3)*@p2c) elseif (method==2) zapc[0]=(@fn21c(c1)*@p21c) zapc[1]=(@fn21c(c2)*@p21c) zapc[2]=(@fn21c(c3)*@p21c) endif elseif @op4==2 if (method==0) zapc[0]=(fn1(c1)/p2) zapc[1]=(fn1(c2)/p2) zapc[2]=(fn1(c3)/p2) elseif (method==1) zapc[0]=(@fn1c(c1)/@p2c) zapc[1]=(@fn1c(c2)/@p2c) zapc[2]=(@fn1c(c3)/@p2c) elseif (method==2) zapc[0]=(@fn21c(c1)/@p21c) zapc[1]=(@fn21c(c2)/@p21c) zapc[2]=(@fn21c(c3)/@p21c) endif endif zapc[0]=@fn9(zapc[0]) zapc[1]=@fn9(zapc[1]) zapc[2]=@fn9(zapc[2]) if @select==0 zstz[0]=x1+flip(y1) zstz[1]=x2+flip(y2) zstz[2]=x3+flip(y3) elseif @select==1 zstz[0]=(x1+flip(y1))+zapc[0] zstz[1]=(x2+flip(y2))+zapc[1] zstz[2]=(x3+flip(y3))+zapc[2] elseif @select==2 zstz[0]=(x1+flip(y1))-zapc[0] zstz[1]=(x2+flip(y2))-zapc[1] zstz[2]=(x3+flip(y3))-zapc[2] elseif @select==3 zstz[0]=(x1+flip(y1))*zapc[0] zstz[1]=(x2+flip(y2))*zapc[1] zstz[2]=(x3+flip(y3))*zapc[2] elseif @select==4 zstz[0]=(x1+flip(y1))/zapc[0] zstz[1]=(x2+flip(y2))/zapc[1] zstz[2]=(x3+flip(y3))/zapc[2] endif if @op6==0 if @op==0 if @mode1==0 zap1a[0]=(fn4(x1^p4r)+p1)+(fn4(y1^p4i)+p3) zap1a[1]=(fn4(x2^p4r)+p1)+(fn4(y2^p4i)+p3) zap1a[2]=(fn4(x3^p4r)+p1)+(fn4(y3^p4i)+p3) elseif @mode1==1 zap1a[0]=(fn4(x1^p4r)+p1)-(fn4(y1^p4i)+p3) zap1a[1]=(fn4(x2^p4r)+p1)-(fn4(y2^p4i)+p3) zap1a[2]=(fn4(x3^p4r)+p1)-(fn4(y3^p4i)+p3) elseif @mode1==2 zap1a[0]=(fn4(x1^p4r)+p1)*(fn4(y1^p4i)+p3) zap1a[1]=(fn4(x2^p4r)+p1)*(fn4(y2^p4i)+p3) zap1a[2]=(fn4(x3^p4r)+p1)*(fn4(y3^p4i)+p3) elseif @mode1==3 zap1a[0]=(fn4(x1^p4r)+p1)/(fn4(y1^p4i)+p3) zap1a[1]=(fn4(x2^p4r)+p1)/(fn4(y2^p4i)+p3) zap1a[2]=(fn4(x3^p4r)+p1)/(fn4(y3^p4i)+p3) endif elseif @op==1 if @mode1==0 zap1a[0]=(fn4(x1^p4r)*p1)+(fn4(y1^p4i)+p3) zap1a[1]=(fn4(x2^p4r)*p1)+(fn4(y2^p4i)+p3) zap1a[2]=(fn4(x3^p4r)*p1)+(fn4(y3^p4i)+p3) elseif @mode1==1 zap1a[0]=(fn4(x1^p4r)*p1)-(fn4(y1^p4i)+p3) zap1a[1]=(fn4(x2^p4r)*p1)-(fn4(y2^p4i)+p3) zap1a[2]=(fn4(x3^p4r)*p1)-(fn4(y3^p4i)+p3) elseif @mode1==2 zap1a[0]=(fn4(x1^p4r)*p1)*(fn4(y1^p4i)+p3) zap1a[1]=(fn4(x2^p4r)*p1)*(fn4(y2^p4i)+p3) zap1a[2]=(fn4(x3^p4r)*p1)*(fn4(y3^p4i)+p3) elseif @mode1==3 zap1a[0]=(fn4(x1^p4r)*p1)/(fn4(y1^p4i)+p3) zap1a[1]=(fn4(x2^p4r)*p1)/(fn4(y2^p4i)+p3) zap1a[2]=(fn4(x3^p4r)*p1)/(fn4(y3^p4i)+p3) endif elseif @op==2 if @mode1==0 zap1a[0]=(fn4(x1^p4r)/p1)+(fn4(y1^p4i)+p3) zap1a[1]=(fn4(x2^p4r)/p1)+(fn4(y2^p4i)+p3) zap1a[2]=(fn4(x3^p4r)/p1)+(fn4(y3^p4i)+p3) elseif @mode1==1 zap1a[0]=(fn4(x1^p4r)/p1)-(fn4(y1^p4i)+p3) zap1a[1]=(fn4(x2^p4r)/p1)-(fn4(y2^p4i)+p3) zap1a[2]=(fn4(x3^p4r)/p1)-(fn4(y3^p4i)+p3) elseif @mode1==2 zap1a[0]=(fn4(x1^p4r)/p1)*(fn4(y1^p4i)+p3) zap1a[1]=(fn4(x2^p4r)/p1)*(fn4(y2^p4i)+p3) zap1a[2]=(fn4(x3^p4r)/p1)*(fn4(y3^p4i)+p3) elseif @mode1==3 zap1a[0]=(fn4(x1^p4r)/p1)/(fn4(y1^p4i)+p3) zap1a[1]=(fn4(x2^p4r)/p1)/(fn4(y2^p4i)+p3) zap1a[2]=(fn4(x3^p4r)/p1)/(fn4(y3^p4i)+p3) endif endif elseif @op6==1 if @op==0 if @mode1==0 zap1a[0]=(fn4(x1^p4r)+p1)+(fn4(y1^p4i)*p3) zap1a[1]=(fn4(x2^p4r)+p1)+(fn4(y2^p4i)*p3) zap1a[2]=(fn4(x3^p4r)+p1)+(fn4(y3^p4i)*p3) elseif @mode1==1 zap1a[0]=(fn4(x1^p4r)+p1)-(fn4(y1^p4i)*p3) zap1a[1]=(fn4(x2^p4r)+p1)-(fn4(y2^p4i)*p3) zap1a[2]=(fn4(x3^p4r)+p1)-(fn4(y3^p4i)*p3) elseif @mode1==2 zap1a[0]=(fn4(x1^p4r)+p1)*(fn4(y1^p4i)*p3) zap1a[1]=(fn4(x2^p4r)+p1)*(fn4(y2^p4i)*p3) zap1a[2]=(fn4(x3^p4r)+p1)*(fn4(y3^p4i)*p3) elseif @mode1==3 zap1a[0]=(fn4(x1^p4r)+p1)/(fn4(y1^p4i)*p3) zap1a[1]=(fn4(x2^p4r)+p1)/(fn4(y2^p4i)*p3) zap1a[2]=(fn4(x3^p4r)+p1)/(fn4(y3^p4i)*p3) endif elseif @op==1 if @mode1==0 zap1a[0]=(fn4(x1^p4r)*p1)+(fn4(y1^p4i)*p3) zap1a[1]=(fn4(x2^p4r)*p1)+(fn4(y2^p4i)*p3) zap1a[2]=(fn4(x3^p4r)*p1)+(fn4(y3^p4i)*p3) elseif @mode1==1 zap1a[0]=(fn4(x1^p4r)*p1)-(fn4(y1^p4i)*p3) zap1a[1]=(fn4(x2^p4r)*p1)-(fn4(y2^p4i)*p3) zap1a[2]=(fn4(x3^p4r)*p1)-(fn4(y3^p4i)*p3) elseif @mode1==2 zap1a[0]=(fn4(x1^p4r)*p1)*(fn4(y1^p4i)*p3) zap1a[1]=(fn4(x2^p4r)*p1)*(fn4(y2^p4i)*p3) zap1a[2]=(fn4(x3^p4r)*p1)*(fn4(y3^p4i)*p3) elseif @mode1==3 zap1a[0]=(fn4(x1^p4r)*p1)/(fn4(y1^p4i)*p3) zap1a[1]=(fn4(x2^p4r)*p1)/(fn4(y2^p4i)*p3) zap1a[2]=(fn4(x3^p4r)*p1)/(fn4(y3^p4i)*p3) endif elseif @op==2 if @mode1==0 zap1a[0]=(fn4(x1^p4r)/p1)+(fn4(y1^p4i)*p3) zap1a[1]=(fn4(x2^p4r)/p1)+(fn4(y2^p4i)*p3) zap1a[2]=(fn4(x3^p4r)/p1)+(fn4(y3^p4i)*p3) elseif @mode1==1 zap1a[0]=(fn4(x1^p4r)/p1)-(fn4(y1^p4i)*p3) zap1a[1]=(fn4(x2^p4r)/p1)-(fn4(y2^p4i)*p3) zap1a[2]=(fn4(x3^p4r)/p1)-(fn4(y3^p4i)*p3) elseif @mode1==2 zap1a[0]=(fn4(x1^p4r)/p1)*(fn4(y1^p4i)*p3) zap1a[1]=(fn4(x2^p4r)/p1)*(fn4(y2^p4i)*p3) zap1a[2]=(fn4(x3^p4r)/p1)*(fn4(y3^p4i)*p3) elseif @mode1==3 zap1a[0]=(fn4(x1^p4r)/p1)/(fn4(y1^p4i)*p3) zap1a[1]=(fn4(x2^p4r)/p1)/(fn4(y2^p4i)*p3) zap1a[2]=(fn4(x3^p4r)/p1)/(fn4(y3^p4i)*p3) endif endif elseif @op6==2 if @op==0 if @mode1==0 zap1a[0]=(fn4(x1^p4r)+p1)+(fn4(y1^p4i)/p3) zap1a[1]=(fn4(x2^p4r)+p1)+(fn4(y2^p4i)/p3) zap1a[2]=(fn4(x3^p4r)+p1)+(fn4(y3^p4i)/p3) elseif @mode1==1 zap1a[0]=(fn4(x1^p4r)+p1)-(fn4(y1^p4i)/p3) zap1a[1]=(fn4(x2^p4r)+p1)-(fn4(y2^p4i)/p3) zap1a[2]=(fn4(x3^p4r)+p1)-(fn4(y3^p4i)/p3) elseif @mode1==2 zap1a[0]=(fn4(x1^p4r)+p1)*(fn4(y1^p4i)/p3) zap1a[1]=(fn4(x2^p4r)+p1)*(fn4(y2^p4i)/p3) zap1a[2]=(fn4(x3^p4r)+p1)*(fn4(y3^p4i)/p3) elseif @mode1==3 zap1a[0]=(fn4(x1^p4r)+p1)/(fn4(y1^p4i)/p3) zap1a[1]=(fn4(x2^p4r)+p1)/(fn4(y2^p4i)/p3) zap1a[2]=(fn4(x3^p4r)+p1)/(fn4(y3^p4i)/p3) endif elseif @op==1 if @mode1==0 zap1a[0]=(fn4(x1^p4r)*p1)+(fn4(y1^p4i)/p3) zap1a[1]=(fn4(x2^p4r)*p1)+(fn4(y2^p4i)/p3) zap1a[2]=(fn4(x3^p4r)*p1)+(fn4(y3^p4i)/p3) elseif @mode1==1 zap1a[0]=(fn4(x1^p4r)*p1)-(fn4(y1^p4i)/p3) zap1a[1]=(fn4(x2^p4r)*p1)-(fn4(y2^p4i)/p3) zap1a[2]=(fn4(x3^p4r)*p1)-(fn4(y3^p4i)/p3) elseif @mode1==2 zap1a[0]=(fn4(x1^p4r)*p1)*(fn4(y1^p4i)/p3) zap1a[1]=(fn4(x2^p4r)*p1)*(fn4(y2^p4i)/p3) zap1a[2]=(fn4(x3^p4r)*p1)*(fn4(y3^p4i)/p3) elseif @mode1==3 zap1a[0]=(fn4(x1^p4r)*p1)/(fn4(y1^p4i)/p3) zap1a[1]=(fn4(x2^p4r)*p1)/(fn4(y2^p4i)/p3) zap1a[2]=(fn4(x3^p4r)*p1)/(fn4(y3^p4i)/p3) endif elseif @op==2 if @mode1==0 zap1a[0]=(fn4(x1^p4r)/p1)+(fn4(y1^p4i)/p3) zap1a[1]=(fn4(x2^p4r)/p1)+(fn4(y2^p4i)/p3) zap1a[2]=(fn4(x3^p4r)/p1)+(fn4(y3^p4i)/p3) elseif @mode1==1 zap1a[0]=(fn4(x1^p4r)/p1)-(fn4(y1^p4i)/p3) zap1a[1]=(fn4(x2^p4r)/p1)-(fn4(y2^p4i)/p3) zap1a[2]=(fn4(x3^p4r)/p1)-(fn4(y3^p4i)/p3) elseif @mode1==2 zap1a[0]=(fn4(x1^p4r)/p1)*(fn4(y1^p4i)/p3) zap1a[1]=(fn4(x2^p4r)/p1)*(fn4(y2^p4i)/p3) zap1a[2]=(fn4(x3^p4r)/p1)*(fn4(y3^p4i)/p3) elseif @mode1==3 zap1a[0]=(fn4(x1^p4r)/p1)/(fn4(y1^p4i)/p3) zap1a[1]=(fn4(x2^p4r)/p1)/(fn4(y2^p4i)/p3) zap1a[2]=(fn4(x3^p4r)/p1)/(fn4(y3^p4i)/p3) endif endif endif if @op1==0 if @op2==0 zap2a[0]=zstz[0]+fn3(zapc[0]) zap2a[1]=zstz[1]+fn3(zapc[1]) zap2a[2]=zstz[2]+fn3(zapc[2]) zap3a[0]=zstz[0]+fn3(zapc[0]) zap3a[1]=zstz[1]+fn3(zapc[1]) zap3a[2]=zstz[2]+fn3(zapc[2]) elseif @op2==1 zap2a[0]=zstz[0]+fn3(zapc[0]) zap2a[1]=zstz[1]+fn3(zapc[1]) zap2a[2]=zstz[2]+fn3(zapc[2]) zap3a[0]=zstz[0]-fn3(zapc[0]) zap3a[1]=zstz[1]-fn3(zapc[1]) zap3a[2]=zstz[2]-fn3(zapc[2]) elseif @op2==2 zap2a[0]=zstz[0]+fn3(zapc[0]) zap2a[1]=zstz[1]+fn3(zapc[1]) zap2a[2]=zstz[2]+fn3(zapc[2]) zap3a[0]=zstz[0]*fn3(zapc[0]) zap3a[1]=zstz[1]*fn3(zapc[1]) zap3a[2]=zstz[2]*fn3(zapc[2]) elseif @op2==3 zap2a[0]=zstz[0]+fn3(zapc[0]) zap2a[1]=zstz[1]+fn3(zapc[1]) zap2a[2]=zstz[2]+fn3(zapc[2]) zap3a[0]=zstz[0]/fn3(zapc[0]) zap3a[1]=zstz[1]/fn3(zapc[1]) zap3a[2]=zstz[2]/fn3(zapc[2]) endif elseif @op1==1 if @op2==0 zap2a[0]=zstz[0]-fn3(zapc[0]) zap2a[1]=zstz[1]-fn3(zapc[1]) zap2a[2]=zstz[2]-fn3(zapc[2]) zap3a[0]=zstz[0]+fn3(zapc[0]) zap3a[1]=zstz[1]+fn3(zapc[1]) zap3a[2]=zstz[2]+fn3(zapc[2]) elseif @op2==1 zap2a[0]=zstz[0]-fn3(zapc[0]) zap2a[1]=zstz[1]-fn3(zapc[1]) zap2a[2]=zstz[2]-fn3(zapc[2]) zap3a[0]=zstz[0]-fn3(zapc[0]) zap3a[1]=zstz[1]-fn3(zapc[1]) zap3a[2]=zstz[2]-fn3(zapc[2]) elseif @op2==2 zap2a[0]=zstz[0]-fn3(zapc[0]) zap2a[1]=zstz[1]-fn3(zapc[1]) zap2a[2]=zstz[2]-fn3(zapc[2]) zap3a[0]=zstz[0]*fn3(zapc[0]) zap3a[1]=zstz[1]*fn3(zapc[1]) zap3a[2]=zstz[2]*fn3(zapc[2]) elseif @op2==3 zap2a[0]=zstz[0]-fn3(zapc[0]) zap2a[1]=zstz[1]-fn3(zapc[1]) zap2a[2]=zstz[2]-fn3(zapc[2]) zap3a[0]=zstz[0]/fn3(zapc[0]) zap3a[1]=zstz[1]/fn3(zapc[1]) zap3a[2]=zstz[2]/fn3(zapc[2]) endif elseif @op1==2 if @op2==0 zap2a[0]=zstz[0]*fn3(zapc[0]) zap2a[1]=zstz[1]*fn3(zapc[1]) zap2a[2]=zstz[2]*fn3(zapc[2]) zap3a[0]=zstz[0]+fn3(zapc[0]) zap3a[1]=zstz[1]+fn3(zapc[1]) zap3a[2]=zstz[2]+fn3(zapc[2]) elseif @op2==1 zap2a[0]=zstz[0]*fn3(zapc[0]) zap2a[1]=zstz[1]*fn3(zapc[1]) zap2a[2]=zstz[2]*fn3(zapc[2]) zap3a[0]=zstz[0]-fn3(zapc[0]) zap3a[1]=zstz[1]-fn3(zapc[1]) zap3a[2]=zstz[2]-fn3(zapc[2]) elseif @op2==2 zap2a[0]=zstz[0]*fn3(zapc[0]) zap2a[1]=zstz[1]*fn3(zapc[1]) zap2a[2]=zstz[2]*fn3(zapc[2]) zap3a[0]=zstz[0]*fn3(zapc[0]) zap3a[1]=zstz[1]*fn3(zapc[1]) zap3a[2]=zstz[2]*fn3(zapc[2]) elseif @op2==3 zap2a[0]=zstz[0]*fn3(zapc[0]) zap2a[1]=zstz[1]*fn3(zapc[1]) zap2a[2]=zstz[2]*fn3(zapc[2]) zap3a[0]=zstz[0]/fn3(zapc[0]) zap3a[1]=zstz[1]/fn3(zapc[1]) zap3a[2]=zstz[2]/fn3(zapc[2]) endif elseif @op1==3 if @op2==0 zap2a[0]=zstz[0]/fn3(zapc[0]) zap2a[1]=zstz[1]/fn3(zapc[1]) zap2a[2]=zstz[2]/fn3(zapc[2]) zap3a[0]=zstz[0]+fn3(zapc[0]) zap3a[1]=zstz[1]+fn3(zapc[1]) zap3a[2]=zstz[2]+fn3(zapc[2]) elseif @op2==1 zap2a[0]=zstz[0]/fn3(zapc[0]) zap2a[1]=zstz[1]/fn3(zapc[1]) zap2a[2]=zstz[2]/fn3(zapc[2]) zap3a[0]=zstz[0]-fn3(zapc[0]) zap3a[1]=zstz[1]-fn3(zapc[1]) zap3a[2]=zstz[2]-fn3(zapc[2]) elseif @op2==2 zap2a[0]=zstz[0]/fn3(zapc[0]) zap2a[1]=zstz[1]/fn3(zapc[1]) zap2a[2]=zstz[2]/fn3(zapc[2]) zap3a[0]=zstz[0]*fn3(zapc[0]) zap3a[1]=zstz[1]*fn3(zapc[1]) zap3a[2]=zstz[2]*fn3(zapc[2]) elseif @op2==3 zap2a[0]=zstz[0]/fn3(zapc[0]) zap2a[1]=zstz[1]/fn3(zapc[1]) zap2a[2]=zstz[2]/fn3(zapc[2]) zap3a[0]=zstz[0]/fn3(zapc[0]) zap3a[1]=zstz[1]/fn3(zapc[1]) zap3a[2]=zstz[2]/fn3(zapc[2]) endif endif zap1a[0]=@fn5(zap1a[0]+@p6)*@p9 zap1a[1]=@fn5(zap1a[1]+@p6)*@p9 zap1a[2]=@fn5(zap1a[2]+@p6)*@p9 zap2a[0]=@fn6(zap2a[0]+@p7)*@p10 zap2a[1]=@fn6(zap2a[1]+@p7)*@p10 zap2a[2]=@fn6(zap2a[2]+@p7)*@p10 zap3a[0]=@fn7(zap3a[0]+@p8)*@p11 zap3a[1]=@fn7(zap3a[1]+@p8)*@p11 zap3a[2]=@fn7(zap3a[2]+@p8)*@p11 ;zap1a[0]+zap2a[0]+zap3a[0] ; ;((x+y)+(z*c))+(z*c) if @op3==0 zap4a[0]=(zap1a[0]+zap2a[0])+zap3a[0] zap4a[1]=(zap1a[1]+zap2a[1])+zap3a[1] zap4a[2]=(zap1a[2]+zap2a[2])+zap3a[2] elseif @op3==1 zap4a[0]=(zap1a[0]+zap2a[0])*zap3a[0] zap4a[1]=(zap1a[1]+zap2a[1])*zap3a[1] zap4a[2]=(zap1a[2]+zap2a[2])*zap3a[2] elseif @op3==2 zap4a[0]=(zap1a[0]+zap3a[0])*zap2a[0] zap4a[1]=(zap1a[1]+zap3a[1])*zap2a[1] zap4a[2]=(zap1a[2]+zap3a[2])*zap2a[2] elseif @op3==3 zap4a[0]=(zap1a[0]*zap2a[0])+zap3a[0] zap4a[1]=(zap1a[1]*zap2a[1])+zap3a[1] zap4a[2]=(zap1a[2]*zap2a[2])+zap3a[2] elseif @op3==4 zap4a[0]=(zap1a[0]*zap3a[0])+zap2a[0] zap4a[1]=(zap1a[1]*zap3a[1])+zap2a[1] zap4a[2]=(zap1a[2]*zap3a[2])+zap2a[2] elseif @op3==5 zap4a[0]=(zap1a[0]/zap2a[0])+zap3a[0] zap4a[1]=(zap1a[1]/zap2a[1])+zap3a[1] zap4a[2]=(zap1a[2]/zap2a[2])+zap3a[2] elseif @op3==6 zap4a[0]=(zap1a[0]/zap3a[0])+zap2a[0] zap4a[1]=(zap1a[1]/zap3a[1])+zap2a[1] zap4a[2]=(zap1a[2]/zap3a[2])+zap2a[2] elseif @op3==7 zap4a[0]=(zap1a[0]+zap2a[0])/zap3a[0] zap4a[1]=(zap1a[1]+zap2a[1])/zap3a[1] zap4a[2]=(zap1a[2]+zap2a[2])/zap3a[2] elseif @op3==8 zap4a[0]=(zap1a[0]+zap3a[0])/zap2a[0] zap4a[1]=(zap1a[1]+zap3a[1])/zap2a[1] zap4a[2]=(zap1a[2]+zap3a[2])/zap2a[2] endif zap4a[0]=@fn8(zap4a[0]) zap4a[1]=@fn8(zap4a[1]) zap4a[2]=@fn8(zap4a[2]) if @op5==0 zap5a[0]=(@fn11(zstz[0])*c1^p5)+fn2(zapc[0]) zap5a[1]=(@fn11(zstz[1])*c2^p5)+fn2(zapc[1]) zap5a[2]=(@fn11(zstz[2])*c3^p5)+fn2(zapc[2]) elseif @op5==1 zap5a[0]=(@fn11(zstz[0])*c1^p5)-fn2(zapc[0]) zap5a[1]=(@fn11(zstz[1])*c2^p5)-fn2(zapc[1]) zap5a[2]=(@fn11(zstz[2])*c3^p5)-fn2(zapc[2]) elseif @op5==2 zap5a[0]=(@fn11(zstz[0])*c1^p5)*fn2(zapc[0]) zap5a[1]=(@fn11(zstz[1])*c2^p5)*fn2(zapc[1]) zap5a[2]=(@fn11(zstz[2])*c3^p5)*fn2(zapc[2]) elseif @op5==3 zap5a[0]=(@fn11(zstz[0])*c1^p5)/fn2(zapc[0]) zap5a[1]=(@fn11(zstz[1])*c2^p5)/fn2(zapc[1]) zap5a[2]=(@fn11(zstz[2])*c3^p5)/fn2(zapc[2]) endif zap5a[0]=@fn10(zap5a[0]) zap5a[1]=@fn10(zap5a[1]) zap5a[2]=@fn10(zap5a[2]) z1=zap4a[0]+zap5a[0] z2=zap4a[1]+zap5a[1] z3=zap4a[2]+zap5a[2] iter = iter+1 if (@slope == true) ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if (@bailout < |z1| || \ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif else z = z1 endif if ( @bailout < |z1| ) ; we're done done = 0 endif Bailout: done>0 Default: title="Slope new Barney-3" center=(0.0,0.0) angle=90 magn=0.8 maxiter=250 method=multipass periodicity=0 Heading caption="Mandelbrot Mode" visible=(@mode==0) Endheading Heading caption="Julia Mode" visible=(@mode==1) Endheading param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 visible=false endparam param SwitchMode caption="Select Switch" enum="Mandelbrot""Julia" default=1 visible=false endparam param bailout caption="Bailout Value" default=64.0 min=0.0 endparam param start caption="Start Value" default=(0.0,0.0) visible=(@mode=="Mandelbrot") endparam param seed caption="Seed Value" default=(0.0,0.0) visible=(@mode=="Julia") endparam Heading caption="Switch Parameters" visible=@show Endheading param @show caption="Show Switch Parameters" default=false endparam param swscale caption="Scale" default=0.7 visible=@show endparam param swcenter caption="Switch Center" default=(0.0,0.0) visible=@show endparam param scale caption="Scale Reset" default=1.0 visible=@show endparam param center caption="Center Reset" default=(0.0,0.0) visible=@show endparam Heading caption="Slope Parameters" visible=@slope==true Endheading bool param slope caption="Apply slope?" default=true endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6)&&(@slope==true) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84)&&(@slope==true) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82)&&(@slope==true) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81)&&(@slope==true) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84)&&(@slope==true) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58)&&(@slope==true) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75)&&(@slope==true) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Heading caption="C section" Endheading param seq caption="Sequence" enum="1""2""3" default=0 endparam param op4 caption="Operator C" enum="c+p1""c*p1""c/p1" default=1 endparam param p2 caption="Param.1 c" default=(2.0,0.0) endparam param p2c caption="Param.2 c" default=(2.0,0.0) endparam param p21c caption="Param.3 c" default=(2.0,0.0) visible=(@seq!=0) endparam param p5 caption="Exp c" default=(1.0,0.0) endparam func fn1 caption="Function 1|c" default=ident() endfunc func fn1c caption="Function 2|c" default=ident() endfunc func fn3 caption="Function 3|c" default=ident() endfunc func fn21c caption="Function 4|c" default=ident() visible=(@seq!=0) endfunc func fn2 caption="Function c|z5" default=cabs() endfunc func fn9 caption="Global Function c" default=ident() endfunc Heading caption="Operators" Endheading param select caption="Select Z" enum="z""z+c""z-c""z*c""z/c" default=0 endparam param mode1 caption="Operator Re|Im" enum="x+y""x-y""x*y""x/y" default=0 endparam param op caption="Operator p1|x" enum="+p1""*p1""/p1" default=0 endparam param op6 caption="Operator p2|y" enum="+p2""*p2""/p2" default=0 endparam param op1 caption="1st Operator C" enum="z+c""z-c""z*c""z/c" default=2 endparam param op2 caption="2nd Operator C" enum="z+c""z-c""z*c""z/c" default=2 endparam param op3 caption="Oper. Mix z1|z2|z3" enum="z4=(z1+z2)+z3""z4=(z1+z2)*z3""z4=(z1+z3)*z2""z4=(z1*z2)+z3""z4=(z1*z3)+z2"\ "z4=(z1/z2)+z3""z4=(z1/z3)+z2""z4=(z1+z2)/z3""z4=(z1+z3)/z2" default=0 endparam param op5 caption="Operator z5" enum="(c^pow*z)+c""(c^pow*z)-c""(c^pow*z)*c""(c^pow*z)/c" default=1 endparam Heading caption="Parameters" Endheading param ratio caption="Ratio" default=(1.0,0.0) endparam param p1 caption="p1|x" default=(-1.0,0.0) endparam param p3 caption="p2|y" default=(2.0,0.0) endparam param p4 caption="(x|y)^param" default=(1.0,1.0) endparam param p6 caption="Parameter z1" default=(0.0,0.0) endparam param p7 caption="Parameter z2" default=(0.0,0.0) endparam param p8 caption="Parameter z3" default=(0.0,0.0) endparam param p9 caption="Mult. z1" default=(1.0,0.0) endparam param p10 caption="Mult. z2" default=(1.0,0.0) endparam param p11 caption="Mult. z3" default=(-1.0,0.0) endparam param version caption="Version" default=1.0 visible=false endparam Heading caption="Functions" Endheading func fn4 caption="Function Mode" default=cos() endfunc func fn5 caption="Function z1" default=ident() endfunc func fn6 caption="Function z2" default=ident() endfunc func fn7 caption="Function z3" default=ident() endfunc func fn8 caption="Function z4" default=ident() endfunc func fn10 caption="Function z5" default=ident() endfunc func fn11 caption="Function z|z5" default=ident() endfunc Switch: type="SlopeNewBarney-3" seed=#pixel bailout=@bailout select=@select mode1=@mode1 op=@op op1=@op1 op2=@op2 op3=@op3 op4=@op4 op5=@op5 op6=@op6 seq=@seq ratio=@ratio p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 p8=@p8 p9=@p9 p10=@p10 p11=@p11 p2c=@p2c p21c=@p21c fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 fn8=@fn8 fn9=@fn9 fn10=@fn10 fn11=@fn11 fn1c=@fn1c fn21c=@fn21c mode=@switchmode switchmode=@mode center=@swcenter scale=@swscale version=@version slope=@slope offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl pow=@pow sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp } frm:MandAutoCritInZ { ;Original formula of Jim Muth: ;http://home.att.net/~Fractals_3/FotD_07-12-13.html ;Andrea Spinozzi(Dec2007)(ver:1.0) Global: aa1=real(p1) aa2=real(p1) aa3=real(p1) bb1=imag(p1) bb2=imag(p1) bb3=imag(p1) dd1=real(p2) dd2=real(p2) dd3=real(p2) ff1=imag(p2) ff2=imag(p2) ff3=imag(p2) gg1=1/ff1 gg2=1/ff2 gg3=1/ff3 hh1=1/dd1 hh2=1/dd2 hh3=1/dd3 jj1=1/(ff1-bb1) jj2=1/(ff2-bb2) jj3=1/(ff3-bb3) Init: z1=(((-aa1*bb1*gg1*hh1)^jj1)+(@startseed)) z2=(((-aa2*bb2*gg2*hh2)^jj2)+(@startseed)) z3=(((-aa3*bb3*gg3*hh3)^jj3)+(@startseed)) kk1=p3 kk2=p3 kk3=p3 cc1=cc2=cc3=0.0 c1=fn1(#pixel) c2=fn1(#pixel)+@offset c3=fn1(#pixel)+flip(@offset) if @mode == "Julia" ;z1=fn1(#pixel) ;z2=fn1(#pixel)+@offset ;z3=fn1(#pixel)+flip(@offset) z1=(((-aa1*bb1*gg1*hh1)^jj1)+fn1(#pixel)) z2=(((-aa2*bb2*gg2*hh2)^jj2)+fn1(#pixel))+@offset z3=(((-aa3*bb3*gg3*hh3)^jj3)+fn1(#pixel))+flip(@offset) c1=@startseed c2=@startseed c3=@startseed endif ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 int modby=@seq+2 int iter = 0 Loop: int method = iter%modby if method==0 cc1=fn3(c1)+p4 cc2=fn3(c2)+p4 cc3=fn3(c3)+p4 elseif method==1 cc1=fn4(c1)*p5 cc2=fn4(c2)*p5 cc3=fn4(c3)*p5 elseif method==2 cc1=@fn5(c1)/p6 cc2=@fn5(c2)/p6 cc3=@fn5(c3)/p6 endif z1=kk1*((aa1*(@fn2(z1)^bb1))+(dd1*(@fn2(z1)^ff1)))+cc1 z2=kk2*((aa2*(@fn2(z2)^bb2))+(dd2*(@fn2(z2)^ff2)))+cc2 z3=kk3*((aa3*(@fn2(z3)^bb3))+(dd3*(@fn2(z3)^ff3)))+cc3 if (@slope == true) ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if ( @bailout < |z1| ||\ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif else z = z1 endif if ( @bailout < |z1| ) ; we're done done = 0 endif iter = iter+1 Bailout: done > 0 Default: title="SlopeMandAutoCritInZ" maxiter=250 periodicity=0 method=multipass Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="Current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param bailout caption="Bailout" default=64.0 min=0.0 endparam param startseed caption="Init Z/Seed Value" default=(0.0,0.0) endparam Heading caption="Slope Parameters" visible=@slope==true Endheading bool param slope caption="Apply slope?" default=true endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6)&&(@slope==true) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84)&&(@slope==true) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82)&&(@slope==true) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81)&&(@slope==true) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84)&&(@slope==true) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58)&&(@slope==true) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75)&&(@slope==true) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Heading caption="C Sequence" Endheading param seq caption="Method" enum="1""2""3" default=0 endparam param p4 caption="Factor 1" default=(0.0,0.0) endparam param p5 caption="Factor 2" default=(1.0,0.0) endparam param p6 caption="Factor 3" default=(1.0,0.0) visible=(@seq!=0) endparam func fn3 caption="Func. Factor 1" default=ident() endfunc func fn4 caption="Func. Factor 2" default=ident() endfunc func fn5 caption="Func. Factor 3" default=ident() visible=(@seq!=0) endfunc Heading caption="Parameters" Endheading param p1 caption="Parameter 1" default=(0.0,0.0) endparam param p2 caption="Parameter 2" default=(1.0,2.0) endparam param p3 caption="Parameter 3" default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function Pixel" default=ident() endfunc func fn2 caption="Function Z" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="frm:MandAutoCritInZ" startseed=pixel bailout=@bailout seq=@seq p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 mode=@switchmode switchmode = @mode slope=@slope offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp version=@version } SlopeDivideJulibrot { ; draws 4-D slices of DivideBrot Julibrots ; Original code by Jim Muth, Slope version and implementation by Andrea Spinozzi ; For the respective Julia-set use real(p1)=90.0 and real(p2)=90.0 and the center/switch ; parameter like a seed. ; Slope from REB.ufm ; October2009 Init: z1=#pixel z2=#pixel+@offset z3=#pixel+flip(@offset) u1=real(fn3(z1)) u2=real(fn3(z2)) u3=real(fn3(z3)) v1=imag(fn4(z1)) v2=imag(fn4(z2)) v3=imag(fn4(z3)) a1=pi*real(p1*0.0055555555555556) a2=pi*real(p1*0.0055555555555556) a3=pi*real(p1*0.0055555555555556) b1=pi*imag(p1*0.0055555555555556) b2=pi*imag(p1*0.0055555555555556) b3=pi*imag(p1*0.0055555555555556) g1=pi*real(p2*0.0055555555555556) g2=pi*real(p2*0.0055555555555556) g3=pi*real(p2*0.0055555555555556) f1=pi*imag(p2*0.0055555555555556) f2=pi*imag(p2*0.0055555555555556) f3=pi*imag(p2*0.0055555555555556) ca1=cos(a1) ca2=cos(a2) ca3=cos(a3) cb1=cos(b1) cb2=cos(b2) cb3=cos(b3) sb1=sin(b1) sb2=sin(b2) sb3=sin(b3) cg1=cos(g1) cg2=cos(g2) cg3=cos(g3) sg1=sin(g1) sg2=sin(g2) sg3=sin(g3) cd1=cos(f1) cd2=cos(f2) cd3=cos(f3) sd1=sin(f1) sd2=sin(f2) sd3=sin(f3) aa1=-(real(p4)-2) aa2=-(real(p4)-2) aa3=-(real(p4)-2) bb1=(imag(p4)+0.00000000000000000000001) bb2=(imag(p4)+0.00000000000000000000001) bb3=(imag(p4)+0.00000000000000000000001) t1=u1*cg1*cd1-v1*(ca1*sb1*sg1*cd1+ca1*cb1*sd1) t2=u2*cg2*cd2-v2*(ca2*sb2*sg2*cd2+ca2*cb2*sd2) t3=u3*cg3*cd3-v3*(ca3*sb3*sg3*cd3+ca3*cb3*sd3) q1=u1*cg1*sd1+v1*(ca1*cb1*cd1-ca1*sb1*sg1*sd1) q2=u2*cg2*sd2+v2*(ca2*cb2*cd2-ca2*sb2*sg2*sd2) q3=u3*cg3*sd3+v3*(ca3*cb3*cd3-ca3*sb3*sg3*sd3) r1=u1*sg1+v1*ca1*sb1*cg1 r2=u2*sg2+v2*ca2*sb2*cg2 r3=u3*sg3+v3*ca3*sb3*cg3 h1=v1*sin(a1) h2=v2*sin(a2) h3=v3*sin(a3) c1=t1+flip(q1)+p3 c2=t2+flip(q2)+p3 c3=t3+flip(q3)+p3 z1=r1+flip(h1)+p5 z2=r2+flip(h2)+p5 z3=r3+flip(h3)+p5 ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 int modby=@seq+2 int iter=0 Loop: int method=iter%modby if @zmethod==0 if method==0 z1=sqr(z1)/((z1)^(aa1)+bb1)+fn1(c1)+@p6 z2=sqr(z2)/((z2)^(aa2)+bb2)+fn1(c2)+@p6 z3=sqr(z3)/((z3)^(aa3)+bb3)+fn1(c3)+@p6 else z1=sqr(z1)/((z1)^(aa1)+bb1)+fn2(c1)+@p7 z2=sqr(z2)/((z2)^(aa2)+bb2)+fn2(c2)+@p7 z3=sqr(z3)/((z3)^(aa3)+bb3)+fn2(c3)+@p7 endif else if method==0 z1=sin(z1)/((z1)^(aa1)+bb1)+fn1(c1)+@p6 z2=sin(z2)/((z2)^(aa2)+bb2)+fn1(c2)+@p6 z3=sin(z3)/((z3)^(aa3)+bb3)+fn1(c3)+@p6 else z1=sin(z1)/((z1)^(aa1)+bb1)+fn2(c1)+@p7 z2=sin(z2)/((z2)^(aa2)+bb2)+fn2(c2)+@p7 z3=sin(z3)/((z3)^(aa3)+bb3)+fn2(c3)+@p7 endif endif if (@slope == true) ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if ( @bailout < |z1|+|z2|+|z3| ||\ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif else z = z1 endif if ( @bailout < |z1|+|z2|+|z3| ) ; we're done done = 0 endif iter=iter+1 Bailout: done > 0 Default: title="SlopeDivideJulibrot" periodicity=0 method=multipass maxiter=500 Param bailout caption="Bailout" default=1000 min=0.0 Endparam Heading caption="Parameters" Endheading Param zmethod caption="Z Method" enum="Normal""Sin" default=0 Endparam Param p1 caption="Parameter 1" default=(0.0,0.0) Endparam Param p2 caption="Parameter 2" default=(0.0,0.0) Endparam Param p4 caption="Exponent" default=(2.0,0.0) Endparam Param p3 caption="Center/Swicth" default=(0.0,0.0) Endparam Param p5 caption="Center/Init" default=(0.0,0.0) Endparam Func fn3 caption="Init Func. Re Pixel" default=ident() Endfunc Func fn4 caption="Init Func. Im Pixel" default=ident() Endfunc Heading caption="Sequence C" Endheading Param seq caption="Sequence Lengh" enum="1""2" default=0 Endparam Param p6 caption="Factor 1" default=(0.0,0.0) Endparam Param p7 caption="Factor 2" default=(0.0,0.0) Endparam Func fn1 caption="Function factor 1" default=ident() Endfunc Func fn2 caption="Function factor 2" default=ident() Endfunc Heading caption="Slope Parameters" visible=@slope==true Endheading bool param slope caption="Apply slope?" default=true endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6)&&(@slope==true) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84)&&(@slope==true) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82)&&(@slope==true) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81)&&(@slope==true) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84)&&(@slope==true) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58)&&(@slope==true) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75)&&(@slope==true) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.01 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Param version caption = "Version" default= 1.0 visible = false Endparam } SlopeMultiRot { ; Original code by Jim Muth ; Implementation by Andrea Spinozzi ; October 2009 Init: pix1=#pixel pix2=#pixel+@offset pix3=#pixel+flip(@offset) a1=real(p1)*.01745329251994 a2=real(p1)*.01745329251994 a3=real(p1)*.01745329251994 b1=imag(p1)*.01745329251994 b2=imag(p1)*.01745329251994 b3=imag(p1)*.01745329251994 z1=sin(b1)*fn1(real(pix1))+sin(a1)*fn2(imag(pix1))+p2 z2=sin(b2)*fn1(real(pix2))+sin(a2)*fn2(imag(pix2))+p2 z3=sin(b3)*fn1(real(pix3))+sin(a3)*fn2(imag(pix3))+p2 c1=cos(b1)*fn3(real(pix1))+cos(a1)*fn4(imag(pix1))+p3 c2=cos(b2)*fn3(real(pix2))+cos(a2)*fn4(imag(pix2))+p3 c3=cos(b3)*fn3(real(pix3))+cos(a3)*fn4(imag(pix3))+p3 int modby = @seq+2 int iter = 0 cc1 = 0.0 cc2 = 0.0 cc3 = 0.0 ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 Loop: int method = iter%modby if method==0 cc1 = @fn5(c1)+p5 cc2 = @fn5(c2)+p5 cc3 = @fn5(c3)+p5 elseif method==1 cc1 = @fn6(c1+p6) cc2 = @fn6(c2+p6) cc3 = @fn6(c3+p6) elseif method==2 cc1 = @fn7(c1)*@p7 cc2 = @fn7(c2)*@p7 cc3 = @fn7(c3)*@p7 endif z1=z1^p4+cc1 z2=z2^p4+cc2 z3=z3^p4+cc3 if (@slope == true) ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if ( @bailout < |z1|+|z2|+|z3| ||\ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif else z = z1 endif if ( @bailout < |z1|+|z2|+|z3| ) ; we're done done = 0 endif iter = iter+1 Bailout: done > 0 Default: Title="SlopeMultiRot" Periodicity=0 Maxiter=500 Method=Multipass Param bailout caption= "Bailout Value" default= 1000.0 min = 0.0 Endparam Heading caption="Slope Parameters" visible=@slope==true Endheading bool param slope caption="Apply slope?" default=true endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6)&&(@slope==true) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84)&&(@slope==true) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82)&&(@slope==true) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81)&&(@slope==true) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84)&&(@slope==true) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58)&&(@slope==true) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75)&&(@slope==true) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.01 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Heading caption="Parameters" Endheading Param p1 caption="Rotation" default=(0.0,0.0) Endparam Param p2 caption="Center/Init" default=(0.0,0.0) Endparam Param p3 caption="Center/Switch" default=(0.0,0.0) Endparam Param p4 caption="Exponent" default=(2.0,0.0) Endparam Heading caption="C Sequence" Endheading Param seq caption="Lenght" enum="1""2""3" default=0 Endparam Param p5 caption="Factor 1" default=(0.0,0.0) Endparam Param p6 caption="Factor 2" default=(0.0,0.0) Endparam Param p7 caption="Factor 3" default=(1.0,0.0) visible = @seq!=0 Endparam Func fn5 caption="Func. Factor 1" default= ident() Endfunc Func fn6 caption="Func. Factor 2" default= ident() Endfunc Func fn7 caption="Func. Factor 3" default= ident() visible = @seq!=0 Endfunc Heading caption="Functions" Endheading Func fn1 caption="Function 1" default= ident() Endfunc Func fn2 caption="Function 2" default= flip() Endfunc Func fn3 caption="Function 3" default= ident() Endfunc Func fn4 caption="Function 4" default= flip() Endfunc Param version caption="Version" default=1.0 visible=false Endparam } SlopeNewDivideBrot { ; Draws 3 differents Dividebrot sets ; Original codes by Jim Muth, implementation for UF by Andrea Spinozzi ; October 2009 ;Mandelbrot Mode z1=@startseed z2=z1 z3=z1 c1=#pixel c2=#pixel+@offset c3=#pixel+flip(@offset) if @mode=="Julia" ;Julia Mode z1=#pixel z2=#pixel+@offset z3=#pixel+flip(@offset) c1=@startseed c2=c1 c3=c1 endif cc1=0.0 cc2=0.0 cc3=0.0 a1=-(real(p1)-2) a2=-(real(p1)-2) a3=-(real(p1)-2) b1=(imag(p1)+0.00000000000000000001) b2=(imag(p1)+0.00000000000000000001) b3=(imag(p1)+0.00000000000000000001) r1=-(real(p2)-2) r2=-(real(p2)-2) r3=-(real(p2)-2) t1=(imag(p2)+0.00000000000000000001) t2=(imag(p2)+0.00000000000000000001) t3=(imag(p2)+0.00000000000000000001) v1=real(p3) v2=real(p3) v3=real(p3) w1=(imag(p3)-2) w2=(imag(p3)-2) w3=(imag(p3)-2) g1=real(p4)+0.00000000000000000001 g2=real(p4)+0.00000000000000000001 g3=real(p4)+0.00000000000000000001 ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 int modby=@seq+2 int iter=0 Loop: int method=iter%modby if method==0 cc1=fn3(c1)+p5 cc2=fn3(c2)+p5 cc3=fn3(c3)+p5 elseif method==1 cc1=fn4(c1+p6) cc2=fn4(c2+p6) cc3=fn4(c3+p6) elseif method==2 cc1=@fn5(c1)*@p7 cc2=@fn5(c2)*@p7 cc3=@fn5(c3)*@p7 endif if @modediv==0 z1=fn1(z1)^2*fn2(z1^(a1)+b1)+@fn6(cc1) z2=fn1(z2)^2*fn2(z2^(a2)+b2)+@fn6(cc2) z3=fn1(z3)^2*fn2(z3^(a3)+b3)+@fn6(cc3) elseif @modediv==1 z1=t1*(fn1(z1)^2*fn2(z1^(r1)+t1))+@fn6(cc1) z2=t2*(fn1(z2)^2*fn2(z2^(r2)+t2))+@fn6(cc2) z3=t3*(fn1(z3)^2*fn2(z3^(r3)+t3))+@fn6(cc3) elseif @modediv==2 z1=fn1(z1)^(v1)/(fn2(z1)^(-w1)+g1)+@fn6(cc1) z2=fn1(z2)^(v2)/(fn2(z2)^(-w2)+g2)+@fn6(cc2) z3=fn1(z3)^(v3)/(fn2(z3)^(-w3)+g3)+@fn6(cc3) endif if (@slope == true) ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if ( @bailout < |z1| ||\ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif else z = z1 endif if ( @bailout < |z1| ) ; we're done done = 0 endif iter=iter+1 Bailout: done > 0 Default: Title="SlopeNewDivideBrot" Maxiter=500 Periodicity=0 Method=Multipass Heading caption="Mandelbrot Mode" visible=(@mode=="Mandelbrot") Endheading Heading caption="Julia Mode" visible=(@mode=="Julia") Endheading param mode caption="Current Mode" enum="Mandelbrot""Julia" default=0 visible=false endparam param switchmode caption="Switch To..." enum="Mandelbrot""Julia" default=1 visible=false endparam Param Bailout caption="Bailout" default=1000.0 min=0.0 Endparam Param startseed caption="Start Z/Seed Value" default=(0.0,0.0) Endparam Heading caption="Parameters" Endheading Param modediv caption="Divide Mode" enum="1""2""3" default=0 endparam Param p1 caption="Param." default=(2.0,0.0) visible=@modediv==0 Endparam Param p2 caption="Param." default=(2.0,0.62) visible=@modediv==1 Endparam Param p3 caption="Param. 1" default=(3.0,1.0) visible=@modediv==2 Endparam Param p4 caption="Param. 2" default=0.0 visible=@modediv==2 Endparam Heading caption="C Sequence" Endheading Param seq caption="Lenght" enum="1""2""3" default=0 endparam Param p5 caption="Factor 1" default=(0.0,0.0) Endparam Param p6 caption="Factor 2" default=(0.0,0.0) Endparam Param p7 caption="Factor 3" default=(1.0,0.0) visible=@seq!=0 Endparam Func fn3 caption="Func. Factor 1" default=ident() Endfunc Func fn4 caption="Func. Factor 2" default=ident() Endfunc Func fn5 caption="Func. Factor 3" default=ident() visible=@seq!=0 Endfunc Heading caption="Functions" Endheading Func fn1 caption="Function Z1" default=ident() Endfunc Func fn2 caption="Function Z2" default=ident() Endfunc Func fn6 caption="Function C" default=ident() Endfunc Heading caption="Slope Parameters" visible=@slope==true Endheading bool param slope caption="Apply slope?" default=true endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6)&&(@slope==true) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84)&&(@slope==true) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82)&&(@slope==true) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81)&&(@slope==true) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84)&&(@slope==true) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58)&&(@slope==true) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75)&&(@slope==true) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam param version caption="Version" default=1.0 visible=false Endparam Switch: type="SlopeNewDividebrot" bailout=@bailout startseed=#pixel modediv=@modediv seq=@seq p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 switchmode=@mode mode=@switchmode slope=@slope offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp verions=@version } quat { ; Written by Luke Plant ; Modified by Frederik Slijkerman ; quaternion mandelbrot ; Implemented slope version Andrea Spinozzi(February2010) Init: ; Mandelbrot z1 = (0,0) z2 = (0,0) z3 = (0,0) z31 = (0,0) ;temp of z z32 = (0,0) ;temp of z z33 = (0,0) ;temp of z z21 =@start z22 = z21 z23 = z21 c11 = pixel c12 = c11 + @offset c13 = c11 + flip(@offset) c21 = @cjk c22 = c21 c23 = c21 if @mode == "Julia" ;z = pixel ;z2 = @zjk ;z3 = (0,0) ;temp of z ;c1 = @c1i ;c2 = @cjk z1 = pixel z2 = z1 + @offset z3 = z1 + flip(@offset) z21 = @zjk z22 = z21 z23 = z21 z31 = (0.0,0.0) ;temp of z z32 = z31 z33 = z31 c11 = @c1i c12 = c11 c13 = c11 c21 = @cjk c22 = c21 c23 = c21 endif ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 bool first = true int modby = @seq + 2 int iter = 0 Loop: int method = iter % modby if first first = false else if method == 0 z31 = (fn1(z1) - fn1(real(z21)) - fn1(imag(z21)) + fn3(@fnfactor1(c11 + @factor1))) ^ @pow z32 = (fn1(z2) - fn1(real(z22)) - fn1(imag(z22)) + fn3(@fnfactor1(c12 + @factor1))) ^ @pow z33 = (fn1(z3) - fn1(real(z23)) - fn1(imag(z23)) + fn3(@fnfactor1(c13 + @factor1))) ^ @pow z21 = 2*real(z1)*real(z21) + flip(2*real(z1)*imag(z21)) + fn3(c21) z22 = 2*real(z2)*real(z22) + flip(2*real(z2)*imag(z22)) + fn3(c22) z23 = 2*real(z3)*real(z23) + flip(2*real(z3)*imag(z23)) + fn3(c23) z1 = fn2(z31) z2 = fn2(z32) z3 = fn2(z33) else;if method == 1 z31 = (fn1(z1) - fn1(real(z21)) - fn1(imag(z21)) + fn3(@fnfactor2(c11 + @factor2))) ^ @pow z32 = (fn1(z2) - fn1(real(z22)) - fn1(imag(z22)) + fn3(@fnfactor2(c12 + @factor2))) ^ @pow z33 = (fn1(z3) - fn1(real(z23)) - fn1(imag(z23)) + fn3(@fnfactor2(c13 + @factor2))) ^ @pow z21 = 2*real(z1)*real(z21) + flip(2*real(z1)*imag(z21)) + fn3(c21) z22 = 2*real(z2)*real(z22) + flip(2*real(z2)*imag(z22)) + fn3(c22) z23 = 2*real(z3)*real(z23) + flip(2*real(z3)*imag(z23)) + fn3(c23) z1 = fn2(z31) z2 = fn2(z32) z3 = fn2(z33) endif endif if (@slope == true) ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if ( @bailout < |z1|+|z21| ||\ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif else z = z1 endif if ( @bailout < |z1|+|z21| ) ; we're done done = 0 endif iter = iter + 1 Bailout: done > 0 Default: title = "Slope Quaternion Mandelbrot Set" maxiter = 500 method = multipass periodicity = 0 Heading caption="Mandelbrot Mode" visible=(@mode == 0) Endheading Heading caption="Julia Mode" visible=(@mode == 1) Endheading param mode caption="Mode" enum="Mandelbrot" "Julia" default=0 visible=false endparam param switchmode caption="Switch Mode" enum="Mandelbrot" "Julia" default=1 visible=false endparam param bailout caption = "Bailout" default = 64.0 min = 1 endparam param @start caption = "Start Z" default = (0.0,0.0) visible=(@mode == 0) endparam param c1i caption = "Seed value" default = (0.0,0.0) visible = (@mode == 1) endparam Heading caption = "C sequence" Endheading param @seq caption = "Lenght" enum = "1""2" default = 0 endparam param @factor1 caption = "factor 1" endparam param @factor2 caption = "factor 2" endparam func @fnfactor1 caption = "func. factor 1" default = ident() endfunc func @fnfactor2 caption = "func. factor 2" default = ident() endfunc Heading caption = "Parameters" Endheading param cjk caption = "(cj, ck)" default = (0.0,0.0) endparam param zjk caption = "(zj, zk)" default = (0.0,0.0) visible = (@mode == 1) endparam param pow caption = "Power" default = (1.0,0.0) endparam Heading caption = "Functions" Endheading func fn1 caption = "Function 1Z" default = sqr() endfunc func fn2 caption = "Function 2Z" default = ident() endfunc func fn3 caption = "Function C" default = ident() endfunc Heading caption="Slope Parameters" visible=@slope==true Endheading bool param slope caption="Apply slope?" default=true endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6)&&(@slope==true) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84)&&(@slope==true) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82)&&(@slope==true) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81)&&(@slope==true) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84)&&(@slope==true) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58)&&(@slope==true) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75)&&(@slope==true) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.01 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Param version caption = "Version" default= 1.0 visible = false Endparam Switch: type = "quat" start = @start zjk = @zjk c1i = pixel cjk = cjk pow = @pow fn1 = fn1 fn2 = fn2 fn3 = fn3 bailout = bailout seq = @seq factor1 = @factor1 factor2 = @factor2 fnfactor1 = @fnfactor1 fnfactor2 = @fnfactor2 mode=@switchmode switchmode=@mode version=@version slope=@slope offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp } SlopeNewSpizzalia-3 { ;Andrea Spinozzi(Updated Aug2010) Init: z1 = #pixel z2 = z1+@offset z3 = z1+flip(@offset) cc1 = 0.0 cc2 = 0.0 cc3 = 0.0 c1 = 0.0 c2 = 0.0 c3 = 0.0 a1=(0.0,0.0) a2=(0.0,0.0) a3=(0.0,0.0) if @seldegree==0 cc1 = fn1(z1) cc2 = fn1(z2) cc3 = fn1(z3) elseif @seldegree == 1 cc1 = fn1(z1) * fn2(z1) cc2 = fn1(z2) * fn2(z2) cc3 = fn1(z3) * fn2(z3) elseif @seldegree == 2 cc1 = fn1(z1) * fn2(z1) * fn3(z1) cc2 = fn1(z2) * fn2(z2) * fn3(z2) cc3 = fn1(z3) * fn2(z3) * fn3(z3) elseif @seldegree == 3 cc1 = fn1(z1) * fn2(z1) * fn3(z1) * (fn4(z1)^@fn5(z1)) cc2 = fn1(z2) * fn2(z2) * fn3(z2) * (fn4(z2)^@fn5(z2)) cc3 = fn1(z3) * fn2(z3) * fn3(z3) * (fn4(z3)^@fn5(z3)) endif a1 = z1^p1*@p7 a2 = z2^p1*@p7 a3 = z3^p1*@p7 if (@mode=="Julia") z1 = #pixel z2 = z1+@offset z3 = z1+flip(@offset) cc1 = 0.0 cc2 = 0.0 cc3 = 0.0 c1 = @seed c2 = c1 c3 = c1 if @seldegree==0 cc1 = fn1(c1) cc2 = fn1(c2) cc3 = fn1(c3) elseif @seldegree == 1 cc1 = fn1(c1) * fn2(c1) cc2 = fn1(c2) * fn2(c2) cc3 = fn1(c3) * fn2(c3) elseif @seldegree == 2 cc1 = fn1(c1) * fn2(c1) * fn3(c1) cc2 = fn1(c2) * fn2(c2) * fn3(c2) cc3 = fn1(c3) * fn2(c3) * fn3(c3) elseif @seldegree == 3 cc1 = fn1(c1) * fn2(c1) * fn3(c1) * (fn4(c1)^@fn5(c1)) cc2 = fn1(c2) * fn2(c2) * fn3(c2) * (fn4(c2)^@fn5(c2)) cc3 = fn1(c3) * fn2(c3) * fn3(c3) * (fn4(c3)^@fn5(c3)) endif a1 = z1^p1*@p7 a2 = z2^p1*@p7 a3 = z3^p1*@p7 endif int modby = @seq+2 int iter = 0 ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 Loop: int method = iter%modby if method==0 c1 = @fn1c(cc1)+p4 c2 = @fn1c(cc2)+p4 c3 = @fn1c(cc3)+p4 else c1 = @fn2c(cc1)*@p5+p4 c2 = @fn2c(cc2)*@p5+p4 c3 = @fn2c(cc3)*@p5+p4 endif if @Oploop==0 z1 = @fn6(z1)^p2 + p3 + @fn7(@fn8(a1+@p6)+@fn9(c1)) z2 = @fn6(z2)^p2 + p3 + @fn7(@fn8(a2+@p6)+@fn9(c2)) z3 = @fn6(z3)^p2 + p3 + @fn7(@fn8(a3+@p6)+@fn9(c3)) elseif @oploop==1 z1 = @fn6(z1)^p2 + p3 * @fn7(@fn8(a1+@p6)+@fn9(c1)) z2 = @fn6(z2)^p2 + p3 * @fn7(@fn8(a2+@p6)+@fn9(c2)) z3 = @fn6(z3)^p2 + p3 * @fn7(@fn8(a3+@p6)+@fn9(c3)) elseif @oploop==2 z1 = @fn6(z1)^p2 + p3 + @fn7(@fn8(a1+@p6)*@fn9(c1)) z2 = @fn6(z2)^p2 + p3 + @fn7(@fn8(a2+@p6)*@fn9(c2)) z3 = @fn6(z3)^p2 + p3 + @fn7(@fn8(a3+@p6)*@fn9(c3)) elseif @oploop==3 z1 = @fn6(z1)^p2 + p3 * @fn7(@fn8(a1+@p6)*@fn9(c1)) z2 = @fn6(z2)^p2 + p3 * @fn7(@fn8(a2+@p6)*@fn9(c2)) z3 = @fn6(z3)^p2 + p3 * @fn7(@fn8(a3+@p6)*@fn9(c3)) endif if @oploop1==0 a1 = z1+c1^@p9*@p8 a2 = z2+c2^@p9*@p8 a3 = z3+c3^@p9*@p8 elseif @oploop1==1 a1 = z1*c1^@p9*@p8 a2 = z2*c2^@p9*@p8 a3 = z3*c3^@p9*@p8 elseif @oploop1==2 a1 = z1^c1^@p9*@p8 a2 = z2^c2^@p9*@p8 a3 = z3^c3^@p9*@p8 endif if (@slope == true) ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if ( @bailout < |z1| ||\ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif else z = z1 endif if ( @bailout < |z1| ) ; we're done done = 0 endif iter=iter+1 Bailout: done > 0 Default: title="New Spizzalia" angle=90 center=(0.0,0.0) maxiter=1000 periodicity=0 method=multipass Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="current Mode" default=0 enum="Mandelbrot""Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot""Julia" visible=false endparam param bailout caption="Bailout Value" default=1024 min=0 endparam Heading caption="Slope Parameters" visible=@slope==true Endheading bool param slope caption="Apply slope?" default=true endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6)&&(@slope==true) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84)&&(@slope==true) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82)&&(@slope==true) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81)&&(@slope==true) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84)&&(@slope==true) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58)&&(@slope==true) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75)&&(@slope==true) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.05 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Heading caption="Init Parameters" Endheading param seldegree caption="Init Degree" enum="1°""2°""3°""4° Elevate" default=3 endparam param p7 caption="Multiply Z" default=(1.0,0.0) endparam param p1 caption="Elevate Z" default=(2.0,0.0) endparam func fn1 caption = "Func. 1Degree" default = ident() endfunc func fn2 caption = "Func. 2Degree" default = ident() visible = @seldegree==1 || @seldegree==2 || @seldegree==3 endfunc func fn3 caption = "Func. 3Degree" default = ident() visible = @seldegree==2 || @seldegree == 3 endfunc func fn4 caption = "Func. 4Degree" default = ident() visible = @seldegree==3 endfunc func fn5 caption = "Func. Elevate" default = ident() visible = @seldegree==3 endfunc Heading caption="Loop Parameters" Endheading Heading caption="Operators and Parameters" Endheading param @seed caption="Julia Seed" default=(0.0,0.0) visible=(@mode=="Julia") endparam param oploop caption = "Loop Operators" enum = "+|+""*|+""+|*""*|*" default = 3 endparam param oploop1 caption = "Loop Operators 1" enum = "+""*""^" default = 2 endparam param p2 caption="Elevate Z" default=(1.1,0.0) endparam param p9 caption="Elevate C" default=(1.0,0.0) endparam param p3 caption="Param. 1Z" default=(0.6,0.0) endparam param p6 caption="Param. 2Z" default=(0.5,0.0) endparam param p8 caption="Param. 1C" default=(1.0,0.0) endparam Heading caption = "C Sequence" Endheading param seq caption = "Sequence" enum = "1""2" default = 0 endparam param p4 caption = "Factor 1" default = (0.0,0.0) endparam param p5 caption = "Factor 2" default = (1.0,0.0) endparam func fn1c caption = "Func. Factor 1" default = ident() endfunc func fn2c caption = "Func. Factor 2" default = ident() endfunc Heading caption="Functions" Endheading func fn6 caption="Func. 1" default=ident() endfunc func fn7 caption="Func. 2" default=ident() endfunc func fn8 caption="Func. 3" default=ident() endfunc func fn9 caption="Func. 4" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type = "SlopeNewSpizzalia-3" pixel = @seed seed = #pixel bailout = @bailout seldegree = @seldegree fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 fn4 = @fn4 fn5 = @fn5 fn6 = @fn6 fn7 = @fn7 fn8 = @fn8 fn9 = @fn9 fn1c = @fn1c fn2c = @fn2c p1 = @p1 p2 = @p2 p3 = @p3 p4 = @p4 p5 = @p5 p6 = @p6 p7 = @p7 p8 = @p8 p9 = @p9 oploop = @oploop oploop1 = @oploop1 seq = @seq mode = @switchmode switchmode = @mode slope=@slope offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp version = @version } SlopeBrot { ; Andrea Spinozzi(Sept2010) Init: z1 = @startseed z2 = z1 z3 = z1 c1 = Pixel c2 = c1 + @offset c3 = c1 + flip(@offset) if @mode == "Julia" z1 = pixel z2 = z1 + @offset z3 = z1 + flip(@offset) c1 = @startseed c2 = c1 c3 = c1 endif a1 = z1 a2 = z2 a3 = z3 cc1 = 0 cc2 = 0 cc3 = 0 ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 int modby = @seq+2 int iter = 0 Loop: int method = iter%modby if method == 0 cc1 = @fn1c(c1+p3) cc2 = @fn1c(c2+p3) cc3 = @fn1c(c3+p3) else cc1 = @fn2c(c1-p4) cc2 = @fn2c(c2-p4) cc3 = @fn2c(c3-p4) endif if @selmode1 == 0 if @selmode == 0 z1=( (cc1^p1) - (fn1(a1)^p2*@p7) ) * fn2(cc1*p6) z2=( (cc2^p1) - (fn1(a2)^p2*@p7) ) * fn2(cc2*p6) z3=( (cc3^p1) - (fn1(a3)^p2*@p7) ) * fn2(cc3*p6) elseif @selmode == 1 z1=( (cc1^p1) + (fn1(a1)^p2*@p7) ) * fn2(cc1*p6) z2=( (cc2^p1) + (fn1(a2)^p2*@p7) ) * fn2(cc2*p6) z3=( (cc3^p1) + (fn1(a3)^p2*@p7) ) * fn2(cc3*p6) elseif @selmode == 2 z1=( (cc1^p1) * (fn1(a1)^p2*@p7) ) * fn2(cc1*p6) z2=( (cc2^p1) * (fn1(a2)^p2*@p7) ) * fn2(cc2*p6) z3=( (cc3^p1) * (fn1(a3)^p2*@p7) ) * fn2(cc3*p6) endif elseif @selmode1 == 1 if @selmode == 0 z1=( (cc1^p1) - (fn1(a1)^p2*@p7) ) * fn2(a1+cc1*p6) z2=( (cc2^p1) - (fn1(a2)^p2*@p7) ) * fn2(a2+cc2*p6) z3=( (cc3^p1) - (fn1(a3)^p2*@p7) ) * fn2(a3+cc3*p6) elseif @selmode == 1 z1=( (cc1^p1) + (fn1(a1)^p2*@p7) ) * fn2(a1+cc1*p6) z2=( (cc2^p1) + (fn1(a2)^p2*@p7) ) * fn2(a2+cc2*p6) z3=( (cc3^p1) + (fn1(a3)^p2*@p7) ) * fn2(a3+cc3*p6) elseif @selmode == 2 z1=( (cc1^p1) * (fn1(a1)^p2*@p7) ) * fn2(a1+cc1*p6) z2=( (cc2^p1) * (fn1(a2)^p2*@p7) ) * fn2(a2+cc2*p6) z3=( (cc3^p1) * (fn1(a3)^p2*@p7) ) * fn2(a3+cc3*p6) endif elseif @selmode1 == 2 if @selmode == 0 z1=( (cc1^p1) - (fn1(a1)^p2*@p7) ) * fn2(a1-cc1*p6) z2=( (cc2^p1) - (fn1(a2)^p2*@p7) ) * fn2(a2-cc2*p6) z3=( (cc3^p1) - (fn1(a3)^p2*@p7) ) * fn2(a3-cc3*p6) elseif @selmode == 1 z1=( (cc1^p1) + (fn1(a1)^p2*@p7) ) * fn2(a1-cc1*p6) z2=( (cc2^p1) + (fn1(a2)^p2*@p7) ) * fn2(a2-cc2*p6) z3=( (cc3^p1) + (fn1(a3)^p2*@p7) ) * fn2(a3-cc3*p6) elseif @selmode == 2 z1=( (cc1^p1) * (fn1(a1)^p2*@p7) ) * fn2(a1-cc1*p6) z2=( (cc2^p1) * (fn1(a2)^p2*@p7) ) * fn2(a2-cc2*p6) z3=( (cc3^p1) * (fn1(a3)^p2*@p7) ) * fn2(a3-cc3*p6) endif elseif @selmode1 == 3 if @selmode == 0 z1=( (cc1^p1) - (fn1(a1)^p2*@p7) ) * fn2(a1*cc1*p6) z2=( (cc2^p1) - (fn1(a2)^p2*@p7) ) * fn2(a2*cc2*p6) z3=( (cc3^p1) - (fn1(a3)^p2*@p7) ) * fn2(a3*cc3*p6) elseif @selmode == 1 z1=( (cc1^p1) + (fn1(a1)^p2*@p7) ) * fn2(a1*cc1*p6) z2=( (cc2^p1) + (fn1(a2)^p2*@p7) ) * fn2(a2*cc2*p6) z3=( (cc3^p1) + (fn1(a3)^p2*@p7) ) * fn2(a3*cc3*p6) elseif @selmode == 2 z1=( (cc1^p1) * (fn1(a1)^p2*@p7) ) * fn2(a1*cc1*p6) z2=( (cc2^p1) * (fn1(a2)^p2*@p7) ) * fn2(a2*cc2*p6) z3=( (cc3^p1) * (fn1(a3)^p2*@p7) ) * fn2(a3*cc3*p6) endif endif a1 = fn3(z1)+cc1*p5 a2 = fn3(z2)+cc2*p5 a3 = fn3(z3)+cc3*p5 if (@slope == true) ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if ( @bailout < |z1| ||\ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif else z = z1 endif if ( @bailout < |z1| ) ; we're done done = 0 endif iter = iter + 1 Bailout: done > 0 Default: Title = "SlopeBrot" Method = multipass Periodicity = 0 Maxiter = 1000 param mode caption = "Current Mode" enum = "Mandelbrot""Julia" default = 0 visible = false endparam param switchmode caption = "Switch Mode" enum = "Julia""Mandelbrot" default = 0 visible = false endparam param bailout caption = "Bailout" default = 1000 endparam param startseed caption="StartSeed" default=(0.0,0.0) endparam Heading caption = "Mandelbrot Mode" visible = @mode == 0 Endheading Heading caption = "Julia Mode" visible = @mode == 1 Endheading Heading caption = "C Sequence" Endheading param seq caption = "Sequence" enum = "1""2" default = 0 endparam param p3 caption = "Factor 1" default = (0.0,0.0) endparam param p4 caption = "Factor 2" default = (0.0,0.0) endparam func fn1c caption = "Func. Factor 1" default = ident() endfunc func fn2c caption = "Func. Factor 2" default = ident() endfunc Heading caption = "Parameters" Endheading param selmode caption = "Select Mode" enum = "-|*""+|*""*|*" default = 1 endparam param selmode1 caption = "Add Z Loop" enum = "Normal""Z+""Z-""Z*" default = 0 endparam param p1 caption="Elevate C" default=(1.0,0.0) endparam param p6 caption="Multiply C" default=(1.0,0.0) endparam param p2 caption="Elevate Z" default=(2.0,0.0) endparam param p7 caption="Multiply Z" default=(1.0,0.0) endparam param p5 caption="Loop Multiply" default=(1.0,0.0) endparam Heading caption = "Functions" Endheading func fn1 caption = "Function 1|Z" default = ident() endfunc func fn3 caption = "Function 2|Z" default = ident() endfunc func fn2 caption = "Function C" default = ident() endfunc Heading caption="Slope Parameters" visible=@slope==true Endheading bool param slope caption="Apply slope?" default=true endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6)&&(@slope==true) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84)&&(@slope==true) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82)&&(@slope==true) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81)&&(@slope==true) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84)&&(@slope==true) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58)&&(@slope==true) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75)&&(@slope==true) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.01 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Param version caption = "Version" default= 1.0 visible = false Endparam Switch: type = "SlopeBrot" bailout = bailout startseed = pixel p1 = p1 p2 = p2 p3 = p3 p4 = p4 p5 = p5 p6 = p6 p7 = p7 fn1 = fn1 fn2 = fn2 fn3 = fn3 fn1c = fn1c fn2c = fn2c selmode = selmode selmode1 = selmode1 seq = seq mode = switchmode switchmode = mode version = version slope = slope offset = offset zmode = zmode xfer = xfer zscale = zscale zscale2 = zscale2 everyiter = everyiter a = a b = b apwr = apwr pn = pn afn1 = afn1 afn2 = afn2 fnsl = fnsl sa1 = sa1 sa2 = sa2 sa3 = sa3 sa4 = sa4 sa5 = sa5 sa6 = sa6 sa7 = sa7 safn = safn negroot = negroot cp = cp } Gymako { ;Andrea Spinozzi(October2011) ; Slope Variation of Gymako.ufm, slope version will works with everyiter "ON" ; No slope colors will work with Slope "OFF" or everyiter "OFF" ; Thanks to Ronald Barnett Init: z1=pixel z2=z1 z3=z1 c1=pixel c2=c1+@offset c3=c1+flip(@offset) if @mode=="Julia" ; Julia mode z1=pixel z2=z1+@offset z3=z1+flip(@offset) c1=@seed c2=c1 c3=c1 endif z1=fn1(z1) z2=fn1(z2) z3=fn1(z3) z1=fn2(z1) z2=fn2(z2) z3=fn2(z3) cc1=0.0 cc2=0.0 cc3=0.0 float k=1 zold1=z1 zold2=z2 zold3=z3 int modby = @seq+2 int iter = 0 ;modz1 = 0.0 ;modz2 = 0.0 ;modz3 = 0.0 ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 Loop: int method = iter%modby zold1=z1 zold2=z2 zold3=z3 if method==0 cc1 = @fnc1(c1)+@pc1 cc2 = @fnc1(c2)+@pc1 cc3 = @fnc1(c3)+@pc1 elseif method==1 cc1 = @fnc2(c1)*@pc2 cc2 = @fnc2(c2)*@pc2 cc3 = @fnc2(c3)*@pc2 endif if @op=="1" if @opz=="+" if @opp1=="*" z1=((z1-1)^2)/((z1+1)+(z1/cc1*p1)/p2+z1)^2 z2=((z2-1)^2)/((z2+1)+(z2/cc2*p1)/p2+z2)^2 z3=((z3-1)^2)/((z3+1)+(z3/cc3*p1)/p2+z3)^2 elseif @opp1=="/" z1=((z1-1)^2)/((z1+1)+(z1/cc1/p1)/p2+z1)^2 z2=((z2-1)^2)/((z2+1)+(z2/cc2/p1)/p2+z2)^2 z3=((z3-1)^2)/((z3+1)+(z3/cc3/p1)/p2+z3)^2 elseif @opp1=="^" z1=((z1-1)^2)/((z1+1)+(z1/cc1^p1)/p2+z1)^2 z2=((z2-1)^2)/((z2+1)+(z2/cc2^p1)/p2+z2)^2 z3=((z3-1)^2)/((z3+1)+(z3/cc3^p1)/p2+z3)^2 endif elseif @opz=="-" if @opp1=="*" z1=((z1-1)^2)/((z1+1)+(z1/cc1*p1)/p2-z1)^2 z2=((z2-1)^2)/((z2+1)+(z2/cc2*p1)/p2-z2)^2 z3=((z3-1)^2)/((z3+1)+(z3/cc3*p1)/p2-z3)^2 elseif @opp1=="/" z1=((z1-1)^2)/((z1+1)+(z1/cc1/p1)/p2-z1)^2 z2=((z2-1)^2)/((z2+1)+(z2/cc2/p1)/p2-z2)^2 z3=((z3-1)^2)/((z3+1)+(z3/cc3/p1)/p2-z3)^2 elseif @opp1=="^" z1=((z1-1)^2)/((z1+1)+(z1/cc1^p1)/p2-z1)^2 z2=((z2-1)^2)/((z2+1)+(z2/cc2^p1)/p2-z2)^2 z3=((z3-1)^2)/((z3+1)+(z3/cc3^p1)/p2-z3)^2 endif elseif @opz=="^" if @opp1=="*" z1=((z1-1)^2)/((z1+1)+(z1/cc1*p1)/p2^z1)^2 z2=((z2-1)^2)/((z2+1)+(z2/cc2*p1)/p2^z2)^2 z3=((z3-1)^2)/((z3+1)+(z3/cc3*p1)/p2^z3)^2 elseif @opp1=="/" z1=((z1-1)^2)/((z1+1)+(z1/cc1/p1)/p2^z1)^2 z2=((z2-1)^2)/((z2+1)+(z2/cc2/p1)/p2^z2)^2 z3=((z3-1)^2)/((z3+1)+(z3/cc3/p1)/p2^z3)^2 elseif @opp1=="^" z1=((z1-1)^2)/((z1+1)+(z1/cc1^p1)/p2^z1)^2 z2=((z2-1)^2)/((z2+1)+(z2/cc2^p1)/p2^z2)^2 z3=((z3-1)^2)/((z3+1)+(z3/cc3^p1)/p2^z3)^2 endif elseif @opz=="*" if @opp1=="*" z1=((z1-1)^2)/((z1+1)+(z1/cc1*p1)/p2*z1)^2 z2=((z2-1)^2)/((z2+1)+(z2/cc2*p1)/p2*z2)^2 z3=((z3-1)^2)/((z3+1)+(z3/cc3*p1)/p2*z3)^2 elseif @opp1=="/" z1=((z1-1)^2)/((z1+1)+(z1/cc1/p1)/p2*z1)^2 z2=((z2-1)^2)/((z2+1)+(z2/cc2/p1)/p2*z2)^2 z3=((z3-1)^2)/((z3+1)+(z3/cc3/p1)/p2*z3)^2 elseif @opp1=="^" z1=((z1-1)^2)/((z1+1)+(z1/cc1^p1)/p2*z1)^2 z2=((z2-1)^2)/((z2+1)+(z2/cc2^p1)/p2*z2)^2 z3=((z3-1)^2)/((z3+1)+(z3/cc3^p1)/p2*z3)^2 endif endif elseif @op=="2" if @opp2=="+" if @opp3=="+" z1=((2+fn3(cc1)+p4)/(3-(fn4(cc1)*z1+p3))/z1*p5) z2=((2+fn3(cc2)+p4)/(3-(fn4(cc2)*z2+p3))/z2*p5) z3=((2+fn3(cc3)+p4)/(3-(fn4(cc3)*z3+p3))/z3*p5) elseif @opp3=="-" z1=((2-fn3(cc1)+p4)/(3-(fn4(cc1)*z1+p3))/z1*p5) z2=((2-fn3(cc2)+p4)/(3-(fn4(cc2)*z2+p3))/z2*p5) z3=((2-fn3(cc3)+p4)/(3-(fn4(cc3)*z3+p3))/z3*p5) elseif @opp3=="*" z1=((2*fn3(cc1)+p4)/(3-(fn4(cc1)*z1+p3))/z1*p5) z2=((2*fn3(cc2)+p4)/(3-(fn4(cc2)*z2+p3))/z2*p5) z3=((2*fn3(cc3)+p4)/(3-(fn4(cc3)*z3+p3))/z3*p5) elseif @opp3=="/" z1=((2/fn3(cc1)+p4)/(3-(fn4(cc1)*z1+p3))/z1*p5) z2=((2/fn3(cc2)+p4)/(3-(fn4(cc2)*z2+p3))/z2*p5) z3=((2/fn3(cc3)+p4)/(3-(fn4(cc3)*z3+p3))/z3*p5) elseif @opp3=="^" z1=((2^fn3(cc1)+p4)/(3-(fn4(cc1)*z1+p3))/z1*p5) z2=((2^fn3(cc2)+p4)/(3-(fn4(cc2)*z2+p3))/z2*p5) z3=((2^fn3(cc3)+p4)/(3-(fn4(cc3)*z3+p3))/z3*p5) endif elseif @opp2=="-" if @opp3=="+" z1=((2+fn3(cc1)+p4)/(3-(fn4(cc1)*z1-p3))/z1*p5) z2=((2+fn3(cc2)+p4)/(3-(fn4(cc2)*z2-p3))/z2*p5) z3=((2+fn3(cc3)+p4)/(3-(fn4(cc3)*z3-p3))/z3*p5) elseif @opp3=="-" z1=((2-fn3(cc1)+p4)/(3-(fn4(cc1)*z1-p3))/z1*p5) z2=((2-fn3(cc2)+p4)/(3-(fn4(cc2)*z2-p3))/z2*p5) z3=((2-fn3(cc3)+p4)/(3-(fn4(cc3)*z3-p3))/z3*p5) elseif @opp3=="*" z1=((2*fn3(cc1)+p4)/(3-(fn4(cc1)*z1-p3))/z1*p5) z2=((2*fn3(cc2)+p4)/(3-(fn4(cc2)*z2-p3))/z2*p5) z3=((2*fn3(cc3)+p4)/(3-(fn4(cc3)*z3-p3))/z3*p5) elseif @opp3=="/" z1=((2/fn3(cc1)+p4)/(3-(fn4(cc1)*z1-p3))/z1*p5) z2=((2/fn3(cc2)+p4)/(3-(fn4(cc2)*z2-p3))/z2*p5) z3=((2/fn3(cc3)+p4)/(3-(fn4(cc3)*z3-p3))/z3*p5) elseif @opp3=="^" z1=((2^fn3(cc1)+p4)/(3-(fn4(cc1)*z1-p3))/z1*p5) z2=((2^fn3(cc2)+p4)/(3-(fn4(cc2)*z2-p3))/z2*p5) z3=((2^fn3(cc3)+p4)/(3-(fn4(cc3)*z3-p3))/z3*p5) endif elseif @opp2=="*" if @opp3=="+" z1=((2+fn3(cc1)+p4)/(3-(fn4(cc1)*z1*p3))/z1*p5) z2=((2+fn3(cc2)+p4)/(3-(fn4(cc2)*z2*p3))/z2*p5) z3=((2+fn3(cc3)+p4)/(3-(fn4(cc3)*z3*p3))/z3*p5) elseif @opp3=="-" z1=((2-fn3(cc1)+p4)/(3-(fn4(cc1)*z1*p3))/z1*p5) z2=((2-fn3(cc2)+p4)/(3-(fn4(cc2)*z2*p3))/z2*p5) z3=((2-fn3(cc3)+p4)/(3-(fn4(cc3)*z3*p3))/z3*p5) elseif @opp3=="*" z1=((2*fn3(cc1)+p4)/(3-(fn4(cc1)*z1*p3))/z1*p5) z2=((2*fn3(cc2)+p4)/(3-(fn4(cc2)*z2*p3))/z2*p5) z3=((2*fn3(cc3)+p4)/(3-(fn4(cc3)*z3*p3))/z3*p5) elseif @opp3=="/" z1=((2/fn3(cc1)+p4)/(3-(fn4(cc1)*z1*p3))/z1*p5) z2=((2/fn3(cc2)+p4)/(3-(fn4(cc2)*z2*p3))/z2*p5) z3=((2/fn3(cc3)+p4)/(3-(fn4(cc3)*z3*p3))/z3*p5) elseif @opp3=="^" z1=((2^fn3(cc1)+p4)/(3-(fn4(cc1)*z1*p3))/z1*p5) z2=((2^fn3(cc2)+p4)/(3-(fn4(cc2)*z2*p3))/z2*p5) z3=((2^fn3(cc3)+p4)/(3-(fn4(cc3)*z3*p3))/z3*p5) endif elseif @opp2=="/" if @opp3=="+" z1=((2+fn3(cc1)+p4)/(3-(fn4(cc1)*z1/p3))/z1*p5) z2=((2+fn3(cc2)+p4)/(3-(fn4(cc2)*z2/p3))/z2*p5) z3=((2+fn3(cc3)+p4)/(3-(fn4(cc3)*z3/p3))/z3*p5) elseif @opp3=="-" z1=((2-fn3(cc1)+p4)/(3-(fn4(cc1)*z1/p3))/z1*p5) z2=((2-fn3(cc2)+p4)/(3-(fn4(cc2)*z2/p3))/z2*p5) z3=((2-fn3(cc3)+p4)/(3-(fn4(cc3)*z3/p3))/z3*p5) elseif @opp3=="*" z1=((2*fn3(cc1)+p4)/(3-(fn4(cc1)*z1/p3))/z1*p5) z2=((2*fn3(cc2)+p4)/(3-(fn4(cc2)*z2/p3))/z2*p5) z3=((2*fn3(cc3)+p4)/(3-(fn4(cc3)*z3/p3))/z3*p5) elseif @opp3=="/" z1=((2/fn3(cc1)+p4)/(3-(fn4(cc1)*z1/p3))/z1*p5) z2=((2/fn3(cc2)+p4)/(3-(fn4(cc2)*z2/p3))/z2*p5) z3=((2/fn3(cc3)+p4)/(3-(fn4(cc3)*z3/p3))/z3*p5) elseif @opp3=="^" z1=((2^fn3(cc1)+p4)/(3-(fn4(cc1)*z1/p3))/z1*p5) z2=((2^fn3(cc2)+p4)/(3-(fn4(cc2)*z2/p3))/z2*p5) z3=((2^fn3(cc3)+p4)/(3-(fn4(cc3)*z3/p3))/z3*p5) endif elseif @opp2=="^" if @opp3=="+" z1=((2+fn3(cc1)+p4)/(3-(fn4(cc1)*z1^p3))/z1*p5) z2=((2+fn3(cc2)+p4)/(3-(fn4(cc2)*z2^p3))/z2*p5) z3=((2+fn3(cc3)+p4)/(3-(fn4(cc3)*z3^p3))/z3*p5) elseif @opp3=="-" z1=((2-fn3(cc1)+p4)/(3-(fn4(cc1)*z1^p3))/z1*p5) z2=((2-fn3(cc2)+p4)/(3-(fn4(cc2)*z2^p3))/z2*p5) z3=((2-fn3(cc3)+p4)/(3-(fn4(cc3)*z3^p3))/z3*p5) elseif @opp3=="*" z1=((2*fn3(cc1)+p4)/(3-(fn4(cc1)*z1^p3))/z1*p5) z2=((2*fn3(cc2)+p4)/(3-(fn4(cc2)*z2^p3))/z2*p5) z3=((2*fn3(cc3)+p4)/(3-(fn4(cc3)*z3^p3))/z3*p5) elseif @opp3=="/" z1=((2/fn3(cc1)+p4)/(3-(fn4(cc1)*z1^p3))/z1*p5) z2=((2/fn3(cc2)+p4)/(3-(fn4(cc2)*z2^p3))/z2*p5) z3=((2/fn3(cc3)+p4)/(3-(fn4(cc3)*z3^p3))/z3*p5) elseif @opp3=="^" z1=((2^fn3(cc1)+p4)/(3-(fn4(cc1)*z1^p3))/z1*p5) z2=((2^fn3(cc2)+p4)/(3-(fn4(cc2)*z2^p3))/z2*p5) z3=((2^fn3(cc3)+p4)/(3-(fn4(cc3)*z3^p3))/z3*p5) endif endif endif if |z1-zold1| >= @bailout k=1 else k=0 endif if (@slope == true) ;;;; process slope if (@zmode == 5) iterexp1 = iterexp1 + exp(-cabs(z1-zold1)) iterexp2 = iterexp2 + exp(-cabs(z2-zold2)) iterexp3 = iterexp3 + exp(-cabs(z3-zold3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if ( @bailout >= |z1-zold1| && k==1 || @everyiter || \ done == #maxiter + 2 ); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 4) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 5) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1 ; use primary iteration value to keep periodicity working endif else z = z1-zold1 endif if ( @bailout > |z1| ) ; we're done done = 0 endif iter=iter+1 Bailout: done > 0 && k==1 Default: title="Gymako" center=(0.0,0.0) magn=0.6 angle=90 maxiter=1000 method=multipass periodicity=0 Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="current Mode" default=0 enum="Mandelbrot""Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot""Julia" visible=false endparam param @seed caption="Seed Value" default=(0.0,0.0) visible=(@mode==1) endparam Heading caption="Slope Parameters" visible=@slope==true Endheading bool param slope caption="Apply slope?" default=true endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=5 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.01 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=true hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Heading caption="Bailout" Endheading param bailout caption="Bailout Value" default=1.0E-4 min=0.0 endparam Heading caption="Operators and Parameters" Endheading param op caption="Select Mode" enum="1""2" default=1 endparam param opz caption="Z Operator" enum="+""-""^""*" default=0 visible=(@op==0) endparam param opp1 caption="1st. Operator" enum="*""/""^" default=0 visible=(@op==0) endparam param opp2 caption="1st. Operator" enum="+""-""*""/""^" default=0 visible=(@op==1) endparam param opp3 caption="2nd. Operator" enum="+""-""*""/""^" default=3 visible=(@op==1) endparam param p1 caption="Param. 1" default=(1.0,0.0) visible=(@op==0) endparam param p2 caption="Param. 2" default=(1.0,0.0) visible=(@op==0) endparam param p3 caption="Param. 1" default=(0.5,0.0) visible=(@op==1) endparam param p4 caption="Param. 2" default=(0.0,0.0) visible=(@op==1) endparam param p5 caption="Param. 3" default=(1.0,0.0) visible=(@op==1) endparam Heading caption="C Factor" Endheading param seq caption="Sequence" enum="0""1" default=0 endparam param pc1 caption="Factor 1" default=(0.0,0.0) endparam param pc2 caption="Factor 2" default=(1.0,0.0) endparam func fnc1 caption="Func. Factor 1" default=ident() endfunc func fnc2 caption="Func. Factor 1" default=ident() endfunc Heading caption="Functions" Endheading func fn1 caption="1 Init Z" default=ident() endfunc func fn2 caption="2 Init Z" default=ident() endfunc func fn3 caption="1 Loop C" default=ident() endfunc func fn4 caption="2 Loop C" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="Gymako" @seed=pixel bailout=@bailout bailout1=@bailout1 seq=@seq op=@op opz=@opz opp1=@opp1 opp2=@opp2 opp3=@opp3 zol=@zol zol1=@zol1 zol2=@zol2 p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 pc1=@pc1 pc2=@pc2 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fnc1=@fnc1 fnc2=@fnc2 version=@version mode=@switchmode switchmode=@mode slope=@slope offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter } SlopeJulibrotPlanes { ;Modification of differents ManMinus of Jim Muth ;Andrea Spinozzi(2013) Global: complex rota[2] complex rota[0]=(0,1)^(@rota0/90) complex rota[1]=(0,1)^(@rota1/90) Init: z1=(0.0,0.0) z2=(0.0,0.0) z3=(0.0,0.0) c1=(0.0,0.0) c2=(0.0,0.0) c3=(0.0,0.0) p1r=(0.0,0.0) p1i=(0.0,0.0) if @zselect==0 z1=real(pixel) z2=real(pixel+@offset) z3=real(pixel+flip(@offset)) c1=imag(pixel) c2=imag(pixel+@offset) c3=imag(pixel+flip(@offset)) p1r=flip(real(p1)) p1i=flip(imag(p1)) elseif @zselect==1 z1=real(pixel) z2=real(pixel+@offset) z3=real(pixel+flip(@offset)) c1=flip(imag(pixel)) c2=flip(imag(pixel+@offset)) c3=flip(imag(pixel+flip(@offset))) p1r=flip(real(p1)) p1i=imag(p1) elseif @zselect==2 z1=imag(pixel) z2=imag(pixel+@offset) z3=imag(pixel+flip(@offset)) c1=real(pixel) c2=real(pixel+@offset) c3=real(pixel+flip(@offset)) p1r=flip(imag(p1)) p1i=flip(real(p1)) elseif @zselect==3 z1=imag(pixel) z2=imag(pixel+@offset) z3=imag(pixel+flip(@offset)) c1=flip(real(pixel)) c2=flip(real(pixel+@offset)) c3=flip(real(pixel+flip(@offset))) p1r=flip(imag(p1)) p1i=real(p1) elseif @zselect==4 z1=flip(real(pixel)) z2=flip(real(pixel+@offset)) z3=flip(real(pixel+flip(@offset))) c1=imag(pixel) c2=imag(pixel+@offset) c3=imag(pixel+flip(@offset)) p1r=real(p1) p1i=flip(imag(p1)) elseif @zselect==5 z1=flip(real(pixel)) z2=flip(real(pixel+@offset)) z3=flip(real(pixel+flip(@offset))) c1=flip(imag(pixel)) c2=flip(imag(pixel+@offset)) c3=flip(imag(pixel+flip(@offset))) p1r=real(p1) p1i=imag(p1) elseif @zselect==6 z1=flip(imag(pixel)) z2=flip(imag(pixel+@offset)) z3=flip(imag(pixel+flip(@offset))) c1=real(pixel) c2=real(pixel+@offset) c3=real(pixel+flip(@offset)) p1r=imag(p1) p1i=flip(real(p1)) elseif @zselect==7 z1=flip(imag(pixel)) z2=flip(imag(pixel+@offset)) z3=flip(imag(pixel+flip(@offset))) c1=flip(real(pixel)) c2=flip(real(pixel+@offset)) c3=flip(real(pixel+flip(@offset))) p1r=imag(p1) p1i=real(p1) endif if @mode=="Julia" ;--------------Juia Mode---------------- if @zselect==0 z1=real(pixel) z2=real(pixel+@offset) z3=real(pixel+flip(@offset)) c1=imag(pixel) c2=imag(pixel+@offset) c3=imag(pixel+flip(@offset)) p1r=flip(real(p1)) p1i=flip(imag(p1)) elseif @zselect==1 z1=real(pixel) z2=real(pixel+@offset) z3=real(pixel+flip(@offset)) c1=flip(imag(pixel)) c2=flip(imag(pixel+@offset)) c3=flip(imag(pixel+flip(@offset))) p1r=flip(real(p1)) p1i=imag(p1) elseif @zselect==2 z1=imag(pixel) z2=imag(pixel+@offset) z3=imag(pixel+flip(@offset)) c1=real(pixel) c2=real(pixel+@offset) c3=real(pixel+flip(@offset)) p1r=flip(imag(p1)) p1i=flip(real(p1)) elseif @zselect==3 z1=imag(pixel) z2=imag(pixel+@offset) z3=imag(pixel+flip(@offset)) c1=flip(real(pixel)) c2=flip(real(pixel+@offset)) c3=flip(real(pixel+flip(@offset))) p1r=flip(imag(p1)) p1i=real(p1) elseif @zselect==4 z1=flip(real(pixel)) z2=flip(real(pixel+@offset)) z3=flip(real(pixel+flip(@offset))) c1=imag(pixel) c2=imag(pixel+@offset) c3=imag(pixel+flip(@offset)) p1r=real(p1) p1i=flip(imag(p1)) elseif @zselect==5 z1=flip(real(pixel)) z2=flip(real(pixel+@offset)) z3=flip(real(pixel+flip(@offset))) c1=flip(imag(pixel)) c2=flip(imag(pixel+@offset)) c3=flip(imag(pixel+flip(@offset))) p1r=real(p1) p1i=imag(p1) elseif @zselect==6 z1=flip(imag(pixel)) z2=flip(imag(pixel+@offset)) z3=flip(imag(pixel+flip(@offset))) c1=real(pixel) c2=real(pixel+@offset) c3=real(pixel+flip(@offset)) p1r=imag(p1) p1i=flip(real(p1)) elseif @zselect==7 z1=flip(imag(pixel)) z2=flip(imag(pixel+@offset)) z3=flip(imag(pixel+flip(@offset))) c1=flip(real(pixel)) c2=flip(real(pixel+@offset)) c3=flip(real(pixel+flip(@offset))) p1r=imag(p1) p1i=real(p1) endif endif ;------------------------------------------------------- z1=(z1*rota[0])+(p1r*rota[0]) z2=(z2*rota[0])+(p1r*rota[0]) z3=(z3*rota[0])+(p1r*rota[0]) c1=(c1*rota[1])+(p1i*rota[1]) c2=(c2*rota[1])+(p1i*rota[1]) c3=(c3*rota[1])+(p1i*rota[1]) z1=@p16+@fn1z(z1*@p17) z2=@p16+@fn1z(z2*@p17) z3=@p16+@fn1z(z3*@p17) c1=@p18+@fn1c(c1*@p19) c2=@p18+@fn1c(c2*@p19) c3=@p18+@fn1c(c3*@p19) if @mix==0 z1=z1 z2=z2 z3=z3 elseif @mix==1 z1=z1+c1 z2=z2+c2 z3=z3+c3 elseif @mix==2 z1=z1*c1 z2=z2*c2 z3=z3*c3 elseif @mix==3 z1=z1/c1 z2=z2/c2 z3=z3/c3 elseif @mix==4 z1=c1/z1 z2=c2/z2 z3=c3/z3 endif ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 int modby=@seq+2 int iter=0 cc1=(0.0,0.0) cc2=(0.0,0.0) cc3=(0.0,0.0) Loop: int method = iter%modby if method==0 cc1=@fnc1(c1*@p6)+@p4 cc2=@fnc1(c2*@p6)+@p4 cc3=@fnc1(c3*@p6)+@p4 else cc1=@fnc2(c1*@p7)+@p5 cc2=@fnc2(c2*@p7)+@p5 cc3=@fnc2(c3*@p7)+@p5 endif cc1=(@p20+flip(cos(asin(@p20))))*cc1 cc2=(@p20+flip(cos(asin(@p20))))*cc2 cc3=(@p20+flip(cos(asin(@p20))))*cc3 z1=(fn4(z1)^p2)*@p8 z2=(fn4(z2)^p2)*@p8 z3=(fn4(z3)^p2)*@p8 if @selz==0 z1=fn1(@p9+z1^@p10*@p11)+fn2(@p12+z1^@p13*@p14)+(p3*fn3(cc1+@p15)) z2=fn1(@p9+z2^@p10*@p11)+fn2(@p12+z2^@p13*@p14)+(p3*fn3(cc2+@p15)) z3=fn1(@p9+z3^@p10*@p11)+fn2(@p12+z3^@p13*@p14)+(p3*fn3(cc3+@p15)) elseif @selz==1 z1=fn1(@p9+z1^@p10*@p11)*fn2(@p12+z1^@p13*@p14)+(p3*fn3(cc1+@p15)) z2=fn1(@p9+z2^@p10*@p11)*fn2(@p12+z2^@p13*@p14)+(p3*fn3(cc2+@p15)) z3=fn1(@p9+z3^@p10*@p11)*fn2(@p12+z3^@p13*@p14)+(p3*fn3(cc3+@p15)) endif if (@slope == true) ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if ( @bailout < |z1| ||\ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif else z = z1 endif if ( @bailout < |z1| ) ; we're done done = 0 endif iter=iter+1 Bailout: done > 0 Default: title="SlopeJulibrotPlanes" center=(0.0,0.0) method=multipass periodicity=0 maxiter=500 Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="current Mode" default=0 enum="Mandelbrot""Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot""Julia" visible=false endparam Heading caption="Bailout" Endheading param bailout caption="Bailout" default=64.0 min=0.0 endparam Heading caption="Slope Parameters" visible=@slope==true Endheading bool param slope caption="Apply slope?" default=true endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6)&&(@slope==true) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84)&&(@slope==true) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82)&&(@slope==true) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81)&&(@slope==true) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84)&&(@slope==true) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58)&&(@slope==true) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75)&&(@slope==true) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Heading caption="Rotations" Endheading param rota0 caption="Rotation 1" default=0.0 endparam param rota1 caption="Rotation 2" default=0.0 endparam Heading caption="Parameters and Functions Init Section" Endheading param zselect caption="Planes" enum="-xz-""-xw-""-zx-""-wx-""-yz-""-yw-""-zy-""-wy-" default=1 endparam param mix caption="Mix C|Z" enum="z""z+c""z*c""z/c""c/z" default=0 endparam param p16 caption="Add Z" default=(0.0,0.0) endparam param p17 caption="Mult. Z" default=(1.0,0.0) endparam param p18 caption="Add C" default=(0.0,0.0) endparam param p19 caption="Mult. C" default=(1.0,0.0) endparam func fn1z caption="Func. Z" default=ident() endfunc func fn1c caption="Func. C" default=ident() endfunc Heading caption = "C Sequence" Endheading param seq caption = "Sequence" enum = "1""2""3" default = 0 endparam param p4 caption="Add Factor 1" default=(0.0,0.0) endparam param p5 caption="Add Factor 2" default=(0.0,0.0) endparam param p6 caption="Mult. Factor 1" default=(1.0,0.0) endparam param p7 caption="Mult. Factor 2" default=(1.0,0.0) endparam func fnc1 caption="Func. 1" default=ident() endfunc func fnc2 caption="Func. 2" default=ident() endfunc Heading caption="Parameters Loop Section" Endheading param selz caption="Operator Z" enum="z+z""z*z" default=1 endparam param p1 caption="Plane Param.1" default=(0.0,0.0) endparam param p20 caption="Plane Param.2" default=(1.0,0.0) endparam param p2 caption="Elevate Z" default=(1.0,0.0) endparam param p8 caption="Mult. Z" default=(1.0,0.0) endparam param p10 caption="Elevate 2Z" default=(1.0,0.0) endparam param p13 caption="Elevate 3Z" default=(1.0,0.0) endparam param p15 caption="Add. C" default=(0.0,0.0) endparam param p3 caption="Mult. C" default=(1.0,0.0) endparam param p9 caption="Add. 1Z" default=(0.0,0.0) endparam param p12 caption="Add. 2Z" default=(0.0,0.0) endparam param p11 caption="Mult. 1Z" default=(1.0,0.0) endparam param p14 caption="Mult. 2Z" default=(1.0,0.0) endparam Heading caption="Functions Loop Section" Endheading func fn4 caption="1st Func. Z" default=ident() endfunc func fn1 caption="Func. 1Z" default=ident() endfunc func fn2 caption="Func. 2Z" default=ident() endfunc func fn3 caption="Func. C" default=ident() endfunc param version caption="Version formula" default=1.0 visible=false endparam Switch: type="SlopeJulibrotPlanes" bailout=@bailout zselect=@zselect selz=@selz mix=@mix rota0=@rota0 rota1=@rota1 p1=pixel p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 p8=@p8 p9=@p9 p10=@p10 p11=@p11 p12=@p12 p13=@p13 p14=@p14 p15=@p15 p16=@p16 p17=@p17 p18=@p18 p19=@p19 p20=@p20 fnc1=@fnc1 fnc2=@fnc2 fn1z=@fn1z fn1c=@fn1c fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 mode=@switchmode switchmode=@mode version=@version slope=@slope offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp } SlopeHyperMandelbrotFunc { ;HyperComplex Mandelbrot initialized with functions method. ;The formula present 3 differents initialazed sets, Mandelbrot, F(gz)) and ;Cplx Spirals, besides it's compound with the MandelbrotMix3a formula of Mr. Jim Muth ;related parameters of Mix3a are : LoopParam1, LoopParam2, LoopParam3, LoopParam4. ;Phoenix distortion added to all sets and compund with the Slope Formulae method ;of Mr. Ronald Barnett. ;Suggests: Explore parameters with the "Explore function" parameters. ;For Original Phoenix set, use LoopParam1=(1.0,1.0) others LoopParams=(0.0,0.0), ;Exponent1=(2.0,0.0) and Phoenix Distortion1= (0.5,0.0) ;AndreaSpinozzi(2014) Init: ;--------------Hyper Complex Parameters and Julia Dimension------------------------ p1r=real(p1) p1i=imag(p1) p2r=real(p2) p2i=imag(p2) ;----------------Initialize some loop variables------------------------------------ x1=x2=x3=0.0 y1=y2=y3=0.0 xdist1=xdist2=xdist3=0.0 ydist1=ydist2=ydist3=0.0 ;-------------------C=pixel and Julia mode---------------------------------------- c1=real(#pixel)+flip(imag(#pixel)) c2=real(#pixel+@offset)+flip(imag(#pixel+@offset)) c3=real(#pixel+flip(@offset))+flip(imag(#pixel+flip(@offset))) if (@mode=="Julia") c1=real(@seed)+flip(imag(@seed)) c2=real(@seed)+flip(imag(@seed)) c3=real(@seed)+flip(imag(@seed)) endif complex func HyperMandZ1(const complex a1, const complex b1) ;-----Func. for Z1------ complex q=(0.0,0.0) if (@selset==0) q= (@fnman(a1+b1)/2)^@expm elseif (@selset==1) q= (@fgz*@fgz1*((@fngz1(a1+b1)/2)^@expfg)*((@fngz1(a1+b1)/2)^@expfg))/(((@fngz1(a1+b1)/2)^@expfg)+@fgz*@fgz1) elseif (@selset==2) q=((((a1+b1)/2)*((a1+b1)/2)+@mag1)/(((a1+b1)/2)-@mag2))^@mag3-@mag4 endif return q endfunc ;------------------------------------------------------------------------- complex func HyperMandZ2(const complex a2, const complex b2) ;-----Func. for Z2------ complex q=(0.0,0.0) if (@selset==0) q=(@fnman(a2+b2)/2)^@expm elseif (@selset==1) q=(@fgz*@fgz1*((@fngz1(a2+b2)/2)^@expfg)*((@fngz1(a2+b2)/2)^@expfg))/(((@fngz1(a2+b2)/2)^@expfg)+@fgz*@fgz1) elseif (@selset==2) q=((((a2+b2)/2)*((a2+b2)/2)+@mag1)/(((a2+b2)/2)-@mag2))^@mag3-@mag4 endif return q endfunc ;------------------------------------------------------------------------- complex func HyperMandZ3(const complex a3, const complex b3) ;;-----Func. for Z3------ complex q=(0.0,0.0) if (@selset==0) q=(@fnman(a3+b3)/2)^@expm elseif (@selset==1) q=(@fgz*@fgz1*((@fngz1(a3+b3)/2)^@expfg)*((@fngz1(a3+b3)/2)^@expfg))/(((@fngz1(a3+b3)/2)^@expfg)+@fgz*@fgz1) elseif (@selset==2) q=((((a3+b3)/2)*((a3+b3)/2)+@mag1)/(((a3+b3)/2)-@mag2))^@mag3-@mag4 endif return q endfunc ;------------------------------------------------------------------------- if (@mode=="Julia") ;--------------------Julia Mode------------------------------- cra1=real(#pixel) cra2=real(#pixel+@offset) cra3=real(#pixel+flip(@offset)) cia1=imag(#pixel) cia2=imag(#pixel+@offset) cia3=imag(#pixel+flip(@offset)) crb1=real(#pixel) crb2=real(#pixel+@offset) crb3=real(#pixel+flip(@offset)) cib1=imag(#pixel) cib2=imag(#pixel+@offset) cib3=imag(#pixel+flip(@offset)) a1=( cra1-p2i ) + flip( cia1+p2r ) a2=( cra2-p2i ) + flip( cia2+p2r ) a3=( cra3-p2i ) + flip( cia3+p2r ) b1=( crb1+p2i ) + flip( cib1-p2r ) b2=( crb2+p2i ) + flip( cib2-p2r ) b3=( crb3+p2i ) + flip( cib3-p2r ) else ;--------------------Mandelbrot Mode---------------------------------------- a1=0.0 a2=0.0 a3=0.0 b1=0.0 b2=0.0 b3=0.0 endif ;-------------------------------------------------------------------------- ;-----------------------------Slope Stuff----------------------------------------- int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 int modby=@seq+2 int iter = 0 Loop: int method=iter%modby ;---------Sequence Method and Mix3a params---------------- a1=real(@parm)*(a1^imag(@parm))+real(@parm1)*(a1^imag(@parm1))+real(@parm2)*(a1^imag(@parm2))+real(@parm3)*(a1^imag(@parm3)) a2=real(@parm)*(a2^imag(@parm))+real(@parm1)*(a2^imag(@parm1))+real(@parm2)*(a2^imag(@parm2))+real(@parm3)*(a2^imag(@parm3)) a3=real(@parm)*(a3^imag(@parm))+real(@parm1)*(a3^imag(@parm1))+real(@parm2)*(a3^imag(@parm2))+real(@parm3)*(a3^imag(@parm3)) b1=real(@parm)*(b1^imag(@parm))+real(@parm1)*(b1^imag(@parm1))+real(@parm2)*(b1^imag(@parm2))+real(@parm3)*(b1^imag(@parm3)) b2=real(@parm)*(b2^imag(@parm))+real(@parm1)*(b2^imag(@parm1))+real(@parm2)*(b2^imag(@parm2))+real(@parm3)*(b2^imag(@parm3)) b3=real(@parm)*(b3^imag(@parm))+real(@parm1)*(b3^imag(@parm1))+real(@parm2)*(b3^imag(@parm2))+real(@parm3)*(b3^imag(@parm3)) c1=@fnc1(c1) c2=@fnc1(c2) c3=@fnc1(c3) if (method==0) appc1=(@fnfactc1(c1)+@factc1)*@factc3 appc2=(@fnfactc1(c2)+@factc1)*@factc3 appc3=(@fnfactc1(c3)+@factc1)*@factc3 else appc1=(@fnfactc2(c1)-@factc2)*@factc4 appc2=(@fnfactc2(c2)-@factc2)*@factc4 appc3=(@fnfactc2(c3)-@factc2)*@factc4 endif if (@selmode==0) ;--------------------Functions Method---------------------------- x1=@fnz(HyperMandZ1(a1,a1))+@fnc2(appc1) x2=@fnz(HyperMandZ2(a2,a2))+@fnc2(appc2) x3=@fnz(HyperMandZ3(a3,a3))+@fnc2(appc3) y1=@fnz(HyperMandZ1(b1,b1))+@fnc2(appc1) y2=@fnz(HyperMandZ2(b2,b2))+@fnc2(appc2) y3=@fnz(HyperMandZ3(b3,b3))+@fnc2(appc3) elseif (@selmode==1) x1=@fnz(HyperMandZ1(b1,b1))+@fnc2(appc1) x2=@fnz(HyperMandZ2(b2,b2))+@fnc2(appc2) x3=@fnz(HyperMandZ3(b3,b3))+@fnc2(appc3) y1=@fnz(HyperMandZ1(a1,a1))+@fnc2(appc1) y2=@fnz(HyperMandZ2(a2,a2))+@fnc2(appc2) y3=@fnz(HyperMandZ3(a3,a3))+@fnc2(appc3) endif ;--------------------------------------------------------------------------- ;----------------------Define Hyper Complex params-------------------------------- x1 = real(x1) - p1i + flip( imag(x1) + p1r ) x2 = real(x2) - p1i + flip( imag(x2) + p1r ) x3 = real(x3) - p1i + flip( imag(x3) + p1r ) y1 = real(y1) + p1i + flip( imag(y1) - p1r ) y2 = real(y2) + p1i + flip( imag(y2) - p1r ) y3 = real(y3) + p1i + flip( imag(y3) - p1r ) xx1 = real(x1) - imag(p4) + flip( imag(x1) + real(p4) ) xx2 = real(x2) - imag(p4) + flip( imag(x2) + real(p4) ) xx3 = real(x3) - imag(p4) + flip( imag(x3) + real(p4) ) yy1 = real(y1) + imag(p4) + flip( imag(y1) - real(p4) ) yy2 = real(y2) + imag(p4) + flip( imag(y2) - real(p4) ) yy3 = real(y3) + imag(p4) + flip( imag(y3) - real(p4) ) ;-----------------------Define Phoenix distortion--------------------------------- newa1=(xx1^@p5+@fndist1(xdist1)*@dist1)+imag(p6) newa2=(xx2^@p5+@fndist1(xdist2)*@dist1)+imag(p6) newa3=(xx3^@p5+@fndist1(xdist3)*@dist1)+imag(p6) newb1=(yy1^@p5+@fndist1(ydist1)*@dist1)+flip(real(p6)) newb2=(yy2^@p5+@fndist1(ydist2)*@dist1)+flip(real(p6)) newb3=(yy3^@p5+@fndist1(ydist3)*@dist1)+flip(real(p6)) xdist1=(@fndist2(a1)^@dist4+@dist2)*@dist3 xdist2=(@fndist2(a2)^@dist4+@dist2)*@dist3 xdist3=(@fndist2(a3)^@dist4+@dist2)*@dist3 ydist1=(@fndist3(b1)^@dist4+@dist2)*@dist3 ydist2=(@fndist3(b2)^@dist4+@dist2)*@dist3 ydist3=(@fndist3(b3)^@dist4+@dist2)*@dist3 a1=newa1 a2=newa2 a3=newa3 b1=newb1 b2=newb2 b3=newb3 ;----------------------------------Z result and Flavor----------------------------- z1=(@fnfl1(a1+@fl1)+@fnfl2(b1+@fl2))/2 z2=(@fnfl1(a2+@fl1)+@fnfl2(b2+@fl2))/2 z3=(@fnfl1(a3+@fl1)+@fnfl2(b3+@fl2))/2 ;--------------------------------Proceding Slope------------------------------------ if (@slope == true) ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if ( @bailout < |a1|+|b1| ||\ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else; didn't compute z this time z = z1; use primary iteration value to keep periodicity working endif else z = z1 endif if ( @bailout < |a1|+|b1| ) ; we're done done = 0 endif iter = iter+1 Bailout: done > 0 Default: title="SlopeHyperMandelbrotFunc" maxiter=250 method=multipass periodicity=0 Heading caption="Mandelbrot Mode" visible=(@mode==0) Endheading Heading caption="Julia Mode" visible=(@mode==1) Endheading param mode caption="Current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param Bailout caption="Bailout Value" default=64.0 min=0.0 endparam param seed caption="Seed Value" default=(1.0,0.0) visible=(@mode=="Julia") endparam Heading caption="Flavor" visible=(@showFlavor==true) Endheading param showFlavor caption="Enable Flavor" default=false endparam param fl1 caption="param. Flavor 1" default=(0.0,0.0) visible=(@showFlavor==true) endparam param fl2 caption="param. Flavor 2" default=(0.0,0.0) visible=(@showFlavor==true) endparam func fnfl1 caption="Flavor 1" default=ident() visible=(@showFlavor==true) endfunc func fnfl2 caption="Flavor 2" default=ident() visible=(@showFlavor==true) endfunc Heading caption="Slope parameters" visible=@slope==true Endheading bool param slope caption="Apply slope?" default=true endparam float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." visible=@slope==true endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." visible=@slope==true endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6)&&(@slope==true) endfunc param a caption="Polar parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84)&&(@slope==true) endparam param b caption="Polar parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82)&&(@slope==true) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81)&&(@slope==true) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84)&&(@slope==true) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58)&&(@slope==true) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) && \ (@slope==true) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68)&&(@slope==true) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68)&&(@slope==true) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75)&&(@slope==true) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." visible=@slope==true endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." visible=@slope==true endparam param zscale2 caption="Height Post-Scale" default=0.01 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." visible=@slope==true endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." visible=@slope==true endparam Heading caption="Sequence" visible=(@showseq==true) Endheading param showseq caption="Enable Sequence" default=true endparam param seq caption="Sequence" enum="1""2""3" default=0 visible=(@showseq==true) endparam param factc1 caption="Factor 1" default=(0.0,0.0) visible=(@showseq==true) endparam param factc2 caption="Factor 2" default=(0.0,0.0) visible=(@showseq==true) endparam param factc3 caption="Factor 3" default=(1.0,0.0) visible=(@showseq==true) endparam param factc4 caption="Factor 4" default=(1.0,0.0) visible=(@showseq==true) endparam func fnfactc1 caption="Func. Factor 1" default=ident() visible=(@showseq==true) endfunc func fnfactc2 caption="Func. Factor 2" default=ident() visible=(@showseq==true) endfunc Heading caption="Set" Endheading param selset caption="Select Set" enum="Mandelbrot""New FGZ""Cplx Spirals" default=0 endparam param selmode caption="Method" enum="1""2" default=0 endparam param p2 caption="Julia Dimension" default=(0.0,0.0) visible=(@mode==1) endparam param p1 caption="Hyper 1" default=(0.0,0.0) endparam param p4 caption="Hyper 2" default=(0.0,0.0) endparam param p6 caption="Hyper 3" default=(0.0,0.0) endparam Heading caption="Mandelbrot Set" visible=(@selset==0) Endheading Heading caption="New FGZ" visible=(@selset==1) Endheading Heading caption="Cplx Spirals" visible=(@selset==2) Endheading param parm caption="Loop param.1" default=(-1.0,2.0) endparam param parm1 caption="Loop param.2" default=(-2.0,0.0) endparam param parm2 caption="Loop param.3" default=(2.0,2.0) endparam param parm3 caption="Loop param.4" default=(2.0,0.0) endparam param expm caption="Exponent 1" default=(1.0,0.0) visible=(@selset==0) endparam param fgz caption="Fgz 1" default=(3.0,0.0) visible=(@selset==1) endparam param fgz1 caption="Fgz 2" default=(1.0,0.0) visible=(@selset==1) endparam param expfg caption="Exponent 1" default=(1.0,0.0) visible=(@selset==1) endparam param mag1 caption="Cplx Spirals 1" default=(-1.0,0.0) visible=(@selset==2) endparam param mag2 caption="Cplx Spirals 2" default=(-1.5,0.0) visible=(@selset==2) endparam param mag4 caption="Cplx Spirals 3" default=(0.0,0.0) visible=(@selset==2) endparam param mag3 caption="Exp. Cplx Spirals" default=(2.0,0.0) visible=(@selset==2) endparam param p5 caption="Exponent 2" default=(1.0,0.0) endparam Heading caption="Distortion" Endheading param dist1 caption="Phoenix Distortion 1" default=(0.0,0.0) endparam param dist2 caption="Phoenix Distortion 2" default=(0.0,0.0) enabled=(@dist1!=0) endparam param dist3 caption="Phoenix Distortion 3" default=(1.0,0.0) enabled=(@dist1!=0) endparam param dist4 caption="Exponent Phoenix Dist." default=(1.0,0.0) enabled=(@dist1!=0) endparam func fndist1 caption="Func. Dist. 1" default=ident() enabled=(@dist1!=0) endfunc func fndist2 caption="Func. Dist. 2" default=ident() enabled=(@dist1!=0) endfunc func fndist3 caption="Func. Dist. 3" default=ident() enabled=(@dist1!=0) endfunc Heading caption="Functions" Endheading func fnman caption="Func. 1 Z" default=ident() visible=(@selset==0) endfunc func fngz1 caption="Func. 1 Z" default=ident() visible=(@selset==1) endfunc func fnz caption="Func. 2 Z" default=ident() endfunc func fnc1 caption="Func. 1 C" default=ident() endfunc func fnc2 caption="Func. 2 C" default=ident() endfunc param version caption="Version" default=1.0 visible=false endparam Switch: type="SlopeHyperMandelbrotFunc" bailout=@bailout seed=#pixel mode=@switchmode switchmode=@mode showFlavor=@showFlavor showseq=@showseq seq=@seq factc1=@factc1 factc2=@factc2 factc3=@factc3 factc4=@factc4 fnfactc1=@fnfactc1 fnfactc2=@fnfactc2 selmode=@selmode selset=@selset fgz=@fgz fgz1=@fgz1 mag1=@mag1 mag2=@mag2 mag3=@mag3 mag4=@mag4 p1=@p1 p2=@p2 parm=@parm parm1=@parm1 parm2=@parm2 parm3=@parm3 expm=@expm expfg=@expfg p4=@p4 p5=@p5 p6=@p6 dist1=@dist1 dist2=@dist2 dist3=@dist3 dist4=@dist4 fnman=@fnman fngz1=@fngz1 fnc1=@fnc1 fnc2=@fnc2 fnz=@fnz fndist1=@fndist1 fndist2=@fndist2 fndist3=@fndist3 fl1=@fl1 fl2=@fl2 fnfl1=@fnfl1 fnfl2=@fnfl2 version=@version slope=@slope offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp } SlopeBC3Sets { ;This formula is compound with the MandelbrotBC3 equation created for fractint by differents users ;and compound from the 3RDimension formulae of Mr. Ron Barnett and sequence of C of Mrs.Susan Chambless. ;It presents 3 of the most important sets, Mandelbrot, Barnsley and Ikenaga equations. ;The operators(Sel.Log.Op.) on differents sets are connected with the "Log" parameter in parameters section ;so changing the operators(Sel.Log.Op) is usefull change also the Log parameter to have some nice sets. ;Version 1.1=Fixed flavor ;Andrea Spinozzi(2013) Init: em1=p1 em2=em1 em3=em1 eb1=@p7 eb2=eb1 eb3=eb1 ek1=@p9 ek2=ek1 ek3=ek1 z1=z2=z3=0.0 l1=1.0e-64 pg1=p2+#pi pg2=p2+#pi pg3=p2+#pi qg1=2*#pi*fn1(pg1/(2*#pi)) qg2=2*#pi*fn1(pg2/(2*#pi)) qg3=2*#pi*fn1(pg3/(2*#pi)) rg1=pg1-qg1 rg2=pg2-qg2 rg3=pg3-qg3 mn10=log(@fn5(real(@p14))) mn20=log(@fn5(real(@p14))) mn30=log(@fn5(real(@p14))) mn11=log(@fn6(imag(@p14))) mn21=log(@fn6(imag(@p14))) mn31=log(@fn6(imag(@p14))) z11=@p15*real(#pixel)+flip(imag(#pixel)*@p16)+l1 ;-----------------Mandelbrot Mode------------------------- z21=@p15*real(#pixel+@offset)+flip(imag(#pixel+@offset)*@p16)+l1 z31=@p15*real(#pixel+flip(@offset))+flip(imag(#pixel+flip(@offset))*@p16)+l1 c11=@p17+@p16*real(#pixel)+flip(imag(#pixel)*@p15) + l1 c21=@p17+@p16*real(#pixel+@offset)+flip(imag(#pixel+@offset)*@p15)+l1 c31=@p17+@p16*real(#pixel+flip(@offset))+flip(imag(#pixel+flip(@offset))*@p15)+l1 if @mode=="Julia" ;-----------Julia Mode------------------------------------ z11=@p15*real(#pixel)+flip(imag(#pixel)*@p16)+l1 z21=@p15*real(#pixel+@offset)+flip(imag(#pixel+@offset)*@p16)+l1 z31=@p15*real(#pixel+flip(@offset))+flip(imag(#pixel+flip(@offset))*@p16)+l1 c11=@p17+@p16*real(@seed)+flip(imag(@seed)*@p15)+l1 c21=c11 c31=c11 endif ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 int modby = @seq+2 int iter = 0 int i=0 float n=0 cc1=(0.0,0.0) cc2=(0.0,0.0) cc3=(0.0,0.0) Loop: i=i+1 int method = iter%modby if method==0 ;--------------------------------Z1--------------------------- cc1=@fnc1(c11+p3)*p4 else cc1=@fnc2(c11-p5)*p6 endif z11=log(fn3(z11)) if @select=="Mandelbrot" ;----------------Mandelbrot---------------------- if (imag(z11)>real(rg1)) z11=z11+flip(2*#pi) endif if @changem==0 if @changem1==0 z11=mn10+exp(em1*(@fn7(z11*@p11)+flip(qg1)))+fn2(cc1)+mn11 elseif @changem1==1 z11=mn10+exp(em1*(@fn7(z11*@p11)+flip(qg1)))+fn2(cc1)*mn11 elseif @changem1==2 z11=mn10+exp(em1*(@fn7(z11*@p11)+flip(qg1)))+fn2(cc1)/mn11 elseif @changem1==3 z11=mn10+exp(em1*(@fn7(z11*@p11)+flip(qg1)))+fn2(cc1)^mn11 endif elseif @changem==1 if @changem1==0 z11=mn10*exp(em1*(@fn7(z11*@p11)+flip(qg1)))+fn2(cc1)+mn11 elseif @changem1==1 z11=mn10*exp(em1*(@fn7(z11*@p11)+flip(qg1)))+fn2(cc1)*mn11 elseif @changem1==2 z11=mn10*exp(em1*(@fn7(z11*@p11)+flip(qg1)))+fn2(cc1)/mn11 elseif @changem1==3 z11=mn10*exp(em1*(@fn7(z11*@p11)+flip(qg1)))+fn2(cc1)^mn11 endif elseif @changem==2 if @changem1==0 z11=mn10/exp(em1*(@fn7(z11*@p11)+flip(qg1)))+fn2(cc1)+mn11 elseif @changem1==1 z11=mn10/exp(em1*(@fn7(z11*@p11)+flip(qg1)))+fn2(cc1)*mn11 elseif @changem1==2 z11=mn10/exp(em1*(@fn7(z11*@p11)+flip(qg1)))+fn2(cc1)/mn11 elseif @changem1==3 z11=mn10/exp(em1*(@fn7(z11*@p11)+flip(qg1)))+fn2(cc1)^mn11 endif elseif @changem==3 if @changem1==0 z11=mn10^exp(em1*(@fn7(z11*@p11)+flip(qg1)))+fn2(cc1)+mn11 elseif @changem1==1 z11=mn10^exp(em1*(@fn7(z11*@p11)+flip(qg1)))+fn2(cc1)*mn11 elseif @changem1==2 z11=mn10^exp(em1*(@fn7(z11*@p11)+flip(qg1)))+fn2(cc1)/mn11 elseif @changem1==3 z11=mn10^exp(em1*(@fn7(z11*@p11)+flip(qg1)))+fn2(cc1)^mn11 endif endif elseif @select=="Barnsley" ;----------------Barnsley------------------------ if (imag(z11)>real(rg1)) z11=z11+flip(2*#pi) endif z11=exp(eb1*(z11+flip(qg1))) if @changeb==0 if real(z11)>=0 z11=mn10+(@fn8(z11)-@p8)*fn2(cc1-@p13)+mn11 else z11=mn10-(@fn9(z11)+@p8)*fn2(cc1+@p13)-mn11 endif elseif @changeb==1 if real(z11)>=0 z11=mn10+(@fn8(z11)-@p8)*fn2(cc1-@p13)*mn11 else z11=mn10-(@fn9(z11)+@p8)*fn2(cc1+@p13)/mn11 endif elseif @changeb==2 if real(z11)>=0 z11=mn10+(@fn8(z11)-@p8)*fn2(cc1-@p13)/mn11 else z11=mn10-(@fn9(z11)+@p8)*fn2(cc1+@p13)^mn11 endif elseif @changeb==3 if real(z11)>=0 z11=mn10+(@fn8(z11)-@p8)*fn2(cc1-@p13)^mn11 else z11=mn10-(@fn9(z11)+@p8)*fn2(cc1+@p13)*mn11 endif endif elseif @select=="Ikenaga" ;----------------Ikenaga------------------------- if (imag(z11)>real(rg1)) z11=z11+flip(2*#pi) endif z11=exp(ek1*(z11+flip(qg1))) if @changei==0 if @changei1==0 z11=mn10+@fn10(z11)^3+(fn2(@p12*cc1)-1)*@fn11(z11)-fn2(@p10*cc1)+mn11 elseif @changei1==1 z11=mn10+@fn10(z11)^3+(fn2(@p12*cc1)-1)*@fn11(z11)-fn2(@p10*cc1)*mn11 elseif @changei1==2 z11=mn10+@fn10(z11)^3+(fn2(@p12*cc1)-1)*@fn11(z11)-fn2(@p10*cc1)/mn11 elseif @changei1==3 z11=mn10+@fn10(z11)^3+(fn2(@p12*cc1)-1)*@fn11(z11)-fn2(@p10*cc1)^mn11 endif elseif @changei==1 if @changei1==0 z11=mn10*@fn10(z11)^3+(fn2(@p12*cc1)-1)*@fn11(z11)-fn2(@p10*cc1)+mn11 elseif @changei1==1 z11=mn10*@fn10(z11)^3+(fn2(@p12*cc1)-1)*@fn11(z11)-fn2(@p10*cc1)*mn11 elseif @changei1==2 z11=mn10*@fn10(z11)^3+(fn2(@p12*cc1)-1)*@fn11(z11)-fn2(@p10*cc1)/mn11 elseif @changei1==3 z11=mn10*@fn10(z11)^3+(fn2(@p12*cc1)-1)*@fn11(z11)-fn2(@p10*cc1)^mn11 endif elseif @changei==2 if @changei1==0 z11=mn10/@fn10(z11)^3+(fn2(@p12*cc1)-1)*@fn11(z11)-fn2(@p10*cc1)+mn11 elseif @changei1==1 z11=mn10/@fn10(z11)^3+(fn2(@p12*cc1)-1)*@fn11(z11)-fn2(@p10*cc1)*mn11 elseif @changei1==2 z11=mn10/@fn10(z11)^3+(fn2(@p12*cc1)-1)*@fn11(z11)-fn2(@p10*cc1)/mn11 elseif @changei1==3 z11=mn10/@fn10(z11)^3+(fn2(@p12*cc1)-1)*@fn11(z11)-fn2(@p10*cc1)^mn11 endif elseif @changei==3 if @changei1==0 z11=mn10^@fn10(z11)^3+(fn2(@p12*cc1)-1)*@fn11(z11)-fn2(@p10*cc1)+mn11 elseif @changei1==1 z11=mn10^@fn10(z11)^3+(fn2(@p12*cc1)-1)*@fn11(z11)-fn2(@p10*cc1)*mn11 elseif @changei1==2 z11=mn10^@fn10(z11)^3+(fn2(@p12*cc1)-1)*@fn11(z11)-fn2(@p10*cc1)/mn11 elseif @changei1==3 z11=mn10^@fn10(z11)^3+(fn2(@p12*cc1)-1)*@fn11(z11)-fn2(@p10*cc1)^mn11 endif endif endif if method==0 ;--------------------------------Z2--------------------------- cc2=@fnc1(c21+p3)*p4 else cc2=@fnc2(c21-p5)*p6 endif z21=log(fn3(z21)) if @select=="Mandelbrot" ;-------------------Mandelbrot------------------- if (imag(z21)>real(rg2)) z21=z21+flip(2*#pi) endif if @changem==0 if @changem1==0 z21=mn20+exp(em2*(@fn7(z21*@p11)+flip(qg2)))+fn2(cc2)+mn21 elseif @changem1==1 z21=mn20+exp(em2*(@fn7(z21*@p11)+flip(qg2)))+fn2(cc2)*mn21 elseif @changem1==2 z21=mn20+exp(em2*(@fn7(z21*@p11)+flip(qg2)))+fn2(cc2)/mn21 elseif @changem1==3 z21=mn20+exp(em2*(@fn7(z21*@p11)+flip(qg2)))+fn2(cc2)^mn21 endif elseif @changem==1 if @changem1==0 z21=mn20*exp(em2*(@fn7(z21*@p11)+flip(qg2)))+fn2(cc2)+mn21 elseif @changem1==1 z21=mn20*exp(em2*(@fn7(z21*@p11)+flip(qg2)))+fn2(cc2)*mn21 elseif @changem1==2 z21=mn20*exp(em2*(@fn7(z21*@p11)+flip(qg2)))+fn2(cc2)/mn21 elseif @changem1==3 z21=mn20*exp(em2*(@fn7(z21*@p11)+flip(qg2)))+fn2(cc2)^mn21 endif elseif @changem==2 if @changem1==0 z21=mn20/exp(em2*(@fn7(z21*@p11)+flip(qg2)))+fn2(cc2)+mn21 elseif @changem1==1 z21=mn20/exp(em2*(@fn7(z21*@p11)+flip(qg2)))+fn2(cc2)*mn21 elseif @changem1==2 z21=mn20/exp(em2*(@fn7(z21*@p11)+flip(qg2)))+fn2(cc2)/mn21 elseif @changem1==3 z21=mn20/exp(em2*(@fn7(z21*@p11)+flip(qg2)))+fn2(cc2)^mn21 endif elseif @changem==3 if @changem1==0 z21=mn20^exp(em2*(@fn7(z21*@p11)+flip(qg2)))+fn2(cc2)+mn21 elseif @changem1==1 z21=mn20^exp(em2*(@fn7(z21*@p11)+flip(qg2)))+fn2(cc2)*mn21 elseif @changem1==2 z21=mn20^exp(em2*(@fn7(z21*@p11)+flip(qg2)))+fn2(cc2)/mn21 elseif @changem1==3 z21=mn20^exp(em2*(@fn7(z21*@p11)+flip(qg2)))+fn2(cc2)^mn21 endif endif elseif @select=="Barnsley" ;-------------------Barnsley--------------------- if (imag(z21)>real(rg2)) z21=z21+flip(2*#pi) endif z21=exp(eb2*(z21+flip(qg2))) if @changeb==0 if real(z21)>=0 z21=mn20+(@fn8(z21)-@p8)*fn2(cc2-@p13)+mn21 else z21=mn20-(@fn9(z21)+@p8)*fn2(cc2+@p13)-mn21 endif elseif @changeb==1 if real(z21)>=0 z21=mn20+(@fn8(z21)-@p8)*fn2(cc2-@p13)*mn21 else z21=mn20-(@fn9(z21)+@p8)*fn2(cc2+@p13)/mn21 endif elseif @changeb==2 if real(z21)>=0 z21=mn20+(@fn8(z21)-@p8)*fn2(cc2-@p13)/mn21 else z21=mn20-(@fn9(z21)+@p8)*fn2(cc2+@p13)^mn21 endif elseif @changeb==3 if real(z21)>=0 z21=mn20+(@fn8(z21)-@p8)*fn2(cc2-@p13)^mn21 else z21=mn20-(@fn9(z21)+@p8)*fn2(cc2+@p13)*mn21 endif endif elseif @select=="Ikenaga" ;-------------------Ikenaga---------------------- if (imag(z21)>real(rg2)) z21=z21+flip(2*#pi) endif z21=exp(ek2*(z21+flip(qg2))) if @changei==0 if @changei1==0 z21=mn20+@fn10(z21)^3+(fn2(@p12*cc2)-1)*@fn11(z21)-fn2(@p10*cc2)+mn21 elseif @changei1==1 z21=mn20+@fn10(z21)^3+(fn2(@p12*cc2)-1)*@fn11(z21)-fn2(@p10*cc2)*mn21 elseif @changei1==2 z21=mn20+@fn10(z21)^3+(fn2(@p12*cc2)-1)*@fn11(z21)-fn2(@p10*cc2)/mn21 elseif @changei1==3 z21=mn20+@fn10(z21)^3+(fn2(@p12*cc2)-1)*@fn11(z21)-fn2(@p10*cc2)^mn21 endif elseif @changei==1 if @changei1==0 z21=mn20*@fn10(z21)^3+(fn2(@p12*cc2)-1)*@fn11(z21)-fn2(@p10*cc2)+mn21 elseif @changei1==1 z21=mn20*@fn10(z21)^3+(fn2(@p12*cc2)-1)*@fn11(z21)-fn2(@p10*cc2)*mn21 elseif @changei1==2 z21=mn20*@fn10(z21)^3+(fn2(@p12*cc2)-1)*@fn11(z21)-fn2(@p10*cc2)/mn21 elseif @changei1==3 z21=mn20*@fn10(z21)^3+(fn2(@p12*cc2)-1)*@fn11(z21)-fn2(@p10*cc2)^mn21 endif elseif @changei==2 if @changei1==0 z21=mn20/@fn10(z21)^3+(fn2(@p12*cc2)-1)*@fn11(z21)-fn2(@p10*cc2)+mn21 elseif @changei1==1 z21=mn20/@fn10(z21)^3+(fn2(@p12*cc2)-1)*@fn11(z21)-fn2(@p10*cc2)*mn21 elseif @changei1==2 z21=mn20/@fn10(z21)^3+(fn2(@p12*cc2)-1)*@fn11(z21)-fn2(@p10*cc2)/mn21 elseif @changei1==3 z21=mn20/@fn10(z21)^3+(fn2(@p12*cc2)-1)*@fn11(z21)-fn2(@p10*cc2)^mn21 endif elseif @changei==3 if @changei1==0 z21=mn20^@fn10(z21)^3+(fn2(@p12*cc2)-1)*@fn11(z21)-fn2(@p10*cc2)+mn21 elseif @changei1==1 z21=mn20^@fn10(z21)^3+(fn2(@p12*cc2)-1)*@fn11(z21)-fn2(@p10*cc2)*mn21 elseif @changei1==2 z21=mn20^@fn10(z21)^3+(fn2(@p12*cc2)-1)*@fn11(z21)-fn2(@p10*cc2)/mn21 elseif @changei1==3 z21=mn20^@fn10(z21)^3+(fn2(@p12*cc2)-1)*@fn11(z21)-fn2(@p10*cc2)^mn21 endif endif endif if method==0 ;--------------------------------Z3--------------------------- cc3=@fnc1(c31+p3)*p4 else cc3=@fnc2(c31-p5)*p6 endif z31=log(fn3(z31)) if @select=="Mandelbrot" ;-------------------Mandelbrot------------------- if (imag(z31)>real(rg3)) z31=z31+flip(2*#pi) endif if @changem==0 if @changem1==0 z31=mn30+exp(em3*(@fn7(z31*@p11)+flip(qg3)))+fn2(cc3)+mn31 elseif @changem1==1 z31=mn30+exp(em3*(@fn7(z31*@p11)+flip(qg3)))+fn2(cc3)*mn31 elseif @changem1==2 z31=mn30+exp(em3*(@fn7(z31*@p11)+flip(qg3)))+fn2(cc3)/mn31 elseif @changem1==3 z31=mn30+exp(em3*(@fn7(z31*@p11)+flip(qg3)))+fn2(cc3)^mn31 endif elseif @changem==1 if @changem1==0 z31=mn30*exp(em3*(@fn7(z31*@p11)+flip(qg3)))+fn2(cc3)+mn31 elseif @changem1==1 z31=mn30*exp(em3*(@fn7(z31*@p11)+flip(qg3)))+fn2(cc3)*mn31 elseif @changem1==2 z31=mn30*exp(em3*(@fn7(z31*@p11)+flip(qg3)))+fn2(cc3)/mn31 elseif @changem1==3 z31=mn30*exp(em3*(@fn7(z31*@p11)+flip(qg3)))+fn2(cc3)^mn31 endif elseif @changem==2 if @changem1==0 z31=mn30/exp(em3*(@fn7(z31*@p11)+flip(qg3)))+fn2(cc3)+mn31 elseif @changem1==1 z31=mn30/exp(em3*(@fn7(z31*@p11)+flip(qg3)))+fn2(cc3)*mn31 elseif @changem1==2 z31=mn30/exp(em3*(@fn7(z31*@p11)+flip(qg3)))+fn2(cc3)/mn31 elseif @changem1==3 z31=mn30/exp(em3*(@fn7(z31*@p11)+flip(qg3)))+fn2(cc3)^mn31 endif elseif @changem==3 if @changem1==0 z31=mn30^exp(em3*(@fn7(z31*@p11)+flip(qg3)))+fn2(cc3)+mn31 elseif @changem1==1 z31=mn30^exp(em3*(@fn7(z31*@p11)+flip(qg3)))+fn2(cc3)*mn31 elseif @changem1==2 z31=mn30^exp(em3*(@fn7(z31*@p11)+flip(qg3)))+fn2(cc3)/mn31 elseif @changem1==3 z31=mn30^exp(em3*(@fn7(z31*@p11)+flip(qg3)))+fn2(cc3)^mn31 endif endif elseif @select=="Barnsley" ;-------------------Barnsley--------------------- if (imag(z31)>real(rg3)) z31=z31+flip(2*#pi) endif z31=exp(eb3*(z31+flip(qg3))) if @changeb==0 if real(z31)>=0 z31=mn30+(@fn8(z31)-@p8)*fn2(cc3-@p13)+mn31 else z31=mn30-(@fn9(z31)+@p8)*fn2(cc3+@p13)-mn31 endif elseif @changeb==1 if real(z31)>=0 z31=mn30+(@fn8(z31)-@p8)*fn2(cc3-@p13)*mn31 else z31=mn30-(@fn9(z31)+@p8)*fn2(cc3+@p13)/mn31 endif elseif @changeb==2 if real(z31)>=0 z31=mn30+(@fn8(z31)-@p8)*fn2(cc3-@p13)/mn31 else z31=mn30-(@fn9(z31)+@p8)*fn2(cc3+@p13)^mn31 endif elseif @changeb==3 if real(z31)>=0 z31=mn30+(@fn8(z31)-@p8)*fn2(cc3-@p13)^mn31 else z31=mn30-(@fn9(z31)+@p8)*fn2(cc3+@p13)*mn31 endif endif elseif @select=="Ikenaga" ;-------------------Ikenaga---------------------- if (imag(z31)>real(rg3)) z31=z31+flip(2*#pi) endif z31=exp(ek3*(z31+flip(qg3))) if @changei==0 if @changei1==0 z31=mn30+@fn10(z31)^3+(fn2(@p12*cc3)-1)*@fn11(z31)-fn2(@p10*cc3)+mn31 elseif @changei1==1 z31=mn30+@fn10(z31)^3+(fn2(@p12*cc3)-1)*@fn11(z31)-fn2(@p10*cc3)*mn31 elseif @changei1==2 z31=mn30+@fn10(z31)^3+(fn2(@p12*cc3)-1)*@fn11(z31)-fn2(@p10*cc3)/mn31 elseif @changei1==3 z31=mn30+@fn10(z31)^3+(fn2(@p12*cc3)-1)*@fn11(z31)-fn2(@p10*cc3)^mn31 endif elseif @changei==1 if @changei1==0 z31=mn30*@fn10(z31)^3+(fn2(@p12*cc3)-1)*@fn11(z31)-fn2(@p10*cc3)+mn31 elseif @changei1==1 z31=mn30*@fn10(z31)^3+(fn2(@p12*cc3)-1)*@fn11(z31)-fn2(@p10*cc3)*mn31 elseif @changei1==2 z31=mn30*@fn10(z31)^3+(fn2(@p12*cc3)-1)*@fn11(z31)-fn2(@p10*cc3)/mn31 elseif @changei1==3 z31=mn30*@fn10(z31)^3+(fn2(@p12*cc3)-1)*@fn11(z31)-fn2(@p10*cc3)^mn31 endif elseif @changei==2 if @changei1==0 z31=mn30/@fn10(z31)^3+(fn2(@p12*cc3)-1)*@fn11(z31)-fn2(@p10*cc3)+mn31 elseif @changei1==1 z31=mn30/@fn10(z31)^3+(fn2(@p12*cc3)-1)*@fn11(z31)-fn2(@p10*cc3)*mn31 elseif @changei1==2 z31=mn30/@fn10(z31)^3+(fn2(@p12*cc3)-1)*@fn11(z31)-fn2(@p10*cc3)/mn31 elseif @changei1==3 z31=mn30/@fn10(z31)^3+(fn2(@p12*cc3)-1)*@fn11(z31)-fn2(@p10*cc3)^mn31 endif elseif @changei==3 if @changei1==0 z31=mn30^@fn10(z31)^3+(fn2(@p12*cc3)-1)*@fn11(z31)-fn2(@p10*cc3)+mn31 elseif @changei1==1 z31=mn30^@fn10(z31)^3+(fn2(@p12*cc3)-1)*@fn11(z31)-fn2(@p10*cc3)*mn31 elseif @changei1==2 z31=mn30^@fn10(z31)^3+(fn2(@p12*cc3)-1)*@fn11(z31)-fn2(@p10*cc3)*mn31 elseif @changei1==3 z31=mn30^@fn10(z31)^3+(fn2(@p12*cc3)-1)*@fn11(z31)-fn2(@p10*cc3)^mn31 endif endif endif if (@n_count>=0) n=@n_count*i endif ;-------------------------- z11=fn4(z11+l1) z21=fn4(z21+l1) z31=fn4(z31+l1) z1=@fnfl(z11)+@pfl z2=@fnfl(z21)+@pfl z3=@fnfl(z31)+@pfl ;-------------------------- ;-------------Slope Section--------------------------------------------------- ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if (@version==1.1) if ( @bailout < |z11+n| ||\ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else z = z1 endif if ( @bailout < |z11+n| ) ; we're done done = 0 endif endif if (@version==1.0) if ( @bailout < |z1+n| ||\ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else z = z1 endif if ( @bailout < |z1+n| ) ; we're done done = 0 endif endif iter=iter+1 Bailout: done > 0 Default: Title="SlopeBC3Sets" maxiter=250 periodicity=0 method=Multipass Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="current Mode" default=0 enum="Mandelbrot""Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot""Julia" visible=false endparam param @seed caption="Seed Value" default=(0.0,0.0) visible=(@mode==1) endparam param Bailout caption="Bailout Value" default=128.0 endparam param n_count caption="Iter Counter" default=0.0 min=0.0 endparam Heading caption="Flavor" Endheading param pfl caption="Flavor Param" default=(0.0,0.0) endparam func fnfl caption="Func. Flavor" default=ident() endfunc Heading caption="Slope Parameters" Endheading float param offset caption="Orbit Separation" default=1.0e-8 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." endparam Heading caption="C Sequence" Endheading param seq caption="Sequence" enum="1""2""3" default=0 endparam param p3 caption="Factor 1" default=(0.0,0.0) endparam param p4 caption="Factor 2" default=(1.0,0.0) endparam param p5 caption="Factor 3" default=(0.0,0.0) endparam param p6 caption="Factor 4" default=(1.0,0.0) endparam func fnc1 caption="Func. Factor1" default=ident() endfunc func fnc2 caption="Func. Factor2" default=ident() endfunc Heading caption="Parameters" Endheading param select caption="Select Formula" enum="Mandelbrot""Barnsley""Ikenaga" default=0 endparam param p2 caption="Torpedo" default=3.14159265358979 endparam param p14 caption="Log Param" default=(1.0,1.0) endparam param p15 caption="3R Dim.1" default=(1.0,0.0) endparam param p16 caption="3R Dim.2" default=(1.0,0.0) endparam param p17 caption="3R Dim.3" default=(0.0,0.0) endparam func fn5 caption="Func. Op.Log1" default=ident() endfunc func fn6 caption="Func. Op.Log2" default=ident() endfunc Heading caption="Mandelbrot" visible=(@select==0) EndHeading param changem1 caption="Sel. Log.Op.1" enum="+""*""/""^" default=0 visible=(@select==0) endparam param changem caption="Sel. Log.Op.2" enum="+""*""/""^" default=0 visible=(@select==0) endparam param p1 caption="Exp. Torpedo" default=(2.0,0.0) visible=(@select==0) endparam param p11 caption="Mandelbrot" default=(1.0,0.0) visible=(@select==0) endparam func fn7 caption="Func. Mandy" default=ident() visible=(@select==0) endfunc Heading caption="Barnsley" visible=(@select==1) EndHeading param changeb caption="Sel. Log.Op.1" enum="+""*""/""^" default=0 visible=(@select==1) endparam param p7 caption="Exp. Torpedo" default=(1.0,0.0) visible=(@select==1) endparam param p8 caption="Barnsley1" default=(1.0,0.0) visible=(@select==1) endparam param p13 caption="Barnsley2" default=(0.0,0.0) visible=(@select==1) endparam func fn8 caption="Func. Barnsley1" default=ident() visible=(@select==1) endfunc func fn9 caption="Func. Barnsley2" default=ident() visible=(@select==1) endfunc Heading caption="Ikenaga" visible=(@select==2) EndHeading param changei1 caption="Sel. Log.Op.1" enum="+""*""/""^" default=0 visible=(@select==2) endparam param changei caption="Sel. Log.Op.2" enum="+""*""/""^" default=0 visible=(@select==2) endparam param p9 caption="Exp. Torpedo" default=(1.0,0.0) visible=(@select==2) endparam param p10 caption="Ikenaga1" default=(-1.0,0.0) visible=(@select==2) endparam param p12 caption="Ikenaga2" default=(1.0,0.0) visible=(@select==2) endparam func fn10 caption="Func. Ikenaga1" default=ident() visible=(@select==2) endfunc func fn11 caption="Func. Ikenaga2" default=ident() visible=(@select==2) endfunc Heading caption="Functions" Endheading func fn1 caption="Func. 1" default=ident() endfunc func fn3 caption="Func. 1Z" default=ident() endfunc func fn4 caption="Func. 2Z" default=ident() endfunc func fn2 caption="Func. C" default=ident() endfunc param version caption="Version" default=1.1 visible=false endparam Switch: type="SlopeBC3Sets" bailout=@bailout n_count=@n_count seq=@seq select=@select changem=@changem changem1=@changem1 changei=@changei changei1=@changei1 changeb=@changeb @seed=pixel p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 p8=@p8 p9=@p9 p10=@p10 p11=@p11 p12=@p12 p13=@p13 p14=@p14 p15=@p15 p16=@p16 p17=@p17 pfl=@pfl fnc1=@fnc1 fnc2=@fnc2 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 fn8=@fn8 fn9=@fn9 fn10=@fn10 fn11=@fn11 fnfl=@fnfl mode=@switchmode switchmode=@mode version=@version offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp } SlopeDoubleExp { ;Original idea of Mr. Jim Muth ; Fz(n+1)=z^pow+(p1*(z^pow1)^(-pow1))+c ;Amplified with: ; Fz(n+1) = (z^pow+(p1*(z^pow1)^(-pow1))+c) / (p2*(z^@pow3)+(c^@pow4))^(-pow5) ;so ; Fz(n+1) = numerator(Z)/denominator(Z) ;parameters are in progress and extra global parameters for numerator and denominator can be added in extra section. ;There are extra parameters and functions both for Z that for C ;and for global Num. and Den. and there's also the possibility for an extra C=pixel both for Num. that for Den. ;All compound in final with Slope and 3Rdimension of Mr.Ron Barnett and C Sequence of Mrs. Susan Chambless. ;Version 1.1: Fixed flavor ;Andrea Spinozzi(2013-2014) Init: y1=(0.0,0.0) y2=(0.0,0.0) y3=(0.0,0.0) z1=(0.0,0.0) z2=(0.0,0.0) z3=(0.0,0.0) hy1=@rd1*real(#pixel)+flip(imag(#pixel)*@rd2) ;Init variable for some sets, Phoenix and Hydra etc... hy2=@rd1*real(#pixel+@offset)+flip(imag(#pixel+@offset)*@rd2) hy3=@rd1*real(#pixel+flip(@offset))+flip(imag(#pixel+flip(@offset))*@rd2) oldz1=@rd1*real(#pixel)+flip(imag(#pixel)*@rd2) oldz2=@rd1*real(#pixel+@offset)+flip(imag(#pixel+@offset)*@rd2) oldz3=@rd1*real(#pixel+flip(@offset))+flip(imag(#pixel+flip(@offset))*@rd2) zz1=@rd1*real(#pixel)+flip(imag(#pixel)*@rd2) ;Init our Z and C zz2=@rd1*real(#pixel+@offset)+flip(imag(#pixel+@offset)*@rd2) zz3=@rd1*real(#pixel+flip(@offset))+flip(imag(#pixel+flip(@offset))*@rd2) c1=@rd3+@rd2*real(#pixel)+flip(imag(#pixel)*@rd1) c2=@rd3+@rd2*real(#pixel+@offset)+flip(imag(#pixel+@offset)*@rd1) c3=@rd3+@rd2*real(#pixel+flip(@offset))+flip(imag(#pixel+flip(@offset))*@rd1) if @mode=="Julia" ; Julia Mode zz1=@rd1*real(#pixel)+flip(imag(#pixel)*@rd2) zz2=@rd1*real(#pixel+@offset)+flip(imag(#pixel+@offset)*@rd2) zz3=@rd1*real(#pixel+flip(@offset))+flip(imag(#pixel+flip(@offset))*@rd2) c1=@rd3+@rd2*real(@seed)+flip(imag(@seed)*@rd1) c2=@rd3+@rd2*real(@seed)+flip(imag(@seed)*@rd1) c3=@rd3+@rd2*real(@seed)+flip(imag(@seed)*@rd1) hy1=@rd3+@rd2*real(@seed)+flip(imag(@seed)*@rd1) hy2=@rd3+@rd2*real(@seed)+flip(imag(@seed)*@rd1) hy3=@rd3+@rd2*real(@seed)+flip(imag(@seed)*@rd1) endif ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 int modby = @seq+2 ;Init section for C parameters int iter = 0 it=1.0e-64 ;Fixed parameter Loop: int method=iter%modby if method==0 ;Operators C section cc1=@fnc1(c1+@p4)*@p5 cc2=@fnc1(c2+@p4)*@p5 cc3=@fnc1(c3+@p4)*@p5 else cc1=@fnc2(c1-@p6)*@p7 cc2=@fnc2(c2-@p6)*@p7 cc3=@fnc2(c3-@p6)*@p7 endif znum1=fn1(zz1)^p1+p2*((fn2(zz1)^p3)^(-p3))+fn3(cc1*@p12) ;Numerator Basic DoubleExp Mandelbrot z=z^pow+p1*((z^pow1)^(-pow1))+c znum2=fn1(zz2)^p1+p2*((fn2(zz2)^p3)^(-p3))+fn3(cc2*@p12) znum3=fn1(zz3)^p1+p2*((fn2(zz3)^p3)^(-p3))+fn3(cc3*@p12) zden1=(@p8*(fn4(zz1)^@p10)+(@fn5(cc1)^@p11)-@p8)^(-@p9) ;Denominator Basic Mandelbrot z=(z^pow2+c)^(-pow3) zden2=(@p8*(fn4(zz2)^@p10)+(@fn5(cc2)^@p11)-@p8)^(-@p9) zden3=(@p8*(fn4(zz3)^@p10)+(@fn5(cc3)^@p11)-@p8)^(-@p9) ;------------------------------Extra Parameters and C for Num. and Den.--------------------- if @extraparam==true znum1=@fnnum(znum1) znum2=@fnnum(znum2) znum3=@fnnum(znum3) zden1=@fnden(zden1) zden2=@fnden(zden2) zden3=@fnden(zden3) if @Cnum==0 ; Add operators for C=pixel in Numerator znum1=@zmnum*(@zanum+znum1^@zenum) znum2=@zmnum*(@zanum+znum2^@zenum) znum3=@zmnum*(@zanum+znum3^@zenum) elseif @Cnum==1 znum1=@zmnum*(@zanum+znum1^@zenum)+(@adnum+@fcnum(cc1)^@exnum)*@pnum znum2=@zmnum*(@zanum+znum2^@zenum)+(@adnum+@fcnum(cc2)^@exnum)*@pnum znum3=@zmnum*(@zanum+znum3^@zenum)+(@adnum+@fcnum(cc3)^@exnum)*@pnum elseif @Cnum==2 znum1=@zmnum*(@zanum+znum1^@zenum)*(@adnum+@fcnum(cc1)^@exnum)*@pnum znum2=@zmnum*(@zanum+znum2^@zenum)*(@adnum+@fcnum(cc2)^@exnum)*@pnum znum3=@zmnum*(@zanum+znum3^@zenum)*(@adnum+@fcnum(cc3)^@exnum)*@pnum elseif @Cnum==3 znum1=@zmnum*(@zanum+znum1^@zenum)/(@adnum+@fcnum(cc1)^@exnum)*@pnum znum2=@zmnum*(@zanum+znum2^@zenum)/(@adnum+@fcnum(cc2)^@exnum)*@pnum znum3=@zmnum*(@zanum+znum3^@zenum)/(@adnum+@fcnum(cc3)^@exnum)*@pnum endif if @Cden==0 ; Add operators for C=pixel in Denominator zden1=@zmden*(@zaden+zden1^@zeden) zden2=@zmden*(@zaden+zden2^@zeden) zden3=@zmden*(@zaden+zden3^@zeden) elseif @Cden==1 zden1=@zmden*(@zaden+zden1^@zeden)+(@adden+@fcden(cc1)^@exden)*@pden zden2=@zmden*(@zaden+zden2^@zeden)+(@adden+@fcden(cc2)^@exden)*@pden zden3=@zmden*(@zaden+zden3^@zeden)+(@adden+@fcden(cc3)^@exden)*@pden elseif @Cden==2 zden1=@zmden*(@zaden+zden1^@zeden)*(@adden+@fcden(cc1)^@exden)*@pden zden2=@zmden*(@zaden+zden2^@zeden)*(@adden+@fcden(cc2)^@exden)*@pden zden3=@zmden*(@zaden+zden3^@zeden)*(@adden+@fcden(cc3)^@exden)*@pden elseif @Cden==3 zden1=@zmden*(@zaden+zden1^@zeden)/(@adden+@fcden(cc1)^@exden)*@pden zden2=@zmden*(@zaden+zden2^@zeden)/(@adden+@fcden(cc2)^@exden)*@pden zden3=@zmden*(@zaden+zden3^@zeden)/(@adden+@fcden(cc3)^@exden)*@pden endif endif ;----------------------------------------------------------------------------- zfinal1=@fn6(znum1)/@fn7(zden1) ; Zfinal=Num/Den zfinal2=@fn6(znum2)/@fn7(zden2) zfinal3=@fn6(znum3)/@fn7(zden3) zfinal1=zfinal1+it zfinal2=zfinal2+it zfinal3=zfinal3+it ;Now we create our sets using Zfinal as starting Z(n) point if @selFormula==0 ;Mandelbrot zz1=zfinal1 zz2=zfinal2 zz3=zfinal3 elseif @selFormula==1 ;Barnsley if (real(zz1)>0) zz1=(zfinal1-@barn)*(cc1-@cbarn) zz2=(zfinal2-@barn)*(cc2-@cbarn) zz3=(zfinal3-@barn)*(cc3-@cbarn) else zz1=(zfinal1+@barn1)*(cc1*@cbarn1) zz2=(zfinal2+@barn1)*(cc2*@cbarn1) zz3=(zfinal3+@barn1)*(cc3*@cbarn1) endif elseif @selFormula==2 ;Ikenaga zz1=@fnike(zfinal1)^@exike+(@mike*cc1-1)*@fnike1(zfinal1)-@mike1*cc1 zz2=@fnike(zfinal2)^@exike+(@mike*cc2-1)*@fnike1(zfinal2)-@mike1*cc2 zz3=@fnike(zfinal3)^@exike+(@mike*cc3-1)*@fnike1(zfinal3)-@mike1*cc3 elseif @selFormula==3 ;Phoenix newz1=@fnpho(zfinal1)^@exphoe+zz1^@exphoe1*@fnpho2(cc1)+@phoe*@fnpho1(y1) newz2=@fnpho(zfinal2)^@exphoe+zz2^@exphoe1*@fnpho2(cc2)+@phoe*@fnpho1(y2) newz3=@fnpho(zfinal3)^@exphoe+zz3^@exphoe1*@fnpho2(cc3)+@phoe*@fnpho1(y3) y1=zz1 y2=zz2 y3=zz3 zz1=newz1 zz2=newz2 zz3=newz3 elseif @selFormula==4 ;Flattop z = sin(z+2) + (c*z)/(z-2) zz1=@fnflat(zfinal1+@flat)+(cc1*zfinal1*@flat1)/(zfinal1-@flat) zz2=@fnflat(zfinal2+@flat)+(cc2*zfinal2*@flat1)/(zfinal2-@flat) zz3=@fnflat(zfinal3+@flat)+(cc3*zfinal3*@flat1)/(zfinal3-@flat) elseif @selFormula==5 ;FGZ Orgform Collection z = (0.5 * z * z) / (z + 0.5) + c zz1=@fnfgz(@fgz*zfinal1*zfinal1)/@fnfgz1(zfinal1+@fgz)+@fnfgz2(cc1)*@fgz1 zz2=@fnfgz(@fgz*zfinal2*zfinal2)/@fnfgz1(zfinal2+@fgz)+@fnfgz2(cc2)*@fgz1 zz3=@fnfgz(@fgz*zfinal3*zfinal3)/@fnfgz1(zfinal3+@fgz)+@fnfgz2(cc3)*@fgz1 elseif @selFormula==6 ;Fibo y1=zz1 y2=zz2 y3=zz3 zz1=@fnfibo(@mufibo*zfinal1*@fnfibo1(oldz1))^@exfibo+cc1 zz2=@fnfibo(@mufibo*zfinal2*@fnfibo1(oldz2))^@exfibo+cc2 zz3=@fnfibo(@mufibo*zfinal3*@fnfibo1(oldz3))^@exfibo+cc3 oldz1=y1 oldz2=y2 oldz3=y3 elseif @selFormula==7 ;Hydra newz1=zz1 newz2=zz2 newz3=zz3 zz1=@fnhid1(zfinal1*zfinal1+@hid3)^@hid1+@fnhid2(hy1)*@hid2 zz2=@fnhid1(zfinal2*zfinal2+@hid3)^@hid1+@fnhid2(hy2)*@hid2 zz3=@fnhid1(zfinal3*zfinal3+@hid3)^@hid1+@fnhid2(hy3)*@hid2 hy1=newz1 hy2=newz2 hy3=newz3 elseif @selFormula==8 ;BabyBrot newz1=zz1 newz2=zz2 newz3=zz3 zz1=@fnmyo1(zfinal1)+@fnmyo4(oldz1)*@myo1*@fnmyo3(hy1)^@myo2*@fnmyo2(cc1+@myo3)*@myo4 zz2=@fnmyo1(zfinal2)+@fnmyo4(oldz2)*@myo1*@fnmyo3(hy2)^@myo2*@fnmyo2(cc2+@myo3)*@myo4 zz3=@fnmyo1(zfinal3)+@fnmyo4(oldz3)*@myo1*@fnmyo3(hy3)^@myo2*@fnmyo2(cc3+@myo3)*@myo4 hy1=newz1 hy2=newz2 hy3=newz3 oldz1=newz1 oldz2=newz2 oldz3=newz3 endif z1=@fnz(@flz+(zz1)^@flz1)*@flz2 ;Create a flavor for Z(n+1) result z2=@fnz(@flz+(zz2)^@flz1)*@flz2 z3=@fnz(@flz+(zz3)^@flz1)*@flz2 ;-----------------------------------Slope Section----------------------------- if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if (@version==1.1) if ( @bailout < |zz1| ||\ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else z = z1 endif if ( @bailout < |zz1| ) ; we're done done = 0 endif endif if @version==1.0 if ( @bailout < |z1| ||\ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else z = z1 endif if ( @bailout < |z1| ) ; we're done done = 0 endif endif iter=iter+1 Bailout: done > 0 Default: Title="SlopeDoubleExp" periodicity=0 maxiter=250 method=multipass Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="current Mode" default=0 enum="Mandelbrot""Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot""Julia" visible=false endparam param bailout caption="Bailout" default=1000.0 endparam param @seed caption="Seed Value" default=(0.0,0.0) visible=(@mode==1) endparam Heading caption="Flavor" show=true Endheading func fnz caption="Function Flavor" default=ident() endfunc param flz caption="Add. Flavor" default=(0.0,0.0) endparam param flz1 caption="Exp. Flavor" default=(1.0,0.0) endparam param flz2 caption="Mult. Flavor" default=(1.0,0.0) endparam Heading caption="Slope Parameters" Endheading float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." endparam param zscale2 caption="Height Post-Scale" default=0.01 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." endparam Heading caption="3R Dimension" Endheading param rd1 caption="3RDim.1" default=(1.0,0.0) endparam param rd2 caption="3RDim.2" default=(1.0,0.0) endparam param rd3 caption="3RDim.3" default=(0.0,0.0) endparam Heading caption="C Sequence" Endheading param seq caption="Sequence" enum="1""2""3" default=0 endparam param p4 caption="Factor 1" default=(0.0,0.0) endparam param p5 caption="Factor 2" default=(1.0,0.0) endparam param p6 caption="Factor 3" default=(0.0,0.0) endparam param p7 caption="Factor 4" default=(1.0,0.0) endparam func fnc1 caption="Func. Factor1" default=ident() endfunc func fnc2 caption="Func. Factor2" default=ident() endfunc Heading caption="Parameters" Endheading param selformula caption="Select Formula" enum="Mandelbrot""Barnsley""Ikenaga""Phoenix""Flattop""Fgz""Fibo""Hydra""BabyBrot" default=0 endparam ;-----------------------------------Formula Select----------------------------- Heading caption="Mandelbrot" visible=(@selformula==0) Endheading Heading caption="Barnsley" visible=(@selformula==1) Endheading Heading caption="Ikenaga" visible=(@selformula==2) Endheading Heading caption="Phoenix" visible=(@selformula==3) Endheading Heading caption="Flattop" visible=(@selformula==4) Endheading Heading caption="Fgz" visible=(@selformula==5) Endheading Heading caption="Fibo" visible=(@selformula==6) Endheading Heading caption="Hydra" visible=(@selformula==7) Endheading Heading caption="BabyBrot" visible=(@selformula==8) Endheading ;-----------------------------------Barnsley Param----------------------------- param barn caption="Barnsley1" default=(1.0,0.0) visible=(@selformula==1) endparam param barn1 caption="Barnsley2" default=(1.0,0.0) visible=(@selformula==1) endparam param cbarn caption="Add. C Barnsley" default=(0.0,0.0) visible=(@selformula==1) endparam param cbarn1 caption="Mult. C Barnsley" default=(1.5,0.0) visible=(@selformula==1) endparam ;-----------------------------------Ikenaga Param------------------------------ param exike caption="Exp. Ikenaga" default=(3.0,0.0) visible=(@selformula==2) endparam param mike caption="Mult. C Ikenaga1" default=(1.0,0.0) visible=(@selformula==2) endparam param mike1 caption="Mult. C Ikenaga2" default=(0.2,0.0) visible=(@selformula==2) endparam func fnike caption="Func. Ikenaga1" default=ident() visible=(@selformula==2) endfunc func fnike1 caption="Func. Ikenaga2" default=ident() visible=(@selformula==2) endfunc ;-----------------------------------Phoenix Param------------------------------ param exphoe caption="Exp. Phoenix1" default=(1.0,0.0) visible=(@selformula==3) endparam param exphoe1 caption="Exp. Phoenix2" default=(0.0,0.0) visible=(@selformula==3) endparam param phoe caption="Phoenix Distortion" default=(0.5,0.0) visible=(@selformula==3) endparam func fnpho caption="Func. Phoenix1" default=ident() visible=(@selformula==3) endfunc func fnpho1 caption="Func. Phoenix2" default=ident() visible=(@selformula==3) endfunc func fnpho2 caption="Func. C Phoenix" default=ident() visible=(@selformula==3) endfunc ;-----------------------------------Flattop Param------------------------------ param flat caption="Flattop Param.1" default=(2.0,0.0) visible=(@selformula==4) endparam param flat1 caption="Flattop Param.2" default=(1.0,0.0) visible=(@selformula==4) endparam func fnflat caption="Func. Flattop" default=sin() visible=(@selformula==4) endfunc ;-----------------------------------Fgz Param---------------------------------- param fgz caption="Fgz Param.1" default=(0.5,0.0) visible=(@selformula==5) endparam param fgz1 caption="Fgz Param.2" default=(1.0,0.0) visible=(@selformula==5) endparam func fnfgz caption="Func. Fgz1" default=ident() visible=(@selformula==5) endfunc func fnfgz1 caption="Func. Fgz2" default=ident() visible=(@selformula==5) endfunc func fnfgz2 caption="Func. Fgz3" default=ident() visible=(@selformula==5) endfunc ;-----------------------------------Fibo Param--------------------------------- param mufibo caption="Mult. Fibo" default=(1.0,0.0) visible=(@selformula==6) endparam param exfibo caption="Exp. Fibo" default=(1.0,0.0) visible=(@selformula==6) endparam func fnfibo caption="Func. Fibo1" default=ident() visible=(@selformula==6) endfunc func fnfibo1 caption="Func. Fibo2" default=ident() visible=(@selformula==6) endfunc ;-----------------------------------Hydra Param-------------------------------- param hid3 caption="Add. Hydra" default=(0.0,0.0) visible=(@selformula==7) endparam param hid1 caption="Exp. Hydra" default=(1.0,0.0) visible=(@selformula==7) endparam param hid2 caption="Mult. Hydra" default=(1.0,0.0) visible=(@selformula==7) endparam func fnhid1 caption="Func. Hydra1" default=ident() visible=(@selformula==7) endfunc func fnhid2 caption="Func. Hydra2" default=ident() visible=(@selformula==7) endfunc ;-----------------------------------BabyBrot Param----------------------------- param myo3 caption="Add. BabyBrot" default=(0.0,0.0) visible=(@selformula==8) endparam param myo2 caption="Exp. BabyBrot" default=(1.0,0.0) visible=(@selformula==8) endparam param myo1 caption="Mult. BabyBrot1" default=(1.0,0.0) visible=(@selformula==8) endparam param myo4 caption="Mult. BabyBrot2" default=(1.0,0.0) visible=(@selformula==8) endparam func fnmyo1 caption="Func. BabyBrot1" default=ident() visible=(@selformula==8) endfunc func fnmyo2 caption="Func. BabyBrot2" default=ident() visible=(@selformula==8) endfunc func fnmyo3 caption="Func. BabyBrot3" default=ident() visible=(@selformula==8) endfunc func fnmyo4 caption="Func. BabyBrot4" default=ident() visible=(@selformula==8) endfunc Heading caption="Basic Parameters" ;----Basic Param Mandelbrot Formula----------- Endheading param p1 caption="Exponent" default=(2.0,0.0) endparam param p2 caption="Start Double" default=(0.0,0.0) endparam param p3 caption="Double Exp" default=(1.0,0.0) enabled=(@p2!=0.0) endparam param p12 caption="Mult. C" default=(1.0,0.0) endparam param p9 caption="Global Exp.Den" default=(0.0,0.0) endparam param p8 caption="Param. Den." default=(-1.0,0.0) enabled=(@p9!=0.0) endparam param p10 caption="Exp.DenZ" default=(1.0,0.0) enabled=(@p9!=0.0) endparam param p11 caption="Exp.DenC" default=(1.0,0.0) enabled=(@p9!=0.0) endparam param extraparam caption="Extra Parameters" default=false endparam Heading caption="Extra Section" visible= (@extraparam==true) Endheading param Cnum caption="Add C Num." enum="Num""Num+C""Num*C""Num/C" default=0 visible=(@extraparam==true) endparam param Cden caption="Add C Den." enum="Den""Den+C""Den*C""Den/C" default=0 visible=(@extraparam==true) endparam param zanum caption="Add. Num." default=(0.0,0.0) visible=(@extraparam==true) endparam param zmnum caption="Mult. Num." default=(1.0,0.0) visible=(@extraparam==true) endparam param zenum caption="Exp. Num." default=(1.0,0.0) visible=(@extraparam==true) endparam param adnum caption="Add. C Num." default=(0.0,0.0) visible=(@extraparam==true)&&(@cnum!=0) endparam param pnum caption="Mult. C Num." default=(1.0,0.0) visible=(@extraparam==true)&&(@cnum!=0) endparam param exnum caption="Exp. C Num." default=(1.0,0.0) visible=(@extraparam==true)&&(@cnum!=0) endparam param zaden caption="Add. Den." default=(0.0,0.0) visible=(@extraparam==true) endparam param zmden caption="Mult. Den." default=(1.0,0.0) visible=(@extraparam==true) endparam param zeden caption="Exp. Den." default=(1.0,0.0) visible=(@extraparam==true)&&(@p9!=0) endparam param adden caption="Add. C Den." default=(0.0,0.0) visible=(@extraparam==true)&&(@cden!=0) endparam param pden caption="Mult. C Den." default=(0.7,0.0) visible=(@extraparam==true)&&(@cden!=0) endparam param exden caption="Exp. C Den." default=(1.0,0.0) visible=(@extraparam==true)&&(@cden!=0) endparam func fnnum caption="Func Num." default=ident() visible=(@extraparam==true) endfunc func fnden caption="Func Den." default=ident() visible=(@extraparam==true) endfunc func fcnum caption="Func C Num." default=ident() visible=(@extraparam==true)&&(@cnum!=0) endfunc func fcden caption="Func C Den." default=ident() visible=(@extraparam==true)&&(@cden!=0) endfunc Heading caption="Functions" Endheading func fn1 caption="Znum." default=ident() endfunc func fn2 caption="Double Z" default=ident() enabled=(@p2!=0.0) endfunc func fn4 caption="Zden." default=ident() enabled=(@p9!=0.0) endfunc func fn3 caption="Cnum." default=ident() endfunc func fn5 caption="Cden." default=ident() enabled=(@p9!=0.0) endfunc func fn6 caption="GlobalNum." default=ident() endfunc func fn7 caption="GlobalDen." default=ident() endfunc param version caption="Version Param" default=1.1 visible=false endparam Switch: Type="SlopeDoubleExp" @seed=pixel bailout=@bailout seq=@seq selformula=@selformula fnz=@fnz flz=@flz flz1=@flz1 flz2=@flz2 phoe=@phoe exphoe=@exphoe exphoe1=@exphoe1 fnpho=@fnpho fnpho1=@fnpho1 fnpho2=@fnpho2 barn=@barn barn1=@barn1 cbarn=@cbarn cbarn1=@cbarn1 exike=@exike mike=@mike mike1=@mike1 fnike=@fnike fnike1=@fnike1 flat=@flat flat1=@flat1 fnflat=@fnflat fgz=@fgz fgz1=@fgz1 fnfgz=@fnfgz fnfgz1=@fnfgz1 fnfgz2=@fnfgz2 fnfibo=@fnfibo fnfibo1=@fnfibo1 exfibo=@exfibo mufibo=@mufibo hid1=@hid1 hid2=@hid2 hid3=@hid3 fnhid1=@fnhid1 fnhid2=@fnhid2 myo1=@myo1 myo2=@myo2 myo3=@myo3 myo4=@myo4 fnmyo1=@fnmyo1 fnmyo2=@fnmyo2 fnmyo3=@fnmyo3 fnmyo4=@fnmyo4 p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 p8=@p8 p9=@p9 p10=@p10 p11=@p11 p12=@p12 rd1=@rd1 rd2=@rd2 rd3=@rd3 fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 fn5=@fn5 fn6=@fn6 fn7=@fn7 fnc1=@fnc1 fnc2=@fnc2 fnnum=@fnnum fnden=@fnden fcnum=@fcnum fcden=@fcden extraparam=@extraparam cnum=@cnum cden=@cden zanum=@zanum zenum=@zenum zmnum=@zmnum zaden=@zaden zeden=@zeden zmden=@zmden adnum=@adnum adden=@adden pden=@pden pnum=@pnum exnum=@exnum exden=@exden mode=@switchmode switchmode=@mode version=@version offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp } SlopeHyperIkenaga { ;Slope Hypercomplex Ikenaga set, compound with the example equations of Mr. Jon Horner ;that can be found here: ; http://fractint.net/fractsvn/trunk/fractint-float/formulas/ikenaga.frm ;and compound with the 3RDIMIKENAGA of Mr. Ron Barnett and sequence section of C of ;Mrs. Susan Chambless, formula completed with functions of Z and C, power parameters and flavor. ;Version 1.1 = Fixed flavor ;Andrea Spinozzi(2013) Init: z1=(0.0,0.0) z2=z1 z3=z1 b1=@p1 b2=b1 b3=b1 x1=(0.0,0.0) x2=x1 x3=x1 y1=(0.0,0.0) y2=y1 y3=y1 c1=(0.0,0.0) c2=c1 c3=c1 if @select==0 ;Normal mode x1=0.0 x2=x1 x3=x1 y1=0.0 y2=y1 y3=y1 c1=#pixel c2=c1+@offset c3=c2+flip(@offset) elseif @select==1 ;Dissect real and image parts and add 3RDimension parameters x1=@p9*real(#pixel)+flip(imag(#pixel)*@p11) x2=@p9*real(#pixel+@offset)+flip(imag(#pixel+@offset)*@p11) x3=@p9*real(#pixel+flip(@offset))+flip(imag(#pixel+flip(@offset))*@p11) y1=0.0 y2=y1 y3=y1 c1=@p10+@p11*real(#pixel)+flip(imag(#pixel)*@p9) c2=@p10+@p11*real(#pixel+@offset)+flip(imag(#pixel+@offset)*@p9) c3=@p10+@p11*real(#pixel+flip(@offset))+flip(imag(#pixel+flip(@offset))*@p9) endif if @mode=="Julia" ;Julia Mode if @select==0 x1=#pixel x2=x1+@offset x3=x1+flip(@offset) y1=0.0 y2=y1 y3=y1 c1=@seed c2=c1 c3=c2 elseif @select==1 x1=@p9*real(#pixel)+flip(imag(#pixel)*@p11) x2=@p9*real(#pixel+@offset)+flip(imag(#pixel+@offset)*@p11) x3=@p9*real(#pixel+flip(@offset))+flip(imag(#pixel+flip(@offset))*@p11) y1=0.0 y2=y1 y3=y1 c1=@p10+@p11*real(@seed)+flip(imag(@seed)*@p9) c2=c1 c3=c1 endif endif int modby = @seq+2 ;Init section for C int iter = 0 ca1=(0.0,0.0) ca2=(0.0,0.0) ca3=(0.0,0.0) ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 Loop: int method=iter%modby if method==0 ;Operators C section ca1=@fnc1(c1+@p2)*@p3 ca2=@fnc1(c2+@p2)*@p3 ca3=@fnc1(c3+@p2)*@p3 else ca1=@fnc2(c1-@p4)*@p5 ca2=@fnc2(c2-@p4)*@p5 ca3=@fnc2(c3-@p4)*@p5 endif ;----------------------Hypercomplex equation of Ikenaga set------------------ ;newX = x*x*x - 3*x*y*y + a*x - b*y - x - a ;newY = 3*x*x*y - y*y*y + a*y + b*x - y - b ;---------------------------------------------------------------------------- xa1=fn1(x1*x1*x1)-3*x1*y1*y1+ca1*x1-b1*y1-x1-fn2(ca1)^@p6 xa2=fn1(x2*x2*x2)-3*x2*y2*y2+ca2*x2-b2*y2-x2-fn2(ca2)^@p6 xa3=fn1(x3*x3*x3)-3*x3*y3*y3+ca3*x3-b3*y3-x3-fn2(ca3)^@p6 y1=3*x1*x1*y1-y1*y1*y1+ca1*y1+b1*x1-y1-b1 y2=3*x2*x2*y2-y2*y2*y2+ca2*y2+b2*x2-y2-b2 y3=3*x3*x3*y3-y3*y3*y3+ca3*y3+b3*x3-y3-b3 x1=xa1 ;Loop for Hypercomplex parameter b1=p1 x2=xa2 x3=xa3 x1=(x1+@p7)*@p8 ;Add some parameters x2=(x2+@p7)*@p8 x3=(x3+@p7)*@p8 if @flavor==0 ;Flavor section of Z result, i use to put functions to create x+/-flip(y) z1=@fl1(x1)+@fl2(y1) z2=@fl1(x2)+@fl2(y2) z3=@fl1(x3)+@fl2(y3) elseif @flavor==1 z1=@fl1(x1)-@fl2(y1) z2=@fl1(x2)-@fl2(y2) z3=@fl1(x3)-@fl2(y3) endif ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if (@version==1.1) if ( @bailout < |x1|+|y1| ||\ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else z = z1 endif if ( @bailout < |x1|+|y1| ) ; we're done done = 0 endif endif if (@version==1.0) if ( @bailout < |z1| ||\ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else z = z1 endif if ( @bailout < |z1| ) ; we're done done = 0 endif endif iter=iter+1 ;Concludes iter for C section Bailout: done > 0 Default: title="SlopeHyperIkenaga" method=multipass periodicity=0 maxiter=250 Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="current Mode" default=0 enum="Mandelbrot""Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot""Julia" visible=false endparam param bailout caption="Bailout Value" default=1000.0 endparam param @seed caption="Seed Value" default=(0.0,0.0) visible=(@mode==1) endparam Heading caption="Flavor" Endheading param @flavor caption="Operator Flavor" enum="+""-" default=0 endparam func fl1 caption="Func. Flavor1" default=ident() endfunc func fl2 caption="Func. Flavor2" default=ident() endfunc Heading caption="Init Variables" Endheading param @select caption="Select Variables" enum="Normal""3RDimension" default=0 endparam param p9 caption="3R.Dim 1" default=(-1.0,0.0) visible=(@select==1) endparam param p10 caption="3R.Dim 2" default=(0.0,0.0) visible=(@select==1) endparam param p11 caption="3R.Dim 3" default=(1.0,0.0) visible=(@select==1) endparam Heading caption="Slope Parameters" Endheading float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." endparam param zscale2 caption="Height Post-Scale" default=0.01 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." endparam Heading caption="C Sequence" Endheading param seq caption="Sequence" enum="1""2""3" default=0 endparam param p2 caption="Factor 1" default=(0.0,0.0) endparam param p3 caption="Factor 2" default=(1.0,0.0) endparam param p4 caption="Factor 3" default=(0.0,0.0) endparam param p5 caption="Factor 4" default=(1.0,0.0) endparam func fnc1 caption="Func. Factor1" default=ident() endfunc func fnc2 caption="Func. Factor2" default=ident() endfunc Heading caption="Parameters" Endheading param p1 caption="Hyper Param" default=(0.0,0.0) endparam param p6 caption="Power" default=(1.0,0.0) endparam param p7 caption="Param. Add" default=(0.0,0.0) endparam param p8 caption="Param. Mult." default=(1.0,0.0) endparam Heading caption="Functions" Endheading func fn1 caption="Function Z" default=ident() endfunc func fn2 caption="Function C" default=ident() endfunc param version caption="Version" default=1.1 visible=false endparam Switch: Type="SlopeHyperIkenaga" bailout=@bailout @seed=#pixel select=@select seq=@seq flavor=@flavor p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 p8=@p8 p9=@p9 p10=@p10 p11=@p11 fl1=@fl1 fl2=@fl2 fnc1=@fnc1 fnc2=@fnc2 fn1=@fn1 fn2=@fn2 mode=@switchmode switchmode=@mode version=@version offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp } SlopeHyperMandelbrot2 { ;Original formula by Jim Muth -2013- ;Modified and amplified by Andrea Spinozzi(2013) ;Hyper Mandelbrot: ; a=a^2-b^2+c ; b=2*a*b ; z=a+b ;Version 1.1=Fixed offset for Slope ;Version 1.2=Fixed Flavor Global: complex rota[2] complex rota[0]=(0,1)^(@rota0/90) complex rota[1]=(0,1)^(@rota1/90) Init: z1=(0.0,0.0) z2=(0.0,0.0) z3=(0.0,0.0) if @version==1.0 c1=(real(#pixel)*rota[0])+flip(imag(#pixel)*rota[1]) c2=c1+@offset c3=c1+flip(@offset) a1=(real(p1)*rota[0])+flip(imag(p1)*rota[1]) a2=a1 a3=a1 b1=(real(p2)*rota[0])+flip(imag(p2)*rota[1]) b2=b1 b3=b1 if @mode=="Julia" ; Julia mode z1=0.0 ;real(#pixel)+flip(imag(#pixel)) z2=0.0 ;z1+@offset z3=0.0 ;z1+flip(@offset) c1=(real(@startseed)*rota[0])+flip(imag(@startseed)*rota[1]) c2=c1 c3=c1 if @juliamethod==0 a1=(real(#pixel)*rota[0])+flip(imag(#pixel)*rota[1]) a2=a1+@offset a3=a1+flip(@offset) b1=p2 b2=b1 b3=b1 elseif @juliamethod==1 a1=p1 a2=a1 a3=a1 b1=(real(#pixel)*rota[0])+flip(imag(#pixel)*rota[1]) b2=b1+@offset b3=b1+flip(@offset) elseif @juliamethod==2 a1=(real(#pixel)*rota[0])+flip(imag(#pixel)*rota[1]) a2=a1+@offset a3=a1+flip(@offset) b1=(real(#pixel)*rota[0])+flip(imag(#pixel)*rota[1]) b2=b1+@offset b3=b1+flip(@offset) endif endif else c1=(real(#pixel)*rota[0])+flip(imag(#pixel)*rota[1]) c2=(real(#pixel+@offset)*rota[0])+flip(imag(#pixel+@offset)*rota[1]) c3=(real(#pixel+flip(@offset))*rota[0])+flip(imag(#pixel+flip(@offset))*rota[1]) a1=(real(p1)*rota[0])+flip(imag(p1)*rota[1]) a2=a1 a3=a1 b1=(real(p2)*rota[0])+flip(imag(p2)*rota[1]) b2=b1 b3=b1 if @mode=="Julia" ; Julia mode z1=0.0 ;real(#pixel)+flip(imag(#pixel)) z2=0.0 ;z1+@offset z3=0.0 ;z1+flip(@offset) c1=(real(@startseed)*rota[0])+flip(imag(@startseed)*rota[1]) c2=c1 c3=c1 if @juliamethod==0 a1=(real(#pixel)*rota[0])+flip(imag(#pixel)*rota[1]) a2=(real(#pixel+@offset)*rota[0])+flip(imag(#pixel+@offset)*rota[1]) a3=(real(#pixel+flip(@offset))*rota[0])+flip(imag(#pixel+flip(@offset))*rota[1]) b1=p2 b2=b1 b3=b1 elseif @juliamethod==1 a1=p1 a2=a1 a3=a1 b1=(real(#pixel)*rota[0])+flip(imag(#pixel)*rota[1]) b2=(real(#pixel+@offset)*rota[0])+flip(imag(#pixel+@offset)*rota[1]) b3=(real(#pixel+flip(@offset))*rota[0])+flip(imag(#pixel+flip(@offset))*rota[1]) elseif @juliamethod==2 a1=(real(#pixel)*rota[0])+flip(imag(#pixel)*rota[1]) a2=(real(#pixel+@offset)*rota[0])+flip(imag(#pixel+@offset)*rota[1]) a3=(real(#pixel+flip(@offset))*rota[0])+flip(imag(#pixel+flip(@offset))*rota[1]) b1=(real(#pixel)*rota[0])+flip(imag(#pixel)*rota[1]) b2=(real(#pixel+@offset)*rota[0])+flip(imag(#pixel+@offset)*rota[1]) b3=(real(#pixel+flip(@offset))*rota[0])+flip(imag(#pixel+flip(@offset))*rota[1]) endif endif endif ;;; slope stuff int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 int modby = @seq+2 int iter = 0 cc1=(0.0,0.0) cc2=(0.0,0.0) cc3=(0.0,0.0) Loop: int method = iter%modby if method==0 cc1 = @fn1c(c1+@p7)*@p8 cc2 = @fn1c(c2+@p7)*@p8 cc3 = @fn1c(c3+@p7)*@p8 else cc1 = @fn2c(c1-@p9)*@p10 cc2 = @fn2c(c2-@p9)*@p10 cc3 = @fn2c(c3-@p9)*@p10 endif q1=fn3(fn1(a1)-fn1(b1))+fn2(cc1) q2=fn3(fn1(a2)-fn1(b2))+fn2(cc2) q3=fn3(fn1(a3)-fn1(b3))+fn2(cc3) b1=(p3+2)*a1*b1+p4 b2=(p3+2)*a2*b2+p4 b3=(p3+2)*a3*b3+p4 if @addC==0 b1=b1*p6 b2=b2*p6 b3=b3*p6 elseif @addC==1 b1=cc1+b1*p6 b2=cc2+b2*p6 b3=cc3+b3*p6 elseif @addc==2 b1=cc1-b1*p6 b2=cc2-b2*p6 b3=cc3-b3*p6 endif a1=fn4(q1)^@p5 a2=fn4(q2)^@p5 a3=fn4(q3)^@p5 if @flavor==0 z1=@fnfl1(a1)+@fnfl2(b1) z2=@fnfl1(a2)+@fnfl2(b2) z3=@fnfl1(a3)+@fnfl2(b3) elseif @flavor==1 z1=@fnfl1(a1)-@fnfl2(b1) z2=@fnfl1(a2)-@fnfl2(b2) z3=@fnfl1(a3)-@fnfl2(b3) endif ;-----------------------------Slope Section--------------------------------- if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if (@version<=1.1) if ( @bailout < |z1| ||\ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else z = z1 endif if ( @bailout < |z1| ) ; we're done done = 0 endif endif if (@version==1.2) if ( @bailout < |a1|+|b1| ||\ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else z = z1 endif if ( @bailout < |a1|+|b1| ) ; we're done done = 0 endif endif iter=iter+1 Bailout: done > 0 Default: title="SlopeHyperMandelbrot2" center=(0.0,0.0) maxiter=500 method=multipass periodicity=0 Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="current Mode" default=0 enum="Mandelbrot""Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot""Julia" visible=false endparam Heading caption="Rotations and Switch" Endheading param @rota0 caption="Rotation1" default=0 endparam param @rota1 caption="Rotation2" default=0 endparam param juliamethod caption="Switch Method" enum="a=Pixel|b=p2""a=p1|b=Pixel""a=Pixel|b=Pixel" default=0 endparam param @startseed caption="Seed Value" default=(0.0,0.0) visible=(@mode==1) endparam Heading caption="Bailout" Endheading param bailout caption="Bailout" default=64.0 min=0.0 endparam param flavor caption="Flavor Method" enum="fn(a)+fn(b)""fn(a)-fn(b)" default=0 endparam func fnfl1 caption="Function Fl. a" default=ident() endfunc func fnfl2 caption="Function Fl. b" default=ident() endfunc Heading caption="Slope Parameters" Endheading float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." endparam param zscale2 caption="Height Post-Scale" default=0.01 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." endparam Heading caption="Parameters" Endheading param AddC caption="Add C" enum="b""c+b""c-b" default=0 endparam param p1 caption="Init a" default=(0.0,0.0) endparam param p2 caption="Init b" default=(0.0,0.0) endparam param p3 caption="Hyper Param.1" default=(0.0,0.0) endparam param p4 caption="Hyper Param.2" default=(0.0,0.0) endparam param p6 caption="Hyper Param.3" default=(1.0,0.0) endparam param p5 caption="Global Exp." default=(1.0,0.0) endparam Heading caption = "C Sequence" Endheading param seq caption = "Sequence" enum = "1""2""3" default = 0 endparam param p7 caption = "Factor 1" default = (0.0,0.0) endparam param p8 caption = "Factor 2" default = (1.0,0.0) endparam param p9 caption = "Factor 3" default = (0.0,0.0) endparam param p10 caption = "Factor 4" default = (1.0,0.0) endparam func fn1c caption = "Func. Factor 1" default = ident() endfunc func fn2c caption = "Func. Factor 2" default = ident() endfunc Heading caption="Functions" Endheading func fn1 caption="Function Z" default=sqr() endfunc func fn2 caption="Function C" default=ident() endfunc func fn3 caption="Over Func.1" default=ident() endfunc func fn4 caption="Over Func.2" default=ident() endfunc param version caption = "Version" default= 1.2 visible = false Endparam Switch: type="SlopeHyperMandelbrot2" bailout=@bailout @startseed=#pixel juliamethod=@juliamethod flavor=@flavor addc=@addc seq=@seq fnfl1=@fnfl1 fnfl2=@fnfl2 fn1c=@fn1c fn2c=@fn2c fn1=@fn1 fn2=@fn2 fn3=@fn3 fn4=@fn4 p1=@p1 p2=@p2 p3=@p3 p4=@p4 p5=@p5 p6=@p6 p7=@p7 p8=@p8 p9=@p9 p10=@p10 rota0=@rota0 rota1=@rota1 mode=@switchmode switchmode=@mode version=@version offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp } SlopeHyperMath { ;HyperComplex formula based on Z,CZ W,CW U,CU, it presents 20 differents formulae ;from the orgform collection, every set is structured to work with the hyper complex ;structure. ;So Z and C are initialized and looped in HYPERCOMPLEX structure and are used to create all sets. ;In this way every sets can be transformed in hypercomplex. ;The starting sets are the same of the basic formule in the orgform(with hyper param setted to 0) ;but we have two hyper parameters for Mandelbrot Mode and add two corrispectives ;Julia Dimension hyper parameters in Julia Mode. ;All sets are amplified with functions and parameters. ;Sets like as Xerreal, Bagula Magnet, Hydra Brot and Magnet Cplx Spirals allows to change the normal mode. ;For example "Magnet cplx spirals" that is the formula in Magnet.frm into the Orgform collection ;presents 3 variations of sets inside that can be changed with the operator. ;Hydra Brot allow to add a Distortion Section with the possibility to change many parameters. ;And so on... ;Extra Parameters section instead allow to change the mix of the hyper complex variables in the loop, ;In general a normal Hyper complex presents Z(RE,IM) dissected into two variables "a" and "b" , instead ;this formula adds also "ua" and "ub" and return the last Z, so the extra parameters section ;allows to add again C for a,b,ua,ub and play with many parameters and function, this result ;will be used to create all sets, if we keep extra parameters FALSE, Z will remain in default. ;There's a section to change also the Scenario method both for Z and C sequence. ;3R Dimension is a section that allow to rotate the fractal in 3R dimensions. ;Two global functions one for Z and one for C. ;There's also the Flavor Section if the user want to change the combined color algorithm. ;Compound with the scenario method from formulae of Mrs. Susan Chambless and ;Slope method from formulae of Mr. Ronald Barnett. ;Version 1.1=Fixed flavor. ;Andrea Spinozzi(2014) Init: z1=z2=z3=(0.0,0.0) ;-----------------Init Rcl and Precogna parameters-------------------------- r_rcl=real(@rcl) i_rcl=imag(@rcl) prea1=prea2=prea3=preb1=preb2=preb3=@pre preua1=preua2=preua3=preub1=preub2=preub3=@pre ;------------------Init second Z-------------------------------------------- xa1=xa2=xa3=xb1=xb2=xb3=xua1=xua2=xua3=xub1=xub2=xub3=0.0 ya1=ya2=ya3=yb1=yb2=yb3=yua1=yua2=yua3=yub1=yub2=yub3=0.0 wa1=wa2=wa3=wb1=wb2=wb3=wua1=wua2=wua3=wub1=wub2=wub3=0.0 tempa1=tempa2=tempa3=tempb1=tempb2=tempb3=0.0 tempua1=tempua2=tempua3=tempub1=tempub2=tempub3=0.0 zpa1=zpa2=zpa3=zpb1=zpb2=zpb3=0.0 zpua1=zpua2=zpua3=zpub1=zpub2=zpub3=0.0 zda1=zda2=zda3=zdb1=zdb2=zdb3=0.0 zdua1=zdua2=zdua3=zdub1=zdub2=zdub3=0.0 ;----------------Mandelbrot Mode, 3R dimension and hyper parameters--------- zz1=@rd1*real(#pixel)+flip(imag(#pixel)*@rd2) zz2=@rd1*real(#pixel+@offset)+flip(imag(#pixel+@offset)*@rd2) zz3=@rd1*real(#pixel+flip(@offset))+flip(imag(#pixel+flip(@offset))*@rd2) cz1=@rd3+@rd2*real(#pixel)+flip(imag(#pixel)*@rd1) cz2=@rd3+@rd2*real(#pixel+@offset)+flip(imag(#pixel+@offset)*@rd1) cz3=@rd3+@rd2*real(#pixel+flip(@offset))+flip(imag(#pixel+flip(@offset))*@rd1) w1=w2=w3=cw1=cw2=cw3=p1 u1=u2=u3=cu1=cu2=cu3=p2 ;----------------Julia Mode, 3R dimension and hyper parameters-------------- if (@mode=="Julia") zz1=@rd1*real(#pixel)+flip(imag(#pixel)*@rd2) zz2=@rd1*real(#pixel+@offset)+flip(imag(#pixel+@offset)*@rd2) zz3=@rd1*real(#pixel+flip(@offset))+flip(imag(#pixel+flip(@offset))*@rd2) cz1=@rd3+@rd2*real(@seed)+flip(imag(@seed)*@rd1) cz2=@rd3+@rd2*real(@seed)+flip(imag(@seed)*@rd1) cz3=@rd3+@rd2*real(@seed)+flip(imag(@seed)*@rd1) w1=p3 w2=p3 w3=p3 u1=p4 u2=p4 u3=p4 cw1=p1 cw2=p1 cw3=p1 cu1=p2 cu2=p2 cu3=p2 endif ;---------Define the initialization of the HyperComplex variables------------ czr1=real(cz1) czr2=real(cz2) czr3=real(cz3) czi1=imag(cz1) czi2=imag(cz2) czi3=imag(cz3) cwr1=real(cw1) cwr2=real(cw2) cwr3=real(cw3) cwi1=imag(cw1) cwi2=imag(cw2) cwi3=imag(cw3) cur1=real(cu1) cur2=real(cu2) cur3=real(cu3) cui1=imag(cu1) cui2=imag(cu2) cui3=imag(cu3) ca1= czr1 - cwi1 + flip( czi1 + cwr1 ) ca2= czr2 - cwi2 + flip( czi2 + cwr2 ) ca3= czr3 - cwi3 + flip( czi3 + cwr3 ) cb1= czr1 + cwi1 + flip( czi1 - cwr1 ) cb2= czr2 + cwi2 + flip( czi2 - cwr2 ) cb3= czr3 + cwi3 + flip( czi3 - cwr3 ) cua1= czr1 - cui1 + flip( czi1 + cur1 ) cua2= czr2 - cui2 + flip( czi2 + cur2 ) cua3= czr3 - cui3 + flip( czi3 + cur3 ) cub1= czr1 + cui1 + flip( czi1 - cur1 ) cub2= czr2 + cui2 + flip( czi2 - cur2 ) cub3= czr3 + cui3 + flip( czi3 - cur3 ) ;-------------------------- slope variables---------------------------------- int done = 2 float e1 = 0.0; potentials float e2 = 0.0 float e3 = 0.0 float vx = 0.0; normal vector float vy = 0.0 float vz = 0.0 float vd = 0.0 float d1 = 0.0; distances float d2 = 0.0 float d3 = 0.0 float s1 = 1.0e20; smallest distances float s2 = 1.0e20 float s3 = 1.0e20 float iterexp1 = 0.0 float iterexp2 = 0.0 float iterexp3 = 0.0 ;------------------------Scenario mode-------------------------------------- int modby=@seq+2 int iter=0 int iter1=0 Loop: int method=iter%modby bool scenario=false if ( @seq1 == 1 ) ; First scenario scenario = true elseif ( @seq1 == 2) ; Second scenario scenario = false elseif ( iter1 % @modBy < @modCmp ); Modulation scenario = true endif a1=real(zz1)-imag(w1)+flip(imag(zz1)+real(w1)) a2=real(zz2)-imag(w2)+flip(imag(zz2)+real(w2)) a3=real(zz3)-imag(w3)+flip(imag(zz3)+real(w3)) b1=real(zz1)+imag(w1)+flip(imag(zz1)-real(w1)) b2=real(zz2)+imag(w2)+flip(imag(zz2)-real(w2)) b3=real(zz3)+imag(w3)+flip(imag(zz3)-real(w3)) ua1=real(zz1)-imag(u1)+flip(imag(zz1)+real(u1)) ua2=real(zz2)-imag(u2)+flip(imag(zz2)+real(u2)) ua3=real(zz3)-imag(u3)+flip(imag(zz3)+real(u3)) ub1=real(zz1)+imag(u1)+flip(imag(zz1)-real(u1)) ub2=real(zz2)+imag(u2)+flip(imag(zz2)-real(u2)) ub3=real(zz3)+imag(u3)+flip(imag(zz3)-real(u3)) appca1=@fnc(ca1) appca2=@fnc(ca2) appca3=@fnc(ca3) appcb1=@fnc(cb1) appcb2=@fnc(cb2) appcb3=@fnc(cb3) appcua1=@fnc(cua1) appcua2=@fnc(cua2) appcua3=@fnc(cua3) appcub1=@fnc(cub1) appcub2=@fnc(cub2) appcub3=@fnc(cub3) a1=@fnz(a1) a2=@fnz(a2) a3=@fnz(a3) b1=@fnz(b1) b2=@fnz(b2) b3=@fnz(b3) ua1=@fnz(ua1) ua2=@fnz(ua2) ua3=@fnz(ua3) ub1=@fnz(ub1) ub2=@fnz(ub2) ub3=@fnz(ub3) if (@ablescenario==true) ;---------Define the Z scenario----------------- if (scenario == true) a1=(@fnsce(a1)^@sce2)*@sce1 a2=(@fnsce(a2)^@sce2)*@sce1 a3=(@fnsce(a3)^@sce2)*@sce1 b1=(@fnsce(b1)^@sce2)*@sce1 b2=(@fnsce(b2)^@sce2)*@sce1 b3=(@fnsce(b3)^@sce2)*@sce1 ua1=(@fnsceu(ua1)^@sceu2)*@sceu1 ua2=(@fnsceu(ua2)^@sceu2)*@sceu1 ua3=(@fnsceu(ua3)^@sceu2)*@sceu1 ub1=(@fnsceu(ub1)^@sceu2)*@sceu1 ub2=(@fnsceu(ub2)^@sceu2)*@sceu1 ub3=(@fnsceu(ub3)^@sceu2)*@sceu1 else a1=(@fnsce1(a1)^@sce4)*@sce3 a2=(@fnsce1(a2)^@sce4)*@sce3 a3=(@fnsce1(a3)^@sce4)*@sce3 b1=(@fnsce1(b1)^@sce4)*@sce3 b2=(@fnsce1(b2)^@sce4)*@sce3 b3=(@fnsce1(b3)^@sce4)*@sce3 ua1=(@fnsceu1(ua1)^@sceu4)*@sceu3 ua2=(@fnsceu1(ua2)^@sceu4)*@sceu3 ua3=(@fnsceu1(ua3)^@sceu4)*@sceu3 ub1=(@fnsceu1(ub1)^@sceu4)*@sceu3 ub2=(@fnsceu1(ub2)^@sceu4)*@sceu3 ub3=(@fnsceu1(ub3)^@sceu4)*@sceu3 endif else a1=a1 a2=a2 a3=a3 b1=b1 b2=b2 b3=b3 ua1=ua1 ua2=ua2 ua3=ua3 ub1=ub1 ub2=ub2 ub3=ub3 endif if (@ableseq==true) ;--------Define C sequence--------------------- if (method==0) appca1=@fnfact1(appca1+@factor)*@factor2 appca2=@fnfact1(appca2+@factor)*@factor2 appca3=@fnfact1(appca3+@factor)*@factor2 appcb1=@fnfact1(appcb1+@factor)*@factor2 appcb2=@fnfact1(appcb2+@factor)*@factor2 appcb3=@fnfact1(appcb3+@factor)*@factor2 appcua1=@fnfact1(appcua1+@factor)*@factor2 appcua2=@fnfact1(appcua2+@factor)*@factor2 appcua3=@fnfact1(appcua3+@factor)*@factor2 appcub1=@fnfact1(appcub1+@factor)*@factor2 appcub2=@fnfact1(appcub2+@factor)*@factor2 appcub3=@fnfact1(appcub3+@factor)*@factor2 else appca1=@fnfact2(appca1-@factor1)*@factor3 appca2=@fnfact2(appca2-@factor1)*@factor3 appca3=@fnfact2(appca3-@factor1)*@factor3 appcb1=@fnfact2(appcb1-@factor1)*@factor3 appcb2=@fnfact2(appcb2-@factor1)*@factor3 appcb3=@fnfact2(appcb3-@factor1)*@factor3 appcua1=@fnfact2(appcua1-@factor1)*@factor3 appcua2=@fnfact2(appcua2-@factor1)*@factor3 appcua3=@fnfact2(appcua3-@factor1)*@factor3 appcub1=@fnfact2(appcub1-@factor1)*@factor3 appcub2=@fnfact2(appcub2-@factor1)*@factor3 appcub3=@fnfact2(appcub3-@factor1)*@factor3 endif else appca1=appca1 appca2=appca2 appca3=appca3 appcb1=appcb1 appcb2=appcb2 appcb3=appcb3 appcua1=appcua1 appcua2=appcua2 appcua3=appcua3 appcub1=appcub1 appcub2=appcub2 appcub3=appcub3 endif ;---------------Mix Z with C and return Z--------------------------------- if (@extramix==true) mixa1=a1 mixa2=a2 mixa3=a3 mixb1=b1 mixb2=b2 mixb3=b3 mixua1=ua1 mixua2=ua2 mixua3=ua3 mixub1=ub1 mixub2=ub2 mixub3=ub3 mixappca1=appca1 mixappca2=appca2 mixappca3=appca3 mixappcb1=appcb1 mixappcb2=appcb2 mixappcb3=appcb3 mixappcua1=appcua1 mixappcua2=appcua2 mixappcua3=appcua3 mixappcub1=appcub1 mixappcub2=appcub2 mixappcub3=appcub3 mixa1=@mixab1+(@fnmixab(mixa1)^@mixab2)*@mixab3 mixa2=@mixab1+(@fnmixab(mixa2)^@mixab2)*@mixab3 mixa3=@mixab1+(@fnmixab(mixa3)^@mixab2)*@mixab3 mixb1=@mixab1+(@fnmixab(mixb1)^@mixab2)*@mixab3 mixb2=@mixab1+(@fnmixab(mixb2)^@mixab2)*@mixab3 mixb3=@mixab1+(@fnmixab(mixb3)^@mixab2)*@mixab3 mixua1=@mixuab1+(@fnmixuab(mixua1)^@mixuab2)*@mixuab3 mixua2=@mixuab1+(@fnmixuab(mixua2)^@mixuab2)*@mixuab3 mixua3=@mixuab1+(@fnmixuab(mixua3)^@mixuab2)*@mixuab3 mixub1=@mixuab1+(@fnmixuab(mixub1)^@mixuab2)*@mixuab3 mixub2=@mixuab1+(@fnmixuab(mixub2)^@mixuab2)*@mixuab3 mixub3=@mixuab1+(@fnmixuab(mixub3)^@mixuab2)*@mixuab3 mixappca1=@mixcab1+(@fnmixcab(mixappca1)^@mixcab2)*@mixcab3 mixappca2=@mixcab1+(@fnmixcab(mixappca2)^@mixcab2)*@mixcab3 mixappca3=@mixcab1+(@fnmixcab(mixappca3)^@mixcab2)*@mixcab3 mixappcb1=@mixcab1+(@fnmixcab(mixappcb1)^@mixcab2)*@mixcab3 mixappcb2=@mixcab1+(@fnmixcab(mixappcb2)^@mixcab2)*@mixcab3 mixappcb3=@mixcab1+(@fnmixcab(mixappcb3)^@mixcab2)*@mixcab3 mixappcua1=@mixcuab1+(@fnmixcuab(mixappcua1)^@mixcuab2)*@mixcuab3 mixappcua2=@mixcuab1+(@fnmixcuab(mixappcua2)^@mixcuab2)*@mixcuab3 mixappcua3=@mixcuab1+(@fnmixcuab(mixappcua3)^@mixcuab2)*@mixcuab3 mixappcub1=@mixcuab1+(@fnmixcuab(mixappcub1)^@mixcuab2)*@mixcuab3 mixappcub2=@mixcuab1+(@fnmixcuab(mixappcub2)^@mixcuab2)*@mixcuab3 mixappcub3=@mixcuab1+(@fnmixcuab(mixappcub3)^@mixcuab2)*@mixcuab3 if @mixa==0 ;---------------Normal mode----------------------------------- a1=mixa1 a2=mixa2 a3=mixa3 elseif @mixa==1 ;-------------(+C) a1=mixa1+mixappca1 a2=mixa2+mixappca2 a3=mixa3+mixappca3 elseif @mixa==2 ;-------------(-C) a1=mixa1-mixappca1 a2=mixa2-mixappca2 a3=mixa3-mixappca3 elseif @mixa==3 ;-------------(*C) a1=mixa1*mixappca1 a2=mixa2*mixappca2 a3=mixa3*mixappca3 elseif @mixa==4 ;-------------(/C) a1=mixa1/mixappca1 a2=mixa2/mixappca2 a3=mixa3/mixappca3 elseif @mixa==5 ;-------------(C/) a1=mixappca1/mixa1 a2=mixappca2/mixa2 a3=mixappca3/mixa3 endif if @mixb==0 ;---------------Normal mode----------------------------------- b1=mixb1 b2=mixb2 b3=mixb3 elseif @mixb==1 ;-------------(+C) b1=mixb1+mixappcb1 b2=mixb2+mixappcb2 b3=mixb3+mixappcb3 elseif @mixb==2 ;-------------(-C) b1=mixb1-mixappcb1 b2=mixb2-mixappcb2 b3=mixb3-mixappcb3 elseif @mixb==3 ;-------------(*C) b1=mixb1*mixappcb1 b2=mixb2*mixappcb2 b3=mixb3*mixappcb3 elseif @mixb==4 ;-------------(/C) b1=mixb1/mixappcb1 b2=mixb2/mixappcb2 b3=mixb3/mixappcb3 elseif @mixa==5 ;-------------(C/) b1=mixappcb1/mixb1 b2=mixappcb2/mixb2 b3=mixappcb3/mixb3 endif if @mixua==0 ;---------------Normal mode---------------------------------- ua1=mixua1 ua2=mixua2 ua3=mixua3 elseif @mixua==1 ;-------------(+C) ua1=mixua1+mixappcua1 ua2=mixua2+mixappcua2 ua3=mixua3+mixappcua3 elseif @mixua==2 ;-------------(-C) ua1=mixua1-mixappcua1 ua2=mixua2-mixappcua2 ua3=mixua3-mixappcua3 elseif @mixua==3 ;-------------(*C) ua1=mixua1*mixappcua1 ua2=mixua2*mixappcua2 ua3=mixua3*mixappcua3 elseif @mixua==4 ;-------------(/C) ua1=mixua1/mixappcua1 ua2=mixua2/mixappcua2 ua3=mixua3/mixappcua3 elseif @mixa==5 ;--------------(C/) ua1=mixappcua1/mixua1 ua2=mixappcua2/mixua2 ua3=mixappcua3/mixua3 endif if @mixub==0 ;---------------Normal mode---------------------------------- ub1=mixub1 ub2=mixub2 ub3=mixub3 elseif @mixub==1 ;-------------(+C) ub1=mixub1+mixappcub1 ub2=mixub2+mixappcub2 ub3=mixub3+mixappcub3 elseif @mixub==2 ;-------------(-C) ub1=mixub1-mixappcub1 ub2=mixub2-mixappcub2 ub3=mixub3-mixappcub3 elseif @mixub==3 ;-------------(*C) ub1=mixub1*mixappcub1 ub2=mixub2*mixappcub2 ub3=mixub3*mixappcub3 elseif @mixub==4 ;-------------(/C) ub1=mixub1/mixappcub1 ub2=mixub2/mixappcub2 ub3=mixub3/mixappcub3 elseif @mixa==5 ;--------------(C/) ub1=mixappcub1/mixub1 ub2=mixappcub2/mixub2 ub3=mixappcub3/mixub3 endif else a1=a1 a2=a2 a3=a3 b1=b1 b2=b2 b3=b3 ua1=ua1 ua2=ua2 ua3=ua3 ub1=ub1 ub2=ub2 ub3=ub3 appca1=appca1 appca2=appca2 appca3=appca3 appcb1=appcb1 appcb2=appcb2 appcb3=appcb3 appcua1=appcua1 appcua2=appcua2 appcua3=appcua3 appcub1=appcub1 appcub2=appcub2 appcub3=appcub3 endif ;------------Now use the returned Z and starts Sets------------------------- if (@formula==0) ;-----------------------------Mandelbrot------------------- a1=@fnm(a1)^@expm+@parm/@fnm1(a1)+@fnmc(appca1) a2=@fnm(a2)^@expm+@parm/@fnm1(a2)+@fnmc(appca2) a3=@fnm(a3)^@expm+@parm/@fnm1(a3)+@fnmc(appca3) b1=@fnm(b1)^@expm+@parm/@fnm1(b1)+@fnmc(appcb1) b2=@fnm(b2)^@expm+@parm/@fnm1(b2)+@fnmc(appcb2) b3=@fnm(b3)^@expm+@parm/@fnm1(b3)+@fnmc(appcb3) ua1=@fnm(ua1)^@expm+@parm/@fnm1(ua1)+@fnmc(appcua1) ua2=@fnm(ua2)^@expm+@parm/@fnm1(ua2)+@fnmc(appcua2) ua3=@fnm(ua3)^@expm+@parm/@fnm1(ua3)+@fnmc(appcua3) ub1=@fnm(ub1)^@expm+@parm/@fnm1(ub1)+@fnmc(appcub1) ub2=@fnm(ub2)^@expm+@parm/@fnm1(ub2)+@fnmc(appcub2) ub3=@fnm(ub3)^@expm+@parm/@fnm1(ub3)+@fnmc(appcub3) elseif (@formula==1) ;----------------DAFRM----_d.frm(DAFRM11)-------------- ax1=flip(appca1+@fndaf(2*@daf1/3*@fndaf1(a1)-@fndaf2(a1)/@daf2)) ax2=flip(appca2+@fndaf(2*@daf1/3*@fndaf1(a2)-@fndaf2(a2)/@daf2)) ax3=flip(appca3+@fndaf(2*@daf1/3*@fndaf1(a3)-@fndaf2(a3)/@daf2)) bx1=flip(appcb1+@fndaf(2*@daf1/3*@fndaf1(b1)-@fndaf2(b1)/@daf2)) bx2=flip(appcb2+@fndaf(2*@daf1/3*@fndaf1(b2)-@fndaf2(b2)/@daf2)) bx3=flip(appcb3+@fndaf(2*@daf1/3*@fndaf1(b3)-@fndaf2(b3)/@daf2)) uax1=flip(appcua1+@fndaf(2*@daf1/3*@fndaf1(ua1)-@fndaf2(ua1)/@daf2)) uax2=flip(appcua2+@fndaf(2*@daf1/3*@fndaf1(ua2)-@fndaf2(ua2)/@daf2)) uax3=flip(appcua3+@fndaf(2*@daf1/3*@fndaf1(ua3)-@fndaf2(ua3)/@daf2)) ubx1=flip(appcub1+@fndaf(2*@daf1/3*@fndaf1(ub1)-@fndaf2(ub1)/@daf2)) ubx2=flip(appcub2+@fndaf(2*@daf1/3*@fndaf1(ub2)-@fndaf2(ub2)/@daf2)) ubx3=flip(appcub3+@fndaf(2*@daf1/3*@fndaf1(ub3)-@fndaf2(ub3)/@daf2)) a1=@fndaf4(ax1)*@fndaf3(a1+@daf3)+@fndaf5(appca1) a2=@fndaf4(ax2)*@fndaf3(a2+@daf3)+@fndaf5(appca2) a3=@fndaf4(ax3)*@fndaf3(a3+@daf3)+@fndaf5(appca3) b1=@fndaf4(bx1)*@fndaf3(b1+@daf3)+@fndaf5(appcb1) b2=@fndaf4(bx2)*@fndaf3(b2+@daf3)+@fndaf5(appcb2) b3=@fndaf4(bx3)*@fndaf3(b3+@daf3)+@fndaf5(appcb3) ua1=@fndaf4(uax1)*@fndaf3(ua1+@daf3)+@fndaf5(appcua1) ua2=@fndaf4(uax2)*@fndaf3(ua2+@daf3)+@fndaf5(appcua2) ua3=@fndaf4(uax3)*@fndaf3(ua3+@daf3)+@fndaf5(appcua3) ub1=@fndaf4(ubx1)*@fndaf3(ub1+@daf3)+@fndaf5(appcub1) ub2=@fndaf4(ubx2)*@fndaf3(ub2+@daf3)+@fndaf5(appcub2) ub3=@fndaf4(ubx3)*@fndaf3(ub3+@daf3)+@fndaf5(appcub3) elseif (@formula==2) ;--------------Variant RCL---RCL.frm------------------- rcla1=@fnrcl(a1)^@exrcl-r_rcl^2-@fnrcl1(b1)^@exrcl-i_rcl^2 rcla2=@fnrcl(a2)^@exrcl-r_rcl^2-@fnrcl1(b2)^@exrcl-i_rcl^2 rcla3=@fnrcl(a3)^@exrcl-r_rcl^2-@fnrcl1(b3)^@exrcl-i_rcl^2 rclua1=@fnrcl(ua1)^@exrcl-r_rcl^2-@fnrcl1(ub1)^@exrcl-i_rcl^2 rclua2=@fnrcl(ua2)^@exrcl-r_rcl^2-@fnrcl1(ub2)^@exrcl-i_rcl^2 rclua3=@fnrcl(ua3)^@exrcl-r_rcl^2-@fnrcl1(ub3)^@exrcl-i_rcl^2 rclb1=2*a1*b1 rclb2=2*a2*b2 rclb3=2*a3*b3 rclub1=2*ua1*ub1 rclub2=2*ua2*ub2 rclub3=2*ua3*ub3 a1=@fnrcl2(rcla1+@parcl)+@fnrcl3(appca1)*@parcl1 a2=@fnrcl2(rcla2+@parcl)+@fnrcl3(appca2)*@parcl1 a3=@fnrcl2(rcla3+@parcl)+@fnrcl3(appca3)*@parcl1 ua1=@fnrcl2(rclua1+@parcl)+@fnrcl3(appcua1)*@parcl1 ua2=@fnrcl2(rclua2+@parcl)+@fnrcl3(appcua2)*@parcl1 ua3=@fnrcl2(rclua3+@parcl)+@fnrcl3(appcua3)*@parcl1 b1=@fnrcl2(rclb1+@parcl)+@fnrcl3(appcb1)*@parcl1 b2=@fnrcl2(rclb2+@parcl)+@fnrcl3(appcb2)*@parcl1 b3=@fnrcl2(rclb3+@parcl)+@fnrcl3(appcb3)*@parcl1 ub1=@fnrcl2(rclub1+@parcl)+@fnrcl3(appcub1)*@parcl1 ub2=@fnrcl2(rclub2+@parcl)+@fnrcl3(appcub2)*@parcl1 ub3=@fnrcl2(rclub3+@parcl)+@fnrcl3(appcub3)*@parcl1 elseif (@formula==3) ;------------Precogna--Fract_art.frm------------------- pa1=sqr(prea1)*prea1+@fnpre(a1)^@expre+@fnpre2(appca1) pa2=sqr(prea2)*prea2+@fnpre(a2)^@expre+@fnpre2(appca2) pa3=sqr(prea3)*prea3+@fnpre(a3)^@expre+@fnpre2(appca3) pb1=sqr(preb1)*preb1+@fnpre(b1)^@expre+@fnpre2(appcb1) pb2=sqr(preb2)*preb2+@fnpre(b2)^@expre+@fnpre2(appcb2) pb3=sqr(preb3)*preb3+@fnpre(b3)^@expre+@fnpre2(appcb3) pua1=sqr(preua1)*preua1+@fnpre(ua1)^@expre+@fnpre2(appcua1) pua2=sqr(preua2)*preua2+@fnpre(ua2)^@expre+@fnpre2(appcua2) pua3=sqr(preua3)*preua3+@fnpre(ua3)^@expre+@fnpre2(appcua3) pub1=sqr(preub1)*preub1+@fnpre(ub1)^@expre+@fnpre2(appcub1) pub2=sqr(preub2)*preub2+@fnpre(ub2)^@expre+@fnpre2(appcub2) pub3=sqr(preub3)*preub3+@fnpre(ub3)^@expre+@fnpre2(appcub3) prea1=a1+@pre1 prea2=a2+@pre1 prea3=a3+@pre1 preb1=b1+@pre1 preb2=b2+@pre1 preb3=b3+@pre1 preua1=ua1+@pre1 preua2=ua2+@pre1 preua3=ua3+@pre1 preub1=ub1+@pre1 preub2=ub2+@pre1 preub3=ub3+@pre1 a1=@fnpre1(pa1) a2=@fnpre1(pa2) a3=@fnpre1(pa3) b1=@fnpre1(pb1) b2=@fnpre1(pb2) b3=@fnpre1(pb3) ua1=@fnpre1(pua1) ua2=@fnpre1(pua2) ua3=@fnpre1(pua3) ub1=@fnpre1(pub1) ub2=@fnpre1(pub2) ub3=@fnpre1(pub3) elseif (@formula==4) ;--------------MandelbrotQud------fotdv1.frm----------- a1=sqr(a1)+(@qud*@fnqud(a1^@exqu))+(@qudr*@fnqud1(a1^@qudi))+(@qudr1*@fnqud2(a1^@qudi1))+@fnqud3(appca1) a2=sqr(a2)+(@qud*@fnqud(a2^@exqu))+(@qudr*@fnqud1(a2^@qudi))+(@qudr1*@fnqud2(a2^@qudi1))+@fnqud3(appca2) a3=sqr(a3)+(@qud*@fnqud(a3^@exqu))+(@qudr*@fnqud1(a3^@qudi))+(@qudr1*@fnqud2(a3^@qudi1))+@fnqud3(appca3) b1=sqr(b1)+(@qud*@fnqud(b1^@exqu))+(@qudr*@fnqud1(b1^@qudi))+(@qudr1*@fnqud2(b1^@qudi1))+@fnqud3(appcb1) b2=sqr(b2)+(@qud*@fnqud(b2^@exqu))+(@qudr*@fnqud1(b2^@qudi))+(@qudr1*@fnqud2(b2^@qudi1))+@fnqud3(appcb2) b3=sqr(b3)+(@qud*@fnqud(b3^@exqu))+(@qudr*@fnqud1(b3^@qudi))+(@qudr1*@fnqud2(b3^@qudi1))+@fnqud3(appcb3) ua1=sqr(ua1)+(@qud*@fnqud(ua1^@exqu))+(@qudr*@fnqud1(ua1^@qudi))+(@qudr1*@fnqud2(ua1^@qudi1))+@fnqud3(appcua1) ua2=sqr(ua2)+(@qud*@fnqud(ua2^@exqu))+(@qudr*@fnqud1(ua2^@qudi))+(@qudr1*@fnqud2(ua2^@qudi1))+@fnqud3(appcua2) ua3=sqr(ua3)+(@qud*@fnqud(ua3^@exqu))+(@qudr*@fnqud1(ua3^@qudi))+(@qudr1*@fnqud2(ua3^@qudi1))+@fnqud3(appcua3) ub1=sqr(ub1)+(@qud*@fnqud(ub1^@exqu))+(@qudr*@fnqud1(ub1^@qudi))+(@qudr1*@fnqud2(ub1^@qudi1))+@fnqud3(appcub1) ub2=sqr(ub2)+(@qud*@fnqud(ub2^@exqu))+(@qudr*@fnqud1(ub2^@qudi))+(@qudr1*@fnqud2(ub2^@qudi1))+@fnqud3(appcub2) ub3=sqr(ub3)+(@qud*@fnqud(ub3^@exqu))+(@qudr*@fnqud1(ub3^@qudi))+(@qudr1*@fnqud2(ub3^@qudi1))+@fnqud3(appcub3) elseif (@formula==5) ;---------------PhonyMandel---pderb.frm---------------- a1=(@fnphom(a1^@exphom)/@exphom-@fnphom1(a1^@exphom1*@phom1)/@exphom1-@fnphom2(a1^@exphom2)/@exphom2+@phom1*@fnphom3(a1)-@phom2)*@fnphom4(appca1) a2=(@fnphom(a2^@exphom)/@exphom-@fnphom1(a2^@exphom1*@phom1)/@exphom1-@fnphom2(a2^@exphom2)/@exphom2+@phom1*@fnphom3(a2)-@phom2)*@fnphom4(appca2) a3=(@fnphom(a3^@exphom)/@exphom-@fnphom1(a3^@exphom1*@phom1)/@exphom1-@fnphom2(a3^@exphom2)/@exphom2+@phom1*@fnphom3(a3)-@phom2)*@fnphom4(appca3) b1=(@fnphom(b1^@exphom)/@exphom-@fnphom1(b1^@exphom1*@phom1)/@exphom1-@fnphom2(b1^@exphom2)/@exphom2+@phom1*@fnphom3(b1)-@phom2)*@fnphom4(appcb1) b2=(@fnphom(b2^@exphom)/@exphom-@fnphom1(b2^@exphom1*@phom1)/@exphom1-@fnphom2(b2^@exphom2)/@exphom2+@phom1*@fnphom3(b2)-@phom2)*@fnphom4(appcb2) b3=(@fnphom(b3^@exphom)/@exphom-@fnphom1(b3^@exphom1*@phom1)/@exphom1-@fnphom2(b3^@exphom2)/@exphom2+@phom1*@fnphom3(b3)-@phom2)*@fnphom4(appcb3) ua1=(@fnphom(ua1^@exphom)/@exphom-@fnphom1(ua1^@exphom1*@phom1)/@exphom1-@fnphom2(ua1^@exphom2)/@exphom2+@phom1*@fnphom3(ua1)-@phom2)*@fnphom4(appcua1) ua2=(@fnphom(ua2^@exphom)/@exphom-@fnphom1(ua2^@exphom1*@phom1)/@exphom1-@fnphom2(ua2^@exphom2)/@exphom2+@phom1*@fnphom3(ua2)-@phom2)*@fnphom4(appcua2) ua3=(@fnphom(ua3^@exphom)/@exphom-@fnphom1(ua3^@exphom1*@phom1)/@exphom1-@fnphom2(ua3^@exphom2)/@exphom2+@phom1*@fnphom3(ua3)-@phom2)*@fnphom4(appcua3) ub1=(@fnphom(ub1^@exphom)/@exphom-@fnphom1(ub1^@exphom1*@phom1)/@exphom1-@fnphom2(ub1^@exphom2)/@exphom2+@phom1*@fnphom3(ub1)-@phom2)*@fnphom4(appcub1) ub2=(@fnphom(ub2^@exphom)/@exphom-@fnphom1(ub2^@exphom1*@phom1)/@exphom1-@fnphom2(ub2^@exphom2)/@exphom2+@phom1*@fnphom3(ub2)-@phom2)*@fnphom4(appcub2) ub3=(@fnphom(ub3^@exphom)/@exphom-@fnphom1(ub3^@exphom1*@phom1)/@exphom1-@fnphom2(ub3^@exphom2)/@exphom2+@phom1*@fnphom3(ub3)-@phom2)*@fnphom4(appcub3) a1=@glphom(a1) a2=@glphom(a2) a3=@glphom(a3) b1=@glphom(b1) b2=@glphom(b2) b3=@glphom(b3) ua1=@glphom(ua1) ua2=@glphom(ua2) ua3=@glphom(ua3) ub1=@glphom(ub1) ub2=@glphom(ub2) ub3=@glphom(ub3) elseif (@formula==6) ;---------------DivMandel----_d.frm DiVmandel1--------- a1=(@fndiv(a1)^@exdiv+appca1*@pdiv1)/(@fndiv1(a1)^@exdiv1-appca1*@pdiv2)+@fndiv2(appca1) a2=(@fndiv(a2)^@exdiv+appca2*@pdiv1)/(@fndiv1(a2)^@exdiv1-appca2*@pdiv2)+@fndiv2(appca2) a3=(@fndiv(a3)^@exdiv+appca3*@pdiv1)/(@fndiv1(a3)^@exdiv1-appca3*@pdiv2)+@fndiv2(appca3) b1=(@fndiv(b1)^@exdiv+appcb1*@pdiv1)/(@fndiv1(b1)^@exdiv1-appcb1*@pdiv2)+@fndiv2(appcb1) b2=(@fndiv(b2)^@exdiv+appcb2*@pdiv1)/(@fndiv1(b2)^@exdiv1-appcb2*@pdiv2)+@fndiv2(appcb2) b3=(@fndiv(b3)^@exdiv+appcb3*@pdiv1)/(@fndiv1(b3)^@exdiv1-appcb3*@pdiv2)+@fndiv2(appcb3) ua1=(@fndiv(ua1)^@exdiv+appcua1*@pdiv1)/(@fndiv1(ua1)^@exdiv1-appcua1*@pdiv2)+@fndiv2(appcua1) ua2=(@fndiv(ua2)^@exdiv+appcua2*@pdiv1)/(@fndiv1(ua2)^@exdiv1-appcua2*@pdiv2)+@fndiv2(appcua2) ua3=(@fndiv(ua3)^@exdiv+appcua3*@pdiv1)/(@fndiv1(ua3)^@exdiv1-appcua3*@pdiv2)+@fndiv2(appcua3) ub1=(@fndiv(ub1)^@exdiv+appcub1*@pdiv1)/(@fndiv1(ub1)^@exdiv1-appcub1*@pdiv2)+@fndiv2(appcub1) ub2=(@fndiv(ub2)^@exdiv+appcub2*@pdiv1)/(@fndiv1(ub2)^@exdiv1-appcub2*@pdiv2)+@fndiv2(appcub2) ub3=(@fndiv(ub3)^@exdiv+appcub3*@pdiv1)/(@fndiv1(ub3)^@exdiv1-appcub3*@pdiv2)+@fndiv2(appcub3) elseif (@formula==7) ;--------------Ikenaga----_i.frm---------------------- a1=@fnike1(a1)^@ike1+(@fnike3(appca1)-@ike2)*@fnike2(a1+@ike3)+@fnike4(appca1)*@ike4 a2=@fnike1(a2)^@ike1+(@fnike3(appca2)-@ike2)*@fnike2(a2+@ike3)+@fnike4(appca2)*@ike4 a3=@fnike1(a3)^@ike1+(@fnike3(appca3)-@ike2)*@fnike2(a3+@ike3)+@fnike4(appca3)*@ike4 b1=@fnike1(b1)^@ike1+(@fnike3(appcb1)-@ike2)*@fnike2(b1+@ike3)+@fnike4(appcb1)*@ike4 b2=@fnike1(b2)^@ike1+(@fnike3(appcb2)-@ike2)*@fnike2(b2+@ike3)+@fnike4(appcb2)*@ike4 b3=@fnike1(b3)^@ike1+(@fnike3(appcb3)-@ike2)*@fnike2(b3+@ike3)+@fnike4(appcb3)*@ike4 ua1=@fnike1(ua1)^@ike1+(@fnike3(appcua1)-@ike2)*@fnike2(ua1+@ike3)+@fnike4(appcua1)*@ike4 ua2=@fnike1(ua2)^@ike1+(@fnike3(appcua2)-@ike2)*@fnike2(ua2+@ike3)+@fnike4(appcua2)*@ike4 ua3=@fnike1(ua3)^@ike1+(@fnike3(appcua3)-@ike2)*@fnike2(ua3+@ike3)+@fnike4(appcua3)*@ike4 ub1=@fnike1(ub1)^@ike1+(@fnike3(appcub1)-@ike2)*@fnike2(ub1+@ike3)+@fnike4(appcub1)*@ike4 ub2=@fnike1(ub2)^@ike1+(@fnike3(appcub2)-@ike2)*@fnike2(ub2+@ike3)+@fnike4(appcub2)*@ike4 ub3=@fnike1(ub3)^@ike1+(@fnike3(appcub3)-@ike2)*@fnike2(ub3+@ike3)+@fnike4(appcub3)*@ike4 elseif (@formula==8) ;----FGZ.frm (p1*(z^2+c)*(z^2+c))/((z^2+c)+p1)+c------- a1=(@fgz1*(@fngz1(a1)^@fgz4+@fngz4(appca1))*(@fngz2(a1)^@fgz5+@fngz5(appca1)))/(@fgz2+(@fngz3(a1)^@fgz6+@fngz6(appca1))+@fgz1)+(appca1+@fgz7)*@fgz3 a2=(@fgz1*(@fngz1(a2)^@fgz4+@fngz4(appca2))*(@fngz2(a2)^@fgz5+@fngz5(appca2)))/(@fgz2+(@fngz3(a2)^@fgz6+@fngz6(appca2))+@fgz1)+(appca2+@fgz7)*@fgz3 a3=(@fgz1*(@fngz1(a3)^@fgz4+@fngz4(appca3))*(@fngz2(a3)^@fgz5+@fngz5(appca3)))/(@fgz2+(@fngz3(a3)^@fgz6+@fngz6(appca3))+@fgz1)+(appca3+@fgz7)*@fgz3 b1=(@fgz1*(@fngz1(b1)^@fgz4+@fngz4(appcb1))*(@fngz2(b1)^@fgz5+@fngz5(appcb1)))/(@fgz2+(@fngz3(b1)^@fgz6+@fngz6(appcb1))+@fgz1)+(appcb1+@fgz7)*@fgz3 b2=(@fgz1*(@fngz1(b2)^@fgz4+@fngz4(appcb2))*(@fngz2(b2)^@fgz5+@fngz5(appcb2)))/(@fgz2+(@fngz3(b2)^@fgz6+@fngz6(appcb2))+@fgz1)+(appcb2+@fgz7)*@fgz3 b3=(@fgz1*(@fngz1(b3)^@fgz4+@fngz4(appcb3))*(@fngz2(b3)^@fgz5+@fngz5(appcb3)))/(@fgz2+(@fngz3(b3)^@fgz6+@fngz6(appcb3))+@fgz1)+(appcb3+@fgz7)*@fgz3 ua1=(@fgz1*(@fngz1(ua1)^@fgz4+@fngz4(appcua1))*(@fngz2(ua1)^@fgz5+@fngz5(appcua1)))/(@fgz2+(@fngz3(ua1)^@fgz6+@fngz6(appcua1))+@fgz1)+(appcua1+@fgz7)*@fgz3 ua2=(@fgz1*(@fngz1(ua2)^@fgz4+@fngz4(appcua2))*(@fngz2(ua2)^@fgz5+@fngz5(appcua2)))/(@fgz2+(@fngz3(ua2)^@fgz6+@fngz6(appcua2))+@fgz1)+(appcua2+@fgz7)*@fgz3 ua3=(@fgz1*(@fngz1(ua3)^@fgz4+@fngz4(appcua3))*(@fngz2(ua3)^@fgz5+@fngz5(appcua3)))/(@fgz2+(@fngz3(ua3)^@fgz6+@fngz6(appcua3))+@fgz1)+(appcua3+@fgz7)*@fgz3 ub1=(@fgz1*(@fngz1(ub1)^@fgz4+@fngz4(appcub1))*(@fngz2(ub1)^@fgz5+@fngz5(appcub1)))/(@fgz2+(@fngz3(ub1)^@fgz6+@fngz6(appcub1))+@fgz1)+(appcub1+@fgz7)*@fgz3 ub2=(@fgz1*(@fngz1(ub2)^@fgz4+@fngz4(appcub2))*(@fngz2(ub2)^@fgz5+@fngz5(appcub2)))/(@fgz2+(@fngz3(ub2)^@fgz6+@fngz6(appcub2))+@fgz1)+(appcub2+@fgz7)*@fgz3 ub3=(@fgz1*(@fngz1(ub3)^@fgz4+@fngz4(appcub3))*(@fngz2(ub3)^@fgz5+@fngz5(appcub3)))/(@fgz2+(@fngz3(ub3)^@fgz6+@fngz6(appcub3))+@fgz1)+(appcub3+@fgz7)*@fgz3 elseif (@formula==9) ;----sin(z+2) + (c*z)/(z-2)-Flattop _f.frm------------- a1=@fnflat1(a1+@flat1)+(@fnflat4(appca1+@flat4)*@fnflat3(a1+@flat3))/@fnflat2(a1-@flat2) a2=@fnflat1(a2+@flat1)+(@fnflat4(appca2+@flat4)*@fnflat3(a2+@flat3))/@fnflat2(a2-@flat2) a3=@fnflat1(a3+@flat1)+(@fnflat4(appca3+@flat4)*@fnflat3(a3+@flat3))/@fnflat2(a3-@flat2) b1=@fnflat1(b1+@flat1)+(@fnflat4(appcb1+@flat4)*@fnflat3(b1+@flat3))/@fnflat2(b1-@flat2) b2=@fnflat1(b2+@flat1)+(@fnflat4(appcb2+@flat4)*@fnflat3(b2+@flat3))/@fnflat2(b2-@flat2) b3=@fnflat1(b3+@flat1)+(@fnflat4(appcb3+@flat4)*@fnflat3(b3+@flat3))/@fnflat2(b3-@flat2) ua1=@fnflat1(ua1+@flat1)+(@fnflat4(appcua1+@flat4)*@fnflat3(ua1+@flat3))/@fnflat2(ua1-@flat2) ua2=@fnflat1(ua2+@flat1)+(@fnflat4(appcua2+@flat4)*@fnflat3(ua2+@flat3))/@fnflat2(ua2-@flat2) ua3=@fnflat1(ua3+@flat1)+(@fnflat4(appcua3+@flat4)*@fnflat3(ua3+@flat3))/@fnflat2(ua3-@flat2) ub1=@fnflat1(ub1+@flat1)+(@fnflat4(appcub1+@flat4)*@fnflat3(ub1+@flat3))/@fnflat2(ub1-@flat2) ub2=@fnflat1(ub2+@flat1)+(@fnflat4(appcub2+@flat4)*@fnflat3(ub2+@flat3))/@fnflat2(ub2-@flat2) ub3=@fnflat1(ub3+@flat1)+(@fnflat4(appcub3+@flat4)*@fnflat3(ub3+@flat3))/@fnflat2(ub3-@flat2) elseif (@formula==10) ;------(z*z + (c+1))^2 / (2*z + (c-1)) Num_Dup.frm---- a1=(@fnnd1(a1)^@nd1+(@fnnd4(appca1)+@nd3))^@nd2/(@nd2*@fnnd2(a1)+(@fnnd3(appca1)-@nd3)) a2=(@fnnd1(a2)^@nd1+(@fnnd4(appca2)+@nd3))^@nd2/(@nd2*@fnnd2(a2)+(@fnnd3(appca2)-@nd3)) a3=(@fnnd1(a3)^@nd1+(@fnnd4(appca3)+@nd3))^@nd2/(@nd2*@fnnd2(a3)+(@fnnd3(appca3)-@nd3)) b1=(@fnnd1(b1)^@nd1+(@fnnd4(appcb1)+@nd3))^@nd2/(@nd2*@fnnd2(b1)+(@fnnd3(appcb1)-@nd3)) b2=(@fnnd1(b2)^@nd1+(@fnnd4(appcb2)+@nd3))^@nd2/(@nd2*@fnnd2(b2)+(@fnnd3(appcb2)-@nd3)) b3=(@fnnd1(b3)^@nd1+(@fnnd4(appcb3)+@nd3))^@nd2/(@nd2*@fnnd2(b3)+(@fnnd3(appcb3)-@nd3)) ua1=(@fnnd1(ua1)^@nd1+(@fnnd4(appcua1)+@nd3))^@nd2/(@nd2*@fnnd2(ua1)+(@fnnd3(appcua1)-@nd3)) ua2=(@fnnd1(ua2)^@nd1+(@fnnd4(appcua2)+@nd3))^@nd2/(@nd2*@fnnd2(ua2)+(@fnnd3(appcua2)-@nd3)) ua3=(@fnnd1(ua3)^@nd1+(@fnnd4(appcua3)+@nd3))^@nd2/(@nd2*@fnnd2(ua3)+(@fnnd3(appcua3)-@nd3)) ub1=(@fnnd1(ub1)^@nd1+(@fnnd4(appcub1)+@nd3))^@nd2/(@nd2*@fnnd2(ub1)+(@fnnd3(appcub1)-@nd3)) ub2=(@fnnd1(ub2)^@nd1+(@fnnd4(appcub2)+@nd3))^@nd2/(@nd2*@fnnd2(ub2)+(@fnnd3(appcub2)-@nd3)) ub3=(@fnnd1(ub3)^@nd1+(@fnnd4(appcub3)+@nd3))^@nd2/(@nd2*@fnnd2(ub3)+(@fnnd3(appcub3)-@nd3)) elseif (@formula==11) ;-----------------Barnsley--------------------------- if real(a1)>0 && real(ua1)>0 a1=(@fnbarn1(a1)-@barn1)*@fnbarn3(appca1)*@barn3 a2=(@fnbarn1(a2)-@barn1)*@fnbarn3(appca2)*@barn3 a3=(@fnbarn1(a3)-@barn1)*@fnbarn3(appca3)*@barn3 b1=(@fnbarn1(b1)-@barn1)*@fnbarn3(appcb1)*@barn3 b2=(@fnbarn1(b2)-@barn1)*@fnbarn3(appcb2)*@barn3 b3=(@fnbarn1(b3)-@barn1)*@fnbarn3(appcb3)*@barn3 ua1=(@fnbarn1(ua1)-@barn1)*@fnbarn3(appcua1)*@barn3 ua2=(@fnbarn1(ua2)-@barn1)*@fnbarn3(appcua2)*@barn3 ua3=(@fnbarn1(ua3)-@barn1)*@fnbarn3(appcua3)*@barn3 ub1=(@fnbarn1(ub1)-@barn1)*@fnbarn3(appcub1)*@barn3 ub2=(@fnbarn1(ub2)-@barn1)*@fnbarn3(appcub2)*@barn3 ub3=(@fnbarn1(ub3)-@barn1)*@fnbarn3(appcub3)*@barn3 else a1=(@fnbarn2(a1)+@barn2)*@fnbarn4(appca1)*@barn4 a2=(@fnbarn2(a2)+@barn2)*@fnbarn4(appca2)*@barn4 a3=(@fnbarn2(a3)+@barn2)*@fnbarn4(appca3)*@barn4 b1=(@fnbarn2(b1)+@barn2)*@fnbarn4(appcb1)*@barn4 b2=(@fnbarn2(b2)+@barn2)*@fnbarn4(appcb2)*@barn4 b3=(@fnbarn2(b3)+@barn2)*@fnbarn4(appcb3)*@barn4 ua1=(@fnbarn2(ua1)+@barn2)*@fnbarn4(appcua1)*@barn4 ua2=(@fnbarn2(ua2)+@barn2)*@fnbarn4(appcua2)*@barn4 ua3=(@fnbarn2(ua3)+@barn2)*@fnbarn4(appcua3)*@barn4 ub1=(@fnbarn2(ub1)+@barn2)*@fnbarn4(appcub1)*@barn4 ub2=(@fnbarn2(ub2)+@barn2)*@fnbarn4(appcub2)*@barn4 ub3=(@fnbarn2(ub3)+@barn2)*@fnbarn4(appcub3)*@barn4 endif elseif (@formula==12) ;-----------------TB Quest---_T.frm------------------- ;z=(z*fn1(sqrt(z)))/fn2(c) ;z=z+sqr(c) a1=@que2*((a1+@que3)*@fnque2(sqrt(a1+@que1)))/@fnque3(appca1) a2=@que2*((a2+@que3)*@fnque2(sqrt(a2+@que1)))/@fnque3(appca2) a3=@que2*((a3+@que3)*@fnque2(sqrt(a3+@que1)))/@fnque3(appca3) b1=@que2*((b1+@que3)*@fnque2(sqrt(b1+@que1)))/@fnque3(appcb1) b2=@que2*((b2+@que3)*@fnque2(sqrt(b2+@que1)))/@fnque3(appcb2) b3=@que2*((b3+@que3)*@fnque2(sqrt(b3+@que1)))/@fnque3(appcb3) ua1=@que2*((ua1+@que3)*@fnque2(sqrt(ua1+@que1)))/@fnque3(appcua1) ua2=@que2*((ua2+@que3)*@fnque2(sqrt(ua2+@que1)))/@fnque3(appcua2) ua3=@que2*((ua3+@que3)*@fnque2(sqrt(ua3+@que1)))/@fnque3(appcua3) ub1=@que2*((ub1+@que3)*@fnque2(sqrt(ub1+@que1)))/@fnque3(appcub1) ub2=@que2*((ub2+@que3)*@fnque2(sqrt(ub2+@que1)))/@fnque3(appcub2) ub3=@que2*((ub3+@que3)*@fnque2(sqrt(ub3+@que1)))/@fnque3(appcub3) a1=a1+@fnque1(appca1) a2=a2+@fnque1(appca2) a3=a3+@fnque1(appca3) b1=b1+@fnque1(appcb1) b2=b2+@fnque1(appcb2) b3=b3+@fnque1(appcb3) ua1=ua1+@fnque1(appcua1) ua2=ua2+@fnque1(appcua2) ua3=ua3+@fnque1(appcua3) ub1=ub1+@fnque1(appcub1) ub2=ub2+@fnque1(appcub2) ub3=ub3+@fnque1(appcub3) elseif (@formula==13) ;-----------------Phoenix---------------------------- newa1=@fnpho1(a1)^@pho3+a1^@pho2*@fnpho2(appca1)+@fnpho3(tempa1)*@pho1 newa2=@fnpho1(a2)^@pho3+a2^@pho2*@fnpho2(appca2)+@fnpho3(tempa2)*@pho1 newa3=@fnpho1(a3)^@pho3+a3^@pho2*@fnpho2(appca3)+@fnpho3(tempa3)*@pho1 newb1=@fnpho1(b1)^@pho3+b1^@pho2*@fnpho2(appcb1)+@fnpho3(tempb1)*@pho1 newb2=@fnpho1(b2)^@pho3+b2^@pho2*@fnpho2(appcb2)+@fnpho3(tempb2)*@pho1 newb3=@fnpho1(b3)^@pho3+b3^@pho2*@fnpho2(appcb3)+@fnpho3(tempb3)*@pho1 newua1=@fnpho1(ua1)^@pho3+ua1^@pho2*@fnpho2(appcua1)+@fnpho3(tempua1)*@pho1 newua2=@fnpho1(ua2)^@pho3+ua2^@pho2*@fnpho2(appcua2)+@fnpho3(tempua2)*@pho1 newua3=@fnpho1(ua3)^@pho3+ua3^@pho2*@fnpho2(appcua3)+@fnpho3(tempua3)*@pho1 newub1=@fnpho1(ub1)^@pho3+ub1^@pho2*@fnpho2(appcub1)+@fnpho3(tempub1)*@pho1 newub2=@fnpho1(ub2)^@pho3+ub2^@pho2*@fnpho2(appcub2)+@fnpho3(tempub2)*@pho1 newub3=@fnpho1(ub3)^@pho3+ub3^@pho2*@fnpho2(appcub3)+@fnpho3(tempub3)*@pho1 tempa1=a1*@pho4 tempa2=a2*@pho4 tempa3=a3*@pho4 tempb1=b1*@pho4 tempb2=b2*@pho4 tempb3=b3*@pho4 tempua1=ua1*@pho4 tempua2=ua2*@pho4 tempua3=ua3*@pho4 tempub1=ub1*@pho4 tempub2=ub2*@pho4 tempub3=ub3*@pho4 a1=newa1 a2=newa2 a3=newa3 b1=newb1 b2=newb2 b3=newb3 ua1=newua1 ua2=newua2 ua3=newua3 ub1=newub1 ub2=newub2 ub3=newub3 elseif (@formula==14) ;-----------------Hydra Brot--Noel2.frm--------------- tempa1=a1 tempa2=a2 tempa3=a3 tempb1=b1 tempb2=b2 tempb3=b3 tempua1=ua1 tempua2=ua2 tempua3=ua3 tempub1=ub1 tempub2=ub2 tempub3=ub3 a1=@fnhid1(a1)^@hid1+@fnhid4(appca1)+(@hid2*(@fnhid2(zpa1))^@hid3)*(@hid4*(@fnhid3(zda1))^@hid5) a2=@fnhid1(a2)^@hid1+@fnhid4(appca2)+(@hid2*(@fnhid2(zpa2))^@hid3)*(@hid4*(@fnhid3(zda2))^@hid5) a3=@fnhid1(a3)^@hid1+@fnhid4(appca3)+(@hid2*(@fnhid2(zpa3))^@hid3)*(@hid4*(@fnhid3(zda3))^@hid5) b1=@fnhid1(b1)^@hid1+@fnhid4(appcb1)+(@hid2*(@fnhid2(zpb1))^@hid3)*(@hid4*(@fnhid3(zdb1))^@hid5) b2=@fnhid1(b2)^@hid1+@fnhid4(appcb2)+(@hid2*(@fnhid2(zpb2))^@hid3)*(@hid4*(@fnhid3(zdb2))^@hid5) b3=@fnhid1(b3)^@hid1+@fnhid4(appcb3)+(@hid2*(@fnhid2(zpb3))^@hid3)*(@hid4*(@fnhid3(zdb3))^@hid5) ua1=@fnhid1(ua1)^@hid1+@fnhid4(appcua1)+(@hid2*(@fnhid2(zpua1))^@hid3)*(@hid4*(@fnhid3(zdua1))^@hid5) ua2=@fnhid1(ua2)^@hid1+@fnhid4(appcua2)+(@hid2*(@fnhid2(zpua2))^@hid3)*(@hid4*(@fnhid3(zdua2))^@hid5) ua3=@fnhid1(ua3)^@hid1+@fnhid4(appcua3)+(@hid2*(@fnhid2(zpua3))^@hid3)*(@hid4*(@fnhid3(zdua3))^@hid5) ub1=@fnhid1(ub1)^@hid1+@fnhid4(appcub1)+(@hid2*(@fnhid2(zpub1))^@hid3)*(@hid4*(@fnhid3(zdub1))^@hid5) ub2=@fnhid1(ub2)^@hid1+@fnhid4(appcub2)+(@hid2*(@fnhid2(zpub2))^@hid3)*(@hid4*(@fnhid3(zdub2))^@hid5) ub3=@fnhid1(ub3)^@hid1+@fnhid4(appcub3)+(@hid2*(@fnhid2(zpub3))^@hid3)*(@hid4*(@fnhid3(zdub3))^@hid5) ;-----------------------------First ZP------------------------------------ zpa1=@fntemp(@te7*(@te5+(real(tempa1)-imag(@te1)+flip(imag(tempa1)+real(@te1))))) zpa2=@fntemp(@te7*(@te5+(real(tempa2)-imag(@te1)+flip(imag(tempa2)+real(@te1))))) zpa3=@fntemp(@te7*(@te5+(real(tempa3)-imag(@te1)+flip(imag(tempa3)+real(@te1))))) zpb1=@fntemp(@te7*(@te5+(real(tempb1)+imag(@te1)+flip(imag(tempb1)-real(@te1))))) zpb2=@fntemp(@te7*(@te5+(real(tempb2)+imag(@te1)+flip(imag(tempb2)-real(@te1))))) zpb3=@fntemp(@te7*(@te5+(real(tempb3)+imag(@te1)+flip(imag(tempb3)-real(@te1))))) zpua1=@fntemp(@te8*(@te6+(real(tempua1)-imag(@te2)+flip(imag(tempua1)+real(@te2))))) zpua2=@fntemp(@te8*(@te6+(real(tempua2)-imag(@te2)+flip(imag(tempua2)+real(@te2))))) zpua3=@fntemp(@te8*(@te6+(real(tempua3)-imag(@te2)+flip(imag(tempua3)+real(@te2))))) zpub1=@fntemp(@te8*(@te6+(real(tempub1)+imag(@te2)+flip(imag(tempub1)-real(@te2))))) zpub2=@fntemp(@te8*(@te6+(real(tempub2)+imag(@te2)+flip(imag(tempub2)-real(@te2))))) zpub3=@fntemp(@te8*(@te6+(real(tempub3)+imag(@te2)+flip(imag(tempub3)-real(@te2))))) ;----------------------------Second ZD------------------------------------ zda1=@fntemp1(@te11*(@te9+(real(tempa1)-imag(@te3)+flip(imag(tempa1)+real(@te3))))) zda2=@fntemp1(@te11*(@te9+(real(tempa2)-imag(@te3)+flip(imag(tempa2)+real(@te3))))) zda3=@fntemp1(@te11*(@te9+(real(tempa3)-imag(@te3)+flip(imag(tempa3)+real(@te3))))) zdb1=@fntemp1(@te11*(@te9+(real(tempb1)+imag(@te3)+flip(imag(tempb1)-real(@te3))))) zdb2=@fntemp1(@te11*(@te9+(real(tempb2)+imag(@te3)+flip(imag(tempb2)-real(@te3))))) zdb3=@fntemp1(@te11*(@te9+(real(tempb3)+imag(@te3)+flip(imag(tempb3)-real(@te3))))) zdua1=@fntemp1(@te12*(@te10+(real(tempua1)-imag(@te4)+flip(imag(tempua1)+real(@te4))))) zdua2=@fntemp1(@te12*(@te10+(real(tempua2)-imag(@te4)+flip(imag(tempua2)+real(@te4))))) zdua3=@fntemp1(@te12*(@te10+(real(tempua3)-imag(@te4)+flip(imag(tempua3)+real(@te4))))) zdub1=@fntemp1(@te12*(@te10+(real(tempub1)+imag(@te4)+flip(imag(tempub1)-real(@te4))))) zdub2=@fntemp1(@te12*(@te10+(real(tempub2)+imag(@te4)+flip(imag(tempub2)-real(@te4))))) zdub3=@fntemp1(@te12*(@te10+(real(tempub3)+imag(@te4)+flip(imag(tempub3)-real(@te4))))) elseif (@formula==15);------------Magnet CplxSpirals z=( (z*z+(c-1)) / (c/z+(c-2)) )^2-2 if (@selcplx==0) a1= ((@fncplx1(a1)^@cplx1+(@fncplx3(appca1)-@cplx2))/(@fncplx4(appca1)/@fncplx2(a1)+(@fncplx5(appca1)-@cplx3)))^@cplx4-@cplx5 a2= ((@fncplx1(a2)^@cplx1+(@fncplx3(appca2)-@cplx2))/(@fncplx4(appca2)/@fncplx2(a2)+(@fncplx5(appca2)-@cplx3)))^@cplx4-@cplx5 a3= ((@fncplx1(a3)^@cplx1+(@fncplx3(appca3)-@cplx2))/(@fncplx4(appca3)/@fncplx2(a3)+(@fncplx5(appca3)-@cplx3)))^@cplx4-@cplx5 b1= ((@fncplx1(b1)^@cplx1+(@fncplx3(appcb1)-@cplx2))/(@fncplx4(appcb1)/@fncplx2(b1)+(@fncplx5(appcb1)-@cplx3)))^@cplx4-@cplx5 b2= ((@fncplx1(b2)^@cplx1+(@fncplx3(appcb2)-@cplx2))/(@fncplx4(appcb2)/@fncplx2(b2)+(@fncplx5(appcb2)-@cplx3)))^@cplx4-@cplx5 b3= ((@fncplx1(b3)^@cplx1+(@fncplx3(appcb3)-@cplx2))/(@fncplx4(appcb3)/@fncplx2(b3)+(@fncplx5(appcb3)-@cplx3)))^@cplx4-@cplx5 ua1= ((@fncplx1(ua1)^@cplx1+(@fncplx3(appcua1)-@cplx2))/(@fncplx4(appcua1)/@fncplx2(ua1)+(@fncplx5(appcua1)-@cplx3)))^@cplx4-@cplx5 ua2= ((@fncplx1(ua2)^@cplx1+(@fncplx3(appcua2)-@cplx2))/(@fncplx4(appcua2)/@fncplx2(ua2)+(@fncplx5(appcua2)-@cplx3)))^@cplx4-@cplx5 ua3= ((@fncplx1(ua3)^@cplx1+(@fncplx3(appcua3)-@cplx2))/(@fncplx4(appcua3)/@fncplx2(ua3)+(@fncplx5(appcua3)-@cplx3)))^@cplx4-@cplx5 ub1= ((@fncplx1(ub1)^@cplx1+(@fncplx3(appcub1)-@cplx2))/(@fncplx4(appcub1)/@fncplx2(ub1)+(@fncplx5(appcub1)-@cplx3)))^@cplx4-@cplx5 ub2= ((@fncplx1(ub2)^@cplx1+(@fncplx3(appcub2)-@cplx2))/(@fncplx4(appcub2)/@fncplx2(ub2)+(@fncplx5(appcub2)-@cplx3)))^@cplx4-@cplx5 ub3= ((@fncplx1(ub3)^@cplx1+(@fncplx3(appcub3)-@cplx2))/(@fncplx4(appcub3)/@fncplx2(ub3)+(@fncplx5(appcub3)-@cplx3)))^@cplx4-@cplx5 elseif (@selcplx==1) ;----------Magnet Cplx Spirals 2-------------------- a1= ((@fncplx1(a1)^@cplx1+(@fncplx3(appca1)-@cplx2))/(@fncplx4(appca1)*@fncplx2(a1)+(@fncplx5(appca1)-@cplx3)))^@cplx4-@cplx5 a2= ((@fncplx1(a2)^@cplx1+(@fncplx3(appca2)-@cplx2))/(@fncplx4(appca2)*@fncplx2(a2)+(@fncplx5(appca2)-@cplx3)))^@cplx4-@cplx5 a3= ((@fncplx1(a3)^@cplx1+(@fncplx3(appca3)-@cplx2))/(@fncplx4(appca3)*@fncplx2(a3)+(@fncplx5(appca3)-@cplx3)))^@cplx4-@cplx5 b1= ((@fncplx1(b1)^@cplx1+(@fncplx3(appcb1)-@cplx2))/(@fncplx4(appcb1)*@fncplx2(b1)+(@fncplx5(appcb1)-@cplx3)))^@cplx4-@cplx5 b2= ((@fncplx1(b2)^@cplx1+(@fncplx3(appcb2)-@cplx2))/(@fncplx4(appcb2)*@fncplx2(b2)+(@fncplx5(appcb2)-@cplx3)))^@cplx4-@cplx5 b3= ((@fncplx1(b3)^@cplx1+(@fncplx3(appcb3)-@cplx2))/(@fncplx4(appcb3)*@fncplx2(b3)+(@fncplx5(appcb3)-@cplx3)))^@cplx4-@cplx5 ua1= ((@fncplx1(ua1)^@cplx1+(@fncplx3(appcua1)-@cplx2))/(@fncplx4(appcua1)*@fncplx2(ua1)+(@fncplx5(appcua1)-@cplx3)))^@cplx4-@cplx5 ua2= ((@fncplx1(ua2)^@cplx1+(@fncplx3(appcua2)-@cplx2))/(@fncplx4(appcua2)*@fncplx2(ua2)+(@fncplx5(appcua2)-@cplx3)))^@cplx4-@cplx5 ua3= ((@fncplx1(ua3)^@cplx1+(@fncplx3(appcua3)-@cplx2))/(@fncplx4(appcua3)*@fncplx2(ua3)+(@fncplx5(appcua3)-@cplx3)))^@cplx4-@cplx5 ub1= ((@fncplx1(ub1)^@cplx1+(@fncplx3(appcub1)-@cplx2))/(@fncplx4(appcub1)*@fncplx2(ub1)+(@fncplx5(appcub1)-@cplx3)))^@cplx4-@cplx5 ub2= ((@fncplx1(ub2)^@cplx1+(@fncplx3(appcub2)-@cplx2))/(@fncplx4(appcub2)*@fncplx2(ub2)+(@fncplx5(appcub2)-@cplx3)))^@cplx4-@cplx5 ub3= ((@fncplx1(ub3)^@cplx1+(@fncplx3(appcub3)-@cplx2))/(@fncplx4(appcub3)*@fncplx2(ub3)+(@fncplx5(appcub3)-@cplx3)))^@cplx4-@cplx5 elseif (@selcplx==2) ;--------------MiniMand----------------------------- a1= ((@fncplx1(a1)^@cplx1+(@fncplx3(appca1)-@cplx2))/(@cplx6*@fncplx2(a1)+(@fncplx5(appca1)-@cplx3)))^@cplx4-@cplx5*@fncplx6(a1) a2= ((@fncplx1(a2)^@cplx1+(@fncplx3(appca2)-@cplx2))/(@cplx6*@fncplx2(a2)+(@fncplx5(appca2)-@cplx3)))^@cplx4-@cplx5*@fncplx6(a2) a3= ((@fncplx1(a3)^@cplx1+(@fncplx3(appca3)-@cplx2))/(@cplx6*@fncplx2(a3)+(@fncplx5(appca3)-@cplx3)))^@cplx4-@cplx5*@fncplx6(a3) b1= ((@fncplx1(b1)^@cplx1+(@fncplx3(appcb1)-@cplx2))/(@cplx6*@fncplx2(b1)+(@fncplx5(appcb1)-@cplx3)))^@cplx4-@cplx5*@fncplx6(b1) b2= ((@fncplx1(b2)^@cplx1+(@fncplx3(appcb2)-@cplx2))/(@cplx6*@fncplx2(b2)+(@fncplx5(appcb2)-@cplx3)))^@cplx4-@cplx5*@fncplx6(b2) b3= ((@fncplx1(b3)^@cplx1+(@fncplx3(appcb3)-@cplx2))/(@cplx6*@fncplx2(b3)+(@fncplx5(appcb3)-@cplx3)))^@cplx4-@cplx5*@fncplx6(b3) ua1= ((@fncplx1(ua1)^@cplx1+(@fncplx3(appcua1)-@cplx2))/(@cplx6*@fncplx2(ua1)+(@fncplx5(appcua1)-@cplx3)))^@cplx4-@cplx5*@fncplx6(ua1) ua2= ((@fncplx1(ua2)^@cplx1+(@fncplx3(appcua2)-@cplx2))/(@cplx6*@fncplx2(ua2)+(@fncplx5(appcua2)-@cplx3)))^@cplx4-@cplx5*@fncplx6(ua2) ua3= ((@fncplx1(ua3)^@cplx1+(@fncplx3(appcua3)-@cplx2))/(@cplx6*@fncplx2(ua3)+(@fncplx5(appcua3)-@cplx3)))^@cplx4-@cplx5*@fncplx6(ua3) ub1= ((@fncplx1(ub1)^@cplx1+(@fncplx3(appcub1)-@cplx2))/(@cplx6*@fncplx2(ub1)+(@fncplx5(appcub1)-@cplx3)))^@cplx4-@cplx5*@fncplx6(ub1) ub2= ((@fncplx1(ub2)^@cplx1+(@fncplx3(appcub2)-@cplx2))/(@cplx6*@fncplx2(ub2)+(@fncplx5(appcub2)-@cplx3)))^@cplx4-@cplx5*@fncplx6(ub2) ub3= ((@fncplx1(ub3)^@cplx1+(@fncplx3(appcub3)-@cplx2))/(@cplx6*@fncplx2(ub3)+(@fncplx5(appcub3)-@cplx3)))^@cplx4-@cplx5*@fncplx6(ub3) endif elseif (@formula==16) ;---------------Xerreal--Frac_ML.frm------------------ ;z = (sqrt(-1) * z /c)^2 * c + p1 ;z = z * fn1(z) + pixel if (@xerrmode==false) xa1=(sqrt(@xer4)*@fnxer3(a1)/(@fnxerrc3(appca1)-@xer3))^@xer1*@fnxerrc2(appca1)+@xer2 xa2=(sqrt(@xer4)*@fnxer3(a2)/(@fnxerrc3(appca2)-@xer3))^@xer1*@fnxerrc2(appca2)+@xer2 xa3=(sqrt(@xer4)*@fnxer3(a3)/(@fnxerrc3(appca3)-@xer3))^@xer1*@fnxerrc2(appca3)+@xer2 xb1=(sqrt(@xer4)*@fnxer3(b1)/(@fnxerrc3(appcb1)-@xer3))^@xer1*@fnxerrc2(appcb1)+@xer2 xb2=(sqrt(@xer4)*@fnxer3(b2)/(@fnxerrc3(appcb2)-@xer3))^@xer1*@fnxerrc2(appcb2)+@xer2 xb3=(sqrt(@xer4)*@fnxer3(b3)/(@fnxerrc3(appcb3)-@xer3))^@xer1*@fnxerrc2(appcb3)+@xer2 xua1=(sqrt(@xer4)*@fnxer3(ua1)/(@fnxerrc3(appcua1)-@xer3))^@xer1*@fnxerrc2(appcua1)+@xer2 xua2=(sqrt(@xer4)*@fnxer3(ua2)/(@fnxerrc3(appcua2)-@xer3))^@xer1*@fnxerrc2(appcua2)+@xer2 xua3=(sqrt(@xer4)*@fnxer3(ua3)/(@fnxerrc3(appcua3)-@xer3))^@xer1*@fnxerrc2(appcua3)+@xer2 xub1=(sqrt(@xer4)*@fnxer3(ub1)/(@fnxerrc3(appcub1)-@xer3))^@xer1*@fnxerrc2(appcub1)+@xer2 xub2=(sqrt(@xer4)*@fnxer3(ub2)/(@fnxerrc3(appcub2)-@xer3))^@xer1*@fnxerrc2(appcub2)+@xer2 xub3=(sqrt(@xer4)*@fnxer3(ub3)/(@fnxerrc3(appcub3)-@xer3))^@xer1*@fnxerrc2(appcub3)+@xer2 a1=@fnxer1(xa1)*@fnxer2(xa1)+@fnxerrc1(appca1) a2=@fnxer1(xa2)*@fnxer2(xa2)+@fnxerrc1(appca2) a3=@fnxer1(xa3)*@fnxer2(xa3)+@fnxerrc1(appca3) b1=@fnxer1(xb1)*@fnxer2(xb1)+@fnxerrc1(appcb1) b2=@fnxer1(xb2)*@fnxer2(xb2)+@fnxerrc1(appcb2) b3=@fnxer1(xb3)*@fnxer2(xb3)+@fnxerrc1(appcb3) ua1=@fnxer1(xua1)*@fnxer2(xua1)+@fnxerrc1(appcua1) ua2=@fnxer1(xua2)*@fnxer2(xua2)+@fnxerrc1(appcua2) ua3=@fnxer1(xua3)*@fnxer2(xua3)+@fnxerrc1(appcua3) ub1=@fnxer1(xub1)*@fnxer2(xub1)+@fnxerrc1(appcub1) ub2=@fnxer1(xub2)*@fnxer2(xub2)+@fnxerrc1(appcub2) ub3=@fnxer1(xub3)*@fnxer2(xub3)+@fnxerrc1(appcub3) else tempa1=a1 tempa2=a2 tempa3=a3 tempb1=b1 tempb2=b2 tempb3=b3 tempua1=ua1 tempua2=ua2 tempua3=ua3 tempub1=ub1 tempub2=ub2 tempub3=ub3 a1=@fnxer1(a1)*@fnxer2(xa1)+@fnxerrc1(appca1) a2=@fnxer1(a2)*@fnxer2(xa2)+@fnxerrc1(appca2) a3=@fnxer1(a3)*@fnxer2(xa3)+@fnxerrc1(appca3) b1=@fnxer1(b1)*@fnxer2(xb1)+@fnxerrc1(appcb1) b2=@fnxer1(b2)*@fnxer2(xb2)+@fnxerrc1(appcb2) b3=@fnxer1(b3)*@fnxer2(xb3)+@fnxerrc1(appcb3) ua1=@fnxer1(ua1)*@fnxer2(xua1)+@fnxerrc1(appcua1) ua2=@fnxer1(ua2)*@fnxer2(xua2)+@fnxerrc1(appcua2) ua3=@fnxer1(ua3)*@fnxer2(xua3)+@fnxerrc1(appcua3) ub1=@fnxer1(ub1)*@fnxer2(xub1)+@fnxerrc1(appcub1) ub2=@fnxer1(ub2)*@fnxer2(xub2)+@fnxerrc1(appcub2) ub3=@fnxer1(ub3)*@fnxer2(xub3)+@fnxerrc1(appcub3) xa1=(sqrt(@xer4)*@fnxer3(tempa1)/(@fnxerrc3(appca1)-@xer3))^@xer1*@fnxerrc2(appca1)+@xer2 xa2=(sqrt(@xer4)*@fnxer3(tempa2)/(@fnxerrc3(appca2)-@xer3))^@xer1*@fnxerrc2(appca2)+@xer2 xa3=(sqrt(@xer4)*@fnxer3(tempa3)/(@fnxerrc3(appca3)-@xer3))^@xer1*@fnxerrc2(appca3)+@xer2 xb1=(sqrt(@xer4)*@fnxer3(tempb1)/(@fnxerrc3(appcb1)-@xer3))^@xer1*@fnxerrc2(appcb1)+@xer2 xb2=(sqrt(@xer4)*@fnxer3(tempb2)/(@fnxerrc3(appcb2)-@xer3))^@xer1*@fnxerrc2(appcb2)+@xer2 xb3=(sqrt(@xer4)*@fnxer3(tempb3)/(@fnxerrc3(appcb3)-@xer3))^@xer1*@fnxerrc2(appcb3)+@xer2 xua1=(sqrt(@xer4)*@fnxer3(tempua1)/(@fnxerrc3(appcua1)-@xer3))^@xer1*@fnxerrc2(appcua1)+@xer2 xua2=(sqrt(@xer4)*@fnxer3(tempua2)/(@fnxerrc3(appcua2)-@xer3))^@xer1*@fnxerrc2(appcua2)+@xer2 xua3=(sqrt(@xer4)*@fnxer3(tempua3)/(@fnxerrc3(appcua3)-@xer3))^@xer1*@fnxerrc2(appcua3)+@xer2 xub1=(sqrt(@xer4)*@fnxer3(tempub1)/(@fnxerrc3(appcub1)-@xer3))^@xer1*@fnxerrc2(appcub1)+@xer2 xub2=(sqrt(@xer4)*@fnxer3(tempub2)/(@fnxerrc3(appcub2)-@xer3))^@xer1*@fnxerrc2(appcub2)+@xer2 xub3=(sqrt(@xer4)*@fnxer3(tempub3)/(@fnxerrc3(appcub3)-@xer3))^@xer1*@fnxerrc2(appcub3)+@xer2 endif elseif (@formula==17) ;---------------MandHack.frm-------------------------- a1=@fnmand1(a1)^@mand1+@fnmand4(appca1) a2=@fnmand1(a2)^@mand1+@fnmand4(appca2) a3=@fnmand1(a3)^@mand1+@fnmand4(appca3) b1=@fnmand1(b1)^@mand1+@fnmand4(appcb1) b2=@fnmand1(b2)^@mand1+@fnmand4(appcb2) b3=@fnmand1(b3)^@mand1+@fnmand4(appcb3) ua1=@fnmand1(ua1)^@mand1+@fnmand4(appcua1) ua2=@fnmand1(ua2)^@mand1+@fnmand4(appcua2) ua3=@fnmand1(ua3)^@mand1+@fnmand4(appcua3) ub1=@fnmand1(ub1)^@mand1+@fnmand4(appcub1) ub2=@fnmand1(ub2)^@mand1+@fnmand4(appcub2) ub3=@fnmand1(ub3)^@mand1+@fnmand4(appcub3) a1=@fnmand2(a1)^@mand3+@mand2+@fnmand3(a1)*@mand4 a2=@fnmand2(a2)^@mand3+@mand2+@fnmand3(a2)*@mand4 a3=@fnmand2(a3)^@mand3+@mand2+@fnmand3(a3)*@mand4 b1=@fnmand2(b1)^@mand3+@mand2+@fnmand3(b1)*@mand4 b2=@fnmand2(b2)^@mand3+@mand2+@fnmand3(b2)*@mand4 b3=@fnmand2(b3)^@mand3+@mand2+@fnmand3(b3)*@mand4 ua1=@fnmand2(ua1)^@mand3+@mand2+@fnmand3(ua1)*@mand4 ua2=@fnmand2(ua2)^@mand3+@mand2+@fnmand3(ua2)*@mand4 ua3=@fnmand2(ua3)^@mand3+@mand2+@fnmand3(ua3)*@mand4 ub1=@fnmand2(ub1)^@mand3+@mand2+@fnmand3(ub1)*@mand4 ub2=@fnmand2(ub2)^@mand3+@mand2+@fnmand3(ub2)*@mand4 ub3=@fnmand2(ub3)^@mand3+@mand2+@fnmand3(ub3)*@mand4 elseif (@formula==18) ;------------Mod MandHack----------------------------- ya1=a1^@man1 ya2=a2^@man1 ya3=a3^@man1 yb1=b1^@man1 yb2=b2^@man1 yb3=b3^@man1 yua1=ua1^@man1 yua2=ua2^@man1 yua3=ua3^@man1 yub1=ub1^@man1 yub2=ub2^@man1 yub3=ub3^@man1 a1=@fnman1(a1)*@fnman2(wa1)*@man2+@fnman3(appca1) a2=@fnman1(a2)*@fnman2(wa2)*@man2+@fnman3(appca2) a3=@fnman1(a3)*@fnman2(wa3)*@man2+@fnman3(appca3) b1=@fnman1(b1)*@fnman2(wb1)*@man2+@fnman3(appcb1) b2=@fnman1(b2)*@fnman2(wb2)*@man2+@fnman3(appcb2) b3=@fnman1(b3)*@fnman2(wb3)*@man2+@fnman3(appcb3) ua1=@fnman1(ua1)*@fnman2(wua1)*@man2+@fnman3(appcua1) ua2=@fnman1(ua2)*@fnman2(wua2)*@man2+@fnman3(appcua2) ua3=@fnman1(ua3)*@fnman2(wua3)*@man2+@fnman3(appcua3) ub1=@fnman1(ub1)*@fnman2(wub1)*@man2+@fnman3(appcub1) ub2=@fnman1(ub2)*@fnman2(wub2)*@man2+@fnman3(appcub2) ub3=@fnman1(ub3)*@fnman2(wub3)*@man2+@fnman3(appcub3) a1=@fnman4(a1)^@man3-@fnman5(wa1)*@man4+@man5+@man6*@fnman6(appca1) a2=@fnman4(a2)^@man3-@fnman5(wa2)*@man4+@man5+@man6*@fnman6(appca2) a3=@fnman4(a3)^@man3-@fnman5(wa3)*@man4+@man5+@man6*@fnman6(appca3) b1=@fnman4(b1)^@man3-@fnman5(wb1)*@man4+@man5+@man6*@fnman6(appcb1) b2=@fnman4(b2)^@man3-@fnman5(wb2)*@man4+@man5+@man6*@fnman6(appcb2) b3=@fnman4(b3)^@man3-@fnman5(wb3)*@man4+@man5+@man6*@fnman6(appcb3) ua1=@fnman4(ua1)^@man3-@fnman5(wua1)*@man4+@man5+@man6*@fnman6(appcua1) ua2=@fnman4(ua2)^@man3-@fnman5(wua2)*@man4+@man5+@man6*@fnman6(appcua2) ua3=@fnman4(ua3)^@man3-@fnman5(wua3)*@man4+@man5+@man6*@fnman6(appcua3) ub1=@fnman4(ub1)^@man3-@fnman5(wub1)*@man4+@man5+@man6*@fnman6(appcub1) ub2=@fnman4(ub2)^@man3-@fnman5(wub2)*@man4+@man5+@man6*@fnman6(appcub2) ub3=@fnman4(ub3)^@man3-@fnman5(wub3)*@man4+@man5+@man6*@fnman6(appcub3) wa1=ya1 wa2=ya2 wa3=ya3 wb1=yb1 wb2=yb2 wb3=yb3 wua1=yua1 wua2=yua2 wua3=yua3 wub1=yub1 wub2=yub2 wub3=yub3 elseif (@formula==19) ;------------Bagula Magnet--RBagula.frm--a.sct-------- ;z=sqr(z+sqr(pixel)/z)+pixel >-----Normal ;z=(sqr(z)+sqr(pixel)/z)+pixel >-----Modified if (@distMagn==false) if (@modemagn==0) a1=@fnbagu1(sqr(@fnbagu2(a1)+@bagu3+(@fnbagu4(sqr(appca1))+@bagu5)/@fnbagu3(a1)*@bagu4))/@bagu1+@fnbagu5(appca1)*@bagu2 a2=@fnbagu1(sqr(@fnbagu2(a2)+@bagu3+(@fnbagu4(sqr(appca2))+@bagu5)/@fnbagu3(a2)*@bagu4))/@bagu1+@fnbagu5(appca2)*@bagu2 a3=@fnbagu1(sqr(@fnbagu2(a3)+@bagu3+(@fnbagu4(sqr(appca3))+@bagu5)/@fnbagu3(a3)*@bagu4))/@bagu1+@fnbagu5(appca3)*@bagu2 b1=@fnbagu1(sqr(@fnbagu2(b1)+@bagu3+(@fnbagu4(sqr(appcb1))+@bagu5)/@fnbagu3(b1)*@bagu4))/@bagu1+@fnbagu5(appcb1)*@bagu2 b2=@fnbagu1(sqr(@fnbagu2(b2)+@bagu3+(@fnbagu4(sqr(appcb2))+@bagu5)/@fnbagu3(b2)*@bagu4))/@bagu1+@fnbagu5(appcb2)*@bagu2 b3=@fnbagu1(sqr(@fnbagu2(b3)+@bagu3+(@fnbagu4(sqr(appcb3))+@bagu5)/@fnbagu3(b3)*@bagu4))/@bagu1+@fnbagu5(appcb3)*@bagu2 ua1=@fnbagu1(sqr(@fnbagu2(ua1)+@bagu3+(@fnbagu4(sqr(appcua1))+@bagu5)/@fnbagu3(ua1)*@bagu4))/@bagu1+@fnbagu5(appcua1)*@bagu2 ua2=@fnbagu1(sqr(@fnbagu2(ua2)+@bagu3+(@fnbagu4(sqr(appcua2))+@bagu5)/@fnbagu3(ua2)*@bagu4))/@bagu1+@fnbagu5(appcua2)*@bagu2 ua3=@fnbagu1(sqr(@fnbagu2(ua3)+@bagu3+(@fnbagu4(sqr(appcua3))+@bagu5)/@fnbagu3(ua3)*@bagu4))/@bagu1+@fnbagu5(appcua3)*@bagu2 ub1=@fnbagu1(sqr(@fnbagu2(ub1)+@bagu3+(@fnbagu4(sqr(appcub1))+@bagu5)/@fnbagu3(ub1)*@bagu4))/@bagu1+@fnbagu5(appcub1)*@bagu2 ub2=@fnbagu1(sqr(@fnbagu2(ub2)+@bagu3+(@fnbagu4(sqr(appcub2))+@bagu5)/@fnbagu3(ub2)*@bagu4))/@bagu1+@fnbagu5(appcub2)*@bagu2 ub3=@fnbagu1(sqr(@fnbagu2(ub3)+@bagu3+(@fnbagu4(sqr(appcub3))+@bagu5)/@fnbagu3(ub3)*@bagu4))/@bagu1+@fnbagu5(appcub3)*@bagu2 elseif (@modemagn==1) a1=@fnbagu1(@fnbagu2(sqr(a1))+@bagu3+(@fnbagu4(sqr(appca1))+@bagu5)/@fnbagu3(a1)*@bagu4)/@bagu1+@fnbagu5(appca1)*@bagu2 a2=@fnbagu1(@fnbagu2(sqr(a2))+@bagu3+(@fnbagu4(sqr(appca2))+@bagu5)/@fnbagu3(a2)*@bagu4)/@bagu1+@fnbagu5(appca2)*@bagu2 a3=@fnbagu1(@fnbagu2(sqr(a3))+@bagu3+(@fnbagu4(sqr(appca3))+@bagu5)/@fnbagu3(a3)*@bagu4)/@bagu1+@fnbagu5(appca3)*@bagu2 b1=@fnbagu1(@fnbagu2(sqr(b1))+@bagu3+(@fnbagu4(sqr(appcb1))+@bagu5)/@fnbagu3(b1)*@bagu4)/@bagu1+@fnbagu5(appcb1)*@bagu2 b2=@fnbagu1(@fnbagu2(sqr(b2))+@bagu3+(@fnbagu4(sqr(appcb2))+@bagu5)/@fnbagu3(b2)*@bagu4)/@bagu1+@fnbagu5(appcb2)*@bagu2 b3=@fnbagu1(@fnbagu2(sqr(b3))+@bagu3+(@fnbagu4(sqr(appcb3))+@bagu5)/@fnbagu3(b3)*@bagu4)/@bagu1+@fnbagu5(appcb3)*@bagu2 ua1=@fnbagu1(@fnbagu2(sqr(ua1))+@bagu3+(@fnbagu4(sqr(appcua1))+@bagu5)/@fnbagu3(ua1)*@bagu4)/@bagu1+@fnbagu5(appcua1)*@bagu2 ua2=@fnbagu1(@fnbagu2(sqr(ua2))+@bagu3+(@fnbagu4(sqr(appcua2))+@bagu5)/@fnbagu3(ua2)*@bagu4)/@bagu1+@fnbagu5(appcua2)*@bagu2 ua3=@fnbagu1(@fnbagu2(sqr(ua3))+@bagu3+(@fnbagu4(sqr(appcua3))+@bagu5)/@fnbagu3(ua3)*@bagu4)/@bagu1+@fnbagu5(appcua3)*@bagu2 ub1=@fnbagu1(@fnbagu2(sqr(ub1))+@bagu3+(@fnbagu4(sqr(appcub1))+@bagu5)/@fnbagu3(ub1)*@bagu4)/@bagu1+@fnbagu5(appcub1)*@bagu2 ub2=@fnbagu1(@fnbagu2(sqr(ub2))+@bagu3+(@fnbagu4(sqr(appcub2))+@bagu5)/@fnbagu3(ub2)*@bagu4)/@bagu1+@fnbagu5(appcub2)*@bagu2 ub3=@fnbagu1(@fnbagu2(sqr(ub3))+@bagu3+(@fnbagu4(sqr(appcub3))+@bagu5)/@fnbagu3(ub3)*@bagu4)/@bagu1+@fnbagu5(appcub3)*@bagu2 endif else xa1=@fnbagu9(a1)^@bagu9 xa2=@fnbagu9(a2)^@bagu9 xa3=@fnbagu9(a3)^@bagu9 xb1=@fnbagu9(b1)^@bagu9 xb2=@fnbagu9(b2)^@bagu9 xb3=@fnbagu9(b3)^@bagu9 xua1=@fnbagu9(ua1)^@bagu9 xua2=@fnbagu9(ua2)^@bagu9 xua3=@fnbagu9(ua3)^@bagu9 xub1=@fnbagu9(ub1)^@bagu9 xub2=@fnbagu9(ub2)^@bagu9 xub3=@fnbagu9(ub3)^@bagu9 if (@modemagn==0) a1=@fnbagu1(sqr(@fnbagu2(a1)+@bagu3+(@fnbagu4(sqr(appca1))+@bagu5)/@fnbagu3(a1)*@bagu4))/@bagu1+@fnbagu5(appca1)*@bagu2+(@fnbagu7(tempa1)*@bagu6)*(@fnbagu8(appca1)+@bagu7)*@bagu8 a2=@fnbagu1(sqr(@fnbagu2(a2)+@bagu3+(@fnbagu4(sqr(appca2))+@bagu5)/@fnbagu3(a2)*@bagu4))/@bagu1+@fnbagu5(appca2)*@bagu2+(@fnbagu7(tempa2)*@bagu6)*(@fnbagu8(appca2)+@bagu7)*@bagu8 a3=@fnbagu1(sqr(@fnbagu2(a3)+@bagu3+(@fnbagu4(sqr(appca3))+@bagu5)/@fnbagu3(a3)*@bagu4))/@bagu1+@fnbagu5(appca3)*@bagu2+(@fnbagu7(tempa3)*@bagu6)*(@fnbagu8(appca3)+@bagu7)*@bagu8 b1=@fnbagu1(sqr(@fnbagu2(b1)+@bagu3+(@fnbagu4(sqr(appcb1))+@bagu5)/@fnbagu3(b1)*@bagu4))/@bagu1+@fnbagu5(appcb1)*@bagu2+(@fnbagu7(tempb1)*@bagu6)*(@fnbagu8(appcb1)+@bagu7)*@bagu8 b2=@fnbagu1(sqr(@fnbagu2(b2)+@bagu3+(@fnbagu4(sqr(appcb2))+@bagu5)/@fnbagu3(b2)*@bagu4))/@bagu1+@fnbagu5(appcb2)*@bagu2+(@fnbagu7(tempb2)*@bagu6)*(@fnbagu8(appcb2)+@bagu7)*@bagu8 b3=@fnbagu1(sqr(@fnbagu2(b3)+@bagu3+(@fnbagu4(sqr(appcb3))+@bagu5)/@fnbagu3(b3)*@bagu4))/@bagu1+@fnbagu5(appcb3)*@bagu2+(@fnbagu7(tempb3)*@bagu6)*(@fnbagu8(appcb3)+@bagu7)*@bagu8 ua1=@fnbagu1(sqr(@fnbagu2(ua1)+@bagu3+(@fnbagu4(sqr(appcua1))+@bagu5)/@fnbagu3(ua1)*@bagu4))/@bagu1+@fnbagu5(appcua1)*@bagu2+(@fnbagu7(tempua1)*@bagu6)*(@fnbagu8(appcua1)+@bagu7)*@bagu8 ua2=@fnbagu1(sqr(@fnbagu2(ua2)+@bagu3+(@fnbagu4(sqr(appcua2))+@bagu5)/@fnbagu3(ua2)*@bagu4))/@bagu1+@fnbagu5(appcua2)*@bagu2+(@fnbagu7(tempua2)*@bagu6)*(@fnbagu8(appcua2)+@bagu7)*@bagu8 ua3=@fnbagu1(sqr(@fnbagu2(ua3)+@bagu3+(@fnbagu4(sqr(appcua3))+@bagu5)/@fnbagu3(ua3)*@bagu4))/@bagu1+@fnbagu5(appcua3)*@bagu2+(@fnbagu7(tempua3)*@bagu6)*(@fnbagu8(appcua3)+@bagu7)*@bagu8 ub1=@fnbagu1(sqr(@fnbagu2(ub1)+@bagu3+(@fnbagu4(sqr(appcub1))+@bagu5)/@fnbagu3(ub1)*@bagu4))/@bagu1+@fnbagu5(appcub1)*@bagu2+(@fnbagu7(tempub1)*@bagu6)*(@fnbagu8(appcub1)+@bagu7)*@bagu8 ub2=@fnbagu1(sqr(@fnbagu2(ub2)+@bagu3+(@fnbagu4(sqr(appcub2))+@bagu5)/@fnbagu3(ub2)*@bagu4))/@bagu1+@fnbagu5(appcub2)*@bagu2+(@fnbagu7(tempub2)*@bagu6)*(@fnbagu8(appcub2)+@bagu7)*@bagu8 ub3=@fnbagu1(sqr(@fnbagu2(ub3)+@bagu3+(@fnbagu4(sqr(appcub3))+@bagu5)/@fnbagu3(ub3)*@bagu4))/@bagu1+@fnbagu5(appcub3)*@bagu2+(@fnbagu7(tempub3)*@bagu6)*(@fnbagu8(appcub3)+@bagu7)*@bagu8 elseif (@modemagn==1) a1=@fnbagu1(@fnbagu2(sqr(a1))+@bagu3+(@fnbagu4(sqr(appca1))+@bagu5)/@fnbagu3(a1)*@bagu4)/@bagu1+@fnbagu5(appca1)*@bagu2+(@fnbagu7(tempa1)*@bagu6)*(@fnbagu8(appca1)+@bagu7)*@bagu8 a2=@fnbagu1(@fnbagu2(sqr(a2))+@bagu3+(@fnbagu4(sqr(appca2))+@bagu5)/@fnbagu3(a2)*@bagu4)/@bagu1+@fnbagu5(appca2)*@bagu2+(@fnbagu7(tempa2)*@bagu6)*(@fnbagu8(appca2)+@bagu7)*@bagu8 a3=@fnbagu1(@fnbagu2(sqr(a3))+@bagu3+(@fnbagu4(sqr(appca3))+@bagu5)/@fnbagu3(a3)*@bagu4)/@bagu1+@fnbagu5(appca3)*@bagu2+(@fnbagu7(tempa3)*@bagu6)*(@fnbagu8(appca3)+@bagu7)*@bagu8 b1=@fnbagu1(@fnbagu2(sqr(b1))+@bagu3+(@fnbagu4(sqr(appcb1))+@bagu5)/@fnbagu3(b1)*@bagu4)/@bagu1+@fnbagu5(appcb1)*@bagu2+(@fnbagu7(tempb1)*@bagu6)*(@fnbagu8(appcb1)+@bagu7)*@bagu8 b2=@fnbagu1(@fnbagu2(sqr(b2))+@bagu3+(@fnbagu4(sqr(appcb2))+@bagu5)/@fnbagu3(b2)*@bagu4)/@bagu1+@fnbagu5(appcb2)*@bagu2+(@fnbagu7(tempb2)*@bagu6)*(@fnbagu8(appcb2)+@bagu7)*@bagu8 b3=@fnbagu1(@fnbagu2(sqr(b3))+@bagu3+(@fnbagu4(sqr(appcb3))+@bagu5)/@fnbagu3(b3)*@bagu4)/@bagu1+@fnbagu5(appcb3)*@bagu2+(@fnbagu7(tempb3)*@bagu6)*(@fnbagu8(appcb3)+@bagu7)*@bagu8 ua1=@fnbagu1(@fnbagu2(sqr(ua1))+@bagu3+(@fnbagu4(sqr(appcua1))+@bagu5)/@fnbagu3(ua1)*@bagu4)/@bagu1+@fnbagu5(appcua1)*@bagu2+(@fnbagu7(tempua1)*@bagu6)*(@fnbagu8(appcua1)+@bagu7)*@bagu8 ua2=@fnbagu1(@fnbagu2(sqr(ua2))+@bagu3+(@fnbagu4(sqr(appcua2))+@bagu5)/@fnbagu3(ua2)*@bagu4)/@bagu1+@fnbagu5(appcua2)*@bagu2+(@fnbagu7(tempua2)*@bagu6)*(@fnbagu8(appcua2)+@bagu7)*@bagu8 ua3=@fnbagu1(@fnbagu2(sqr(ua3))+@bagu3+(@fnbagu4(sqr(appcua3))+@bagu5)/@fnbagu3(ua3)*@bagu4)/@bagu1+@fnbagu5(appcua3)*@bagu2+(@fnbagu7(tempua3)*@bagu6)*(@fnbagu8(appcua3)+@bagu7)*@bagu8 ub1=@fnbagu1(@fnbagu2(sqr(ub1))+@bagu3+(@fnbagu4(sqr(appcub1))+@bagu5)/@fnbagu3(ub1)*@bagu4)/@bagu1+@fnbagu5(appcub1)*@bagu2+(@fnbagu7(tempub1)*@bagu6)*(@fnbagu8(appcub1)+@bagu7)*@bagu8 ub2=@fnbagu1(@fnbagu2(sqr(ub2))+@bagu3+(@fnbagu4(sqr(appcub2))+@bagu5)/@fnbagu3(ub2)*@bagu4)/@bagu1+@fnbagu5(appcub2)*@bagu2+(@fnbagu7(tempub2)*@bagu6)*(@fnbagu8(appcub2)+@bagu7)*@bagu8 ub3=@fnbagu1(@fnbagu2(sqr(ub3))+@bagu3+(@fnbagu4(sqr(appcub3))+@bagu5)/@fnbagu3(ub3)*@bagu4)/@bagu1+@fnbagu5(appcub3)*@bagu2+(@fnbagu7(tempub3)*@bagu6)*(@fnbagu8(appcub3)+@bagu7)*@bagu8 endif tempa1=@fnbagu6(xa1) tempa2=@fnbagu6(xa2) tempa3=@fnbagu6(xa3) tempb1=@fnbagu6(xb1) tempb2=@fnbagu6(xb2) tempb3=@fnbagu6(xb3) tempua1=@fnbagu6(xua1) tempua2=@fnbagu6(xua2) tempua3=@fnbagu6(xua3) tempub1=@fnbagu6(xub1) tempub2=@fnbagu6(xub2) tempub3=@fnbagu6(xub3) endif endif ;-----------------HyperComplex and Flavor owns-------------------------------- zr1=(real(a1)+real(b1))/2 zr2=(real(a2)+real(b2))/2 zr3=(real(a3)+real(b3))/2 zi1=(imag(a1)+imag(b1))/2 zi2=(imag(a2)+imag(b2))/2 zi3=(imag(a3)+imag(b3))/2 zur1=(real(ua1)+real(ub1))/2 zur2=(real(ua2)+real(ub2))/2 zur3=(real(ua3)+real(ub3))/2 zui1=(imag(ua1)+imag(ub1))/2 zui2=(imag(ua2)+imag(ub2))/2 zui3=(imag(ua3)+imag(ub3))/2 wr1=(imag(a1)-imag(b1))/2 wr2=(imag(a2)-imag(b2))/2 wr3=(imag(a3)-imag(b3))/2 wi1=(real(b1)-real(a1))/2 wi2=(real(b2)-real(a2))/2 wi3=(real(b3)-real(a3))/2 ur1=(imag(ua1)-imag(ub1))/2 ur2=(imag(ua2)-imag(ub2))/2 ur3=(imag(ua3)-imag(ub3))/2 ui1=(real(ub1)-real(ua1))/2 ui2=(real(ub2)-real(ua2))/2 ui3=(real(ub3)-real(ua3))/2 za1=(zr1+flip(zi1)) za2=(zr2+flip(zi2)) za3=(zr3+flip(zi3)) zb1=(zur1+flip(zui1)) zb2=(zur2+flip(zui2)) zb3=(zur3+flip(zui3)) zz1=(za1+zb1)/2 zz2=(za2+zb2)/2 zz3=(za3+zb3)/2 z1=@fnfl(zz1+@fl1)*@fl2 z2=@fnfl(zz2+@fl1)*@fl2 z3=@fnfl(zz3+@fl1)*@fl2 w1=wr1+flip(wi1) w2=wr2+flip(wi2) w3=wr3+flip(wi3) u1=ur1+flip(ui1) u2=ur2+flip(ui2) u3=ur3+flip(ui3) ;----------------------Slope Section------------------------------------------ ;;;; process slope if (@zmode == 85) iterexp1 = iterexp1 + exp(-cabs(z1)) iterexp2 = iterexp2 + exp(-cabs(z2)) iterexp3 = iterexp3 + exp(-cabs(z3)) endif done = done + 1; increment iteration counter if (@zmode == 0) ; smallest |z| d1 = |z1|; get current distances from origin d2 = |z2| d3 = |z3| if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 1) ; smallest |real(z)| d1 = abs(real(z1)); get current distances from the i axis d2 = abs(real(z2)) d3 = abs(real(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 2) ; smallest |imag(z)| d1 = abs(imag(z1)); get current distances from the r axis d2 = abs(imag(z2)) d3 = abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 3) ; smallest |real(z)|+|imag(z)| d1 = abs(real(z1))+abs(imag(z1)); get current distances from the i axis d2 = abs(real(z2))+abs(imag(z2)) d3 = abs(real(z3))+abs(imag(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 4) ; smallest |atan(z)| d1 = abs(atan2(z1)); get current angles d2 = abs(atan2(z2)) d3 = abs(atan2(z3)) if (d1 < s1); update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 5) ; smallest |function1(z)| d1 = abs(real(@fnsl(z1))) + abs(imag(@fnsl(z1))) ; get current distances d2 = abs(real(@fnsl(z2))) + abs(imag(@fnsl(z2))) d3 = abs(real(@fnsl(z3))) + abs(imag(@fnsl(z3))) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 6) ; smallest |function2(z)| d1 = cabs(@fnsl(z1)) ; get current distances d2 = cabs(@fnsl(z2)) d3 = cabs(@fnsl(z3)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 7) ; smallest Lemniscate Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(2*theta))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 8) ; smallest Cardiod Distance theta = atan(imag(#z)/real(#z)) r = 5*@a*(1-cos(theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 9) ; smallest Conchoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*(@a + @b*cos(theta))/cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 10) ; smallest Cycloid Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*cabs(#z) polar = r*(theta-sin(theta)) + flip(r*(1-cos(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 11) ; smallest Archimedes Distance theta = atan(imag(#z)/real(#z)) r = 3.5*@a*theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 12) ; smallest Log Spiral Distance theta = atan(imag(#z)/real(#z)) r = exp(@a*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 13) ; smallest Rose Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 14) ; smallest Bifolium Distance theta = atan(imag(#z)/real(#z)) r = 16*@a*sin(theta)^2*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 15) ; smallest Astroid Distance theta = atan(imag(#z)/real(#z)) af1 = @afn1(theta)^imag(@apwr) af2 = @afn2(theta)^imag(@apwr) polar = 1.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 16) ; smallest Cissoid of Diocles Distance theta = atan(imag(#z)/real(#z)) r = 2*@a*sin(theta)*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 17) ; smallest Cochleoid Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*sin(theta)/theta polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 18) ; smallest Folium of Descartes Distance theta = atan(imag(#z)/real(#z)) r = @a*tan(theta)/(cos(theta)*(1+tan(theta)^3)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 19) ; smallest Limacon of Pascal Distance theta = atan(imag(#z)/real(#z)) r = 0.03*@b + 1.5*@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 20) ; smallest Lituus Distance theta = atan(imag(#z)/real(#z)) r = 0.6*@a/theta^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 21) ; smallest Nephroid Distance theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) - @afn1(theta/3) af2 = 3*@afn2(theta) - @afn2(theta/3) polar = 0.75*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 22) ; smallest Strophoid Distance theta = atan(imag(#z)/real(#z)) r = 0.2*@b*sin(@a-2*theta)/sin(@a-theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 23) ; smallest Witch of Agnesi theta = atan(imag(#z)/real(#z)) af1 = 2*cotan(theta) af2 = 1-cos(2*theta) polar = 0.1*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 24) ; smallest Curtate Cycloid theta = atan(imag(#z)/real(#z)) af1 = 2*@a*theta - 0.1*@b*@afn2(theta) af2 = 2*@a - 0.1*@b*@afn1(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 25) ; smallest Epicycloid theta = atan(imag(#z)/real(#z)) af1 = (5*@a+@b)*@afn1(theta) - @b*@afn1((5*@a+@b)*theta/@b) af2 = (5*@a+@b)*@afn2(theta) - @b*@afn2((5*@a+@b)*theta/@b) polar = 0.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 26) ; smallest Ellipse Evolute theta = atan(imag(#z)/real(#z)) af1 = (@a^2-(0.7*@b)^2)/@a*@afn1(theta)^(real(@apwr)) af2 = ((0.7*@b)^2-@a^2)/(0.7*@b)*@afn2(theta)^(imag(@apwr)) polar = 0.2*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 27) ; smallest Tractrix theta = atan(imag(#z)/real(#z)) af1 = @a*(log(tan(theta/2))-@afn1(theta)) af2 = @a*@afn2(theta) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 28) ; smallest Kampyle of Eudoxus Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta)^2 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 29) ; smallest Circle Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*(1-3*2*@b*cos(theta)+2*2*@b*cos(theta)^3)/(-(1+2*(2*@b)^2)+3*2*@b*cos(theta)) af2 = 2*(2*@b)^2*sin(theta)^3/(1+2*(2*@b)^2-3*@b*cos(theta)) polar = 1.5*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 30) ; smallest Deltoid Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 3*@afn1(theta) + @afn1(3*theta+#pi/2*@b) - @afn1(#pi/2*@b) af2 = 3*@afn2(theta) + @afn2(3*theta+#pi/2*@b) - @afn2(#pi/2*@b) polar = 0.35*@a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 31) ; smallest Ellipse Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 4*@a*(@a-@b)*(@a*@b)*sin(theta)^3/(@a^2+@b^2+(@b^2-@a^2)*cos(2*theta)) af2 = 4*@b*(@b^2-@a^2)*cos(theta)^3/(@a^2+@b^2+3*(@b^2-@a^2)*cos(2*theta)) polar = 0.25*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 32) ; smallest Log Spiral Catacaustic theta = atan(imag(#z)/real(#z)) af1 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)-sin(theta))/(1+(2*@b^2)) af2 = 2*@b*exp(2*@b*theta)*(2*@b*cos(theta)+sin(theta))/(1+(2*@b^2)) polar = @a*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 33) ; smallest Butterfly Distance theta = atan(imag(#z)/real(#z)) r = 1.25*@a*(exp(sin(theta))-2*cos(4*theta)+sin(1/24*(2*theta-#pi))) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 34) ; smallest Gear Curve theta = atan(imag(#z)/real(#z)) af1 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*cos(theta) af2 = (0.25*@a+1/@b*tanh(@b*sin(@pn*theta)))*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 35) ; smallest Arachnida 1 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn-1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 36) ; smallest Arachnida 2 Distance theta = atan(imag(#z)/real(#z)) r = @a*sin(@pn*theta)/sin((@pn+1)*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 37) ; smallest Cayley's Sextic Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*cos(theta)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 38) ; smallest Cycloid of Seva Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a*(1+2*cos(2*theta)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 39) ; smallest Devil's Curve Distance theta = atan(imag(#z)/real(#z)) r = (((0.5*@a*sin(theta))^2-(0.2*@b*cos(theta))^2)/(sin(theta)^2-cos(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 40) ; smallest Eight Curve Distance theta = atan(imag(#z)/real(#z)) r = @a*cos(theta)^(-2)*cos(2*theta)^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 41) ; smallest Epispiral Distance theta = atan(imag(#z)/real(#z)) r = 0.25*@a/cos(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 42) ; smallest Hipopede Distance theta = atan(imag(#z)/real(#z)) r = (0.5*@b*(0.5*@a-(0.5*@b)^2*cos(theta)))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 43) ; smallest Maltese Cross Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@a/(cos(theta)*sin(theta)*(cos(theta)^2-sin(theta)^2))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 44) ; smallest Ophiuride Distance theta = atan(imag(#z)/real(#z)) r = (0.01*@b*sin(theta)-4.5*@a*cos(theta))*tan(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 45) ; smallest Quadratrix of Hippias Distance theta = atan(imag(#z)/real(#z)) r = @a*theta/sin(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 46) ; smallest Poinsot Spiral 1 Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a/cosh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 47) ; smallest Poinsot Spiral 2 Distance theta = atan(imag(#z)/real(#z)) r = @a/sinh(@pn*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 48) ; smallest Quadrifolium Distance theta = atan(imag(#z)/real(#z)) r = 2.5*@a*sin(2*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 49) ; smallest Scarabaeus Distance theta = atan(imag(#z)/real(#z)) r = 0.5*@b*cos(2*theta)-@a*cos(theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 50) ; smallest Semicubical Parabola Distance theta = atan(imag(#z)/real(#z)) r = 1.5*@a*(cos(3*@b*theta))^(1/(3*@b)) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 51) ; smallest Swastika Curve Distance theta = atan(imag(#z)/real(#z)) r = 2.25*@a*(sin(theta)*cos(theta)/(sin(theta)^4-cos(theta)^4))^0.5 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 52) ; smallest Trifolium Distance theta = atan(imag(#z)/real(#z)) r = -2*@a*cos(3*theta) polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 53) ; smallest Tschirnhausen Cubic Distance theta = atan(imag(#z)/real(#z)) r = @a/cos(theta/3)^3 polar = r*cos(theta) + flip(r*sin(theta)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 54) ; smallest Bicorn theta = atan(imag(#z)/real(#z)) af1 = @a*sin(theta) af2 = @a*cos(theta)^2*(2+cos(theta))/(3+sin(theta)^2) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 55) ; smallest Cruciform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a/cos(theta) af2 = 0.02*@b/sin(theta) polar = 1.5*(af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 56) ; smallest Knot curve cy = imag(#z) qa = 1 qb = -2 qc = 1 - 3*cy^2 - 2*cy^3 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 57) ; smallest Ampersand qa = 4 qb = 6*real(#z)^2 - 3*real(#z) - 3 qc = 6*real(#z)^4 - 13*real(#z)^3 + 19*real(#z)^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(real(#z) + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 58) ; smallest Bean theta = atan(imag(#z)/real(#z)) af1 = @a*(@afn1(theta)^real(@apwr) + @afn2(theta)^imag(@apwr)) polar = ((af1*cos(theta))+flip((af1*sin(theta)))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 59) ; smallest Bicuspid cy = imag(#z) qa = 1 qb = -2*(0.05*@b)^2 qc = (0.05*@b)^4 - (cy^2 - (0.05*@b)^2)^2 if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = 2.25*@a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 60) ; smallest Bow theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1-tan(theta)^2)*cos(theta) af2 = 0.1*@b*(1-tan(theta)^2)*sin(theta) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 61) ; smallest Cassini Ovals theta = atan(imag(#z)/real(#z)) if @negroot == true rr = 0.5*@a*(cos(2*theta)-((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 else rr = 0.5*@a*(cos(2*theta)+((@b*0.1/(@a*0.5))^4-sin(2*theta)^2)^0.5)^0.5 endif polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 62) ; smallest Circle theta = atan(imag(#z)/real(#z)) rr = @a*sin(theta)^2 + 0.2*@b*cos(theta)^2 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 63) ; smallest Trident cx = real(#z) cy = cx^2 + 0.1*@b/cx polar = 0.1*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 64) ; smallest Stirrup Curve cy = imag(#z) qa = 1 qb = -2 qc = 1-cy^2*(cy-1)*(cy-2)*(cy+5) if @negroot == true qx = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qx = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(qx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 65) ; smallest Diamond polar = @a*@safn(abs((real(#z)*@sa1))+abs((flip(imag(#z))^@sa2))-1) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 66) ; smallest Dumbbell Curve cx = real(#z) cy = (cx^4 - cx^6)^0.5 polar = 4*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 67) ; smallest Teardrop Curve theta = atan(imag(#z)/real(#z)) af1 = @a*cos(theta) af2 = 0.5*@b*sin(theta)*sin(theta/2)^(@pn-1) polar = (af1 + flip(af2)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 68) ; smallest Happy Accident polar = 15*@a*@safn((((real(#z)*@sa4)^(1+@sa2))+ \ (flip(imag(#z))^2*@sa3))*atan2((flip(imag(#z))^@sa7)* \ (real(#z)^@sa5))-@sa1* \ (flip(imag(#z))^@sa6)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 69) ; smallest Hyperbola theta = atan(imag(#z)/real(#z)) rr = 0.35*@a*(1/cos(2*theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 70) ; smallest Kappa Curve theta = atan(imag(#z)/real(#z)) rr = 0.1*@a*tan(theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 71) ; smallest Piriform theta = atan(imag(#z)/real(#z)) af1 = 0.1*@a*(1+sin(theta)) af2 = 0.1*@b*cos(theta)*(1+sin(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 72) ; smallest Keratoid Cusp cx = real(#z) qa = 1 qb = -cx^2 qc = -cx^5 if @negroot == true qy = (-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa) else qy = (-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa) endif polar = 2.5*@a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 73) ; smallest Serpentine Curve theta = atan(imag(#z)/real(#z)) af1 = 0.2*@a*cotan(theta) af2 = 0.2*@b*sin(theta)*cos(theta) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 74) ; smallest Line cx = real(#z) cy = cx polar = 3*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 75) ; smallest Links Curve cx = real(#z) qa = 1 qb = 2*cx^2-6*cx qc = cx^4-2*cx^3+cx^2 if @negroot == true qy = ((-qb - (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 else qy = ((-qb + (qb^2 - 4*qa*qc)^0.5)/(2*qa))^0.5 endif polar = @a*(cx + flip(qy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 76) ; smallest Parabola cy = imag(#z) cx = 10*@b*cy^2 polar = 0.65*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 77) ; smallest Trefoil theta = atan(imag(#z)/real(#z)) rr = 0.1*@a/cos(3*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 78) ; smallest Trident of Descartes cx = real(#z) cy = (cx-0.2*@b)*(cx+0.2*@b)*(cx-0.4*@b)/cx polar = @a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 79) ; smallest Trisectrix of Maclaurin theta = atan(imag(#z)/real(#z)) rr = 0.5*@a*sin(3*theta)/sin(2*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 80) ; smallest Atzema Spiral theta = atan(imag(#z)/real(#z)) af1 = 0.5*@a*(sin(theta)/theta-2*cos(theta)-theta*sin(theta)) af2 = 0.05*@b*(cos(theta)/theta-2*sin(theta)+theta*cos(theta)) polar = af1 + flip(af2) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 81) ; smallest Rose of Troy theta = atan(imag(#z)/real(#z)) rr = @cp*(1+10*@a*sin(4*@b*theta)) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 82) ; smallest Cotes' Spiral theta = atan(imag(#z)/real(#z)) rr = @a/cosh(@b*theta) polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 83) ; smallest Dipole Curve theta = atan(imag(#z)/real(#z)) rr = @a*(cos(theta))^0.5 polar = (rr*cos(theta))+flip((rr*sin(theta))) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif elseif (@zmode == 84) ; smallest Polytrope cx = real(#z) cy = 1/cx^@pn polar = 0.00005*@a*(cx + flip(cy)) d1 = abs(cabs(z1)-cabs(polar)) ; get current distances d2 = abs(cabs(z2)-cabs(polar)) d3 = abs(cabs(z3)-cabs(polar)) if (d1 < s1) ; update smallest distances s1 = d1 endif if (d2 < s2) s2 = d2 endif if (d3 < s3) s3 = d3 endif endif if (@version==1.0) if ( @bailout < |z1|+|w1|+|u1| ||\ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else z = z1 endif if ( @bailout < |z1|+|w1|+|u1| ) ; we're done done = 0 endif endif if (@version==1.1) if ( @bailout < |zz1|+|w1|+|u1| ||\ @everyiter ||\ done == #maxiter + 2); done, or every iteration, or last ; determine continuous iteration (height) for each point if (@zmode >= 0 && @zmode <= 84) ; height based on smallest |z| e1 = s1 * @zscale e2 = s2 * @zscale e3 = s3 * @zscale elseif (@zmode == 85) e1 = iterexp1 * @zscale e2 = iterexp2 * @zscale e3 = iterexp3 * @zscale endif ; apply transfer function ; a function is not used because these are floats ; and not all functions apply to floats if (@xfer == 1); log e1 = log(e1) e2 = log(e2) e3 = log(e3) elseif (@xfer == 2); sqrt e1 = sqrt(e1) e2 = sqrt(e2) e3 = sqrt(e3) elseif (@xfer == 3); cuberoot e1 = (e1)^(1/3) e2 = (e2)^(1/3) e3 = (e3)^(1/3) elseif (@xfer == 4); exp e1 = exp(e1) e2 = exp(e2) e3 = exp(e3) elseif (@xfer == 5); sqr e1 = sqr(e1) e2 = sqr(e2) e3 = sqr(e3) elseif (@xfer == 6); cube e1 = (e1)^3 e2 = (e2)^3 e3 = (e3)^3 elseif (@xfer == 7); sin e1 = sin(e1) e2 = sin(e2) e3 = sin(e3) elseif (@xfer == 8); cos e1 = cos(e1) e2 = cos(e2) e3 = cos(e3) elseif (@xfer == 9); tan e1 = tan(e1) e2 = tan(e2) e3 = tan(e3) endif ; apply post-scale e1 = e1 * @zscale2 e2 = e2 * @zscale2 e3 = e3 * @zscale2 vx = e2-e1 vy = e3-e1 vz = -@offset ; normalize vector vd = 1/sqrt(sqr(vx)+sqr(vy)+sqr(vz)) vx = vx*vd vy = vy*vd vz = vz*vd z = vx + flip(vy); fudge z from vector else z = z1 endif if ( @bailout < |zz1|+|w1|+|u1| ) ; we're done done = 0 endif endif iter=iter+1 iter1=iter1+1 Bailout: done > 0 Default: title="SlopeHyperMath" maxiter=250 method=multipass periodicity=0 Heading caption="Mandelbrot Mode" visible=@mode==0 Endheading Heading caption="Julia Mode" visible=@mode==1 Endheading param mode caption="Current Mode" default=0 enum="Mandelbrot" "Julia" visible=false endparam param switchMode caption="Switch Mode" default=1 enum="Mandelbrot" "Julia" visible=false endparam param Bailout caption="Bailout Value" default=1000.0 endparam param seed caption="Seed Value" default=(1.0,0.0) visible=(@mode=="Julia") endparam Heading caption="Flavor" visible=(@ableflavor==true) Endheading param ableflavor caption="Enable Flavor" default=false endparam param fl1 caption="Add Flavor" default=(0.0,0.0) visible=(@ableflavor==true) endparam param fl2 caption="Mult. Flavor" default=(1.0,0.0) visible=(@ableflavor==true) endparam func fnfl caption="Func. Flavor" default=ident() visible=(@ableflavor==true) endfunc Heading caption="Slope Parameters" Endheading float param offset caption="Orbit Separation" default=0.00000001 hint="Defines how far apart the simultaneous orbits are. Smaller \ distances will produce more accurate results." endparam param zmode caption="Height Value" default=85 enum="smallest |z|""smallest |real(z)|""smallest |imag(z)|" \ "smallest summ(z)""smallest |atan(z)|""smallest |function1|" \ "smallest |function2|""Lemniscate""Cardioid""Conchoid""Cycloid" \ "Archimedes""Log Spiral""Rose""Bifolium""Astroid""Cissoid of Diocles" \ "Cochleoid""Folium of Descartes""Limacon of Pascal""Lituus""Nephroid" \ "Strophoid""Witch of Agnesi""Curtate Cycloid""Epicycloid""Ellipse Evolute" \ "Tractrix""Kampyle of Eudoxus""Circle Catacaustic""Deltoid Catacaustic" \ "Ellipse Catacaustic""Log Spiral Catacaustic""Butterfly""Gear Curve" \ "Arachnida 1""Arachnida 2""Cayley's Sectic""Cycloid of Seva" "Devil's Curve" \ "Eight Curve""Epispiral""Hipopede""Maltese Cross""Ophiuride" \ "Quadratrix of Hippias""Poinsot Spiral 1""Poinsot Spiral 2""Quadrifolium" \ "Scarabaeus""Semicubical Parabola""Swastika Curve" \ "Trifolium""Tschirnhausen Cubic""Bicorn""Cruciform""Knot Curve""Ampersand" \ "Bean""Bicuspid""Bow""Cassini Ovals""Circle""Trident""Stirrup Curve""Diamond"\ "Dumbbell Curve""Teardrop Curve""Happy Accident""Hyperbola""Kappa Curve" \ "Piriform""Keratoid Cusp""Serpentine Curve""Line""Links Curve""Parabola" \ "Trefoil""Trident of Descartes""Trisectrix of Maclaurin""Atzema Spiral" \ "Rose of Troy""Cotes' Spiral""Dipole Curve""Polytrope""smoothed iteration" hint="Specifies what will be used to construct a height value." endparam func fnsl caption="Transmute Function" default=ident() visible=(@zmode==5)||(@zmode==6) endfunc param a caption="Polar Parameter 1" default=3.0 visible=(@zmode==7)||(@zmode==8)||(@zmode==9)||(@zmode==10) || \ (@zmode==11)||(@zmode==12)||(@zmode==13)||(@zmode==14) || \ (@zmode==15)||(@zmode==16)||(@zmode==17)||(@zmode==18) || \ (@zmode==19)||(@zmode==20)||(@zmode==21)||(@zmode==22) || \ (@zmode==23)||(@zmode==24)||(@zmode==25)||(@zmode==26) || \ (@zmode==27)||(@zmode==28)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==33)||(@zmode==34) || \ (@zmode==35)||(@zmode==36)||(@zmode==37)||(@zmode==38) || \ (@zmode==39)||(@zmode==40)||(@zmode==41)||(@zmode==42) || \ (@zmode==43)||(@zmode==44)||(@zmode==45)||(@zmode==46) || \ (@zmode==47)||(@zmode==48)||(@zmode==49)||(@zmode==50) || \ (@zmode==51)||(@zmode==52)||(@zmode==53)||(@zmode==53) || \ (@zmode==54)||(@zmode==55)||(@zmode==56)||(@zmode==57) || \ (@zmode==58)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==64)||(@zmode==65) || \ (@zmode==66)||(@zmode==67)||(@zmode==68)||(@zmode==69) || \ (@zmode==70)||(@zmode==71)||(@zmode==72)||(@zmode==73) || \ (@zmode==74)||(@zmode==75)||(@zmode==76)||(@zmode==77) || \ (@zmode==78)||(@zmode==79)||(@zmode==80)||(@zmode==81) || \ (@zmode==82)||(@zmode==83)||(@zmode==84) endparam param b caption="Polar Parameter 2" default=3.0 visible=(@zmode==9)||(@zmode==19)||(@zmode==22)||(@zmode==24) || \ (@zmode==25)||(@zmode==26)||(@zmode==29)||(@zmode==30) || \ (@zmode==31)||(@zmode==32)||(@zmode==34)||(@zmode==39) || \ (@zmode==42)||(@zmode==44)||(@zmode==49)||(@zmode==50) || \ (@zmode==55)||(@zmode==59)||(@zmode==60)||(@zmode==61) || \ (@zmode==62)||(@zmode==63)||(@zmode==67)||(@zmode==71) || \ (@zmode==73)||(@zmode==76)||(@zmode==78)||(@zmode==80) || \ (@zmode==81)||(@zmode==82) endparam param cp caption="3rd Polar parameter" default=0.05 visible=(@zmode==81) endparam param pn caption="Polar Integer" default=3 visible=(@zmode==34)||(@zmode==35)||(@zmode==36)||(@zmode==47) || \ (@zmode==84) endparam param apwr caption="Polar Power" default=(3.0,3.0) visible=(@zmode==15)||(@zmode==26)||(@zmode==58) endparam func afn1 caption="Polar Fn 1" default=cos() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) endfunc func afn2 caption="Polar Fn 2" default=sin() visible=(@zmode==15)||(@zmode==21)||(@zmode==24)||(@zmode==25) || \ (@zmode==26)||(@zmode==27)||(@zmode==30)||(@zmode==58) endfunc param sa1 caption="Adjuster 1" default=1.0 visible=(@zmode==65)||(@zmode==68) endparam param sa2 caption="Adjuster 2" default=1.0 visible=(@zmode==65)||(@zmode==68) endparam param sa3 caption="Adjuster 3" default=1.0 visible=(@zmode==68) endparam param sa4 caption="Adjuster 4" default=1.0 visible=(@zmode==68) endparam param sa5 caption="Adjuster 5" default=1.0 visible=(@zmode==68) endparam param sa6 caption="Adjuster 6" default=1.0 visible=(@zmode==68) endparam param sa7 caption="Adjuster 7" default=1.0 visible=(@zmode==68) endparam func safn caption="Adjuster Fn" default=ident() visible=(@zmode==65)||(@zmode==68) endfunc param negroot caption = "Quad Neg Root" default = false visible=(@zmode==56)||(@zmode==57)||(@zmode==59)||(@zmode==61) || \ (@zmode==64)||(@zmode==72)||(@zmode==75) endparam param xfer caption="Height Transfer" default=0 enum="linear""log""sqrt""cuberoot""exp""sqr""cube""sin""cos""tan" hint="This function will be applied to the height value \ before a slope is calculated." endparam param zscale caption="Height Pre-Scale" default=1.0 hint="Specifies the ratio between height and distance. Higher \ values will exaggerate differences between high and low. \ In general, you will want to use smaller numbers here." endparam param zscale2 caption="Height Post-Scale" default=0.025 hint="Specifies the ratio between height and distance; like \ Height Pre-Scale, except that this value is applied after \ the transfer function." endparam param everyiter caption="Every Iteration" default=false hint="If set, the surface normal will be computed at every \ iteration. If you are using a coloring algorithm which \ processes every iteration, you will need this." endparam Heading caption="3R Dimension" visible=(@able3rd==true) Endheading param able3rd caption="Enable 3R Dimension" default=false endparam param rd1 caption="3RDim.1" default=(1.0,0.0) visible=(@able3rd==true) endparam param rd2 caption="3RDim.2" default=(1.0,0.0) visible=(@able3rd==true) endparam param rd3 caption="3RDim.3" default=(0.0,0.0) visible=(@able3rd==true) endparam Heading caption="Scenario" visible=(@ablescenario==true) Endheading bool param ablescenario caption="Enable Scenario" default=false endparam param seq1 caption="Select Scenario" enum="Modulation" "First Scenario" "Second Scenario" default=0 visible=(@ablescenario==true) endparam param modBy default=10 caption="Mod By" visible=(@ablescenario==true) endparam param modCmp default=5 caption="Mod Compare" visible=(@ablescenario==true) endparam Heading caption="Scenario1" visible=(@seq1!=2)&&(@ablescenario==true) Endheading param sce1 caption="Mult. a|b" default=(1.0,0.0) visible=(@seq1!=2)&&(@ablescenario==true) endparam param sce2 caption="Exp. a|b" default=(1.0,0.0) visible=(@seq1!=2)&&(@ablescenario==true) endparam param sceu1 caption="Mult. ua|ub" default=(1.0,0.0) visible=(@seq1!=2)&&(@ablescenario==true) endparam param sceu2 caption="Exp. ua|ub" default=(1.0,0.0) visible=(@seq1!=2)&&(@ablescenario==true) endparam func fnsce caption="Function a|b" default=ident() visible=(@seq1!=2)&&(@ablescenario==true) endfunc func fnsceu caption="Function ua|ub" default=ident() visible=(@seq1!=2)&&(@ablescenario==true) endfunc Heading caption="Scenario2" visible=(@seq1!=1)&&(@ablescenario==true) Endheading param sce3 caption="Mult. a|b" default=(1.0,0.0) visible=(@seq1!=1)&&(@ablescenario==true) endparam param sce4 caption="Exp. a|b" default=(1.0,0.0) visible=(@seq1!=1)&&(@ablescenario==true) endparam param sceu3 caption="Mult. ua|ub" default=(1.0,0.0) visible=(@seq1!=1)&&(@ablescenario==true) endparam param sceu4 caption="Exp. ua|ub" default=(2.0,0.0) visible=(@seq1!=1)&&(@ablescenario==true) endparam func fnsce1 caption="Function a|b" default=ident() visible=(@seq1!=1)&&(@ablescenario==true) endfunc func fnsceu1 caption="Function ua|ub" default=ident() visible=(@seq1!=1)&&(@ablescenario==true) endfunc Heading caption="C Sequence" visible=(@ableseq==true) Endheading bool param ableseq caption="Enable C Sequence" default=false endparam param seq caption="C Method" enum="1""2""3" default=0 visible=(@ableseq==true) endparam param factor caption="Factor 1" default=(0.5,0.0) visible=(@ableseq==true) endparam param factor1 caption="Factor 2" default=(0.2,0.0) visible=(@ableseq==true) endparam param factor2 caption="Factor 3" default=(1.0,0.0) visible=(@ableseq==true) endparam param factor3 caption="Factor 4" default=(1.0,0.0) visible=(@ableseq==true) endparam func fnfact1 caption="Function Factor 1" default=ident() visible=(@ableseq==true) endfunc func fnfact2 caption="Function Factor 2" default=ident() visible=(@ableseq==true) endfunc Heading caption="Extra Parameters" visible=(@extramix==true) EndHeading bool param extramix caption="Enable Extra Parameters" default=false endparam param mixa caption="Mix a" enum="Normal""+C""-C""*C""/C""C/" default=1 visible=(@extramix==true) endparam param mixb caption="Mix b" enum="Normal""+C""-C""*C""/C""C/" default=1 visible=(@extramix==true) endparam param mixua caption="Mix ua" enum="Normal""+C""-C""*C""/C""C/" default=3 visible=(@extramix==true) endparam param mixub caption="Mix ub" enum="Normal""+C""-C""*C""/C""C/" default=3 visible=(@extramix==true) endparam param mixab1 caption="Add. a|b" default=(0.0,0.0) visible=(@extramix==true) endparam param mixab2 caption="Exp. a|b" default=(1.0,0.0) visible=(@extramix==true) endparam param mixab3 caption="Mult. a|b" default=(1.0,0.0) visible=(@extramix==true) endparam param mixuab1 caption="Add. ua|ub" default=(0.0,0.0) visible=(@extramix==true) endparam param mixuab2 caption="Exp. ua|ub" default=(1.0,0.0) visible=(@extramix==true) endparam param mixuab3 caption="Mult. ua|ub" default=(1.0,0.0) visible=(@extramix==true) endparam param mixcab1 caption="Add. C(a|b)" default=(0.0,0.0) visible=(@extramix==true) endparam param mixcab2 caption="Exp. C(a|b)" default=(1.0,0.0) visible=(@extramix==true) endparam param mixcab3 caption="Mult. C(a|b)" default=(1.0,0.0) visible=(@extramix==true) endparam param mixcuab1 caption="Add. C(ua|ub)" default=(0.0,0.0) visible=(@extramix==true) endparam param mixcuab2 caption="Exp. C(ua|ub)" default=(1.0,0.0) visible=(@extramix==true) endparam param mixcuab3 caption="Mult. C(ua|ub)" default=(1.0,0.0) visible=(@extramix==true) endparam func fnmixab caption="Func. a|b" default=ident() visible=(@extramix==true) endfunc func fnmixuab caption="Func. ua|ub" default=ident() visible=(@extramix==true) endfunc func fnmixcab caption="Func. C(a|b)" default=ident() visible=(@extramix==true) endfunc func fnmixcuab caption="Func. C(ua|ub)" default=ident() visible=(@extramix==true) endfunc Heading caption="Select Formula" Endheading param formula caption="Formula" enum="Mandelbrot""Dafrm""Variant RCL""Precogna""MandelbrotQud""PhonyMandel""DivMandel" \ "Ikenaga""Fgz""Flattop""Num_Dup""Barnsley""TB Quest""Phoenix""Hydra Brot""Magnet CplxSpirals" \ "Xerreal""MandHack""Mod MandHack""Bagula Magnet" default=0 endparam param p1 caption="Hyper1" default=(0.0,0.0) endparam param p2 caption="Hyper2" default=(0.0,0.0) endparam param p3 caption="JuliaDimension1" default=(0.0,0.0) visible=(@mode=="Julia") endparam param p4 caption="JuliaDimension2" default=(0.0,0.0) visible=(@mode=="Julia") endparam Heading caption="Mandelbrot" visible=(@formula==0) Endheading param expm caption="Exponent" default=(2.0,0.0) visible=(@formula==0) endparam param parm caption="Param. 1" default=(0.0,0.0) visible=(@formula==0) endparam func fnm caption="Func.1 Z" default=ident() visible=(@formula==0) endfunc func fnm1 caption="Func.2 Z" default=ident() visible=(@formula==0)&&(@parm!=0) endfunc func fnmc caption="Func.1 C" default=ident() visible=(@formula==0) endfunc Heading caption="Dafrm" visible=(@formula==1) Endheading param daf1 caption="Param. 1" default=(1.0,0.514) visible=(@formula==1) endparam param daf2 caption="Param. 2" default=(1.1,-0.5) visible=(@formula==1) endparam param daf3 caption="Param. 3" default=(0.0,0.0) visible=(@formula==1) endparam func fndaf caption="Func.1 Z" default=conj() visible=(@formula==1) endfunc func fndaf1 caption="Func.2 Z" default=ident() visible=(@formula==1) endfunc func fndaf2 caption="Func.3 Z" default=ident() visible=(@formula==1) endfunc func fndaf3 caption="Func.4 Z" default=ident() visible=(@formula==1) endfunc func fndaf4 caption="Func. Global" default=ident() visible=(@formula==1) endfunc func fndaf5 caption="Func.1 C" default=ident() visible=(@formula==1) endfunc Heading caption="Variant RCL" visible=(@formula==2) Endheading param exrcl caption="Exponent" default=(2.0,0.0) visible=(@formula==2) endparam param rcl caption="Param. 1" default=(0.0,0.0) visible=(@formula==2) endparam param parcl caption="Param. 2" default=(0.0,0.0) visible=(@formula==2) endparam param parcl1 caption="Param. 3" default=(1.0,0.0) visible=(@formula==2) endparam func fnrcl caption="Func.1 Z" default=ident() visible=(@formula==2) endfunc func fnrcl1 caption="Func.2 Z" default=ident() visible=(@formula==2) endfunc func fnrcl2 caption="Func. Global" default=ident() visible=(@formula==2) endfunc func fnrcl3 caption="Func.1 C" default=ident() visible=(@formula==2) endfunc Heading caption="Precogna" visible=(@formula==3) Endheading param expre caption="Exponent" default=(2.0,0.0) visible=(@formula==3) endparam param pre caption="Param. 1" default=(0.0,0.0) visible=(@formula==3) endparam param pre1 caption="Param. 2" default=(0.0,0.0) visible=(@formula==3) endparam func fnpre caption="Func.1 Z" default=ident() visible=(@formula==3) endfunc func fnpre1 caption="Func.2 Z" default=ident() visible=(@formula==3) endfunc func fnpre2 caption="Func.1 C" default=ident() visible=(@formula==3) endfunc Heading caption="MandelbrotQud" visible=(@formula==4) Endheading param exqu caption="Exponent" default=(3.0,0.0) visible=(@formula==4) endparam param qudr caption="Param. 1" default=(0.0,0.0) visible=(@formula==4) endparam param qudi caption="Param. 2" default=(0.0,0.0) visible=(@formula==4) endparam param qudr1 caption="Param. 3" default=(0.0,0.0) visible=(@formula==4) endparam param qudi1 caption="Param. 4" default=(0.0,0.0) visible=(@formula==4) endparam param qud caption="Param. 5" default=(0.2,0.0) visible=(@formula==4) endparam func fnqud caption="Func.1 Z" default=ident() visible=(@formula==4) endfunc func fnqud1 caption="Func.2 Z" default=ident() visible=(@formula==4) endfunc func fnqud2 caption="Func.3 Z" default=ident() visible=(@formula==4) endfunc func fnqud3 caption="Func.1 C" default=ident() visible=(@formula==4) endfunc Heading caption="PhonyMandel" visible=(@formula==5) Endheading param exphom caption="Exponent1" default=(4.0,0.0) visible=(@formula==5) endparam param exphom1 caption="Exponent2" default=(3.0,0.0) visible=(@formula==5) endparam param exphom2 caption="Exponent3" default=(2.0,0.0) visible=(@formula==5) endparam param phom1 caption="Param.1" default=(2.0,0.0) visible=(@formula==5) endparam param phom2 caption="Param.2" default=(0.15,0.0) visible=(@formula==5) endparam func fnphom caption="Func.1 Z" default=ident() visible=(@formula==5) endfunc func fnphom1 caption="Func.2 Z" default=ident() visible=(@formula==5) endfunc func fnphom2 caption="Func.3 Z" default=ident() visible=(@formula==5) endfunc func fnphom3 caption="Func.4 Z" default=ident() visible=(@formula==5) endfunc func fnphom4 caption="Func.1 C" default=ident() visible=(@formula==5) endfunc func glphom caption="Func. Global" default=ident() visible=(@formula==5) endfunc Heading caption="DivMandel" visible=(@formula==6) Endheading param exdiv caption="Exponent 1" default=(2.0,0.0) visible=(@formula==6) endparam param exdiv1 caption="Exponent 2" default=(0.0,0.0) visible=(@formula==6) endparam param pdiv1 caption="Param. 1" default=(1.0,0.0) visible=(@formula==6) endparam param pdiv2 caption="Param. 2" default=(0.5,0.0) visible=(@formula==6) endparam func fndiv caption="Func.1 Z" default=ident() visible=(@formula==6) endfunc func fndiv1 caption="Func.2 Z" default=ident() visible=(@formula==6) endfunc func fndiv2 caption="Func.C" default=ident() visible=(@formula==6) endfunc Heading caption="Ikenaga" visible=(@formula==7) Endheading param ike1 caption="Exponent" default=(3.0,0.0) visible=(@formula==7) endparam param ike2 caption="Param.1" default=(1.0,0.0) visible=(@formula==7) endparam param ike3 caption="Param.2" default=(0.0,0.0) visible=(@formula==7) endparam param ike4 caption="Param.3" default=(1.0,0.0) visible=(@formula==7) endparam func fnike1 caption="Func.1 Z" default=ident() visible=(@formula==7) endfunc func fnike2 caption="Func.2 Z" default=ident() visible=(@formula==7) endfunc func fnike3 caption="Func.1 C" default=ident() visible=(@formula==7) endfunc func fnike4 caption="Func.2 C" default=ident() visible=(@formula==7) endfunc Heading caption="Fgz" visible=(@formula==8) Endheading param fgz4 caption="Exp.1" default=(2.0,0.0) visible=(@formula==8) endparam param fgz5 caption="Exp.2" default=(2.0,0.0) visible=(@formula==8) endparam param fgz6 caption="Exp.3" default=(2.0,0.0) visible=(@formula==8) endparam param fgz1 caption="Param.1" default=(0.5,0.0) visible=(@formula==8) endparam param fgz2 caption="Param.2" default=(0.5,0.0) visible=(@formula==8) endparam param fgz3 caption="Param.3" default=(1.0,0.0) visible=(@formula==8) endparam param fgz7 caption="Param.4" default=(0.5,0.0) visible=(@formula==8) endparam func fngz1 caption="Func.1 Z" default=ident() visible=(@formula==8) endfunc func fngz2 caption="Func.2 Z" default=ident() visible=(@formula==8) endfunc func fngz3 caption="Func.3 Z" default=ident() visible=(@formula==8) endfunc func fngz4 caption="Func.1 C" default=ident() visible=(@formula==8) endfunc func fngz5 caption="Func.2 C" default=ident() visible=(@formula==8) endfunc func fngz6 caption="Func.3 C" default=ident() visible=(@formula==8) endfunc Heading caption="Flattop" visible=(@formula==9) Endheading param flat1 caption="Param.1" default=(2.0,0.0) visible=(@formula==9) endparam param flat2 caption="Param.2" default=(2.0,0.0) visible=(@formula==9) endparam param flat3 caption="Param.3" default=(0.5,0.0) visible=(@formula==9) endparam param flat4 caption="Param.4" default=(0.5,0.0) visible=(@formula==9) endparam func fnflat1 caption="Func.1 Z" default=sin() visible=(@formula==9) endfunc func fnflat2 caption="Func.2 Z" default=ident() visible=(@formula==9) endfunc func fnflat3 caption="Func.3 Z" default=ident() visible=(@formula==9) endfunc func fnflat4 caption="Func.1 C" default=ident() visible=(@formula==9) endfunc Heading caption="Num_Dup" visible=(@formula==10) Endheading param nd1 caption="Exponent" default=(2.0,0.0) visible=(@formula==10) endparam param nd2 caption="Param.1" default=(2.0,0.0) visible=(@formula==10) endparam param nd3 caption="Param.2" default=(0.0,0.0) visible=(@formula==10) endparam func fnnd1 caption="Func.1 Z" default=ident() visible=(@formula==10) endfunc func fnnd2 caption="Func.2 Z" default=ident() visible=(@formula==10) endfunc func fnnd3 caption="Func.1 C" default=ident() visible=(@formula==10) endfunc func fnnd4 caption="Func.2 C" default=ident() visible=(@formula==10) endfunc Heading caption="Barnsley" visible=(@formula==11) Endheading param barn1 caption="Param. 1" default=(1.0,0.0) visible=(@formula==11) endparam param barn2 caption="Param. 2" default=(1.0,0.0) visible=(@formula==11) endparam param barn3 caption="Param. 3" default=(1.0,0.0) visible=(@formula==11) endparam param barn4 caption="Param. 4" default=(1.0,0.0) visible=(@formula==11) endparam func fnbarn1 caption="Func.1 Z" default=ident() visible=(@formula==11) endfunc func fnbarn2 caption="Func.2 Z" default=ident() visible=(@formula==11) endfunc func fnbarn3 caption="Func.1 C" default=ident() visible=(@formula==11) endfunc func fnbarn4 caption="Func.2 C" default=ident() visible=(@formula==11) endfunc Heading caption="TBQuest" visible=(@formula==12) Endheading param que1 caption="Param. 1" default=(0.0,0.0) visible=(@formula==12) endparam param que2 caption="Param. 2" default=(1.0,0.0) visible=(@formula==12) endparam param que3 caption="Param. 3" default=(0.0,0.0) visible=(@formula==12) endparam func fnque2 caption="Func.1 Z" default=sqr() visible=(@formula==12) endfunc func fnque3 caption="Func.1 C" default=sqrt() visible=(@formula==12) endfunc func fnque1 caption="Func.2 C" default=ident() visible=(@formula==12) endfunc Heading caption="Phoenix" visible=(@formula==13) Endheading param pho1 caption="Distortion 1" default=(0.5,0.0) visible=(@formula==13) endparam param pho4 caption="Distortion 2" default=(1.0,0.0) visible=(@formula==13) endparam param pho3 caption="Exponent 1" default=(2.0,0.0) visible=(@formula==13) endparam param pho2 caption="Exponent 2" default=(0.0,0.0) visible=(@formula==13) endparam func fnpho1 caption="Func.1 Z" default=ident() visible=(@formula==13) endfunc func fnpho2 caption="Func.1 C" default=ident() visible=(@formula==13) endfunc func fnpho3 caption="Func.1 Dist." default=ident() visible=(@formula==13) endfunc Heading caption="Hydra Brot" visible=(@formula==14) Endheading param hid1 caption="Exponent" default=(2.0,0.0) visible=(@formula==14) endparam param hid2 caption="Mult.1 Dist." default=(1.0,0.0) visible=(@formula==14) endparam param hid4 caption="Mult.2 Dist." default=(1.0,0.0) visible=(@formula==14) endparam param hid3 caption="Exp.1 Dist." default=(1.0,0.0) visible=(@formula==14) endparam param hid5 caption="Exp.2 Dist." default=(1.0,0.0) visible=(@formula==14) endparam Heading caption="Distortion" visible=(@abledist==true)&&(@formula==14) Endheading param abledist caption="Enable Extra Distortion Parameters" default=false visible=(@formula==14) endparam param te1 caption="Dist.1 Temp.1" default=(0.0,0.0) visible=(@abledist==true)&&(@formula==14) endparam param te2 caption="Dist.2 Temp.1" default=(0.0,0.0) visible=(@abledist==true)&&(@formula==14) endparam param te3 caption="Dist.1 Temp.2" default=(0.0,0.0) visible=(@abledist==true)&&(@formula==14) endparam param te4 caption="Dist.2 Temp.2" default=(0.0,0.0) visible=(@abledist==true)&&(@formula==14) endparam param te5 caption="Add. Dist.1 Temp.1" default=(0.0,0.0) visible=(@abledist==true)&&(@formula==14) endparam param te6 caption="Add. Dist.2 Temp.1" default=(0.0,0.0) visible=(@abledist==true)&&(@formula==14) endparam param te7 caption="Mult. Dist.1 Temp.1" default=(1.0,0.0) visible=(@abledist==true)&&(@formula==14) endparam param te8 caption="Mult. Dist.2 Temp.1" default=(1.0,0.0) visible=(@abledist==true)&&(@formula==14) endparam param te9 caption="Add. Dist.1 Temp.2" default=(0.0,0.0) visible=(@abledist==true)&&(@formula==14) endparam param te10 caption="Add. Dist.2 Temp.2" default=(0.0,0.0) visible=(@abledist==true)&&(@formula==14) endparam param te11 caption="Mult. Dist.1 Temp.2" default=(1.0,0.0) visible=(@abledist==true)&&(@formula==14) endparam param te12 caption="Mult. Dist.2 Temp.2" default=(1.0,0.0) visible=(@abledist==true)&&(@formula==14) endparam func fntemp caption="Func.1 Temp" default=ident() visible=(@abledist==true)&&(@formula==14) endfunc func fntemp1 caption="Func.2 Temp" default=ident() visible=(@abledist==true)&&(@formula==14) endfunc func fnhid1 caption="Func.1 Z" default=ident() visible=(@formula==14) endfunc func fnhid2 caption="Func.1 Dist." default=ident() visible=(@formula==14) endfunc func fnhid3 caption="Func.2 Dist." default=ident() visible=(@formula==14) endfunc func fnhid4 caption="Func.1 C" default=ident() visible=(@formula==14) endfunc Heading caption="Magnet Cpls Spirals" visible=(@formula==15) Endheading param selcplx caption="Select Cplx Formula" enum="Normal""CplxSpirals2""MiniMand" default=0 visible=(@formula==15) endparam param cplx1 caption="Exponent 1" default=(2.0,0.0) visible=(@formula==15) endparam param cplx4 caption="Exponent 2" default=(2.0,0.0) visible=(@formula==15) endparam param cplx2 caption="Param. 1" default=(1.0,0.0) visible=(@formula==15) endparam param cplx3 caption="Param. 2" default=(2.0,0.0) visible=(@formula==15) endparam param cplx5 caption="Param. 3" default=(2.0,0.0) visible=(@formula==15) endparam param cplx6 caption="Param. 4" default=(2.0,0.0) visible=(@selcplx==2)&&(@formula==15) endparam func fncplx1 caption="Func.1 Z" default=ident() visible=(@formula==15) endfunc func fncplx2 caption="Func.2 Z" default=ident() visible=(@formula==15) endfunc func fncplx6 caption="Func.3 Z" default=ident() visible=(@selcplx==2)&&(@formula==15) endfunc func fncplx3 caption="Func.1 C" default=ident() visible=(@formula==15) endfunc func fncplx5 caption="Func.2 C" default=ident() visible=(@formula==15) endfunc func fncplx4 caption="Func.3 C" default=ident() visible=(@selcplx!=2)&&(@formula==15) endfunc Heading caption="Xerreal" visible=(@formula==16) Endheading bool param xerrmode caption="Change Mode" default=false visible=(@formula==16) endparam param xer1 caption="Exponent 1" default=(2.0,0.0) visible=(@formula==16) endparam param xer2 caption="Param. 1" default=(0.0,0.0) visible=(@formula==16) endparam param xer3 caption="Param. 2" default=(0.0,0.0) visible=(@formula==16) endparam param xer4 caption="Xer Sqrt" default=(-1.0,0.0) visible=(@formula==16) endparam func fnxer1 caption="Func.1 Z" default=ident() visible=(@formula==16) endfunc func fnxer2 caption="Func.2 Z" default=ident() visible=(@formula==16) endfunc func fnxer3 caption="Func.3 Z" default=ident() visible=(@formula==16) endfunc func fnxerrc1 caption="Func.1 C" default=ident() visible=(@formula==16) endfunc func fnxerrc2 caption="Func.2 C" default=ident() visible=(@formula==16) endfunc func fnxerrc3 caption="Func.3 C" default=ident() visible=(@formula==16) endfunc Heading caption="MandHack" visible=(@formula==17) Endheading param mand1 caption="Exponent 1" default=(2.0,0.0) visible=(@formula==17) endparam param mand3 caption="Exponent 2" default=(2.0,0.0) visible=(@formula==17) endparam param mand2 caption="Param. 1" default=(0.0,0.0) visible=(@formula==17) endparam param mand4 caption="Param. 2" default=(1.0,0.0) visible=(@formula==17) endparam func fnmand1 caption="Func.1 Z" default=ident() visible=(@formula==17) endfunc func fnmand2 caption="Func.2 Z" default=ident() visible=(@formula==17) endfunc func fnmand3 caption="Func.3 Z" default=ident() visible=(@formula==17) endfunc func fnmand4 caption="Func.1 C" default=ident() visible=(@formula==17) endfunc Heading caption="Mod MandHack" visible=(@formula==18) Endheading param man1 caption="Exponent 1" default=(1.0,0.0) visible=(@formula==18) endparam param man3 caption="Exponent 2" default=(1.0,0.0) visible=(@formula==18) endparam param man2 caption="Param. 1" default=(0.5,0.0) visible=(@formula==18) endparam param man4 caption="Param. 2" default=(0.5,0.0) visible=(@formula==18) endparam param man5 caption="Param. 3" default=(0.0,0.0) visible=(@formula==18) endparam param man6 caption="Param. 4" default=(1.0,0.0) visible=(@formula==18) endparam func fnman1 caption="Func.1 Z" default=ident() visible=(@formula==18) endfunc func fnman2 caption="Func.2 Z" default=ident() visible=(@formula==18) endfunc func fnman4 caption="Func.3 Z" default=ident() visible=(@formula==18) endfunc func fnman5 caption="Func.4 Z" default=ident() visible=(@formula==18) endfunc func fnman3 caption="Func.1 C" default=ident() visible=(@formula==18) endfunc func fnman6 caption="Func.2 C" default=ident() visible=(@formula==18) endfunc Heading caption="Bagula Magnet" visible=(@formula==19) Endheading param modemagn caption="Select Mode" enum="Normal""Modified" default=0 visible=(@formula==19) endparam param bagu2 caption="Param. 1" default=(1.0,0.0) visible=(@formula==19) endparam param bagu3 caption="Param. 2" default=(0.0,0.0) visible=(@formula==19) endparam param bagu4 caption="Param. 3" default=(1.0,0.0) visible=(@formula==19) endparam param bagu5 caption="Param. 4" default=(0.0,0.0) visible=(@formula==19) endparam param bagu1 caption="Param. 5" default=(2.0,0.0) visible=(@formula==19) endparam Heading caption="Distortion" visible=(@distMagn==true)&&(@formula==19)&&(@formula==19) Endheading bool param distMagn caption="Enable Distortion" default=false visible=(@formula==19) endparam param bagu6 caption="Dist. 1" default=(-1.0,0.0) visible=(@distMagn==true)&&(@formula==19) endparam param bagu7 caption="Dist. 2" default=(-0.5,0.0) visible=(@distMagn==true)&&(@formula==19) endparam param bagu8 caption="Dist. 3" default=(0.5,0.0) visible=(@distMagn==true)&&(@formula==19) endparam param bagu9 caption="Exp. Dist. 1" default=(1.0,0.0) visible=(@distMagn==true)&&(@formula==19) endparam func fnbagu6 caption="Func.1 Dist." default=ident() visible=(@distMagn==true)&&(@formula==19) endfunc func fnbagu7 caption="Func.2 Dist." default=ident() visible=(@distMagn==true)&&(@formula==19) endfunc func fnbagu8 caption="Func.3 Dist." default=ident() visible=(@distMagn==true)&&(@formula==19) endfunc func fnbagu9 caption="Func.4 Dist." default=ident() visible=(@distMagn==true)&&(@formula==19) endfunc func fnbagu1 caption="Func.1 Z" default=ident() visible=(@formula==19) endfunc func fnbagu2 caption="Func.2 Z" default=ident() visible=(@formula==19) endfunc func fnbagu3 caption="Func.3 Z" default=ident() visible=(@formula==19) endfunc func fnbagu4 caption="Func.1 C" default=ident() visible=(@formula==19) endfunc func fnbagu5 caption="Func.2 C" default=ident() visible=(@formula==19) endfunc Heading caption="Global Functions" endheading func fnz caption="Function Z" default=ident() endfunc func fnc caption="Function C" default=ident() endfunc param version caption="Version" default=1.1 visible=false endparam Switch: type="SlopeHyperMath" bailout=@bailout seed=#pixel formula=@formula mode=@switchmode switchmode=@mode ablescenario=@ablescenario seq=@seq seq1=@seq1 modby=@modby modcmp=@modcmp sce1=@sce1 sce2=@sce2 sce3=@sce3 sce4=@sce4 sceu1=@sceu1 sceu2=@sceu2 sceu3=@sceu3 sceu4=@sceu4 fnsce=@fnsce fnsceu=@fnsceu fnsce1=@fnsce1 fnsceu1=@fnsceu1 extramix=@extramix mixa=@mixa mixua=@mixua mixb=@mixb mixub=@mixub mixab1=@mixab1 mixab2=@mixab2 mixab3=@mixab3 mixuab1=@mixuab1 mixuab2=@mixuab2 mixuab3=@mixuab3 mixcab1=@mixcab1 mixcab2=@mixcab2 mixcab3=@mixcab3 mixcuab1=@mixcuab1 mixcuab2=@mixcuab2 mixcuab3=@mixcuab3 fnmixab=@fnmixab fnmixuab=@fnmixuab fnmixcab=@fnmixcab fnmixcuab=@fnmixcuab ableflavor=@ableflavor fl1=@fl1 fl2=@fl2 fnfl=@fnfl ableseq=@ableseq factor=@factor factor1=@factor1 factor2=@factor2 factor3=@factor3 fnfact1=@fnfact1 fnfact2=@fnfact2 fnc=@fnc fnz=@fnz p1=@p1 p2=@p2 p3=@p3 p4=@p4 able3rd=@able3rd rd1=@rd1 rd2=@rd2 rd3=@rd3 expm=@expm parm=@parm fnm=@fnm fnm1=@fnm1 fnmc=@fnmc daf1=@daf1 daf2=@daf2 daf3=@daf3 fndaf=@fndaf fndaf1=@fndaf1 fndaf2=@fndaf2 fndaf3=@fndaf3 fndaf4=@fndaf4 fndaf5=@fndaf5 rcl=@rcl parcl=@parcl parcl1=@parcl1 exrcl=@exrcl fnrcl=@fnrcl fnrcl1=@fnrcl1 fnrcl2=@fnrcl2 fnrcl3=@fnrcl3 pre=@pre pre1=@pre1 expre=@expre fnpre=@fnpre fnpre1=@fnpre1 fnpre2=@fnpre2 exqu=@exqu qud=@qud qudr=@qudr qudi=@qudi qudr1=@qudr1 qudi1=@qudi1 fnqud=@fnqud fnqud1=@fnqud1 fnqud2=@fnqud2 fnqud3=@fnqud3 exphom=@exphom exphom1=@exphom1 exphom2=@exphom2 phom1=@phom1 phom2=@phom2 fnphom=@fnphom fnphom1=@fnphom1 fnphom2=@fnphom2 fnphom3=@fnphom3 fnphom4=@fnphom4 glphom=@glphom exdiv=@exdiv exdiv1=@exdiv1 pdiv1=@pdiv1 pdiv2=@pdiv2 fndiv=@fndiv fndiv1=@fndiv1 fndiv2=@fndiv2 ike1=@ike1 ike2=@ike2 ike3=@ike3 ike4=@ike4 fnike1=@fnike1 fnike2=@fnike2 fnike3=@fnike3 fnike4=@fnike4 fgz1=@fgz1 fgz2=@fgz2 fgz3=@fgz3 fgz4=@fgz4 fgz5=@fgz5 fgz6=@fgz6 fgz7=@fgz7 fngz1=@fngz1 fngz2=@fngz2 fngz3=@fngz3 fngz4=@fngz4 fngz5=@fngz5 fngz6=@fngz6 flat1=@flat1 flat2=@flat2 flat3=@flat3 flat4=@flat4 fnflat1=@fnflat1 fnflat2=@fnflat2 fnflat3=@fnflat3 fnflat4=@fnflat4 nd1=@nd1 nd2=@nd2 nd3=@nd3 fnnd1=@fnnd1 fnnd2=@fnnd2 fnnd3=@fnnd3 fnnd4=@fnnd4 barn1=@barn1 barn2=@barn2 barn3=@barn3 barn4=@barn4 fnbarn1=@fnbarn1 fnbarn2=@fnbarn2 fnbarn3=@fnbarn3 fnbarn4=@fnbarn4 que1=@que1 que2=@que2 que3=@que3 fnque1=@fnque1 fnque2=@fnque2 fnque3=@fnque3 pho1=@pho1 pho2=@pho2 pho3=@pho3 pho4=@pho4 fnpho1=@fnpho1 fnpho2=@fnpho2 fnpho3=@fnpho3 abledist=@abledist hid1=@hid1 hid2=@hid2 hid3=@hid3 hid4=@hid4 hid5=@hid5 te1=@te1 te2=@te2 te3=@te3 te4=@te4 te5=@te5 te6=@te6 te7=@te7 te8=@te8 te9=@te9 te10=@te10 te11=@te11 te12=@te12 fnhid1=@fnhid1 fnhid2=@fnhid2 fnhid3=@fnhid3 fnhid4=@fnhid4 fntemp=@fntemp fntemp1=@fntemp1 cplx1=@cplx1 cplx2=@cplx2 cplx3=@cplx3 cplx4=@cplx4 cplx5=@cplx5 cplx6=@cplx6 fncplx1=@fncplx1 fncplx2=@fncplx2 fncplx3=@fncplx3 fncplx4=@fncplx4 fncplx5=@fncplx5 fncplx6=@fncplx6 selcplx=@selcplx xerrmode=@xerrmode xer1=@xer1 xer2=@xer2 xer3=@xer3 xer4=@xer4 fnxer1=@fnxer1 fnxer2=@fnxer2 fnxer3=@fnxer3 fnxerrc1=@fnxerrc1 fnxerrc2=@fnxerrc2 fnxerrc3=@fnxerrc3 mand1=@mand1 mand2=@mand2 mand3=@mand3 mand4=@mand4 fnmand1=@fnmand1 fnmand2=@fnmand2 fnmand3=@fnmand3 fnmand4=@fnmand4 man1=@man1 man2=@man2 man3=@man3 man4=@man4 man5=@man5 man6=@man6 fnman1=@fnman1 fnman2=@fnman2 fnman3=@fnman3 fnman4=@fnman4 fnman5=@fnman5 fnman6=@fnman6 modemagn=@modemagn distMagn=@distMagn bagu1=@bagu1 bagu2=@bagu2 bagu3=@bagu3 bagu4=@bagu4 bagu5=@bagu5 bagu6=@bagu6 bagu7=@bagu7 bagu8=@bagu8 bagu9=@bagu9 fnbagu1=@fnbagu1 fnbagu2=@fnbagu2 fnbagu3=@fnbagu3 fnbagu4=@fnbagu4 fnbagu5=@fnbagu5 fnbagu6=@fnbagu6 fnbagu7=@fnbagu7 fnbagu8=@fnbagu8 fnbagu9=@fnbagu9 version=@version offset=@offset zmode=@zmode xfer=@xfer zscale=@zscale zscale2=@zscale2 everyiter=@everyiter a=@a b=@b apwr=@apwr pn=@pn afn1=@afn1 afn2=@afn2 fnsl=@fnsl sa1=@sa1 sa2=@sa2 sa3=@sa3 sa4=@sa4 sa5=@sa5 sa6=@sa6 sa7=@sa7 safn=@safn negroot=@negroot cp=@cp }