Ultra Fractal colouring algorithms by Otto Magus 2015 / 2016 otto.magus@yahoo.co.uk ca1{ init: loop: final: #index=0.75*(log(#numiter+(imag(#z)/2)+(real(#z)/3)))*@var default: title="ca1" param var caption="Parameter" default=0.0778 endparam } ca2{ init: loop: final: #index=@var1*log(sqr(imag(fn1(#numiter)^@var2+fn2(cos(imag(#z)/2))^@var2+fn3(tan(real(#z)/3))^@var2))) default: title="ca2" param var1 caption="Parameter 1" default=0.341685 endparam param var2 caption="Parameter 2" default=(1,0) endparam func fn1 default=flip() endfunc func fn2 default=log() endfunc func fn3 default=ident() endfunc } ca3{ init: loop: final: #index=@var*(log(#numiter+sin(real(#z)/2)+cos(imag(#z)/3))) default: title="ca3" param var caption="Parameter" default=0.341685 endparam } ca4{ init: loop: final: #index=@var*(sqrt(#numiter+sin(real(#z)/3)+cos(imag(#z)/2))) default: title="ca4" param var caption="Parameter" default=0.37 endparam } ca7{ init: loop: final: #index=@var1*(log(sqr(imag(@fn1(#numiter)^@var2+@fn2((#z)/2)^@var2+@fn3(pixel*#z)^@var2)))) default: title="ca7" param var1 caption="Parameter 1" default=0.1 endparam param var2 caption="Parameter 2" default=(1.35,-0.35) endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=acos() endfunc } ca8{ init: loop: final: #index=@var1*(log(sqr(imag(fn1(#numiter)^@var2+fn2((#z)/2)^@var2+fn3(pixel*#z)^@var2)))) default: title="ca8" param var1 caption="Parameter 1" default=0.1 endparam param var2 caption="Parameter 2" default=(1,0) endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc } ca9{ init: loop: final: #index=@var*real(fn1(#numiter)+fn2(#z+pixel)) default: title="ca9" param var caption="Parameter" default=0.04 endparam func fn1 default=cosh() endfunc func fn2 default= ident() endfunc } ca10{ init: loop: final: #index=@var*real(fn1(#numiter)+fn2(#z+pixel)+fn3(#z^2-1)) default: title="ca10" param var caption="Parameter" default=0.02 endparam func fn1 default=cosh() endfunc func fn2 default=ident() endfunc func fn3 default=log() endfunc } ca15{ init: loop: final: #index=@var*real(fn1(#numiter)*fn2(#z)*fn3(pixel)) default: title="ca15" param var caption="Parameter" default=0.1 endparam func fn1 default=ident() endfunc func fn2 default=atan() endfunc func fn3 default=ident() endfunc } ca17{ init: loop: final: #index=@var*real(fn1(#numiter)/fn2(#z)/fn3(pixel)) default: title="ca17" param var caption="Parameter" default=8.0 endparam func fn1 default=recip() endfunc func fn2 default=asin() endfunc func fn3 default=atanh() endfunc } ca22{ init: loop: final: #index=@var*real(fn1(#numiter)+fn2(#z)+fn3(pixel)) default: title="ca22" param var caption="Parameter" default=0.13 endparam func fn1 default=ident() endfunc func fn2 default= log() endfunc func fn3 default=ident() endfunc } ca24{ init: loop: final: #index=@var1*(recip(atan(imag(@fn1(recip(#numiter))^@var2*@fn2((#z)/e)^@var2+@fn3(pixel*#z)^@var2)))) default: title="ca24" param var1 caption="Parameter 1" default=0.45 endparam param var2 caption="variation 2" default=(1,0) endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc } ca25{ init: loop: final: #index=@var1*(log(sqr(imag(@fn1(exp(exp(#numiter)))^@var2*@fn2(tanh((#z)/e))^@var2+@fn3(cos(pixel*#z))^@var2)))) default: title="ca25" param var1 caption="Parameter 1" default=0.028 endparam param var2 caption="Parameter 2" default=(1,0) endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc } ca26{ init: loop: final: #index=@var*(1/(log(sqr(imag(fn1(log(exp(#numiter*1.12/(#pixel^9))))*fn2(exp((#z*#z*1.89)/(e-(pixel^99))))))))) default: title="ca26" param var caption="Parameter" default=3.83333 endparam func fn1 default=acosh() endfunc func fn2 default= ceil() endfunc } ca27{ init: loop: final: #index=@var*(1/(exp(sqr(imag(fn1(conj(asin(#numiter*33/(pixel^5))))*fn2(acosh((#z*#z*pixel)/(e-(pixel^#z))))))))) default: title="ca27" param var caption="Parameter" default=3.83333 endparam func fn1 default=sinh() endfunc func fn2 default=tan() endfunc } ca28{ init: loop: final: #index=@var*(cosh(exp(real(@fn1((#numiter))-(@fn2(#z^#z)^fn3(pixel^3)))))) default: title="ca28" param var caption="variation" default=0.1 endparam func fn1 default=asinh() endfunc func fn2 default=acos() endfunc func fn3 default=sin() endfunc } ca29{ init: loop: final: #index=@var*real(fn1(#numiter)*fn2(#z)*fn3(pixel)) default: title="ca29" param var caption="Parameter" default=1.0 endparam func fn1 default=sin() endfunc func fn2 default= log() endfunc func fn3 default=flip() endfunc } ca30{ init: loop: final: #index=@var*sqr(imag(fn1(#numiter)^fn2(#z)^fn3(pixel))) default: title="ca30" param var caption="Parameter" default=0.45 endparam func fn1 default=atan() endfunc func fn2 default= acosh() endfunc func fn3 default=asin() endfunc } ca31{ init: loop: final: #index=@var1*(1/(log(sqr(real(fn1(log(exp(#numiter*1.12/(pixel^9))^@var2))^fn2(exp((#z*#z*1.89)/(e-(pixel^99))))^@var2))))) default: title="ca31" param var1 caption="Parameter 1" default=5.0 endparam param var2 caption="Parameter 2" default=(1.2619,-0.03572) endparam func fn1 default=log() endfunc func fn2 default= exp() endfunc } ca33{ init: loop: final: #index=@var1*real(fn1(#numiter)^@var2^@fn2(#z)^@var2^fn3(pixel)^@var2) default: title="ca33" param var1 caption="Parameter 1" default=5.0 endparam param var2 caption="Parameter 2" default=(1,0) endparam func fn1 default=log() endfunc func fn2 default= atanh() endfunc func fn3 default=log() endfunc } ca34{ init: loop: final: #index=@var*log(#numiter+cos(imag(#z)/2)+tan(real(#z)/3)) default: title="ca34" param var caption="Parameter" default=0.25 endparam } ca35{ init: loop: final: if imag(#z)real(pixel) #index=@var*sqr(imag(fn1(#numiter+(pixel/#z)))) else #index=1/@var*real(fn2(#numiter+#z+pixel)) endif default: title="ca37" func fn1 default=atanh() endfunc func fn2 default=cabs() endfunc param var caption="Parameter" default=3.0 endparam } ca38{ init: loop: final: if real(#z)>real(pixel) #index=@var*sqr(imag(fn1(#numiter+(pixel/#z)))) else #index=@var*(1/(log(sqr(imag(fn1(log(exp(#numiter*1.12/(pixel^9))))*fn2(exp((#z*#z*1.89)/(e-(pixel^99))))))))) endif default: title="ca38" func fn1 default=log() endfunc func fn2 default=atanh() endfunc param var caption="Parameter" default=0.84134 endparam } ca40{ init: x=acos(#z) y=abs(#z) loop: x=fn4(tan(y^2)) final: #index=@var1*imag(fn1(#numiter^#z)^@var2*(pixel/#z)+fn2((#z+pixel)^x)^@var2+fn3(#z^y*pixel)^@var2) default: title="ca40" func fn1 default=log() endfunc func fn2 default=flip() endfunc func fn3 default= conj() endfunc func fn4 default= ident() endfunc param var1 caption="Parameter 1" default=0.3 endparam param var2 caption="Parameter 2" default=(1,0) endparam } ca41{ init: loop: final: #index=@var*real(fn1(#numiter*0.8)+fn2(sqr(log(#z+0.9)))+fn3(sqrt(log(exp(pixel*1.1))))) default: title="ca41" param var caption="Parameter" default=0.2 endparam func fn1 default=exp() endfunc func fn2 default= log() endfunc func fn3 default=ident() endfunc } ca42{ init: loop: final: #index=@var1*real(fn1(flip(sqr(#numiter*0.8)))^@var2+fn2(log(sqrt(log(#z+0.9))))^@var2+fn3(cotan(sqr(log(exp(pixel*1.1)))))^@var2) default: title="ca42" param var1 caption="variation 1" default=1.0 endparam param var2 caption="variation 2" default=(1,0) endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc } ca45{ init: loop: final: #index=@var1*real((fn1(#numiter^3+(#z^2)+pixel))^@var2/(fn2(#numiter+(#z^2)+(pixel^3)))^@var2) default: title="ca45" param var1 caption="Parameter 1" default=0.14 endparam param var2 caption="Parameter 2" default=(0.52,0.76) endparam func fn1 default=sqrt() endfunc func fn2 default=sqrt() endfunc } ca48{ init: loop: final: #index=@var1*(1/(log(sqr(imag(fn1(acos(log(#numiter*1.51/(pixel^8))))*fn2(sinh((#z*#z*2.03)/(e-(pixel^73))))+@var2))))) default: title="ca48" param var1 caption="Parameter 1" default=3.0 endparam param var2 caption="Parameter 2" default=(0,0) endparam func fn1 default=cosh() endfunc func fn2 default=acos() endfunc } ca49{ init: loop: final: if real(#z)real(1/pixel) #index=@var1*real(fn1(#numiter+#z+pixel)^@var2/@fn1((x/#z)^3.261)^@var2 -fn1(pixel)^@var2) else #index=@var1*imag(fn2(1/(#numiter*#z*pixel))^@var2*@fn2(#z^pixel^y)^@var2/fn2(pixel)^@var2) endif default: title="ca55" param var1 caption="Parameter 1" default=1.2 endparam param var2 caption="Parameter 2" default=(0.1,0) endparam func fn1 default=sqrt() endfunc func fn2 default=abs() endfunc } ca56{ init: x=sin(#z) y=cos(#z) loop: x=fn4(y^2+pixel)^@var2 final: #index=@var1*real(fn1(#numiter*x)^@var2+@fn2(#z*y)^@var2+fn3(pixel)^@var2) default: title="ca56" param var1 caption="Parameter 1" default=0.16 endparam param var2 caption="Parameter 2" default=(1,0) endparam func fn1 default=ident() endfunc func fn2 default= sqrt() endfunc func fn3 default=abs() endfunc func fn4 default=cabs() endfunc } ca57{ init:x=asin(#z) y=acos(#z) loop: x=fn4(y^3+pixel)^@var2 final: #index=@var1*real(fn1(#numiter^x)^@var2+@fn2(#z^y)^@var2+fn3(pixel)^@var2) default: title="ca57" param var1 caption="Parameter 1" default=0.05 endparam param var2 caption="Parameter 2" default=(1,0) endparam func fn1 default=sqr() endfunc func fn2 default= asin() endfunc func fn3 default=sqrt() endfunc func fn4 default=log() endfunc } ca58{ init: x=log(#z) y=exp(#z) loop: x=fn4(y^2+y+pixel)^@var2 final: #index=@var1*real(fn1(#numiter*x*y)^@var2*@fn2(#z^x^y)^@var2+fn3(pixel+x+y)^@var2) default: title="ca58" param var1 caption="Parameter 1" default=1.0 endparam param var2 caption="Parameter 2" default=(-0.2,0) endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc func fn4 default=ident() endfunc } ca59{ init: c=sin(#z) b=cos(#z) loop: c=(#z^2+b)*@var3 final: #index=@var1*real(fn1(#numiter)+@fn2(c)+fn3(b)+@var2) default: title="ca59" param var1 caption="Parameter 1" default=1.0 endparam param var2 caption="Parameter 2" default=(0,0) endparam param var3 caption="Parameter 3" default=(1,0) endparam func fn1 default=sin() endfunc func fn2 default=recip() endfunc func fn3 default=tan() endfunc } ca67{ init: x=#z^2 y=#z/2 loop: if real(#z)>real(Pixel) x=fn3(cos(#z^x+pixel))*@var3 else x=fn3(exp(#z*y+pixel))*@var3 endif final: if imag(#z)imag(Pixel) x= fn3(3+(y^2)+pixel)^@var3 else x=fn3(2+(y^3)+pixel)^@var3 endif final: if imag(#z)real(y) x=fn1(y+sin(cos(y+cos(y+tan(#z)))))*@var1 else x=fn1(y+cos(sin(y+sin(y+cotan(#z)))))*@var1 endif final: if real(#z)>0 #color=rgb(imag(flip(fn2(x+#numiter)))*@var2,imag(flip(fn3(y+#z)))*@var3, imag(flip(fn4(x+y+#pixel)))*@var4) else #color=hsl(imag(flip(fn2(y+#pixel)))*@var2,imag(flip(fn3(x+y+#numiter)))*@var3, imag(flip(fn4(x+#z)))*@var4) endif default: title="ca129(direct)" param var1 caption="Parameter 1" default=(5.85714,0) endparam param var2 caption="Parameter 2" default=1.0 endparam param var3 caption="Parameter 3" default=28.9111 endparam param var4 caption="Parameter 4" default=-17.6667 endparam func fn1 default=sin() endfunc func fn2 default=cos() endfunc func fn3 default=atanh() endfunc func fn4 default=cosh() endfunc } ca130(direct){ init: x=flip(imag(pixel)) y=tan(pixel) loop: if real(#z)>0 x=fn1(y+sin(cos(y+log(y+tan(#z)))))*@var1 else x=fn1(y+cos(sin(y+exp(y+cotan(#z)))))*@var1 endif final: if real(x)>real(y) #color=hsl(imag(flip(fn2(x+#numiter)))*@var2,imag(flip(fn3(y+#z)))*@var3,imag(flip(fn4(x+y+pixel)))*@var4) else #color=rgb(imag(flip(fn2(y+pixel)))*@var2,imag(flip(fn3(x+y+#numiter)))*@var3,imag(flip(fn4(x+#z)))*@var4) endif default: title="ca130(direct)" param var1 caption="Parameter 1" default=(1,0) endparam param var2 caption="Parameter 2" default=-3.0 endparam param var3 caption="Parameter 3" default=1.0 endparam param var4 caption="Parameter 4" default=1.0 endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc func fn4 default=ident() endfunc } ca131(direct, with transparency){ init: x=flip(imag(pixel)) y=tan(pixel) loop: if real(#z)>0 x=fn1(y^2-(y^3)+pixel*@var1) else x=fn1(y^3+y+pixel*@var1) endif final: if real(x)>real(y) #color=#color=hsla(sqr(imag(fn2(y)))*@var2,real(fn3(#numiter))*@var2,sqr(imag(fn4(x)))*@var2,real(@fn5(pixel))*@var2 ) else #color=rgba(real(fn2(x+y-pixel))+sqr(imag(fn2(x+y+#z)))*@var2,real(fn3(x-y+#z))+sqr(imag(fn3(x-y-pixel)))*@var2,real(fn4(y-x))+sqr(imag(fn4(y-x)))*@var2,real(@fn5(pixel*x/y))+sqr(imag(@fn5(#z/x*y)))*@var2) endif default: title="ca131(direct, with transparency)" param var1 caption="Parameter 1" default=(1,0) endparam param var2 caption="Parameter 2" default=6.3333 endparam func fn1 default=exp() endfunc func fn2 default=exp() endfunc func fn3 default=cotan() endfunc func fn4 default=sqr() endfunc func fn5 default=cabs() endfunc } ca135 (direct){ init: x=pixel loop: x=x^@power+pixel final: #color=hsl(@var1*real(fn1(x+pixel)),@var2* real(fn2(x+pixel)),@var3*real(fn3(x+pixel))) default: title="ca135 (direct)" param var1 caption="Parameter 1" default=1.0 endparam param var2 caption="Parameter 2" default=1.0 endparam param var3 caption="Parameter 3" default=1.0 endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc param power caption="Exponent" default=(2,0) endparam } ca137 (direct){ init: x=pixel loop: x=x^@power+pixel final: #color=hsl(@var1*real(fn1(x)),@var2*real(fn2(x)),@var3*real(fn3(x))) default: title="ca137(direct)" param var1 caption="Parameter 1" default=1.0 endparam param var2 caption="Parameter 2" default=1.0 endparam param var3 caption="Parameter 3" default=1.0 endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc param power caption="Exponent" default=(3,0) endparam } ca138 (direct){ init: x=pixel loop: x=(x/pixel)^@power final: #color=hsl(@var1*real(fn1(x)),@var2*real(fn2(x)),@var3*real(fn3(x))) default: title="ca138 (direct)" param var1 caption="Parameter 1" default=1.0 endparam param var2 caption="Parameter 2" default=1.0 endparam param var3 caption="Parameter 3" default=1.0 endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc param power default=(2,0) endparam } ca139 (direct){ init: x=fn1(abs(random(1234))/#randomrange) loop: x=fn2(x^2)+pixel final: #color=hsl(@var1*real(#random+x),@var2*real(#random+x),@var3*real(#random+x)) default: title="ca139 (direct)" param var1 caption="Parameter 1" default=0.5 endparam param var2 caption="Parameter 2" default=0.5 endparam param var3 caption="Parameter 3" default=0.5 endparam func fn1 default=ident() endfunc func fn2 default=log() endfunc } ca140 (image import) { ; Modification of 'Image Fractal' in jos.ucl global: image im = new @imageparam init: loop: final: float ratio if !im.getempty() ratio=im.getwidth()/im.getheight() else ratio=1 endif i=(0,1) k= fn1(.5*(#pixel-@imagecen)*exp(i*@rot*#pi/180)/@imagesize)^@par #color= im.getColor(real(fn2(k))+flip(imag(fn2(k))*ratio)) default: title="Image Import 5" image param imageparam caption="Image" endparam func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc param par caption="Parameter" default=(1,0) endparam param imagesize caption="Image Size" default=1.0 endparam param imagecen caption="Image Centre" default= (0,0) endparam param rot caption="Image Rotation" default= 0.0 endparam } ca141{ init: x=fn1(pixel) loop: x=p1*fn2(conj(acosh(x^x)))+pixel final: #index=p2*real(fn3(abs(#numiter+x)))+sqr(imag(fn3(abs(#numiter+x)))) default: title="ca141" func fn1 caption="Function (Init)" default=cos() endfunc func fn2 caption="Function (Loop)" default=ident() endfunc func fn3 caption="Function (Final)" default=ident() endfunc param p1 default=(1,0) endparam param p2 default=1.0 endparam } ca143{ init: x=(pixel^2)+pixel loop: x=fn1(log(abs((x^2)+x))) final: if |imag(x)|<|real(x)| #index=(real(fn2(conj(abs(x))))+imag(fn2(conj(abs(x)))))*@par elseif imag(pixel)55 #index=(|fn1(sqrt(cotanh(#z)+#numiter))|)/100*@par else #index=(|fn2(#z-log(#numiter))|)/100*@par endif default: title="ca169" func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc param par caption="Parameter" default=1.55 endparam } ca171{ init: loop: final: #index=|fn3(fn2(fn1(atanh(sin(sqrt(#z))))))|*@par default: title="ca171" func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc param par caption="Parameter" default=0.55 endparam } ca172{ init: loop: final: #index=(|fn1(atan(log(tan(1+2*asinh(log(abs(sqr((#numiter-1)/(p2*fn2(#z)+1)))))+(exp(tanh((#numiter+1)/(p2*fn2(#z)-1)^2)))^2))))|)*@par default: title="ca172" func fn1 default=ident() endfunc func fn2 default=ident() endfunc param par caption="Parameter 1" default=1.0 endparam param p2 default=(1,0) endparam } ca173{ init: loop: final: if |#z|>55 #index=(|fn1(tan(log(tan(1+2*(abs(sqr((#numiter-1)/(p2*fn2(#z)+1))))+(exp(tanh((#numiter+1)/(p2*fn2(#z)-1)^2)))^2))))|)*@par else #index=(|1/fn1(sqrt(atanh(sqrt(atan(0.000000125*cosh(p2*fn2(#z))+0.015*(p2*fn2(#z))^2+0.015*asinh(sqrt(log(exp(p2*fn2(#z)^3)))))))))|)*@par endif default: title="ca173" func fn1 default=atan() endfunc func fn2 default=ident() endfunc param par caption="Parameter 1" default=0.05 endparam param p2 default=(1,0) endparam } ca174{ init: loop: final: #index=(|1/fn1(atanh(sqrt(atan(0.000000125*cosh(p2*fn2(#z))+0.015*(p2*fn2(#z))^2+0.015*asinh(sqrt(log(exp((p2*fn2(#z))^3))))))))|)*@par default: title="ca174" func fn1 default=ident() endfunc func fn2 default=ident() endfunc param par caption="Parameter 1" default=0.5 endparam param p2 default=(1,0) endparam } ca175{ init: loop: final: if |#z|>55 #index=(|(fn1(recip(#z)))|)*@par1 else #index=(|(fn2(#z))|)*@par2 endif default: title="ca175" func fn1 default=acosh() endfunc func fn2 default=log() endfunc param par1 caption="Parameter 1" default=0.5 endparam param par2 caption="Parameter 2" default=0.5 endparam } ca177{ init: loop: final: #index=(|fn1(tan(atan(#z^(-2)+2.19)))|+|fn2(cotan(cotan(#numiter^5)))|+|fn3(sin(sqrt(pixel^(-2)-0.16)))|)*@par default: title="ca177" func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc param par caption="Parameter" default=0.5 endparam } ca178{ init: loop: final: if |real(#z)|>|imag(#z)| #index=(|fn1(atanh(acosh(log(recip(atan(p2*fn2(#z)))))))|)*10*@par else #index=(|fn1(recip(tan(atan(atanh(p2*fn2(#z))))))|)*10*@par endif default: title="ca178" func fn1 default=ident() endfunc func fn2 default=ident() endfunc param par caption="Parameter 1" default=0.2 endparam param p2 default=(1,0) endparam } ca179{ init: loop: final: #index=(cabs(fn1(log(#z^2+#z+1))^@pow1))^@pow2 default: title="ca179" param pow1 caption="Exponent 1" default=(0.05,-0.45) endparam param pow2 caption="Exponent 2" default=1.0 endparam func fn1 caption="Function" default=flip() endfunc } ca180{ init: loop: final: #index=p1*(cabs(fn1((#z*#numiter)^@pow1)))^@pow2 default: title="ca180" param p1 caption="Parameter" default=1.4 endparam param pow1 caption="Exponent 1" default= (0.9,-2) endparam param pow2 caption="Exponent 2" default= 0.64 endparam func fn1 caption="Function" default=log() endfunc } ca181{ init: loop: final: #index=p1*(atan2(fn1(#z^@pow1))+cabs(fn2(#z^@pow2))+real(#z)) default: title="ca181" param p1 caption="Parameter" default=0.05 endparam param pow1 caption="Exponent 1" default=(1,0) endparam param pow2 caption="Exponent 2" default= (1,0) endparam func fn1 default=ident() endfunc func fn2 default=atan() endfunc } ca183{ init: loop: final: #index=0.1*cabs(#z+fn1(p1*#numiter^@pow)) default: title="ca183" param p1 caption="Parameter" default=(0.48791,-2.99377) endparam param pow caption="Exponent" default= (0.290861,0.453061) endparam func fn1 caption="Function" default=ident() endfunc } ca184{ init: loop: final: #index=(|@fn(pi^(@par*(p2*fn2(#z)-#numiter-pixel)))|) default: title="ca184" func fn caption="Function 1" default=ident() endfunc func fn2 default=ident() endfunc param par caption="Parameter 1" default=0.018 endparam param p2 default=(1,0) endparam } ca185{ init: z=pixel loop: x=imag(z)^2+real(z) y=real(z)*imag(z)-imag(z) z=x+flip(y) final: #index=p1*(atan2(fn1(abs(recip(#z-z)^@pow1)))) default: title="ca185" param p1 caption="Parameter" default=0.8 endparam param pow1 caption="Exponent" default=(0.68,0.95) endparam func fn1 caption="Function" default=log() endfunc } ca186{ init: loop: final: x=asinh(cos(#numiter+fn2(#z)))^@pow1 y=(1-tan(acos(fn2(#z)))^2*fn2(#z)-#numiter)^@pow2 #index=p1*0.224*atan2(fn1(acos(sqr(x+flip(y))))) default: title="ca186" func fn1 default=ident() endfunc func fn2 default=ident() endfunc param pow1 caption="Exponent 1" default=(0.625732,0.029547) endparam param pow2 caption="Exponent 2" default=(1,0) endparam param p1 caption="Parameter" default=1.0 endparam } ca189{ init: loop: final: #index=p2*|fn1(sinh(log(log(p3*fn2(#z)*(#numiter-1)*@par))))| default: title="ca189" func fn1 default=ident() endfunc func fn2 default=ident() endfunc param par caption="Parameter 1" default=(0.01,0) endparam param p2 caption="Parameter 2" default=1.0 endparam param p3 default=(1,0) endparam } Colouring{ global: init: loop: final: if @f==0 #index = atan2(fn2(fn1((p1*#z+p2)/(p3*#z+p4)))^@pow) elseif @f==1 #index = atan2(fn2(fn1((p1*#z+p2)/(p3*#z+p4)+(p3*#z+p4)/(p1*#z+p2)))^@pow) elseif @f==2 #index = atan2(fn2(fn1((p1*#z+p2)/(p3*#z+p4)-(p3*#z+p4)/(p1*#z+p2)))^@pow) elseif @f==3 #index = atan2(fn2(fn1((p4*#z-p2)/(-p3*#z+p1)))^@pow) elseif @f==4 #index = atan2(fn2(fn1((p1*#z+p2)/(p3*#z+p4)+(p4*#z-p2)/(-p3*#z+p1)))^@pow) elseif @f==5 #index = atan2(fn2(fn1((p1*#z+p2)/(p3*#z+p4)-(p4*#z-p2)/(-p3*#z+p1)))^@pow) elseif @f==6 #index = atan2(fn2(fn1((p1*#z+p2)/(p3*#z+p4)*(p4*#z-p2)/(-p3*#z+p1)))^@pow) elseif @f==7 #index = atan2(fn2(fn1((p1*#z+p2)/(p3*#z+p4)/(p4*#z-p2)/(-p3*#z+p1)))^@pow) elseif @f==8 #index = atan2(fn2(fn1((p1*conj(#z)+p2)/(p3*conj(#z)+p4)))^@pow) endif default: title = "Möbius Colouring" param f caption="Formula" enum= "Möbius" "M+Recip" "M-Recip" "Inverse" "M+Inverse" "M-Inverse" "M*Inverse" "M/Inverse" "Anti-Möbius" default=0 endparam param p1 default=(-0.45,0.7) endparam param p2 default=(1,2) endparam param p3 default=(1.5,2) endparam param p4 default=(-1,-0.5) endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc param pow caption="Power" default=(1,0) endparam } MöbiusColouring2 { global: import "common.ulb" import "Standard.ulb" GradientColoring c = new @coloringClass(0) init: c.Init(#z, #pixel) loop: c.Iterate(#z) final: if@f==0 #index =atan2(fn2(fn1( c.ResultIndex((p1*#z+p2)/(p3*#z+p4))))^@pow) elseif @f==1 #index = atan2(fn2(fn1(c.ResultIndex((p1*#z+p2)/(p3*#z+p4)+(p4*#z-p2)/(-p3*#z+p1))))^@pow) elseif @f==2 #index = atan2(fn2(fn1(c.ResultIndex((p1*#z+p2)/(p3*#z+p4)-(p4*#z-p2)/(-p3*#z+p1))))^@pow) elseif @f==3 #index = atan2(fn2(fn1(c.ResultIndex((p1*#z+p2)/(p3*#z+p4)*(p4*#z-p2)/(-p3*#z+p1))))^@pow) elseif @f==4 #index = atan2(fn2(fn1(c.ResultIndex((p1*#z+p2)/(p3*#z+p4)/(p4*#z-p2)/(-p3*#z+p1))))^@pow) elseif @f==5 #index = atan2(fn2(fn1(c.ResultIndex((p1*#z+p2)/(p3*#z+p4)+(p3*#z+p4)/(p1*#z+p2))))^@pow) elseif @f==6 #index = atan2(fn2(fn1(c.ResultIndex((p1*#z+p2)/(p3*#z+p4)-(p3*#z+p4)/(p1*#z+p2))))^@pow) elseif @f==7 #index = atan2(fn2(fn1(c.ResultIndex((p1*conj(#z)+p2)/(p3*conj(#z)+p4))))^@pow) endif #solid = c.IsSolid() default: title = "Möbius Colouring 2" param f caption="Formula" enum= "Möbius" "M + Inverse" "M - Inverse" "M * Inverse" "M / Inverse" "M + Recip" "M - Recip" "Anti-Möbius" default=0 endparam param p1 default=(-0.45,0.7) endparam param p2 default=(1,2) endparam param p3 default=(1.5,2) endparam param p4 default=(-1,-0.5) endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc param pow caption="Power" default=(-2.4,-0.6) endparam GradientColoring param coloringClass caption = "Plug-In" default = Standard_Smooth endparam } MöbiusColouring3 { global: import "common.ulb" import "Standard.ulb" GradientColoring c = new @coloringClass(0) init: c.Init(#z, #pixel) loop: c.Iterate(#z) final: if@f==0 #index =atan2(fn2(fn1( c.ResultIndex((p1*(p1*#z+p2)/(p3*#z+p4)+p2)/(p3*(p1*#z+p2)/(p3*#z+p4)+p4))))^@pow) elseif @f==1 #index = atan2(fn2(fn1(c.ResultIndex((p1*(p5*#z+p6)/(@p7*#z+@p8)+p2)/(p3*(p5*#z+p6)/(@p7*#z+@p8)+p4))))^@pow) elseif @f==2 #index = atan2(fn2(fn1(c.ResultIndex((p1*(@p8*#z-p6)/(-@p7*#z+p5)+p2)/(p3*(@p8*#z-p6)/(-@p7*#z+p5)+p4))))^@pow) elseif @f==3 #index = atan2(fn2(fn1(c.ResultIndex((p4*(p4*#z-p2)/(-p3*#z+p1) -p2)/(-p3*(p4*#z-p2)/(-p3*#z+p1)+p1))))^@pow) elseif @f==4 #index = atan2(fn2(fn1(c.ResultIndex((p4*(p5*#z+p6)/(@p7*#z+@p8)-p2)/(-p3*(p5*#z+p6)/(@p7*#z+@p8)+p1))))^@pow) elseif @f==5 #index = atan2(fn2(fn1(c.ResultIndex((p4*(@p8*#z-p6)/(-@p7*#z+p5) -p2)/(-p3*(@p8*#z-p6)/(-@p7*#z+p5)+p1))))^@pow) elseif @f==6 #index = atan2(fn2(fn1(c.ResultIndex((p5*(p1*#z+p2)/(p3*#z+p4)+p6)/(@p7*(p1*#z+p2)/(p3*#z+p4)+@p8))))^@pow) elseif @f==7 #index = atan2(fn2(fn1(c.ResultIndex((p5*(p4*#z-p2)/(-p3*#z+p1) +p6)/(@p7*(p4*#z-p2)/(-p3*#z+p1) +@p8))))^@pow) elseif @f==8 #index = atan2(fn2(fn1(c.ResultIndex((p5*(p5*#z+p6)/(@p7*#z+@p8)+p6)/(@p7*(p5*#z+p6)/(@p7*#z+@p8)+@p8))))^@pow) elseif @f==9 #index = atan2(fn2(fn1(c.ResultIndex((@p8*(p1*#z+p2)/(p3*#z+p4)-p6)/(-@p7*(p1*#z+p2)/(p3*#z+p4)+p5))))^@pow) elseif @f==10 #index = atan2(fn2(fn1(c.ResultIndex((@p8*(p4*#z-p2)/(-p3*#z+p1) -p6)/(-@p7*(p4*#z-p2)/(-p3*#z+p1) +p5))))^@pow) elseif @f==11 #index = atan2(fn2(fn1(c.ResultIndex((@p8*(@p8*#z-p6)/(-@p7*#z+p5) -p6)/(-@p7*(@p8*#z-p6)/(-@p7*#z+p5) +p5))))^@pow) endif #solid = c.IsSolid() default: title = "Möbius Colouring 3 " param f caption="Formula" enum="aa" "ab" "a b'" "a' a'" "a' b" "a' b'" "b a" "b a'" "b b" "b' a" "b' a'" "b' b'" default=0 endparam param p1 default=(-0.45,0.7) endparam param p2 default=(1,2) endparam param p3 default=(1.5,2) endparam param p4 default=(-1,-0.5) endparam param p5 default=(1,0.8) endparam param p6 default=(2,-0.5) endparam param p7 caption="Parameter 7" default=(1,-2) endparam param p8 caption="Parameter 8" default=(-2,1) endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc param pow caption="Power" default=(-2.4,-0.6) endparam GradientColoring param coloringClass caption = "Plug-In" default = Standard_Smooth endparam } CA196{ init: loop: final: z=(fn1(#z)-p1)^@pow float x=cabs(fn2(z)+p2) if @form==0 x=abs(x) elseif @form==1 x=sqrt(x) elseif @form==2 x=sqrt(sqrt(x)) elseif @form==3 x=x+recip(x) elseif @form==4 x=x/|x| elseif @form==5 x=(x+1)/(x^2-1) elseif @form==6 x=sin(x) elseif @form==7 x=acosh(x) elseif @form==8 x=atanh(x) endif #index=p3*x default: title="CA196" param form caption="Variant" enum="x=abs(x)" "x=sqrt(x)" "x=sqrt(sqrt(x))" "x=x+recip(x)" "x=x/|x|" "x=(x+1)/(x^2-1)" "x=sin(x)" "x=acosh(x)" "x=atanh(x)" default=0 endparam param p1 default=(0,0) endparam param p2 default=(0,0) endparam param p3 caption="Parameter 3" default=1.0 endparam func fn1 default=log() endfunc func fn2 default=ident() endfunc param pow caption="Exponent" default=1.0 endparam } 3kleincol{ ; Adapted and modified from Morgan_L_Owens.frm global: init: loop: final: a=2*pi/3 c1=p3*fn1(exp((0,0)*a)) c2=p3*fn1(exp((0,1)*a)) c3=p3*fn1(exp((0,2)*a)) r=fn2(sqrt(p4)/2) if |pixel-c1|<|r| #index=cabs(p1*fn3(r*conj(r/(#z-c1))+c1)^@pow+p2) elseif |pixel-c2|<|r| #index=cabs(p1*fn3(r*conj(r/(#z-c2))+c2)^@pow+p2) elseif |pixel-c3|<|r| #index=cabs(p1*fn3(r*conj(r/(#z-c3))+c3)^@pow+p2) else #index=cabs(p1*fn3(r*conj(r/(#z)))^@pow+p2) endif default: title="Three Klein Colouring" param p1 default=(1,0) endparam param p2 default=(0,0) endparam param p3 default=(1,0) endparam param p4 caption="Parameter 4" default=3.0 endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=log() endfunc param pow caption="Exponent" default=1.0 endparam } 5kleincol { ; Adapted and modified from Morgan_L_Owens.frm global: init: loop: final: a=2*pi/5 c1=p3*fn1(exp((0,0)*a)) c2=p3*fn1(exp((0,1)*a)) c3=p3*fn1(exp((0,2)*a)) c4=p3*fn1(exp((0,3)*a)) c5=p3*fn1(exp((0,4)*a)) r=fn2(sqrt(p4)/2) if |pixel-c1|<|r| #index=cabs(p1*fn3(r*conj(r/(#z-c1))+c1)^@pow+p2) elseif |pixel-c2|<|r| #index=cabs(p1*fn3(r*conj(r/(#z-c2))+c2)^@pow+p2) elseif |pixel-c3|<|r| #index=cabs(p1*fn3(r*conj(r/(#z-c3))+c3)^@pow+p2) elseif |pixel-c4|<|r| #index=cabs(p1*fn3(r*conj(r/(#z-c4))+c4)^@pow+p2) elseif |pixel-c5|<|r| #index=cabs(p1*fn3(r*conj(r/(#z-c5))+c5)^@pow+p2) else #index=cabs(p1*fn3(r*conj(r/(#z)))^@pow+p2) endif default: title="Five Klein Colouring" param p1 default=(1,0) endparam param p2 default=(0,0) endparam param p3 default=(1,0) endparam param p4 caption="Parameter 4" default=3.0 endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=log() endfunc param pow caption="Exponent" default=1.0 endparam } 7kleincol { ; Adapted and modified from Morgan_L_Owens.frm global: init: loop: final: a=2*pi/7 c1=p3*fn1(exp((0,0)*a)) c2=p3*fn1(exp((0,1)*a)) c3=p3*fn1(exp((0,2)*a)) c4=p3*fn1(exp((0,3)*a)) c5=p3*fn1(exp((0,4)*a)) c6=p3*fn1(exp((0,5)*a)) c7=p3*fn1(exp((0,6)*a)) r=fn2(sqrt(p4)/2) if |#pixel-c1|<|r| #index=cabs(p1*fn3(r*conj(r/(#z-c1))+c1)^@pow+p2) elseif |#pixel-c2|<|r| #index=cabs(p1*fn3(r*conj(r/(#z-c2))+c2)^@pow+p2) elseif |#pixel-c3|<|r| #index=cabs(p1*fn3(r*conj(r/(#z-c3))+c3)^@pow+p2) elseif |#pixel-c4|<|r| #index=cabs(p1*fn3(r*conj(r/(#z-c4))+c4)^@pow+p3) elseif |#pixel-c5|<|r| #index=cabs(p1*fn3(r*conj(r/(#z-c5))+c5)^@pow+p2) elseif |#pixel-c6|<|r| #index=cabs(p1*fn3(r*conj(r/(#z-c6))+c6)^@pow+p2) elseif |#pixel-c7|<|r| #index=cabs(p1*fn3(r*conj(r/(#z-c7))+c7)^@pow+p2) else #index=cabs(p1*fn3(r*conj(r/(#z)))^@pow+p2) endif default: title="Seven Klein Colouring" param p1 default=(1,0) endparam param p2 default=(0,0) endparam param p3 default=(1,0) endparam param p4 caption="Parameter 4" default=3.0 endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=log() endfunc param pow caption="Power" default=1.0 endparam } GrailMoth { init: float k = 0.0 int iters = 0 loop: if cabs(#z - p1) <= p2 k= cabs(fn1(#z - #pixel)) endif iters = iters + 1 final: if @v==0 #index = p3*iters *recip(k) elseif @v==1 #index = p3*iters *sqrt(k) elseif @v==2 #index =p3*iters *cos(k) elseif @v==3 #index = p3*iters *log(k) elseif @v==4 #index =p3*iters *sqrt(sin(k)) elseif @v==5 #index = p3*iters *recip(sqrt(sqrt(k))) elseif @v==6 #index = p3*iters *log(sqrt(k)) elseif @v==7 #index = p3*iters *cotanh(sqrt(k)) elseif @v==8 #index = p3*iters *recip(tan(abs(k))) elseif @v==9 #index = p3*iters *sqrt(sqrt(log(abs(k)))) endif default: title = "Grail Moth" param v caption="Variant" enum="recip" "sqrt" "cos" "log" "sqrt sin" "recip sqrt sqrt" "log sqrt" "cotanh sqrt" "recip tan abs" "sqrt sqrt log abs" default=0 endparam param p1 default = (1,0) endparam param p2 default = 4.0 endparam func fn1 default=ident() endfunc param p3 default=0.06 endparam } CroggorlomaLinith { init: float a = 0 float b = 0 float c = 0.01 d = 0 bool f = true loop: d = #z+p1 a = cabs(fn1(d)-fn1(#pixel)) b = cabs(fn2(d)-fn3(#pixel)) if f && p2 < b && b < p3 f = false c =a endif final: #index = c default: title = "Croggorloma Linith" param p1 default = (0,0) endparam param p2 caption="Parameter 2" default = 1.0 endparam param p3 caption="Parameter 3" default = 2.0 endparam func fn1 default =ident() endfunc func fn2 default = ident() endfunc func fn3 default = ident() endfunc } HolongramicirGlot { init: float a = 0 float b = 0 float c = 0.01 d = 0 bool f = true loop: d = (p4*conj(p4/(fn4(#z)+p1))+p1) a = cabs(fn1(d)-fn1(#pixel)) b = cabs(fn2(d)-fn3(#pixel)) if f && p2 < b && b < p3 f = false c =a endif final: #index = c default: title = "Holongramicir Glot" param p1 default = (0,0) endparam param p2 caption="Parameter 2" default = 1.0 endparam param p3 caption="Parameter 3" default = 2.0 endparam param p4 default = (1,0) endparam func fn1 default =ident() endfunc func fn2 default = ident() endfunc func fn3 default = ident() endfunc func fn4 default = ident() endfunc } NuorLogic { init: float a=sqr(p2) float b=0.0 float c=0.0 loop: c = a-|fn1(fn2(p3*#z^@pow))-p1| if c>0 if @v==0 b =c elseif @v==1 b =b+c elseif @v==2 b=sqrt(c) elseif @v==3 b=sqrt(b+c) elseif @v==4 b=c-b elseif @v==5 b=sqrt(c-b) elseif @v==6 b=real(c)^3 elseif @v==7 b=b^2-b-c^2+c elseif @v==8 b=b-b^2+c^2+c elseif @v==9 b= c-b^2 elseif @v==10 b= b^2-b-2*c^2+c elseif @v==11 b= b^2-2*b+2*c^2 elseif @v==12 b= real(acos(c))+imag(c) elseif @v==13 b= real(acos(c))+imag(acosh(c)) elseif @v==14 b= real(exp(c))+imag(c) elseif @v==15 b= real(exp(c))+imag(acosh(c)) elseif @v==16 b= real(cos(c))+imag(c) elseif @v==17 b= real(cos(c))+imag(acosh(c)) elseif @v==18 b= real(cosh(c))+imag(acosh(c)) elseif @v==19 b= real(atanh(c))+imag(flip(c)) elseif @v==20 b= imag(acosh(c)) endif endif final: #index = b default: title = "Nu or Logic" param v caption = "Variant" default = 0 enum = "c" "b+c" "sqrt(c)" "sqrt(b+c)" "c-b" "sqrt(c-b)" "real(c)^3" "b^2-b-c^2+c" \ "b-b^2+c^2+c" "c-b^2" "b^2-b-2*c^2+c" "b^2-2*b+2*c^2" "real(acos(c))+imag(c)" \ "real(acos(c))+imag(acosh(c))" "real(exp(c))+imag(c)" "real(exp(c))+imag(acosh(c))" \ "real(cos(c))+imag(c)" "real(cos(c))+imag(acosh(c))" "real(cosh(c))+imag(acosh(c))" \ "real(atanh(c))+imag(flip(c))" "imag(acosh(c))" endparam param p1 default = (0.5,0.5) endparam param p2 caption="Parameter 2" default = -1.0 endparam param p3 default = (1,0) endparam param pow caption="Power" default=1 endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc } OrgumaLocus { init: b = (0,0) c = (0,0) d = (0,0) float f = 0 bool g = true loop: if g b = fn1(log(#z)) b = fn2((b-p1)*p2) f = cabs(recip(b)) if f > 1e-10 d = b/f f = p3*0.5/sqrt(0.25+(p3^2-0.25)*imag(d)^2) c = f*d f = cabs(sqr(c-b))/(p4/10) if f <= 1 g = false endif endif endif final: if g #solid = true else if @v==0 if |b|>|c| f = 1+f else f = 1-f endif #index = f/2 elseif @v==1 #index = (atan2(d))/2 elseif @v==2 #index=cabs(log(d)) elseif @v==3 if |b|>|c| f = 1+f^3 else f = 1-f^3 endif #index = f/2 elseif @v == 4 if |cosh(b)|>|exp(c)| f = 1+f else f = 1-f endif #index = f/2 endif endif default: title = "Orguma Locus" param v caption = "Variant" enum = "1" "2" "3" "4" "5" default = 0 endparam heading endheading func fn1 default=ident() endfunc func fn2 default=ident() endfunc heading endheading param p1 default=(0,0) endparam param p2 default = (1,0) endparam param p3 caption="Parameter 3" default = 0.5 endparam param p4 caption="Parameter 4" default = 0.5 endparam } MagmaGrolthius { init: float a = 0.0 float b = 0.0 float c = 0.0 d = (0,0) int f = 0 bool g = false loop: if !g b = |d| / |fn1(fn2(tanh(#z+p1)))| d = #z if b < p3 && f > 0 g = true c = ((imag(p2) - 1) / p3)* b + a * imag(p2) endif f = f + 1 a = f % real(p2) endif final: if g #index = ((real(c)+1) % p4) / p4 else #solid = true endif default: title="Magma Grolthius" func fn1 default=ident() endfunc func fn2 default=sqr() endfunc param p1 default = (0,0) endparam param p2 default = (-25,132) endparam param p3 caption="Parameter 3" default = 0.2 endparam param p4 caption="Parameter 4" default = 289.0 endparam } DoubleRings { init: int a=0 int b=1 float c=0.0 float d=0.0 loop: b = b+1 d = cabs(fn1(fn2(#z))-p1) if d>=p2 && d<=p3 && a==0 a=b c=(d-p2)*(p4/(p3-p2)) endif final: if a>0 #index = c else #solid = true endif default: title = "Double Rings" param p1 default = (-1,0) endparam param p2 caption="Parameter 2" default = 0.75 endparam param p3 caption="Parameter 3" default = 1.0 endparam param p4 caption="Parameter 4" default = 2.0 endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc } Psychbroth{ init: float a=p1 b=0 loop: float c=cabs(fn1(fn2(#z+p2))) if cimag(fn2(#z)) #index= p3*cabs(p1*#z-58)/100 else #index= p3*cabs(p2*#z+29)/100 endif default: title = "Mega Prumeus" param p1 caption="Parameter 1" default=(-1.5,0.5) endparam param p2 caption="Parameter 2" default=(1,0) endparam param p3 caption="Parameter 3" default=1.0 endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc } Omothactor{ init: float a = 0.0 float b = 0.0 float c = 0.0 float d = 0.0 loop: a=b+p1 b=b+p2 c=c+real(fn1(#z)*b)/a d=d+real(cabs(#z)*c)*p3/b final: #index = c/d +p4*real(#random) default: title = "Omothactor" func fn1 caption="Function" default=ident() endfunc param p1 caption="Parameter 1" default=1.0 endparam param p2 caption="Parameter 2" default=1.0 endparam param p3 caption="Parameter 3" default=1.0 endparam param p4 caption="Grain" default=0.0 endparam } 4kleincol { ; Adapted and modified from Morgan_L_Owens.frm global: init: loop: final: a=2*pi/4 c1=p3*fn1(exp((0,0)*a)) c2=p3*fn1(exp((0,1)*a)) c3=p3*fn1(exp((0,2)*a)) c4=p3*fn1(exp((0,3)*a)) r=fn2(sqrt(p4)/2) if |#pixel-c1|<|r| #index=cabs(p1*fn3(r*conj(r/(#z-c1))+c1)^@pow+p2) elseif |#pixel-c2|<|r| #index=cabs(p1*fn3(r*conj(r/(#z-c2))+c2)^@pow+p2) elseif |#pixel-c3|<|r| #index=cabs(p1*fn3(r*conj(r/(#z-c3))+c3)^@pow+p2) elseif |#pixel-c4|<|r| #index=cabs(p1*fn3(r*conj(r/(#z-c4))+c4)^@pow+p2) else #index=cabs(p1*fn3(r*conj(r/(#z)))^@pow+p2) endif default: title="Four Klein Colouring" param p1 default=(1,0) endparam param p2 default=(0,0) endparam param p3 default=(1,0) endparam param p4 caption="Parameter 4" default=2.0 endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=log() endfunc param pow caption="Power" default=1.0 endparam } OldMintSwamp { ; A modification of 'Twin Lamps' by Edgar Malinovsky global: int k1=p2 if k1 >= #maxiter k1=#maxiter - 1 endif init: float a = 0.0 float b=1e20 float c=-1 float d=0.0 float f=0.0 int k2=0 loop: if k2<= k1 if @V ==0 d= cabs(tan(#z)+p1) elseif @V ==1 d= cabs(tanh(#z)+p1) elseif @V ==2 d= cabs(atan(#z)+p1) elseif @V ==3 d= cabs(atanh(#z)+p1) elseif @V ==4 d= cabs(cotan(#z)+p1) elseif @V ==5 d= cabs(cotanh(#z)+p1) endif f=d if f< b b = f endif if f>c c = f endif a= a+ exp(-d) k2=k2+1 endif final: #index=sqrt(a)/(1+c-b) default: title = "Old Mint Swamp" param V caption="Variant" enum="Tan" "Tanh" "Atan" "Atanh" "Cotan" "Cotanh" default=5 endparam param p1 default=(0,0) endparam param p2 default=50 endparam } Maslomowi { ;This is a modification of 'Two Small' by Edward M. Perry init: int i=0 a=(0,0) b=(0,0) float c=0.0 float d=0.0 float f=0.0 float g=0.0 float s=0.0 float t=0.0 float u=0.0 float v=0.0 float w=0.0 loop: b = #z a = p1 * a b = p2 * b a=fn1(a) b=fn1(b) a=fn2(a) b=fn3(b) c=real(b) d=imag(b) f=real(a) g=imag(a) v=f-c w=g-d u=v^2+w^2 if u=p2 && d<=1 && a==0 a=b c=cabs((d-p2)*(2/(#z-p2))) endif final: if a>0 #index = c else #solid=true endif default: title="Blengrundesiwo" func fn1 default=ident() endfunc func fn2 default=ident() endfunc param p1 default=(-1,0) endparam param p2 caption="Parameter 2" default = 0.75 endparam } Boffles { ; Modification of 'Bubbles' by Kerry Mitchell and Fractint's bof60 and bof61 init: float a=p1+cabs(p2)+p3 if(a==0.0) a=1.0 endif float b=p1/a float c=cabs(p2)/a float d=p3/a float f=0.0 float g=p4 float h=0.0 j=(0,0) bool k=false float m=0.0 float n=0.0 loop: m=m+1 if @V==0 f=cabs(#z^2+@p5) elseif @V==1 f=cabs(#z^2+#z+@p5) elseif @V==2 f=cabs(log(#z)/#z+@p5) elseif @V==3 f=cabs(#z^3+#z^2+#z+@p5) elseif @V==4 f=cabs(#z^2+pixel+@p5) elseif @V==5 f=cabs(#z-(#z^3-1)/(3*#z^2)+@p5) elseif @V==6 f=cabs(conj(1/(#z-p5))+p5) elseif @V==7 f=cabs(#z^3+2*sqr(#z)+3*#z+1+p5) elseif @V==8 f=cabs(log(#z)/#z+#z+@p5) elseif @V==9 f=cabs(sqr(log(#z)/#z)+@p5) elseif @V==10 f=cabs(cotanh(#z-(#z^3-1)/(3*#z^2))+@p5) elseif @V==11 f=cabs(cotanh(conj(1/(#z-p5))+p5)) elseif @V==12 f=cabs(cotanh(#z^3+2*sqr(#z)+3*#z+1)+p5) endif if f0 k=#z else k=conj(#z) endif d=log(k+p1) elseif @V=="k" d=#z^3+2*sqr(#z)+3*#z+p1 elseif @V=="l" d=cotanh(#z)+#z+p1 elseif @V=="m" d=flip(#z)/#z+p1 elseif @V=="n" d=conj(#z)/#z+p1 elseif @V=="o" d=cotan(#z)/#z+p1 elseif @V=="p" d=(#z-sqrt(-1))/(#z+sqrt(-1))+p1 elseif @V=="q" d=(p1*conj(#z))/(conj(#z)^2-1) elseif @V=="r" d=(p1*conj(#z)^2)/(conj(#z)^3-1) elseif @V=="s" d=#z-p1*2*(#z^3-1)*(3*#z^2)/(2*(3*#z^2)^2-(#z^3-1)*6*#z) elseif @V=="t" if |#z-p1|<1 d=conj(1/(#z-p1)) else d=conj(1/#z) endif elseif @V=="u" d=asin(tanh(#z))+p1 elseif @V=="v" d=#z^4+2*#z^3+3*#z^2+4*#z+p1 elseif @V=="w" d=cotanh(#z)/sin(#z)+p1 elseif @V=="x" d=cabs(#z)/sqr(#z)+p1 elseif @V=="y" d=cotanh(#z)*cosh(#z)+p1 elseif @V=="z" d=log(#z)*cosh(#z)+p1 endif a=cabs(fn1(d)-fn1(#pixel)) b=cabs(fn2(d)-fn3(#pixel)) if f && p2|b| d=1+d else d=1-d endif #index=d/2 endif default: title="Orguma Locus 2" param V caption="Function 1" enum="ident""+pixel""*pixel""sqr+pixel""loglog"\ "sin""sinh""cosh""acos""tan""cotanh"\ "sqrt""exp""flip""recip""third""half""double""triple"\ "mf1""mf2""mf3""mf4""sin+""sin*""sinc""cosh+""cosh*""coshc"\ "tan+""tan*""tanc""sec" "sec+""sec*""secc" default=1 endparam func fn1 caption="Function 2" default=ident () endfunc func fn2 caption="Function 3" default=ident() endfunc param p1 default=(1,0) endparam param p2 default=(0,0) endparam } GleesanChang { init: float a=0.0 complex zold=(0,0) float b=0.0 a=pi loop: if @V=="ident" b=abs(atan2(ident(#z+p1)-zold)) elseif @V=="sin" b=abs(atan2(sin(#z+p1)-zold)) elseif @V=="sinh" b=abs(atan2(sinh(#z+p1)-zold)) elseif @V=="asin" b=abs(atan2(asin(#z+p1)-zold)) elseif @V=="asinh" b=abs(atan2(asinh(#z+p1)-zold)) elseif @V=="versin" b=abs(atan2(1-cos(#z+p1)-zold)) elseif @V=="aversin" b=abs(atan2(acos(1-#z+p1)-zold)) elseif @V=="haversin" b=abs(atan2((1-cos(#z+p1))/2-zold)) elseif @V=="ahaversin" b=abs(atan2(2*asin(sqrt(#z+p1))-zold)) elseif @V=="coversin" b=abs(atan2(1-sin(#z+p1)-zold)) elseif @V=="acoversin" b=abs(atan2(asin(1-(#z+p1))-zold)) elseif @V=="hacoversin" b=abs(atan2((1-sin(#z+p1))/2-zold)) elseif @V=="cos" b=abs(atan2(cos(#z+p1)-zold)) elseif @V=="cosh" b=abs(atan2(cosh(#z+p1)-zold)) elseif @V=="acos" b=abs(atan2(acos(#z+p1)-zold)) elseif @V=="acosh" b=abs(atan2(acosh(#z+p1)-zold)) elseif @V=="vercos" b=abs(atan2(1+cos(#z+p1)-zold)) elseif @V=="avercos" b=abs(atan2(acos(1+#z+p1)-zold)) elseif @V=="havercos" b=abs(atan2((1+cos(#z+p1))/2-zold)) elseif @V=="ahavercos" b=abs(atan2(2*acos(sqrt(#z+p1))-zold)) elseif @V=="covercos" b=abs(atan2(1+sin(#z+p1)-zold)) elseif @V=="acovercos" b=abs(atan2(asin(1+#z+p1)-zold)) elseif @V=="hacovercos" b=abs(atan2((1+sin(#z+p1))/2-zold)) elseif @V=="tan" b=abs(atan2(tan(#z+p1)-zold)) elseif @V=="tanh" b=abs(atan2(tanh(#z+p1)-zold)) elseif @V=="atan" b=abs(atan2(atan(#z+p1)-zold)) elseif @V=="atanh" b=abs(atan2(atanh(#z+p1)-zold)) elseif @V=="cotan" b=abs(atan2(cotan(#z+p1)-zold)) elseif @V=="cotanh" b=abs(atan2(cotanh(#z+p1)-zold)) elseif @V=="acotan" b=abs(atan2(atan(1/(#z+p1))-zold)) elseif @V=="acotanh" b=abs(atan2(atanh(1/(#z+p1))-zold)) elseif @V=="sec" b=abs(atan2(1/cos(#z+p1)-zold)) elseif @V=="sech" b=abs(atan2(1/cosh(#z+p1)-zold)) elseif @V=="asec" b=abs(atan2(acos(1/(#z+p1))-zold)) elseif @V=="asech" b=abs(atan2(acosh(1/(#z+p1))-zold)) elseif @V=="cosec" b=abs(atan2(1/sin(#z+p1)-zold)) elseif @V=="cosech" b=abs(atan2(1/sinh(#z+p1)-zold)) elseif @V=="acosec" b=abs(atan2(asin(1/(#z+p1))-zold)) elseif @V=="acosech" b=abs(atan2(asinh(1/(#z+p1))-zold)) elseif @V=="exsec" b=abs(atan2(1/cos(#z+p1)-1-zold)) elseif @V=="aexsec" b=abs(atan2(acos(1/(#z+p1+1))-zold)) elseif @V=="excosec" b=abs(atan2(1/sin(#z+p1)-1-zold)) elseif @V=="aexcosec" b=abs(atan2(asin(1/(#z+p1+1))-zold)) elseif @V=="crd" b=abs(atan2(2*sin((#z+p1)/2)-zold)) elseif @V=="acrd" b=abs(atan2(2*asin((#z+p1)/2)-zold)) elseif @V=="gd" b=abs(atan2(asin(tanh(#z+p1))-zold)) elseif @V=="agd" b=abs(atan2(asinh(tan(#z+p1))-zold)) elseif @V=="sinc" b=abs(atan2(sin(#z+p1)/(#z+p1)-zold)) elseif @V=="sinhc" b=abs(atan2(sinh(#z+p1)/(#z+p1)-zold)) elseif @V=="cosc" b=abs(atan2(cos(#z+p1)/(#z+p1)-zold)) elseif @V=="coshc" b=abs(atan2(cosh(#z+p1)/(#z+p1)-zold)) elseif @V=="tanc" b=abs(atan2(tan(#z+p1)/(#z+p1)-zold)) elseif @V=="tanhc" b=abs(atan2(tanh(#z+p1)/(#z+p1)-zold)) elseif @V=="cotanc" b=abs(atan2(cotan(#z+p1)/(#z+p1)-zold)) elseif @V=="cotanhc" b=abs(atan2(cotanh(#z+p1)/(#z+p1)-zold)) elseif @V=="secc" b=abs(atan2(1/((#z+p1)*cos(#z+p1))-zold)) elseif @V=="sechc" b=abs(atan2(1/((#z+p1)*cosh(#z+p1))-zold)) elseif @V=="cosecc" b=abs(atan2(1/((#z+p1)*sin(#z+p1))-zold)) elseif @V=="cosechc" b=abs(atan2(1/((#z+p1)*sinh(#z+p1))-zold)) elseif @V=="sqr" b=abs(atan2(sqr(#z+p1)-zold)) elseif @V=="sqrt" b=abs(atan2(sqrt(#z+p1)-zold)) elseif @V=="cube" b=abs(atan2((#z+p1)^3-zold)) elseif @V=="cuberoot" b=abs(atan2((#z+p1)^(1/3)-zold)) elseif @V=="log" b=abs(atan2(log(#z+p1)-zold)) elseif @V=="colog" b=abs(atan2(-log(#z+p1)-zold)) elseif @V=="exp" b=abs(atan2(exp(#z+p1)-zold)) elseif @V=="abs" b=abs(atan2(abs(#z+p1)-zold)) elseif @V=="cabs" b=abs(atan2(cabs(#z+p1)-zold)) elseif @V=="conj" b=abs(atan2(conj(#z+p1)-zold)) elseif @V=="flip" b=abs(atan2(flip(#z+p1)-zold)) elseif @V=="recip" b=abs(atan2(recip(#z+p1)-zold)) elseif @V=="logit" b=abs(atan2(log((#z+p1)/(1-(#z+p1)))-zold)) elseif @V=="expit" b=abs(atan2(1/(1+exp(-(#z+p1)))-zold)) elseif @V=="gauss" b=abs(atan2(exp(-sqr(#z+p1))-zold)) elseif @V=="softplus" b=abs(atan2(log(1+exp(#z+p1))-zold)) elseif @V=="primecount" b=abs(atan2((#z+p1)/log(#z+p1)-zold)) elseif @V=="ceil" b=abs(atan2(ceil(#z+p1)-zold)) elseif @V=="floor" b=abs(atan2(floor(#z+p1)-zold)) elseif @V=="trunc" b=abs(atan2(trunc(#z+p1)-zold)) elseif @V=="round" b=abs(atan2(round(#z+p1)-zold)) endif if ba a=b endif zold=#z final: #index=a/pi+p2 default: title="Gleesan Chang 2" param V caption="Function" enum="ident""sin""sinh""asin""asinh""versin""aversin""haversin""ahaversin""coversin""acoversin"\ "hacoversin""cos""cosh""acos""acosh""vercos""avercos""havercos""ahavercos""covercos"\ "acovercos""hacovercos""tan""tanh""atan""atanh""cotan""cotanh""acotan""acotanh" \ "sec""sech""asec""asech""cosec""cosech""acosec""acosech""exsec""aexsec"\ "excosec""aexcosec""crd""acrd""gd""agd""sinc""sinhc""cosc""coshc"\ "tanc""tanhc""cotanc""cotanhc""secc""sechc""cosecc""cosechc""sqr""sqrt"\ "cube""cuberoot""log""colog""exp""abs""cabs""conj""flip""recip"\ "logit""expit""gauss""softplus""primecount""ceil""floor""trunc""round" default=0 endparam param p1 default=(0,0) endparam param p2 caption="Parameter 2" default=0.0 endparam } Tricol(Direct){ ; Modification of 'hot and Cold 2' from https://github.com/edyoung/gnofract4d/blob/master/formulas/experiments.cfrm init: float a=0.0 color c=@c1 loop: if @V=="ident" a=|fn2(#z)| elseif @V=="sqr+" a=|fn2(sqr(#z)+#z)| elseif @V=="cube" a=|fn2(#z^3)| elseif @V=="cube+" a=|fn2(#z^3+sqr(#z)+#z)| elseif @V=="+pixel" a=|fn2(#z+pixel)| elseif @V=="-pixel" a=|fn2(#z-pixel)| elseif @V=="*pixel" a=|fn2(#z*pixel)| elseif @V=="/pixel" a=|fn2(#z/pixel)| elseif @V=="mf1" a=|fn2(sqr(#z)+pixel)| elseif @V=="mf2" a=|fn2(#z^3+pixel)| elseif @V=="mf3" a=|fn2(#z-(#z^3-1)/(3*#z^2))| elseif @V=="mf4" a=|fn2(conj(1/(#z-1))+1)| elseif @V=="mf5" a=|fn2(sqr(#z)*(#z-2)/(1-2*#z))| elseif @V=="primecount" a=|fn2(#z/log(#z))| elseif @V=="gauss" a=|fn2(exp(-sqr(#z)))| elseif @V=="sinc" a=|fn2(sin(#z)/#z)| elseif @V=="cosc" a=|fn2(cos(#z)/#z)| elseif @V=="tanc" a=|fn2(tan(#z)/#z)| elseif @V=="cotanc" a=|fn2(cotan(#z)/#z)| elseif @V=="sinc*pixel" a=|fn2(sin(#z)*pixel/#z)| elseif @V=="cosc*pixel" a=|fn2(cos(#z)*pixel/#z)| elseif @V=="tanc*pixel" a=|fn2(tan(#z)*pixel/#z)| elseif @V=="cotanc*pixel" a=|fn2(cotan(#z)*pixel/#z)| endif if a0 g=true c=((imag((-50,150)-1))/p3)*b+a*imag((-50,150)) endif f=f+1 a=f%(-50) endif final: if g #index=((real(c)+1)%300)/300 else #solid=true endif default: title="Magma Grolthius 2" func fn1 default=ident() endfunc param F2 caption="Function 2" enum="sqr""sqr+""cube""cube+""+pixel""*pixel""/pixel"\ "exp""asinh""sqrexp""sqrtan""sqrtanh""sqrsqr""sqrlog"\ "mf1""mf2" default=0 endparam func fn3 default=ident() endfunc param p1 default=(0,0) endparam param p2 default=(0,0) endparam param p3 caption="Parameter 3" default=0.2 endparam } MagmaGrolthius3 { init: float a=0.0 float b=0.0 float c=0.0 d=(0,0) int f=0 bool g=false loop: if !g b=|d|/(sin(imag(#z)/real(flip(#z)))*p1) if @F1=="ident" d=fn2(ident(#z)) elseif @F1=="sin" d=fn2(sin(#z)) elseif @F1=="sinh" d=fn2(sinh(#z)) elseif @F1=="asin" d=fn2(asin(#z)) elseif @F1=="asinh" d=fn2(asinh(#z)) elseif @F1=="versin" d=fn2(1-cos(#z)) elseif @F1=="aversin" d=fn2(acos(1-#z)) elseif @F1=="haversin" d=fn2((1-cos(#z))/2) elseif @F1=="ahaversin" d=fn2(2*asin(sqrt(#z))) elseif @F1=="coversin" d=fn2(1-sin(#z)) elseif @F1=="acoversin" d=fn2(asin(1-#z)) elseif @F1=="hacoversin" d=fn2((1-sin(#z))/2) elseif @F1=="cos" d=fn2(cos(#z)) elseif @F1=="cosh" d=fn2(cosh(#z)) elseif @F1=="acos" d=fn2(acos(#z)) elseif @F1=="acosh" d=fn2(acosh(#z)) elseif @F1=="vercos" d=fn2(1+cos(#z)) elseif @F1=="avercos" d=fn2(acos(1+#z)) elseif @F1=="havercos" d=fn2((1+cos(#z))/2) elseif @F1=="ahavercos" d=fn2(2*acos(sqrt(#z))) elseif @F1=="covercos" d=fn2(1+sin(#z)) elseif @F1=="acovercos" d=fn2(asin(1+#z)) elseif @F1=="hacovercos" d=fn2((1+sin(#z))/2) elseif @F1=="tan" d=fn2(tan(#z)) elseif @F1=="tanh" d=fn2(tanh(#z)) elseif @F1=="atan" d=fn2(atan(#z)) elseif @F1=="atanh" d=fn2(atanh(#z)) elseif @F1=="cotan" d=fn2(cotan(#z)) elseif @F1=="cotanh" d=fn2(cotanh(#z)) elseif @F1=="acotan" d=fn2(atan(1/(#z))) elseif @F1=="acotanh" d=fn2(atanh(1/(#z))) elseif @F1=="sec" d=fn2(1/cos(#z)) elseif @F1=="sech" d=fn2(1/cosh(#z)) elseif @F1=="asec" d=fn2(acos(1/#z)) elseif @F1=="asech" d=fn2(acosh(1/#z)) elseif @F1=="cosec" d=fn2(1/sin(#z)) elseif @F1=="cosech" d=fn2(1/sinh(#z)) elseif @F1=="acosec" d=fn2(asin(1/#z)) elseif @F1=="acosech" d=fn2(asinh(1/#z)) elseif @F1=="exsec" d=fn2(1/cos(#z)-1) elseif @F1=="aexsec" d=fn2( acos(1/(#z+1))) elseif @F1=="excosec" d=fn2(1/sin(#z)-1) elseif @F1=="aexcosec" d=fn2(asin(1/(#z+1))) elseif @F1=="crd" d=fn2(2*sin(#z/2)) elseif @F1=="acrd" d=fn2(2*asin(#z/2)) elseif @F1=="gd" d=fn2(asin(tanh(#z))) elseif @F1=="agd" d=fn2(asinh(tan(#z))) elseif @F1=="sinc" d=fn2(sin(#z)/(#z)) elseif @F1=="sinhc" d=fn2(sinh(#z)/(#z)) elseif @F1=="cosc" d=fn2(cos(#z)/(#z)) elseif @F1=="coshc" d=fn2(cosh(#z)/(#z)) elseif @F1=="tanc" d=fn2(tan(#z)/(#z)) elseif @F1=="tanhc" d=fn2(tanh(#z)/(#z)) elseif @F1=="cotanc" d=fn2(cotan(#z)/(#z)) elseif @F1=="cotanhc" d=fn2(cotanh(#z)/(#z)) elseif @F1=="secc" d=fn2(1/(#z*cos(#z))) elseif @F1=="sechc" d=fn2(1/(#z*cosh(#z))) elseif @F1=="cosecc" d=fn2( 1/(#z*sin(#z))) elseif @F1=="cosechc" d=fn2(1/(#z*sinh(#z))) elseif @F1=="sqr" d=fn2(sqr(#z)) elseif @F1=="sqrt" d=fn2(sqrt(#z)) elseif @F1=="cube" d=fn2(#z^3 ) elseif @F1=="cuberoot" d=fn2(#z^(1/3)) elseif @F1=="log" d=fn2(log(#z)) elseif @F1=="colog" d=fn2(-log(#z)) elseif @F1=="exp" d=fn2(exp(#z)) elseif @F1=="abs" d=fn2(abs(#z)) elseif @F1=="cabs" d=fn2(cabs(#z)) elseif @F1=="conj" d=fn2(conj(#z)) elseif @F1=="flip" d=fn2(flip(#z)) elseif @F1=="recip" d=fn2(recip(#z)) elseif @F1=="logit" d=fn2( log(#z/(1-#z))) elseif @F1=="expit" d=fn2(1/(1+exp(-#z))) elseif @F1=="gauss" d=fn2(exp(-sqr(#z))) elseif @F1=="softplus" d=fn2(log(1+exp(#z))) elseif @F1=="primecount" d=fn2(#z/log(#z)) elseif @F1=="ceil" d=fn2(ceil(#z)) elseif @F1=="floor" d=fn2(floor(#z)) elseif @F1=="trunc" d=fn2(trunc(#z)) elseif @F1=="round" d=fn2(round(#z)) elseif @F1=="third" d=fn2(#z/3) elseif @F1=="half" d=fn2(#z/2) elseif @F1=="double" d=fn2(2*#z) elseif @F1=="triple" d=fn2(3*#z) elseif @F1=="+pixel" d=fn2(#z+pixel) elseif @F1=="-pixel" d=fn2(#z-pixel) elseif @F1=="*pixel" d=fn2(#z*pixel) elseif @F1=="/pixel" d=fn2(#z/pixel) elseif @F1=="sqr+" d=fn2(sqr(#z)+#z) elseif @F1=="cube+" d=fn2(#z^3+sqr(#z)+#z) elseif @F1=="sqrt+" d=fn2(sqrt(#z)+#z) elseif @F1=="cuberoot+" d=fn2(#z^(1/3)+#z) elseif @F1=="sin+" d=fn2(sin(#z)+#z) elseif @F1=="cos+" d=fn2(cos(#z)+#z) elseif @F1=="tan+" d=fn2(tan(#z)+#z) elseif @F1=="pow" d=fn2(real(#z)^imag(#z)) elseif @F1=="pow2" d=fn2(real(#z)^flip(imag(#z))) elseif @F1=="pow3" d=fn2(#z^#z) elseif @F1=="pow4" d=fn2(imag(#z)^real(#z)) elseif @F1=="pow5" d=fn2(#z^real(#z)) elseif @F1=="pow6" d=fn2(real(#z)^#z) endif if b0 g=true c=((imag(p2)-1)/p3)*b+a*imag(p2) endif f=f+1 a=f%real(p2) endif final: if g #index=((real(c)+1)%p4)/p4 else #solid=true endif default: title="Magma Grolthius 3" param F1 caption="Function 1" enum="ident""sin""sinh""asin""asinh""versin""aversin""haversin""ahaversin""coversin""acoversin"\ "hacoversin""cos""cosh""acos""acosh""vercos""avercos""havercos""ahavercos""covercos"\ "acovercos""hacovercos""tan""tanh""atan""atanh""cotan""cotanh""acotan""acotanh" \ "sec""sech""asec""asech""cosec""cosech""acosec""acosech""exsec""aexsec"\ "excosec""aexcosec""crd""acrd""gd""agd""sinc""sinhc""cosc""coshc"\ "tanc""tanhc""cotanc""cotanhc""secc""sechc""cosecc""cosechc""sqr""sqrt"\ "cube""cuberoot""log""colog""exp""abs""cabs""conj""flip""recip"\ "logit""expit""gauss""softplus""primecount""ceil""floor""trunc""round"\ "third""half""double""triple""+pixel""-pixel""*pixel""/pixel"\ "sqr+""cube+""sqrt+""cuberoot+""sin+""cos+""tan+""pow""pow2""pow3""pow4""pow5""pow6" default=0 endparam func fn2 default=ident() endfunc param p1 caption="Parameter 1" default=1.0 endparam param p2 default=(-25,132) endparam param p3 caption="Parameter 3" default = 0.2 endparam param p4 caption="Parameter 4" default = 289.0 endparam } Munfode { init: int a=0 int b=1 float c=0.0 float d=0.0 loop: b=b+1 if @V=="a" d=abs(sin(real(fn1(#z+p1))*imag(fn1(#z+p1))))*100 elseif @V=="b" d=abs(sin(real(fn1(#z+p1))^2*imag(fn1(#z+p1))))*100 elseif @V=="c" d=abs(sin(real(fn1(#z+p1))*imag(fn1(#z+p1))))^2*100 elseif @V=="d" d=abs(sin(real(fn1(#z+p1))^2*imag(fn1(#z+p1))))^2*100 elseif @V=="e" d=abs(sin(real(fn1(#z+p1))^2+imag(fn1(#z+p1))))^2*100 elseif @V=="f" d=abs(sin(real(fn1(#z+p1))+imag(fn1(#z+p1))))^2*100 endif if d>=p2 && d<=p3 && a==0 a=b c=(d-p2)*(p4/(p3-p2)) endif final: if a>0 #index=c else #solid=true endif default: title="Munfode" param V caption="Variant" enum="a""b""c""d""e""f" default=0 endparam func fn1 caption="Function" default=ident() endfunc param p1 default=(1,0) endparam param p2 caption="Parameter 2" default=-2.0 endparam param p3 caption="Parameter 3" default=5.0 endparam param p4 caption="Parameter 4" default=0.4 endparam } Demmond { ;Modification of 'fmod' from https://github.com/edyoung/gnofract4d/blob/master/formulas/fractint.cfrm init: float a=-1.0 loop: if @F1=="ident" float b=|ident(#z)+p3| elseif @F1=="sin" float b=|sin(#z)+p3| elseif @F1=="sinh" float b=|sinh(#z)+p3| elseif @F1=="asin" float b=|asin(#z)+p3| elseif @F1=="asinh" float b=|asinh(#z)+p3| elseif @F1=="versin" float b=|1-cos(#z)+p3| elseif @F1=="aversin" float b=|acos(1-#z)+p3| elseif @F1=="haversin" float b=|(1-cos(#z))/2+p3| elseif @F1=="ahaversin" float b=|2*asin(sqrt(#z))+p3| elseif @F1=="coversin" float b=|1-sin(#z)+p3| elseif @F1=="acoversin" float b=|asin(1-#z)+p3| elseif @F1=="hacoversin" float b=|(1-sin(#z))/2+p3| elseif @F1=="cos" float b=|cos(#z)+p3| elseif @F1=="cosh" float b=|cosh(#z)+p3| elseif @F1=="acos" float b=|acos(#z)+p3| elseif @F1=="acosh" float b=|acosh(#z)+p3| elseif @F1=="vercos" float b=|1+cos(#z)+p3| elseif @F1=="avercos" float b=|acos(1+#z)+p3| elseif @F1=="havercos" float b=|(1+cos(#z))/2+p3| elseif @F1=="ahavercos" float b=|2*acos(sqrt(#z))+p3| elseif @F1=="covercos" float b=|1+sin(#z)+p3| elseif @F1=="acovercos" float b=|asin(1+#z)+p3| elseif @F1=="hacovercos" float b=|(1+sin(#z))/2+p3| elseif @F1=="tan" float b=|tan(#z)+p3| elseif @F1=="tanh" float b=|tanh(#z)+p3| elseif @F1=="atan" float b=|atan(#z)+p3| elseif @F1=="atanh" float b=|atanh(#z)+p3| elseif @F1=="cotan" float b=|cotan(#z)+p3| elseif @F1=="cotanh" float b=|cotanh(#z)+p3| elseif @F1=="acotan" float b=|atan(1/(#z))+p3| elseif @F1=="acotanh" float b=|atanh(1/(#z))+p3| elseif @F1=="sec" float b=|1/cos(#z)+p3| elseif @F1=="sech" float b=|1/cosh(#z)+p3| elseif @F1=="asec" float b=|acos(1/#z)+p3| elseif @F1=="asech" float b=|acosh(1/#z)+p3| elseif @F1=="cosec" float b=|1/sin(#z)+p3| elseif @F1=="cosech" float b=|1/sinh(#z)+p3| elseif @F1=="acosec" float b=|asin(1/#z)+p3| elseif @F1=="acosech" float b=|asinh(1/#z)+p3| elseif @F1=="exsec" float b=|1/cos(#z)-1+p3| elseif @F1=="aexsec" float b=| acos(1/(#z+1))+p3| elseif @F1=="excosec" float b=|1/sin(#z)-1+p3| elseif @F1=="aexcosec" float b=|asin(1/(#z+1))+p3| elseif @F1=="crd" float b=|2*sin(#z/2)+p3| elseif @F1=="acrd" float b=|2*asin(#z/2)+p3| elseif @F1=="gd" float b=|asin(tanh(#z))+p3| elseif @F1=="agd" float b=|asinh(tan(#z))+p3| elseif @F1=="sinc" float b=|sin(#z)/(#z)+p3| elseif @F1=="sinhc" float b=|sinh(#z)/(#z)+p3| elseif @F1=="cosc" float b=|cos(#z)/(#z)+p3| elseif @F1=="coshc" float b=|cosh(#z)/(#z)+p3| elseif @F1=="tanc" float b=|tan(#z)/(#z)+p3| elseif @F1=="tanhc" float b=|tanh(#z)/(#z)+p3| elseif @F1=="cotanc" float b=|cotan(#z)/(#z)+p3| elseif @F1=="cotanhc" float b=|cotanh(#z)/(#z)+p3| elseif @F1=="secc" float b=|1/(#z*cos(#z))+p3| elseif @F1=="sechc" float b=|1/(#z*cosh(#z))+p3| elseif @F1=="cosecc" float b=| 1/(#z*sin(#z))+p3| elseif @F1=="cosechc" float b=|1/(#z*sinh(#z))+p3| elseif @F1=="sqr" float b=|sqr(#z)+p3| elseif @F1=="sqrt" float b=|sqrt(#z)+p3| elseif @F1=="cube" float b=|#z^3+p3| elseif @F1=="cuberoot" float b=|#z^(1/3)+p3| elseif @F1=="log" float b=|log(#z)+p3| elseif @F1=="colog" float b=|-log(#z)+p3| elseif @F1=="exp" float b=|exp(#z)+p3| elseif @F1=="abs" float b=|abs(#z)+p3| elseif @F1=="cabs" float b=|cabs(#z)+p3| elseif @F1=="conj" float b=|conj(#z)+p3| elseif @F1=="flip" float b=|flip(#z)+p3| elseif @F1=="recip" float b=|recip(#z)+p3| elseif @F1=="logit" float b=| log(#z/(1-#z))+p3| elseif @F1=="expit" float b=|1/(1+exp(-#z))+p3| elseif @F1=="gauss" float b=|exp(-sqr(#z))+p3| elseif @F1=="softplus" float b=|log(1+exp(#z))+p3| elseif @F1=="primecount" float b=|#z/log(#z)+p3| elseif @F1=="ceil" float b=|ceil(#z)+p3| elseif @F1=="floor" float b=|floor(#z)+p3| elseif @F1=="trunc" float b=|trunc(#z)+p3| else float b=|round(#z)+p3| endif if b0 if @V==0 c=abs(c^(2/3)+d^(2/3)-p3) elseif @V==1 c=c+d+1-p3 elseif @V==2 c=abs(d-p3*cosh(c/p3)) elseif @V==3 c=sqrt(c+d)+1-p3 elseif @V==4 c=|cabs(#z*d)-p3| elseif @V==5 c=|cabs(#z+d+c)-p3| elseif @V==6 c=|atan2(#z+d+c)-p3| elseif @V==7 c=|abs(sqrt(d)-p3)| elseif @V==8 c=|abs(acosh(d)-p3)| elseif @V==9 c=abs(d^2*(p3^2-c^2)-(c^2+2*p3*d-p3^2)^2) endif endif final: if @solid==true if c>0 #index=c else #solid=true endif else #index=c endif default: title = "Vescur 1" param V caption="Variant" enum="1""2""3""4""5""6""7""8""9""10" default=0 endparam param T caption="Trapshape" enum="0""1""2""3""4""5""6""7""8""9""10"\ "11""12""13""14""15""16""17""18"\ "19""20""21""22" default=0 endparam param p1 default=(1,0) endparam param p2 caption="Parameter 2" default=0.25 endparam param p3 caption="Parameter 3" default=1.0 endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc param @solid caption="Solid Colour" default=false endparam } Vescur2 { init: a=p1 float b=p2 float c=0.0 float d=0.0 loop: float x=real(fn1(#z)) float y=imag(fn1(#z)) if @T=="astroid" d=b-|x^(2/3)+y^(2/3)-a^(2/3)| elseif @T=="bicorn" d=b-|y^2*(a^2-x^2)-(x^2+2*a*y-a^2)^2| elseif @T=="cardioid" d=b-|(x^2+y^2-2*a*x)^2-4*a^2*(x^2+y^2)| elseif @T=="catenary" d=b-|y-a*cosh(x/a)| elseif @T=="cayley's sextile" d=b-|4*(x^2+y^2-a*x)^3-27*a^2*(x^2+y^2)^2| elseif @T=="cissoid of diocles" d=b-|y^2-x^3/(2*a-x)| elseif @T=="conchoid" d=b-|(x-a)^2*(x^2+y^2-a^2*x^2)| elseif @T=="conchoid of de sluze" d=b-|a*(x+a)*(x^2+y^2)-a^2*x^2| elseif @T=="devil" d=b-|y^4-x^4+a*y^2+a*x^2| elseif @T=="double folium" d=b-|(x^2+y^2)^2-4*a*x*y^2| elseif @T=="durer's shell" d=b-|(x^2+x*y+a*x-a^2)^2-(a^2-x^2)*(x-y+a)^2| elseif @T=="figure eight" d=b-|x^4-a^2*(x^2-y^2)| elseif @T=="folium" d=b-|(x^2+y^2)*(y^2+x*(x+a))-4*a*x*y^2| elseif @T=="folium of descartes" d=b-|x^3+y^3-3*a*x*y| elseif @T=="hyperbola" d=b-|x^2/a^2-y^2/a^2-1| elseif @T=="kampyle of eudoxus" d=b-|a^2*x^4-a^4*(x^2+y^2)| elseif @T=="kappa" d=b-|y^2*(x^2+y^2)-a^2*x^2| elseif @T=="lamé" d=b-|(x/a)^2+(y/a)^2-1| elseif @T=="lemniscate of bernoulli" d=b-|(x^2+y^2)^2-a^2*(x^2-y^2)| elseif @T=="limacon of pascal" d=b-|(x^2+y^2-2*a*x)^2-a^2*(x^2+y^2)| elseif @T=="neile's semi-cubical parabola" d=b-|y^3-a*x^2| elseif @T=="newton's diverging parabolas" d=b-|a*y^2-x*(x^2-2*a*x+a)| elseif @T=="parabola" d=b-|y-a*x^2-a*x-a| elseif @T=="pearls of sluze" d=b-|y^2-a*(a-x)^3*x^4| elseif @T=="pear-shaped quartic" d=b-|a^2*y^2-x^3*(a-x)| elseif @T=="pursuit" d=b-|y-a*x^2-log(x)| elseif @T=="quadratic of hippias" d=b-|y-x*cotan(pi*x/(2*a))| elseif @T=="right strophoid" d=b-|y^2-x^2*(a-x)/(a+x)| elseif @T=="serpentine" d=b-|x^2*y+a^2*y-a^2*x| elseif @T=="spiric sections" d=b-|(a^2+x^2+y^2)^2-4*a^2*(x^2+a^2)| elseif @T=="line" d=b-|y-a*x-a| elseif @T=="tricuspoid" d=b-|(x^2+y^2+12*a*x+9*a^2)^2-4*a*(2*x+3*a)^3| elseif @T=="trident of newton" d=b-|x*y-a*x^3-a*x^2-a*x-a| elseif @T=="trifolium" d=b-|(x^2+y^2)*(y^2+x*(x+a))-4*a*x*y^2| elseif @T=="trisectrix of maclaurin" d=b-|y^2*(a+x)-x^2*(3*a-x)| elseif @T=="tschirnhaus's cubic" d=b-|3*a*y^2-x*(x-a)^2| elseif @T=="witch of agnesi" d=b-|y*(x^2+a^2)-a^3| endif if d>0 if @V==0 c=abs(c^(2/3)+d^(2/3)-p3) elseif @V==1 c=c+d+1-p3 elseif @V==2 c=abs(d-p3*cosh(c/p3)) elseif @V==3 c=sqrt(c+d)+1-p3 elseif @V==4 c=|cabs(#z*d)-p3| endif endif final: if @solid==true if c>0 #index=c else #solid=true endif else #index=c endif default: title = "Vescur 2" param V caption="Variant" enum="1""2""3""4""5" default=0 endparam param T caption="Trapshape" enum="astroid""bicorn""cardioid""catenary""cayley's sextile"\ "cissoid of diocles""conchoid""conchoid of de sluze""devil"\ "double folium""durer's shell""figure eight""folium"\ "folium of descartes""hyperbola""kampyle of eudoxus"\ "kappa""lamé""lemniscate of bernoulli""limacon of pascal"\ "neile's semi-cubical parabola""newton's diverging parabolas"\ "parabola""pearls of sluze""pear-shaped quartic""pursuit"\ "quadratic of hippias""right strophoid""serpentine"\ "spiric sections""line""tricuspoid""trident of newton""trifolium"\ "trisectrix of maclaurin""tschirnhaus's cubic""witch of agnesi" default=0 endparam func fn1 caption="Function" default=ident() endfunc param p1 default=(1,0) endparam param p2 caption="Parameter 2" default=0.25 endparam param p3 caption="Parameter 3" default=1.0 endparam param @solid caption="Solid Colour" default=false endparam } AttractorTraps{ global: int k1=p5 if k1 >= #maxiter k1=#maxiter - 1 endif init: float a = 0.0 float b=1e20 float c=-1 float d=0.0 float f=0.0 int k2=0 loop: float x=real(fn1(#z)) float y=imag(fn1(#z)) if k2<= k1 if @V=="Brusselator" d=cabs((1-(p1+1)*x+y*x^2)/p2+flip((p1*x-y*x^2)/p3)) elseif @V =="Oscillating Chemical Reaction" d=cabs((p1-x-4*x*y)/(1+x^2)+flip(p2*x*(1-y)/(1+x^2))) elseif @V=="Buckling Column Model" d=cabs(y+flip(-(p1*x^3+p2*x+p3*y)/p4)) elseif @V=="Rayleigh" d=cabs(y+flip(-(x+p2*y^3-p1*y)/p3)) elseif @V=="Cathala" d=cabs(p1*x+y+flip(p2+x^2)) elseif @V=="Sprott-Elhadj" d=cabs(p1*x/(1+y^2)+flip(x+p2*y)) elseif @V=="Modified Lozi" d=cabs(1+p1*(cabs(x)-y^2)+y+flip(p2*x)) elseif @V=="Multifold Henon" d=cabs(1-p1*sin(x)+p2*y+flip(x)) elseif @V=="Mira" d=cabs(p2*y+p1*x+2*(1-p1)*x^2/(1+x^2)\ +flip(-x+p1*(p2*y+p1*x+2*(1-p1)*x^2/(1+x^2))\ +2*(1-p1)*(p2*y+p1*x+2*(1-p1)*x^2/(1+(p2*y\ +p1*x+2*(1-p1)*x^2/(1+x^2))^2))^2/(1+x^2))) elseif @V=="Garrote-Mira" d=cabs(y+p1*(1-0.05*y^2)+p2*x+2*(1-p2)*x^2/(1+x^2)\ +flip(-x+p2*(y+p1*(1-0.05*y^2)+p2*x+2*(1-p2)*x^2/(1+x^2))\ +2*(1-p2)*(y+p1*(1-0.05*y^2)+p2*x+2*(1-p2)*x^2/(1+x^2))\ ^2/(1+(y+p1*(1-0.05*y^2)+p2*x+2*(1-p2)*x^2/(1+x^2))^2))) elseif @V=="Hopalong" d=cabs(y-(x/cabs(x))*sqrt(cabs(p2*x-p3))+flip(p1-x)) elseif @V=="Martin" d=cabs(y+sin(x)+flip(p1-x)) elseif @V=="Popcorn" d=cabs(p1*sin(y+tan(p2*y))+flip(p1*sin(x+tan(p2*x)))) elseif @V=="Popcorn 2" d=cabs(x-p1*sin(y+tan(p2*y))+flip(y-p1*sin(x+tan(p2*x)))) elseif @V=="Ushiki" d=cabs((p1-x-p2*y)*x+flip((p3-y-p4*x)*y)) elseif @V=="Strelkova-Anishchenko" d=cabs(1-p1*x^2+p2*(y-x)+flip(1-p1*y^2+p2*(x-y))) elseif @V=="Cat" d=cabs((2*x+y)%1+flip((x+y)%1)) elseif @V=="HCA" d=cabs(1-p1*x^2+p2*(y^2-x^2)+flip(1-p1*y^2+p2*(x^2-y^2))) elseif @V=="Coupled Logistic" d=cabs((1-p1)*p2*x*(1-x)+p1*p2*y*(1-y)+flip((1-p1)*p2*y*(1-y)+p1*p2*x*(1-x))) elseif @V=="Sine" d=cabs(y+flip(p1*sin(x)+p2*y)) elseif @V=="Henon" d=cabs(1-p1*x^2+y+flip(p2*x)) elseif @V=="Burgers" d=cabs(p1*x-y^2+flip(p2*y+x*y)) elseif @V=="Cao-Lai" d=cabs(p1*x*(1-x)+flip(p2*x*sin(2*pi*y)/(2*pi))) elseif @V=="Marotto-Lorenz" d=cabs((1-p1*x-p2*y)*(p1*x+p2*y)+flip(x)) elseif @V=="de Jong" d=cabs(sin(p1*y)-cos(p2*x)+flip(sin(p3*x)-cos(p4*y))) elseif @V=="Clifford" d=cabs(sin(p1*y)+p3*cos(p1*x)+flip(sin(p2*x)+p4*cos(p2*y))) elseif @V=="Svensson" d=cabs(p4*sin(p1*x)-sin(p2*y)+flip(p3*cos(p1*x)+cos(p2*y))) elseif @V=="Chip" d=cabs(y-(x/cabs(x))*cos(sqr(log(abs(p2*x-p3))))*atan(sqr(log(abs(p3*x-p2))))+flip(p1-x)) elseif @V=="Chirikov Mod" d=cabs(x+y+(p1/2*pi)*sin(2*pi*x)+flip(y+(p1/2*pi)*sin(2*pi*x))) elseif @V=="Duffing" d=cabs(y+flip(-p2*x+p1*y-y^3)) elseif @V=="Quadruptwo" d=cabs(y-(x/cabs(x))*sin(log(abs(p2*x-p3)))*atan(sqr(log(abs(p3*x-p2))))+flip(p1-x)) elseif @V=="Ikeda" d=cabs(p1+p2*(x*cos(p3-p4/(x^2+y^2+1))-y*sin(p3-p4/(x^2+y^2+1))) \ +flip(p2*(x*sin(p3-p4/(x^2+y^2+1))+y*cos(p3-p4/(x^2+y^2+1))))) elseif @V=="Gumowski-Mira" d=cabs(y+p1*x+2*(1-p1)*x^2/(1+x^2)+p2*(1-p3*y^2)*y+ \ flip(-x+p1*(y+p1*x+2*(1-p1)*x^2/(1+x^2)+p2*(1-p3*y^2)*y) \ +2*(1-p1)*(y+p1*x+2*(1-p1)*x^2/(1+x^2)+ \ p2*(1-p3*y^2)*y)^2/(1+(y+p1*x+2*(1-p1)*x^2/(1+x^2)+p2*(1-p3*y^2)*y)^2))) elseif @V=="Gumowski-Mira Mod" d=cabs((1-p1)*x+y+flip(y+p2*x+2*(1-p2)*x^2*(1+x^2)^(-2))) elseif @V=="Gumowski-Mira 2" d=cabs(y+p1*(1-p2*y^2)*y+p3*x+2*(1-p3)*x^2/(1+x^2)+flip \ (-x+p3*(y+p1*(1-p2*y^2)*y+p3*x+2*(1-p3)*x^2/(1+x^2)) \ +2*(1-p3)*(y+ p1*(1-p2*y^2)*y+p3*x+2*(1-p3)*x^2/(1+x^2))^2 \ /(1+(y+p1*(1-p2*y^2)*y+p3*x+2*(1-p3)*x^2/(1+x^2))^2))) elseif @V=="Bogdanov" d=cabs(flip(y+p1*y+p2*x*(x-1)+p3*x*y)+x+y+p1*y+p2*x*(x-1)+p3*x*y) elseif @V=="Mira 2" d=cabs(x^2-y^2+p1*x+p2+flip(2*x*y-5*p1*y/2)) elseif @V=="Mira 3" d=cabs((1-p1)*x+y+flip(p1*p2*x+p3*y-p1*x^3)) elseif @V=="Gingerbread" d=cabs(1-y+cabs(x)+flip(x)) elseif @V=="Hamilton" d=cabs(x+p1*p2*sin(2*pi*y)+flip(y-(p1/p2)*sin(2*pi*(x+p1*p2*sin(2*pi*y))))) elseif @V=="Kam Torus" d=cabs(x*cos(p1)+(x^2-y)*sin(p1)+flip(x*sin(p1)-(x^2-y)*cos(p1))) elseif @V=="Lozi" d=cabs(1+y-p1*cabs(x)+flip(p2*x)) elseif @V=="Threeply" d=cabs(y-(x/cabs(x))*(abs(sin(x)*cos(p2)+p3-x*sin(p1+p2+p3)))+flip(p1-x)) elseif @V=="Tinkerbell" d=cabs(x^2+-y^2+p1*x+p2*y+flip(2*x*y+p3*x+p4*y)) elseif @V=="Van der Pol" d=cabs(p1*(x-x^3/3-y)+flip(x/p1)) elseif @V=="Van der Pol 2" d=cabs(y+flip(p1*(1-x^2)*y-x)) endif f=d if f< b b = f endif if f>c c = f endif a= a+ exp(-d) k2=k2+1 endif final: if @solid if @invert if sqrt(a)/(1+c-b)<@p7 #index=sqrt(a)/(1+c-b)+p6*real(#random) else #solid=true endif else if sqrt(a)/(1+c-b)>@p7 #index=sqrt(a)/(1+c-b)+p6*real(#random) else #solid=true endif endif else #index=sqrt(a)/(1+c-b)+p6*real(#random) endif default: title = "Attraktor Traps" param V caption="Trap" enum="Brusselator""Oscillating Chemical Reaction"\ "Buckling Column Model""Rayleigh""Cathala""Sprott-Elhadj"\ "Modified Lozi""Multifold Henon""Mira""Garrote-Mira"\ "Hopalong""Martin""Popcorn""Popcorn 2""Ushiki"\ "Strelkova-Anishchenko""Cat""HCA""Coupled Logistic"\ "Sine""Henon""Burgers""Cao-Lai""Marotto-Lorenz""de Jong"\ "Clifford""Svensson""Chip""Chirikov Mod""Duffing"\ "Quadruptwo""Ikeda""Gumowski-Mira""Gumowski-Mira Mod"\ "Gumowski-Mira 2""Bogdanov""Mira 2""Mira 3""Gingerbread" \ "Hamilton""Kam Torus""Lozi""Threeply""Tinkerbell" \ "Van der Pol""Van der Pol 2" default=3 endparam param p1 caption="Trap Parameter 1" default=(1,0) visible=@V!=16 && @V!=38 endparam param p2 caption="Trap Parameter 2" default=(1,0) visible=@V!=11 && @V!=16 && @V!=28 && @V!=38 \ && @V!=40 && @V!=44 && @V!=45 endparam param p3 caption="Trap Parameter 3" default=(1,0) visible=@V==0 || @V==2 || @V==3 || @V==10 \ || @V==14 || @V==24 || @V==25 || @V==26 \ || @V==27 || @V==30 || @V==31 || @V==32 \ || @V==34 || @V==35 || @V==37 || @V==42 \ || @V==43 endparam param p4 caption="Trap Parameter 4" default=(1,0) visible=@V==2 || @V==14 || @V==24 \ || @V==25 || @V==26 || @V==31 || @V==43 endparam param p5 caption="Detail" default=8 endparam func fn1 caption="Function" default=ident() endfunc param p6 caption="Fuzziness" default=0.0 endparam param solid caption="Solid Colour" default=false endparam param p7 caption="Solid Colour Adjustment" default=0.5 visible=@solid==true endparam param invert caption="Invert Solid Colour" default=false visible=@solid==true endparam } AttractorTraps2{ init: float b=p5 float c=0.0 float d=0.0 loop: float x=real(fn1(#z)) float y=imag(fn1(#z)) if @V=="Brusselator" d=b-abs(atan2((1-(p1+1)*x+y*x^2)/p2+flip((p1*x-y*x^2)/p3))) elseif @V =="Oscillating Chemical Reaction" d=b-abs(atan2((p1-x-4*x*y)/(1+x^2)+flip(p2*x*(1-y)/(1+x^2)))) elseif @V=="Buckling Column Model" d=b-abs(atan2(y+flip(-(p1*x^3+p2*x+p3*y)/p4))) elseif @V=="Rayleigh" d=b-abs(atan2(y+flip(-(x+p2*y^3-p1*y)/p3))) elseif @V=="Cathala" d=b-abs(atan2(p1*x+y+flip(p2+x^2))) elseif @V=="Sprott-Elhadj" d=b-abs(atan2(p1*x/(1+y^2)+flip(x+p2*y))) elseif @V=="Modified Lozi" d=b-abs(atan2(1+p1*(cabs(x)-y^2)+y+flip(p2*x))) elseif @V=="Multifold Henon" d=b-abs(atan2(1-p1*sin(x)+p2*y+flip(x))) elseif @V=="Mira" d=b-abs(atan2(p2*y+p1*x+2*(1-p1)*x^2/(1+x^2)\ +flip(-x+p1*(p2*y+p1*x+2*(1-p1)*x^2/(1+x^2))\ +2*(1-p1)*(p2*y+p1*x+2*(1-p1)*x^2/(1+(p2*y\ +p1*x+2*(1-p1)*x^2/(1+x^2))^2))^2/(1+x^2)))) elseif @V=="Garrote-Mira" d=b-abs(atan2(y+p1*(1-0.05*y^2)+p2*x+2*(1-p2)*x^2/(1+x^2)\ +flip(-x+p2*(y+p1*(1-0.05*y^2)+p2*x+2*(1-p2)*x^2/(1+x^2))\ +2*(1-p2)*(y+p1*(1-0.05*y^2)+p2*x+2*(1-p2)*x^2/(1+x^2))\ ^2/(1+(y+p1*(1-0.05*y^2)+p2*x+2*(1-p2)*x^2/(1+x^2))^2)))) elseif @V=="Hopalong" d=b-abs(atan2(y-(x/cabs(x))*sqrt(cabs(p2*x-p3))+flip(p1-x))) elseif @V=="Martin" d=b-abs(atan2(y+sin(x)+flip(p1-x))) elseif @V=="Popcorn" d=b-abs(atan2(p1*sin(y+tan(p2*y))+flip(p1*sin(x+tan(p2*x))))) elseif @V=="Popcorn 2" d=b-abs(atan2(x-p1*sin(y+tan(p2*y))+flip(y-p1*sin(x+tan(p2*x))))) elseif @V=="Ushiki" d=b-abs(atan2((p1-x-p2*y)*x+flip((p3-y-p4*x)*y))) elseif @V=="Strelkova-Anishchenko" d=b-abs(atan2(1-p1*x^2+p2*(y-x)+flip(1-p1*y^2+p2*(x-y)))) elseif @V=="Cat" d=b-abs(atan2((2*x+y)%1+flip((x+y)%1))) elseif @V=="HCA" d=b-abs(atan2(1-p1*x^2+p2*(y^2-x^2)+flip(1-p1*y^2+p2*(x^2-y^2)))) elseif @V=="Coupled Logistic" d=b-abs(atan2((1-p1)*p2*x*(1-x)+p1*p2*y*(1-y)+flip((1-p1)*p2*y*(1-y)+p1*p2*x*(1-x)))) elseif @V=="Sine" d=b-abs(atan2(y+flip(p1*sin(x)+p2*y))) elseif @V=="Henon" d=b-abs(atan2(1-p1*x^2+y+flip(p2*x))) elseif @V=="Burgers" d=b-abs(atan2(p1*x-y^2+flip(p2*y+x*y))) elseif @V=="Cao-Lai" d=b-abs(atan2(p1*x*(1-x)+flip(p2*x*sin(2*pi*y)/(2*pi)))) elseif @V=="Marotto-Lorenz" d=b-abs(atan2((1-p1*x-p2*y)*(p1*x+p2*y)+flip(x))) elseif @V=="de Jong" d=b-abs(atan2(sin(p1*y)-cos(p2*x)+flip(sin(p3*x)-cos(p4*y)))) elseif @V=="Clifford" d=b-abs(atan2(sin(p1*y)+p3*cos(p1*x)+flip(sin(p2*x)+p4*cos(p2*y)))) elseif @V=="Svensson" d=b-abs(atan2(p4*sin(p1*x)-sin(p2*y)+flip(p3*cos(p1*x)+cos(p2*y)))) elseif @V=="Chip" d=b-abs(atan2(y-(x/cabs(x))*cos(sqr(log(abs(p2*x-p3))))*atan(sqr(log(abs(p3*x-p2))))+flip(p1-x))) elseif @V=="Chirikov Mod" d=b-abs(atan2(x+y+(p1/2*pi)*sin(2*pi*x)+flip(y+(p1/2*pi)*sin(2*pi*x)))) elseif @V=="Duffing" d=b-abs(atan2(y+flip(-p2*x+p1*y-y^3))) elseif @V=="Quadruptwo" d=b-abs(atan2(y-(x/cabs(x))*sin(log(abs(p2*x-p3)))*atan(sqr(log(abs(p3*x-p2))))+flip(p1-x))) elseif @V=="Ikeda" d=b-abs(atan2(p1+p2*(x*cos(p3-p4/(x^2+y^2+1))-y*sin(p3-p4/(x^2+y^2+1))) \ +flip(p2*(x*sin(p3-p4/(x^2+y^2+1))+y*cos(p3-p4/(x^2+y^2+1)))))) elseif @V=="Gumowski-Mira" d=b-abs(atan2(y+p1*x+2*(1-p1)*x^2/(1+x^2)+p2*(1-p3*y^2)*y+ \ flip(-x+p1*(y+p1*x+2*(1-p1)*x^2/(1+x^2)+p2*(1-p3*y^2)*y) \ +2*(1-p1)*(y+p1*x+2*(1-p1)*x^2/(1+x^2)+ \ p2*(1-p3*y^2)*y)^2/(1+(y+p1*x+2*(1-p1)*x^2/(1+x^2)+p2*(1-p3*y^2)*y)^2)))) elseif @V=="Gumowski-Mira Mod" d=b-abs(atan2((1-p1)*x+y+flip(y+p2*x+2*(1-p2)*x^2*(1+x^2)^(-2)))) elseif @V=="Gumowski-Mira 2" d=b-abs(atan2(y+p1*(1-p2*y^2)*y+p3*x+2*(1-p3)*x^2/(1+x^2)+flip \ (-x+p3*(y+p1*(1-p2*y^2)*y+p3*x+2*(1-p3)*x^2/(1+x^2)) \ +2*(1-p3)*(y+ p1*(1-p2*y^2)*y+p3*x+2*(1-p3)*x^2/(1+x^2))^2 \ /(1+(y+p1*(1-p2*y^2)*y+p3*x+2*(1-p3)*x^2/(1+x^2))^2)))) elseif @V=="Bogdanov" d=b-abs(atan2(flip(y+p1*y+p2*x*(x-1)+p3*x*y)+x+y+p1*y+p2*x*(x-1)+p3*x*y)) elseif @V=="Mira 2" d=b-abs(atan2(x^2-y^2+p1*x+p2+flip(2*x*y-5*p1*y/2))) elseif @V=="Mira 3" d=b-abs(atan2((1-p1)*x+y+flip(p1*p2*x+p3*y-p1*x^3))) elseif @V=="Gingerbread" d=b-abs(atan2(1-y+cabs(x)+flip(x))) elseif @V=="Hamilton" d=b-abs(atan2(x+p1*p2*sin(2*pi*y)+flip(y-(p1/p2)*sin(2*pi*(x+p1*p2*sin(2*pi*y)))))) elseif @V=="Kam Torus" d=b-abs(atan2(x*cos(p1)+(x^2-y)*sin(p1)+flip(x*sin(p1)-(x^2-y)*cos(p1)))) elseif @V=="Lozi" d=b-abs(atan2(1+y-p1*cabs(x)+flip(p2*x))) elseif @V=="Threeply" d=b-abs(atan2(y-(x/cabs(x))*(abs(sin(x)*cos(p2)+p3-x*sin(p1+p2+p3)))+flip(p1-x))) elseif @V=="Tinkerbell" d=b-abs(atan2(x^2+-y^2+p1*x+p2*y+flip(2*x*y+p3*x+p4*y))) elseif @V=="Van der Pol" d=b-abs(atan2(p1*(x-x^3/3-y)+flip(x/p1))) elseif @V=="Van der Pol 2" d=b-abs(atan2(y+flip(p1*(1-x^2)*y-x))) endif if d>0 if @Va==0 c=abs(c^(2/3)+d^(2/3)-p6) elseif @Va==1 c=c+d+1-p6 elseif @Va==2 c=abs(d-p6*cosh(c/p6)) elseif @Va==3 c=sqrt(c+d)+1-p6 elseif @Va==4 c=|cabs(#z*d)-p6| endif endif final: if @solid==true if c>@p7 #index=c else #solid=true endif else #index=c endif default: title = "Attraktor Traps 2" param Va caption="Variant" enum="1""2""3""4""5" default=1 endparam param p6 caption="Parameter 6" caption="Variant Parameter" default=1.0 endparam heading endheading param V caption="Trap" enum="Brusselator""Oscillating Chemical Reaction"\ "Buckling Column Model""Rayleigh""Cathala""Sprott-Elhadj"\ "Modified Lozi""Multifold Henon""Mira""Garrote-Mira"\ "Hopalong""Martin""Popcorn""Popcorn 2""Ushiki"\ "Strelkova-Anishchenko""Cat""HCA""Coupled Logistic"\ "Sine""Henon""Burgers""Cao-Lai""Marotto-Lorenz""de Jong"\ "Clifford""Svensson""Chip""Chirikov Mod""Duffing"\ "Quadruptwo""Ikeda""Gumowski-Mira""Gumowski-Mira Mod"\ "Gumowski-Mira 2""Bogdanov""Mira 2""Mira 3""Gingerbread" \ "Hamilton""Kam Torus""Lozi""Threeply""Tinkerbell" \ "Van der Pol""Van der Pol 2" default=0 endparam param p1 caption="Trap Parameter 1" default=(1,0) visible=@V!=16 && @V!=38 endparam param p2 caption="Trap Parameter 2" default=(1,0) visible=@V!=11 && @V!=16 && @V!=28 && @V!=38 \ && @V!=40 && @V!=44 && @V!=45 endparam param p3 caption="Trap Parameter 3" default=(1,0) visible=@V==0 || @V==2 || @V==3 || @V==10 \ || @V==14 || @V==24 || @V==25 || @V==26 \ || @V==27 || @V==30 || @V==31 || @V==32 \ || @V==34 || @V==35 || @V==37 || @V==42 \ || @V==43 endparam param p4 caption="Trap Parameter 4" default=(1,0) visible=@V==2 || @V==14 || @V==24 \ || @V==25 || @V==26 || @V==31 || @V==43 endparam heading endheading param p5 caption="Parameter" default=0.25 endparam func fn1 caption="Function" default=ident() endfunc heading endheading param @solid caption="Solid Colour" default=false endparam param p7 caption="Solid Colour Adjustment" default=0.0 visible=@solid==true endparam } SumatoHomgactor { init: float a=p1 int i=#maxiter loop: if @Fs=="sin" z=sin(#z) elseif @Fs=="sinh" z=sinh(#z) elseif @Fs=="asin" z=asin(#z) elseif @Fs=="asinh" z=asinh(#z) elseif @Fs=="cos" z=cos(#z) elseif @Fs=="cosh" z=cosh(#z) elseif @Fs=="acos" z=acos(#z) elseif @Fs=="acosh" z=acosh(#z) elseif @Fs=="tan" z=tan(#z) elseif @Fs=="tanh" z=tanh(#z) elseif @Fs=="atan" z=atan(#z) elseif @Fs=="atanh" z=atanh(#z) elseif @Fs=="cotan" z=cotan(#z) elseif @Fs=="cotanh" z=cotanh(#z) elseif @Fs=="sqr" z=sqr(#z) elseif @Fs=="sqrt" z=sqrt(#z) elseif @Fs=="log" z=log(#z) elseif @Fs=="exp" z=exp(#z) elseif @Fs=="abs" z=abs(#z) elseif @Fs=="cabs" z=cabs(#z) elseif @Fs=="conj" z=conj(#z) elseif @Fs=="flip" z=flip(#z) elseif @Fs=="ident" z=ident(#z) elseif @Fs=="recip" z=recip(#z) elseif @Fs=="versin" z=1-cos(#z) elseif @Fs=="aversin" z=acos(1-#z) elseif @Fs=="haversin" z=(1-cos(#z))/2 elseif @Fs=="ahaversin" z=2*asin(sqrt(#z)) elseif @Fs=="coversin" z=1-sin(#z) elseif @Fs=="acoversin" z=asin(1-#z) elseif @Fs=="hacoversin" z=(1-sin(#z))/2 elseif @Fs=="vercos" z=1+cos(#z) elseif @Fs=="avercos" z=acos(1+#z) elseif @Fs=="havercos" z=(1+cos(#z))/2 elseif @Fs=="ahavercos" z=2*acos(sqrt(#z)) elseif @Fs=="covercos" z=1+sin(#z) elseif @Fs=="acovercos" z=asin(1+#z) elseif @Fs=="hacovercos" z=(1+sin(#z))/2 elseif @Fs=="acotan" z=atan(1/(#z)) elseif @Fs=="acotanh" z=atanh(1/(#z)) elseif @Fs=="sec" z=1/cos(#z) elseif @Fs=="sech" z=1/cosh(#z) elseif @Fs=="asec" z=acos(1/#z) elseif @Fs=="asech" z=acosh(1/#z) elseif @Fs=="cosec" z=1/sin(#z) elseif @Fs=="cosech" z=1/sinh(#z) elseif @Fs=="acosec" z=asin(1/#z) elseif @Fs=="acosech" z=asinh(1/#z) elseif @Fs=="exsec" z=1/cos(#z)-1 elseif @Fs=="aexsec" z= acos(1/(#z+1)) elseif @Fs=="excosec" z=1/sin(#z)-1 elseif @Fs=="aexcosec" z=asin(1/(#z+1)) elseif @Fs=="crd" z=2*sin(#z/2) elseif @Fs=="acrd" z=2*asin(#z/2) elseif @Fs=="gd" z=asin(tanh(#z)) elseif @Fs=="agd" z=asinh(tan(#z)) elseif @Fs=="sinc" z=sin(#z)/(#z) elseif @Fs=="sinhc" z=sinh(#z)/(#z) elseif @Fs=="cosc" z=cos(#z)/(#z) elseif @Fs=="coshc" z=cosh(#z)/(#z) elseif @Fs=="tanc" z=tan(#z)/(#z) elseif @Fs=="tanhc" z=tanh(#z)/(#z) elseif @Fs=="cotanc" z=cotan(#z)/(#z) elseif @Fs=="cotanhc" z=cotanh(#z)/(#z) elseif @Fs=="secc" z=1/(#z*cos(#z)) elseif @Fs=="sechc" z=1/(#z*cosh(#z)) elseif @Fs=="cosecc" z= 1/(#z*sin(#z)) elseif @Fs=="cosechc" z=1/(#z*sinh(#z)) elseif @Fs=="cube" z=#z^3 elseif @Fs=="cuberoot" z=#z^(1/3) elseif @Fs=="colog" z=-log(#z) elseif @Fs=="logit" z= log(#z/(1-#z)) elseif @Fs=="expit" z=1/(1+exp(-#z)) elseif @Fs=="gauss" z=exp(-sqr(#z)) elseif @Fs=="softplus" z=log(1+exp(#z)) elseif @Fs=="primecount" z=#z/log(#z) elseif @Fs=="sqr+" z=sqr(#z)+#z elseif @Fs=="cube+" z=#z^3+sqr(#z)+#z elseif @Fs=="sin+" z=sin(#z)+#z elseif @Fs=="cos+" z=cos(#z)+#z elseif @Fs=="tan+" z=tan(#z)+#z elseif @Fs=="cotan+" z=cotan(#z)+#z elseif @Fs=="sec+" z=1/cos(#z)+#z elseif @Fs=="cosec+" z=1/sin(#z)+#z elseif @Fs=="sin*" z=sin(#z)*#z elseif @Fs=="cos*" z=cos(#z)*#z elseif @Fs=="tan*" z=tan(#z)*#z elseif @Fs=="cotan*" z=cotan(#z)*#z elseif @Fs=="sec*" z=#z/cos(#z) elseif @Fs=="cosec*" z=#z/sin(#z) elseif @Fs=="loglog" z=log(log(#z)) elseif @Fs=="sinsin" z=sin(sin(#z)) elseif @Fs=="coscos" z=cos(cos(#z)) elseif @Fs=="+pixel" z=#z+pixel elseif @Fs=="-pixel" z=#z-pixel elseif @Fs=="*pixel" z=#z*pixel elseif @Fs=="/pixel" z=#z/pixel elseif @Fs=="ceil" z=ceil(#z) elseif @Fs=="floor" z=floor(#z) elseif @Fs=="trunc" z=trunc(#z) else z=round(#z) endif x=real(fn2(z)) y=imag(fn2(z)) if @trap=="Alain Curve" float b=log(cabs((x^2-y^2)^2-@a^2*x^2+@a2^2*y^2-p2)) elseif @trap=="Ampersand Curve" float b=log(cabs((y^2-x^2)*(x-1)*(2*x-3)-4*(x^2+y^2-2*x)^2-p2)) elseif @trap=="Arcs of Samothrace" float b=log(cabs(x^2*(3*x^2-y^2)^2-y^2*(x^2+y^2)-p2)) elseif @trap=="Astroid" float b=log(cabs(x^(2/3)+y^(2/3)-@a^(2/3)-p2)) elseif @trap=="Atriphthaloid" float b=log(cabs(x^4*(x^2+y^2)-(@a2*x^2-@a^3)^2-p2)) elseif @trap=="Bean Curve" float b=log(cabs((x^2+y^2)^2-x^3-y^3-p2)) elseif @trap=="Bean Curve 2" float b=log(cabs(x^4+x^2*y^2+y^4-x*(x^2+y^2)-p2)) elseif @trap=="Beetle" float b=log(cabs((x^2+y^2)*(x^2+y^2-@a*x-@a2*y)-@a3^2*x^2*y^2-p2)) elseif @trap=="Biaxial Eight Reverse" float b=log(cabs(@a^2*y^2-x^2*(y^2-x^2)-p2)) elseif @trap=="Bicorn" float b=log(cabs(y^2*(@a^2-x^2)-(x^2+2*@a*y-@a^2)^2-p2)) elseif @trap=="Bicuspid" float b=log(cabs((x^2-@a^2)*(x-@a)^2+(y^2-@a^2)^2-p2)) elseif @trap=="Biquartic" float b=log(cabs(x^8+4*x^6*y+y^3*(y-1)+3*x^4*y*(2*y-3)+2*x^2*y^2*(2*y+3)-p2)) elseif @trap=="Blade's Cubic" float b=log(cabs(x^3+y^3-@a^3-p2)) elseif @trap=="Bolza" float b=log(cabs(y^2-x^5+x-p2)) elseif @trap=="Bow Curve" float b=log(cabs(x^4-(@a+1)*x^2*y+y^3-p2)) elseif @trap=="Bullet-Nose Curve" float b=log(cabs((@a^2-x^2)*(@a2^2+y^2)-@a^2*@a2^2-p2)) elseif @trap=="Butterfly Curve" float b=log(cabs(x^6+y^6-x^2-p2)) elseif @trap=="Butterfly Knot" float b=log(cabs((x^2+y^2)*x^4-(x^2-y^2)^2-p2)) elseif @trap=="Cardioid" float b=log(cabs((x^2+y^2-2*@a*x)^2-4*@a^2*(x^2+y^2)-p2)) elseif @trap=="Cartesian Oval" float b=log(cabs((@a2-3.2)*sqrt((x-@a)^2+y^2)+@a3*sqrt((x+@a)^2+y^2)-@a4-p2)) elseif @trap=="Cassinian Ovals" float b=log(cabs((x^2+y^2)^2-2*@a^2*(x^2-y^2)+@a^4-@a2^4-p2)) elseif @trap=="Catenary" float b=log(cabs(y-@a*cosh(x/@a)-p2)) elseif @trap=="Cayley's Sextic" float b=log(cabs(4*(x^2+y^2-@a*x)^3-27*@a^2*(x^2+y^2)^2-p2)) elseif @trap=="Cayley's Sextic 2" float b=log(cabs(-@a^3*x^3-48*@a*x*(x^2+y^2)^2+64*(x^2+y^2)^3-3*@a^2*(x^2+y^2)*(5*x^2+9*y^2)-p2)) elseif @trap=="Ceva's Trisectrix" float b=log(cabs((x^2+y^2)^3-((@a+1)*x^2-(@a-1)*y^2)^2-p2)) elseif @trap=="Chasles Cubic" float b=log(cabs(y-@a*x^3-@a2*x^2*y-@a3*x*y^2-@a4*y^3-p2)) elseif @trap=="Circle" float b=log(cabs(x^2+y^2-@a^2-p2)) elseif @trap=="Circular Cubic" float b=log(cabs(x*(x^2+y^2)+@a*x^2+@a2*y^2+2*@a3*x+2*@a4*y+@a5-p2)) elseif @trap=="Cissoid of Diocles" float b=log(cabs(y^2-x^3/(2*@a-x)-p2)) elseif @trap=="Cissoid of Diocles 2" float b=log(cabs(y^2*(2*@a-x)-x^8-p2)) elseif @trap=="Cissoid of Zahradnik" float b=log(cabs(@a3*x^2+2*@a4*x*y+(@a5+1)*y^2-2*@a*x-2*@a2*y-p2)) elseif @trap=="Clairaut Curve" float b=log(cabs((x^2+y^2)^((@a2+1)/2)-@a*y^@a2-p2)) elseif @trap=="Clinoid" float b=log(cabs(y-@a2*e^(x/@a)-@a3*e^(-x/@a)-p2)) elseif @trap=="Cochleoid" float b=log(cabs((x^2+y^2)*atan(y/x)-@a*y-p2)) elseif @trap=="Conchoid of a Circle" float b=log(cabs((x^2+y^2+@a3^2-@a2^2)^2*(y^2+(x+@a)^2)-4*@a3^2*(x*(x+@a)+y^2)^2-p2)) elseif @trap=="Conchoid of Nicomedes" float b=log(cabs((x-@a2)^2*(x^2+y^2)-@a^2*x^2-p2)) elseif @trap=="Conchoid of de Sluze" float b=log(cabs(@a*(x+@a)*(x^2+y^2)-@a2^2*x^2-p2)) elseif @trap=="Conic Sections" float b=log(cabs(2*@a^2*x+(1-@a^2)*x^2+y^2-@a^2-p2)) elseif @trap=="Cornoid" float b=log(cabs((x^2+y^2)^3+@a^2*(3*x^4-6*x^2*y^2-5*y^4)+8*@a^4*y^2-4*@a^6-p2)) elseif @trap=="Cornoid 2" float b=log(cabs(x^6+y^6+3*x^4*y^2+3*x^2*y^4+3*x^4-5*y^4+8*y^2-4-p2)) elseif @trap=="Coscoid" float b=log(cabs(y-@a*cos(x)/x-p2)) elseif @trap=="Cosecantoid" float b=log(cabs(y-@a/sin(x/@a2)-p2)) elseif @trap=="Cosinusoid" float b=log(cabs(y-@a*cos(x/@a2)-p2)) elseif @trap=="Cotangentoid" float b=log(cabs(y-@a*cotan(x/@a2)-p2)) elseif @trap=="Cross Curve" float b=log(cabs(@a^2*y^2+@a2^2*x^2-x^2*y^2-p2)) elseif @trap=="Cubic Joint" float b=log(cabs(y^2*x-@a*y^2-@a2*x^2-p2)) elseif @trap=="Cubic of Apollonius" float b=log(cabs((x-2*@a)*(x^2+y^2)+@a2^2*(cos(2*@a3*x)+sin(2*@a3*y))-p2)) elseif @trap=="Curve of Cramer" float b=log(cabs(x*(x^2+y^2)+(@a+1+@a2)*x^2-(@a+1-@a2)*y^2-p2)) elseif @trap=="Curve of Jefabek" float b=log(cabs((@a2+1)^2*(x^2+y^2-@a*x)^2-@a^2*(x^2+y^2)*(x-@a)^2-p2)) elseif @trap=="Curve of Loriga" float b=log(cabs(3*x^2-y^2-@a^2-p2)) elseif @trap=="Curve of Rosillo" float b=log(cabs(y^2*(@a3-x)^2-(@a2-x)^2*(@a^2-x^2)-p2)) elseif @trap=="Dancescu Curve" float b=log(cabs((y+x^2-@a)^2+x^2-1-p2)) elseif @trap=="Deltoid" float b=log(cabs((x^2+y^2+12*@a*x+9*@a^2)-4*@a*(2*x+3*@a)^3-p2)) elseif @trap=="Deltoid 2" float b=log(cabs((x^2+y^2)^2+18*@a^2*(x^2+y^2)-27*@a^4-8*@a*x*(x^2-3*y^2)-p2)) elseif @trap=="Devil's Curve" float b=log(cabs(y^4-x^4+@a*y^2+@a2*x^2-p2)) elseif @trap=="Devil's Curve 2" float b=log(cabs(y^4-x^4-@a^2*y^2+@a2^2*x^2-p2)) elseif @trap=="Dipole Curve" float b=log(cabs((x^2+y^2)^3-@a^4*x^2-p2)) elseif @trap=="Double Egg" float b=log(cabs((x^2+y^2)^3-@a^2*x^4-p2)) elseif @trap=="Double Egg 2" float b=log(cabs(x^4+2*x^2*y^2+4*y^4-x^3-6*x^2-x*y^2-p2)) elseif @trap=="Double Folium" float b=log(cabs((x^2+y^2)^2-4*@a*x*y^2-p2)) elseif @trap=="Double U" float b=log(cabs(y^2*(@a^2-x^2)-@a^4-p2)) elseif @trap=="Dumbbell Curve" float b=log(cabs(@a2^4*y^2-x^4*(@a^2-x^2)-p2)) elseif @trap=="Duplicatrix Cubic" float b=log(cabs(@a*y^2-x^2*(x-@a)-p2)) elseif @trap=="Durer's Conchoid" float b=log(cabs((x^2+x*y+@a*x-@a2^2)^2-(@a2^2-x^2)*(x-y+@a)^2-p2)) elseif @trap=="Durer's Conchoid 2" float b=log(cabs(2*y^2*(x^2+y^2)-2*@a2*y^2*(x+y)+(@a2^2-3*@a^2)*y^2-@a^2*x^2+2*@a^2*@a2*(x+y)+@a^2*(@a^2-@a2^2)-p2)) elseif @trap=="Dwulistne" float b=log(cabs((x^2+y^2)^2-(@a*x+@a2*y)*x^2-p2)) elseif @trap=="Egg of Columbus" float b=log(cabs(y^4+10*y^2*x^2+5*x^4-y-p2)) elseif @trap=="Egg of Granville" float b=log(cabs(x^2*y^2-@a^2*(x-(@a2+1-@a3))*(@a2+1+@a3-x)-p2)) elseif @trap=="Egg of Granville 2" float b=log(cabs(x^2*y^2-(x-(@a+0.5))*(1-x)-p2)) elseif @trap=="Egg of Kepler" float b=log(cabs((x^2+y^2)^2-@a*x^3-p2)) elseif @trap=="Eight Curve" float b=log(cabs(x^4-@a^2*(x^2-y^2)-p2)) elseif @trap=="Elkies Trinomial Curve" float b=log(cabs(y^2-x*(81*x^5+396*x^4+738*x^3+660*x^2+269*x+48)-p2)) elseif @trap=="Ellipse" float b=log(cabs(x^2/@a^2+y^2/@a2^2-1-p2)) elseif @trap=="Fish Curve" float b=log(cabs((2*x^2+y^2)^2+2*sqrt(2)*@a*x*(2*x^2-3*y^2)+2*@a^2*(y^2-x^2)-p2)) elseif @trap=="Focal Conic Conchoid" float b=log(cabs((x^2+y^2-@a*@a2*x)^2-(x^2+y^2)*(@a2*x-(@a+1))^2-p2)) elseif @trap=="Folium" float b=log(cabs((x^2+y^2)*(y^2+x*(x+@a2))-4*@a*x*y^2-p2)) elseif @trap=="Folium of Descartes" float b=log(cabs(x^3+y^3-3*@a*x*y-p2)) elseif @trap=="Folium of Durer" float b=log(cabs((x^2+y^2)*(2*(x^2+y^2)-@a^2)^2-@a^4*x^2-p2)) elseif @trap=="Frequency Curve" float b=log(cabs(y-sqrt(2*pi)*exp(-x^2/2)-p2)) elseif @trap=="Heart Curve" float b=log(cabs((x^3+y^2-1)^3-x^2*y^3-p2)) elseif @trap=="Heart of Eugene Beutel" float b=log(cabs((x^2+y^2-1)^3-x^2*y^3-p2)) elseif @trap=="Heart of Raphael Laporte" float b=log(cabs(x^8-x^6+27*x^4-27*x^2+12*y*x^6-12*y*x^4+42*y^2*x^4+42*y^2*x^2+2*y^3*x^4+26*y^3*x^2+8*y^3+12*y^4*x^2+12*y^4+6*y^5+y^6-p2)) elseif @trap=="Hippopede" float b=log(cabs((x^2+y^2)^2-@a*x^2-@a2*y^2-p2)) elseif @trap=="Hippopede of Proclus" float b=log(cabs((x^2+y^2)^2+4*@a2*(@a2-@a)*(x^2+y^2)-4*@a2^2*x^2-p2)) elseif @trap=="Hoerl Curve" float b=log(cabs(y-x^@a*e^x-p2)) elseif @trap=="Humbert's Cubic" float b=log(cabs(x^3-3*x*y^2-@a^3-p2)) elseif @trap=="Hyperbola" float b=log(cabs(x^2/@a^2-y^2/@a2^2-1-p2)) elseif @trap=="Hyperbola 2" float b=log(cabs(x^2/@a^2-y^2/@a2^2+1-p2)) elseif @trap=="Hyperbolic Cosecantoid" float b=log(cabs(y-@a/sinh(x/@a2)-p2)) elseif @trap=="Hyperbolic Cosinusoid" float b=log(cabs(y-@a*cosh(x/@a2)-p2)) elseif @trap=="Hyperbolic Cotangentoid" float b=log(cabs(y-@a*cotanh(x/@a2)-p2)) elseif @trap=="Hyperbolic Secantoid" float b=log(cabs(y-@a/cosh(x/@a2)-p2)) elseif @trap=="Hyperbolic Sinusoid" float b=log(cabs(y-@a*sinh(x/@a2)-p2)) elseif @trap=="Hyperbolic Tangentoid" float b=log(cabs(y-tanh(@a*x)-p2)) elseif @trap=="Hyperelliptic Curve" float b=log(cabs(y^2-x*(x+1)*(x-3)*(x+2)*(x-2)-p2)) elseif @trap=="Illumination Curve" float b=log(cabs(y^2-recip((x^2+1)^3)-p2)) elseif @trap=="Inverse Nephroid" float b=log(cabs((@a^2-4*(x^2+y^2))^3-108*@a^2*x^2*(x^2+y^2)-p2)) elseif @trap=="Isoptic Curve" float b=log(cabs(tan(@a)^2*(x+pi/2)^2-y^2+2*@a2*x-p2)) elseif @trap=="Kampyle of Eudoxus" float b=log(cabs(@a^2*x^4-@a2^4*(x^2+y^2)-p2)) elseif @trap=="Kappa Curve" float b=log(cabs(y^2*(x^2+y^2)-@a^2*x^2-p2)) elseif @trap=="Kepler's Folium" float b=log(cabs(((x-@a2)^2+y^2)*(x*(x-@a2)+y^2)-4*@a*(x-@a2)*y^2-p2)) elseif @trap=="Kiepert Curve" float b=log(cabs((x^2+y^2)^3-@a^3*x*(x^2-3*y^2)-p2)) elseif @trap=="Kieroid" float b=log(cabs(y^2*(x-@a)^2+x^2*(x-@a2)^2-@a3^2*x^2-p2)) elseif @trap=="Kiss Curve" float b=log(cabs(@a^4*y^2-(@a^2-x^2)^3-p2)) elseif @trap=="Klein Quartic" float b=log(cabs((x^2+y^2-@a2*@a^2)^2-@a3*@a*(y-@a+sqrt(3)*x)*(y-@a-sqrt(3)*x)*(2*y+@a)-p2)) elseif @trap=="Kulp Quartic" float b=log(cabs(x^2*y^2-@a^2*(@a^2-y^2)-p2)) elseif @trap=="Lemniscate of Bernoulli" float b=log(cabs((x^2+y^2)^2-@a^2*(x^2-y^2)-p2)) elseif @trap=="Lemniscate of Booth" float b=log(cabs((x^2+y^2)^2-(2*@a^2+@a2)*x^2+(2*@a^2-@a2)*y^2-p2)) elseif @trap=="Limacon of Pascal" float b=log(cabs((x^2+y^2-@a*y)^2-(x^2+y^2)-p2)) elseif @trap=="Limacon of Pascal 2" float b=log(cabs((x^2+y^2-@a*x)^2-@a2^2*(x^2+y^2)-p2)) elseif @trap=="Links Curve" float b=log(cabs((x^2+y^2-3*x)^2-4*x^2*(2-x)-p2)) elseif @trap=="Lissajous Curve" float b=log(cabs(2*(2*x^2-@a^2)^2-@a*(2*y-@a)^2*(y+@a)-p2)) elseif @trap=="Lissajous Curve 2" float b=log(cabs(x^2*(4*x^2-3*@a^2)+4*@a^2*y^2*(y^2-@a^2)-p2)) elseif @trap=="Lissajous Quadratic" float b=log(cabs(@a^4*y^4-4*@a^3*@a2*x*y^3+2*@a^2*@a2*y^3+6*@a^2*@a2^2*x^2*y^2 \ -4*@a*@a2^2*x*y^2-2*@a^3*x*y^2-2*@a^2*@a2^2*y^2+@a2^2*y^2+@a^2*y^2 \ -4*@a*@a2^3*x^3*y+2*@a2^3*x^2*y+4*@a^2*@a2*x^2*y+4*@a*@a2^3*x*y \ -2*@a2^3*y-4*@a^2*@a2*y+@a2^4*x^4-2*@a*@a2^2*x^3-2*@a2^4*x^2 \ +@a2^2*x^2+@a^2*x^2+2*@a*@a2^2*x-@a^2-@a2^2+@a2^4-p2)) elseif @trap=="Logarithmic Lemniscate" float b=log(cabs(y^2-x^2*log(@a^2/x^2)-p2)) elseif @trap=="Logarithmic Sinusoid" float b=log(cabs(y-log(sqrt(1-x^2))-p2)) elseif @trap=="Logistic Growth Curve" float b=log(cabs(y-recip(1+@a*e^x)-p2)) elseif @trap=="Maltese Cross Curve" float b=log(cabs(x*y*(x^2-y^2)-x^2-y^2-p2)) elseif @trap =="Neile's Semi-Cubical Parabola" float b=log(cabs(y^3-@a*x^2-p2)) elseif @trap =="Neile's Semi-Cubical Parabola 2" float b=log(cabs((x-0.5)^3-3*y^2-p2)) elseif @trap=="Nephroid" float b=log(cabs((x^2+y^2-4*@a^2)^3-108*@a^4*x^2-p2)) elseif @trap=="Nephroid of Freeth" float b=log(cabs((x^2+y^2)*(x*2+y^2-@a^2)^2-4*@a^2*(x^2+y^2-@a*x)^2-p2)) elseif @trap=="Newton's Diverging Parabolas" float b=log(cabs(@a*y^2-x*(x^2-2*@a2*x+@a3)-p2)) elseif @trap=="Newton's Diverging Parabolas 2" float b=log(cabs(y^2-x*(x^2+2*@a*x+@a2)-p2)) elseif @trap=="Nodal Curve" float b=log(cabs(x^2*y^2*(x^2+y^2)-(x^2-y^2)^2-p2)) elseif @trap=="Oblique Bifolium" float b=log(cabs((x^2+y^2)^2-x^2*(@a*x+@a2*y)-p2)) elseif @trap=="Oblique Cappa" float b=log(cabs((x^2+y^2)*y^2-@a^2*(x*sin(@a2)+y*cos(@a2))^2-p2)) elseif @trap=="Oblique Cissoid" float b=log(cabs((x^2+y^2)*(x*cos(@a2)+y*sin(@a2))-2*@a*y^2-p2)) elseif @trap=="Oblique Pancappa" float b=log(cabs((y-@a)^2*(x^2+y^2)-(@a2*x+@a3*y)^2-p2)) elseif @trap=="Oblique Strophoid" float b=log(cabs(y*(x^2+y^2)-@a*(x^2-y^2)-2*@a2*x*y-p2)) elseif @trap=="Ophiuride" float b=log(cabs(x*(x^2+y^2)-@a2*x*y-@a*y^2-p2)) elseif @trap=="Parabola" float b=log(cabs(4*@a*(x-@a2)-(y-@a3)^2-p2)) elseif @trap=="Parabola 2" float b=log(cabs(x-@a*(y-@a2)^2-@a3-p2)) elseif @trap=="Parabola 3" float b=log(cabs(y-@a*x^2-@a2*x-@a3-p2)) elseif @trap=="Parabolic Trifolium" float b=log(cabs(x^2*(x^2+y^2)-(@a+5)*y*(x^2-y^2)-p2)) elseif @trap=="Pear-Shaped Quartic" float b=log(cabs(@a2^2*y^2-x^3*(@a-x)-p2)) elseif @trap=="Pearls of Sluze" float b=log(cabs(y^(@a2+1)-@a3*(@a-x)^@a4*x^@a5-p2)) elseif @trap=="Pursuit Curve" float b=log(cabs(y-@a*x^2+log(x)-p2)) elseif @trap=="Pursuit Curve 2" float b=log(cabs(y-@a*x+log(x)-p2)) elseif @trap=="Quadratix of Hippias" float b=log(cabs(x-y*cotan(y/@a)-p2)) elseif @trap=="Quadrifolium" float b=log(cabs((x^2+y^2)^3-4*@a^2*x^2*y^2-p2)) elseif @trap=="Regular Trifolium" float b=log(cabs((x^2+y^2)^2-@a*x*(x^2-3*y^2)-p2)) elseif @trap=="Reuleaux Curve" float b=log(cabs(x^2+y^2-sqrt(3)*x*y-(2*@a-sqrt(3))*x-(2*@a-sqrt(3))*y+1-sqrt(3)-p2)) elseif @trap=="Right Strophoid" float b=log(cabs(y^2-x^2*(@a-x)/(@a+x)-p2)) elseif @trap=="Rose Curve" float b=log(cabs(x-@a*sin(@a2*y)-p2)) elseif @trap=="Rose Curve 2" float b=log(cabs(x-@a*cos(@a2*y)-p2)) elseif @trap=="Satchel" float b=log(cabs((x^2-@a2*y)^2-@a^2*(x^2-y^2)-p2)) elseif @trap=="Scarab" float b=log(cabs((x^2+y^2)*(x^2+y^2+@a*x)^2-@a2^2*(x^2-y^2)^2-p2)) elseif @trap=="Scyphoid" float b=log(cabs(x^4-y^4-4*@a*x*y^2-p2)) elseif @trap=="Secantoid" float b=log(cabs(y-@a/cos(x/@a2)-p2)) elseif @trap=="Seccoid" float b=log(cabs(y-@a2/(x*cos(x))-p2)) elseif @trap=="Semi-Trident" float b=log(cabs(x*y^2-@a*x-p2)) elseif @trap=="Serpentine Curve" float b=log(cabs(y-@a*@a2*x/(x^2+@a^2)-p2)) elseif @trap=="Sincoid" float b=log(cabs(y-@a*sin(x)/x-p2)) elseif @trap=="Sinus Chain" float b=log(cabs(y^2-abs(sin(x)+0.1*sin(2*x))-p2)) elseif @trap=="Sinusoid" float b=log(cabs(y-@a*sin(x/@a2)-p2)) elseif @trap=="Spiric Curve" float b=log(cabs((x^2+y^2)^2+(@a-2)*x^2+@a2*y^2+2*@a3*x+@a4-p2)) elseif @trap=="Spiric of Perseus" float b=log(cabs((x^2+y^2)^2-2*@a*x^2-2*@a2*y^2+@a3-p2)) elseif @trap=="Spiric Sections" float b=log(cabs((@a3^2-@a^2+@a2^2+x^2+y^2)^2-4*@a3^2*(x^2+@a2^2)-p2)) elseif @trap=="Superellipse" float b=log(cabs((x/@a)^@a3+(y/@a2)^@a3-1-p2)) elseif @trap=="Superellipse 2" float b=log(cabs(cabs((x-@a)/@a3)^@a4+cabs((y-@a2)/@a3)^@a4-1-p2)) elseif @trap=="Swastika Curve" float b=log(cabs(2*x*y-x^4+y^4-p2)) elseif @trap=="Syntractrix" float b=log(cabs(x+sqrt((@a2+1)^2-y^2)-@a*log(((@a2+1)+sqrt((@a2+1)^2-y^2))/y)-p2)) elseif @trap=="Szego Curve" float b=log(cabs(x^2+y^2-e^(2*x-2)-p2)) elseif @trap=="Tancoid" float b=log(cabs(y-@a*tan(x)/x-p2)) elseif @trap=="Tangentoid" float b=log(cabs(y-@a*tan(x/@a2)-p2)) elseif @trap=="Tetracuspid" float b=log(cabs(@a^@a2*(cabs(x)^@a2+cabs(y)^@a2)-(x^2+y^2)^@a2-p2)) elseif @trap=="Torpedo" float b=log(cabs((x^2+y^2)^2-@a*x*(x^2-y^2)-p2)) elseif @trap=="Tractrix" float b=log(cabs(x-log(((@a+1)-sqrt((@a+1)^2-y^2))/y)-sqrt((@a+1)^2-y^2)-p2)) elseif @trap=="Trident" float b=log(cabs(y-x^2-@a/x-p2)) elseif @trap=="Trident 2" float b=log(cabs(x*y+@a*x^3+@a2*x^2+@a3*x-@a4-p2)) elseif @trap=="Trifolium" float b=log(cabs((x^2+y^2)^2-(x^2+y^2)*(@a*x+@a2*y)-@a3*x*(x^2-3*y^2)-p2)) elseif @trap=="Trifolium 2" float b=log(cabs((x^2+y^2)^2-(@a*x+@a2*y)*(x^2-y^2)-p2)) elseif @trap=="Trisectrix of Delange" float b=log(cabs((x^2+y^2-2*@a^2)^2-x^2*(x^2+y^2)-p2)) elseif @trap=="Trisectrix of Maclaurin" float b=log(cabs(y^2*(@a+x)-x^2*(3*@a-x)-p2)) elseif @trap=="Trisectrix of Maclaurin 2" float b=log(cabs(2*x^3+2*x*y^2-3*x^2+y^2-p2)) elseif @trap=="Trott Curve" float b=log(cabs(144*(x^4+y^4)-225*(x^2+y^2)+350*x^2*y^2+81-p2)) elseif @trap=="Tschirnhaus' Cubic" float b=log(cabs(3*@a*y^2-x*(x-@a)^2-p2)) elseif @trap=="Tschirnhaus' Cubic 2" float b=log(cabs(27*@a*y^2-(@a-x)*(x+8*@a)^2-p2)) elseif @trap=="Visiera" float b=log(cabs(x*(x^2+y^2)-@a*(x^2+2*y^2)-p2)) elseif @trap=="Viviani's Curve" float b=log(cabs(y^2-x^2*(@a^2-x^2)-p2)) elseif @trap=="Watt's Curve" float b=log(cabs((x^2+y^2)*(x^2+y^2-@a3^2)^2+4*@a^2*y^2*(x^2+y^2-@a2^2)-p2)) elseif @trap=="Witch of Agnesi" float b=log(cabs(y-8*@a^3/(x^2+4*@a^2)-p2)) elseif @trap=="OM1" float b=log(cabs((x^2+y^2)^3-@a*x*(x-@a)+y*(y+@a)-p2)) elseif @trap=="OM2" float b=log(cabs((x^2-y^2)*(x^2+y^2)^2-2*@a*x*y*(x-@a^2)-p2)) elseif @trap=="OM3" float b=log(cabs(@a*sin(x^2+y^2)+@a2*x*(x^2-y^2)-2*@a*x*y*(@a^2-@a2^2)-p2)) elseif @trap=="OM4" float b=log(cabs(recip(@a*(x^2-1))*@a2^2*x*tanh(@a*(y^2-1))-@a*@a2*(x*y+1)-p2)) elseif @trap=="OM5" float b=log(cabs(x+y^2+@a*x^3+@a2*y^4+@a^2*@a2^2*x^5*y^5-p2)) elseif @trap=="OM6" float b=log(cabs(sin(x)^3+sin(y)^3-@a-p2)) elseif @trap=="OM7" float b=log(cabs(x^(2/3)+(@a*y)^(2/3)+(@a^2*x*y)^(2/3)-@a^3-p2)) elseif @trap=="OM8" float b=log(cabs((x^2-@a^2)*(x-@a)+(y^2-@a^2)^2-p2)) elseif @trap=="OM9" float b=log(cabs((x^2-(@a-0.5)^2)*(x-(@a-0.5))^2+(y^2-(@a-0.5)^2)^3-p2)) elseif @trap=="OM10" float b=log(cabs((x^2-@a^2)*(x-@a)^3+(y^2-@a2^2)^2-p2)) elseif @trap=="OM11" float b=log(cabs(((@a*@a2-x)^2+(@a2-y)^2)/@a3^2-1-p2)) elseif @trap=="OM12" float b=log(cabs((x^2+y^2)^2-@a/(x^2-y^2)-p2)) elseif @trap=="OM13" float b=log(cabs((x^2+y^2)^4-@a*(x^2+y^2)^3+(x^2+y^2)^2-(x^2+y^2)+y-(1-@a2)-p2)) elseif @trap=="OM14" float b=log(cabs((2*@a)^@a2*y^2-(@a+x)*(@a-x)^(@a2+1)-p2)) elseif @trap=="OM15" float b=log(cabs((x^2+y^2)^5+@a*(x^2-y^2)^3-@a^2*y-p2)) elseif @trap=="OM16" float b=log(cabs(@a*y-@a2/(x*cos(x))+@a3/(x*cos(y))-p2)) elseif @trap=="OM17" float b=log(cabs((x^2+y^2)*(x^2-y^2)/(2*@a*x*y)+(@a-1)-p2)) elseif @trap=="OM18" float b=log(cabs(y^2+@a*x^3*tanh(x^2-y^2)-x^2*y*(x^2+y^2)-p2)) elseif @trap=="OM19" float b=log(cabs(((@a*@a2-x*y)^3+(@a2*@a3-(X^2+y^2)^2))-p2)) elseif @trap=="OM20" float b=log(cabs(y^2+x^2-((x+(@a3*(x-@a))/sqrt((x-@a)^2+(y-@a2)^2))-(y+(@a3*(y-@a2))/sqrt((x-@a)^2+(y-@a2)^2)))-p2)) elseif @trap=="OM21" float b=log(cabs(x^2-4*@a*y*(x^2+y^2)+y^3*@a^2*(x^2-y^2)^4-p2)) elseif @trap=="OM22" float b=log(cabs(y-x*(x^4-@a)*(x^2+y^2)^2-p2)) elseif @trap=="OM23" float b=log(cabs((x^3-x^2-(3*x+@a)*y^2)*(x^3-x^2+(3*x+@a)*y^2)-p2)) elseif @trap=="#z" float b=log(cabs(@a*fn2(z)-p2)) elseif @trap=="OM24" float b=log(cabs(@a*(x-cabs(z)^2)/(y-cabs(z))-p2)) elseif @trap=="OM25" float b=log(cabs(@a*(2*@a2*x*y^2-cabs(z)^2)/(2*@a3*y-cabs(z))-p2)) elseif @trap=="OM26" float b=log(cabs(@a*x*sin(cabs(z))+cabs(z)-1/((2*@a2*x*cos(cabs(z)))^2+2*@a3*y^2)-p2)) elseif @trap=="OM27" float b=log(cabs(@a*cabs(z)+@a2*cabs(z)*x-y^2-p2)) elseif @trap=="OM28" float b=log(cabs(x*cabs(z)+@a*y*cabs(z)^2+2*@a*x*y+y^2-1-p2)) elseif @trap=="OM29" float b=log(cabs(@a*(cabs(z)-1)*(1-y)*(1-x)-p2)) elseif @trap=="OM30" float b=log(cabs(@a-@a2*x^2/y^2-@a3*cabs(z)^2-p2)) elseif @trap=="OM31" float b=log(cabs(@a^2*y^2*(2*x+cabs(z))-@a2^2*x^2*(2*y+cabs(z))-p2)) elseif @trap=="OM32" float b=log(cabs(@a^4*y^2-@a2^4*x^2-@a^2*@a2^2*(x-y)*(x+y+2*cabs(z))-p2)) elseif @trap=="OM33" float b=log(cabs(@a^4*y^2-@a2^4*x^2+@a^2*@a2^2*cos(z)*(x-y)-p2)) elseif @trap=="OM34" float b=log(cabs((@a^2*y+@a2^2*x)^2+4*@a^2*@a2^2*sqr(z)*(x+y+sqr(z))-p2)) elseif @trap=="OM35" float b=log(cabs(@a^4*y^2+@a2^4*x^2-2*@a^2*@a2^2*x*(2*x+y+2*cabs(z))-p2)) elseif @trap=="OM36" float b=log(cabs(@a^4*y^2+@a2^4*x^2-2*@a^2*@a2^2*y*(x+2*y+2*cabs(z))-p2)) elseif @trap=="OM37" float b=log(cabs(2*x*y*(@a3*x-@a4*y)-cabs(z)*(@a^2*y^2-@a2^2*x^2)-p2)) elseif @trap=="OM38" float b=log(cabs(2*x*y*(@a3*x-@a4*y)-sqr(z)*(@a^2*y^2-@a2^2*x^2)-p2)) elseif @trap=="OM39" float b=log(cabs(x-5*@a*cos(@a2/4)/2+@a3*cos(5*@a2/4)+y-5*@a*sin(@a2/4)/2+@a3*sin(5*@a2/4)-p2)) elseif @trap=="OM40" float b=log(cabs(x-@a*cos(6*@a)+y-@a*sin(6*@a)+cabs(z)-@a-p2)) elseif @trap=="OM41" float b=log(cabs(x-(@a+0.25)*cos(0.25/@a)+cos(1+0.25/@a)+y-(@a+0.25)*sin(0.25/@a)+sin(1+0.25/@a)-p2)) elseif @trap=="OM42" float b=log(cabs(x-(@a+@a2)*cos(@a2*@a3/@a)+sin((1+cabs(z)/@a)*@a3)+y-(@a+@a2)*sin(@a2*@a3/@a)+sin((1+cabs(z)/@a)*@a3)-p2)) elseif @trap=="OM43" float b=log(cabs((sqr(z)-x)^2*(sqr(z)-y)+4*@a*x^2*y^2-p2)) elseif @trap=="OM44" float b=log(cabs((cabs(z)^2-@a2^2)^2+(y^2-@a^2)^2+(x^2-@a^2)^2-@a2^4-p2)) elseif @trap=="OM45" float b=log(cabs(2*@a2*(x^2-@a2^2)^2+(y^2-@a^2)^2-@a^4-p2)) elseif @trap=="OM46" float b=log(cabs(@a*x+@a2*y-@a3*cabs(z)+@a4-p2)) elseif @trap=="OM47" float b=log(cabs(@a*sin(z)+@a2*x^2+@a3*y^2-p2)) elseif @trap=="Misc 1" float b=log(cabs(y-0.5*@a*x*(x-@a2)*(x-3*@a3)-p2)) elseif @trap=="Misc 2" float b=log(cabs(y+(1/@a)*x-(1+@a^2)-p2)) elseif @trap=="Misc 3" float b=log(cabs(x^3+y^3-3*x*y-p2)) elseif @trap=="Misc 4" float b=log(cabs(y-sqrt(-x^2-@a^2+@a*sqrt(2*x^2+@a*x+@a^2))-p2)) elseif @trap=="Misc 5" float b=log(cabs(x^2/@a^2+y*@a3^2/@a2^2*(1+(2*@a4*x+@a4^2)/@a^2)-1-p2)) elseif @trap=="Misc 6" float b=log(cabs(@a6*e^(@a2^2*x^2)+e^(@a3^2*y^2)-@a5*e^(@a^2)-@a7*e^(@a4*x)-p2)) elseif @trap=="Misc 7" float b=log(cabs((x^2+y^2)^2-@a*x^3-@a2*x*y^2-p2)) elseif @trap=="Misc 8" float b=log(cabs(8*y^4/@a2^4+(1-x/@a)*(1-x^2/@a^2)^2-(8*y^2/@a2^2)*(1-x^2/@a^2)-p2)) elseif @trap=="Misc 9" float b=log(cabs((@a2-2)^2*y^4+8*@a^2*@a2*y^2-16*@a^2*(x+@a*@a2)*x-p2)) elseif @trap=="Misc 10" float b=log(cabs((x/@a)^2+(y/(@a2*x+@a3))^2-1-p2)) elseif @trap=="Misc 11" float b=log(cabs((@a*x^2+@a2*x+@a3)^2/(@a4*x+@a5)^2+(y/@a6)^2-1-p2)) elseif @trap=="Misc 12" float b=log(cabs((x/@a)^2+(@a2*y/(1+(x+@a)/@a3))^2-1-p2)) elseif @trap=="Misc 13" float b=log(cabs(0.3*@a*x^4-x^2*y+y^3-p2)) elseif @trap=="Misc 14" float b=log(cabs(y^2-x^4+x^6-p2)) elseif @trap=="Misc 15" float b=log(cabs((cos(@a)-x)*sqrt(2)+(y/sin(@a))^2-1-p2)) elseif @trap=="Misc 16" float b=log(cabs(y^2+x^4-x^2-p2)) elseif @trap=="Misc 17" float b=log(cabs(y^2+x^4-2*@a*x^3-p2)) else float b=log(cabs(cabs(x^2-5*@a/4)+cabs(y^2-5*@a/4)-3-p2)) endif if b=p2 && d<=p3 && a==0 a=b c=(d-p2)*(p4/(p3-p2)) endif final: if a>0 #index=c else #solid=true endif default: title="Suvercuys" param trap caption="Trapshape" default=0 enum="Alain Curve""Ampersand Curve""Arcs of Samothrace""Astroid""Atriphthaloid""Bean Curve""Bean Curve 2"\ "Beetle""Biaxial Eight Reverse""Bicorn""Bicuspid""Biquartic""Blade's Cubic"\ "Bolza""Bow Curve""Bullet-Nose Curve""Butterfly Curve""Butterfly Knot"\ "Cardioid""Cartesian Oval""Cassinian Ovals""Catenary""Cayley's Sextic""Cayley's Sextic 2""Ceva's Trisectrix"\ "Chasles Cubic""Circle""Circular Cubic""Cissoid of Diocles""Cissoid of Diocles 2""Cissoid of Zahradnik"\ "Clairaut Curve""Clinoid""Cochleoid""Conchoid of a Circle""Conchoid of Nicomedes""Conchoid of de Sluze"\ "Conic Sections""Cornoid""Cornoid 2""Coscoid""Cosecantoid""Cosinusoid""Cotangentoid""Cross Curve""Cubic Joint""Cubic of Apollonius"\ "Curve of Cramer""Curve of Jefabek""Curve of Loriga""Curve of Rosillo""Deltoid""Deltoid 2"\ "Devil's Curve""Devil's Curve 2""Dipole Curve""Double Egg""Double Egg 2""Double Folium"\ "Double U""Dumbbell Curve""Duplicatrix Cubic""Durer's Conchoid""Durer's Conchoid 2""Dwulistne""Egg of Columbus"\ "Egg of Granville""Egg of Granville 2""Egg of Kepler""Eight Curve""Elkies Trinomial Curve""Ellipse"\ "Fish Curve""Focal Conic Conchoid""Folium""Folium of Descartes""Folium of Durer""Frequency Curve"\ "Heart Curve""Heart of Eugene Beutel""Heart of Raphael Laporte""Hippopede""Hippopede of Proclus"\ "Hoerl Curve""Humbert's Cubic""Hyperbola""Hyperbola 2""Hyperbolic Cosecantoid""Hyperbolic Cosinusoid"\ "Hyperbolic Cotangentoid""Hyperbolic Secantoid""Hyperbolic Sinusoid""Hyperbolic Tangentoid"\ "Hyperelliptic Curve""Illumination Curve""Inverse Nephroid""Isoptic Curve""Kampyle of Eudoxus"\ "Kappa Curve""Kepler's Folium""Kiepert Curve""Kieroid""Kiss Curve""Klein Quartic""Kulp Quartic"\ "Lemniscate of Bernoulli""Lemniscate of Booth""Limacon of Pascal""Limacon of Pascal 2"\ "Links Curve""Lissajous Curve""Lissajous Curve 2""Lissajous Quadratic""Logarithmic Lemniscate"\ "Logarithmic Sinusoid""Logistic Growth Curve""Maltese Cross Curve""Neile's Semi-Cubical Parabola""Neile's Semi-Cubical Parabola 2""Nephroid"\ "Nephroid of Freeth""Newton's Diverging Parabolas""Newton's Diverging Parabolas 2""Nodal Curve""Oblique Bifolium""Oblique Cappa"\ "Oblique Cissoid""Oblique Pancappa""Oblique Strophoid""Ophiuride""Parabola""Parabola 2""Parabola 3"\ "Parabolic Trifolium""Pear-Shaped Quartic""Pearls of Sluze""Pursuit Curve""Pursuit Curve 2"\ "Quadratix of Hippias""Quadrifolium""Regular Trifolium""Right Strophoid""Rose Curve""Rose Curve 2""Satchel"\ "Scarab""Scyphoid""Secantoid""Seccoid""Semi-Trident""Serpentine Curve""Sincoid""Sinus Chain""Sinusoid" \ "Spiric Curve""Spiric of Perseus""Spiric Sections""Superellipse"\ "Superellipse 2""Swastika Curve""Syntractrix""Szego Curve""Tancoid""Tangentoid""Tetracuspid""Torpedo""Tractrix"\ "Trident""Trident 2""Trifolium""Trifolium 2""Trisectrix of Delange""Trisectrix of Maclaurin""Trisectrix of Maclaurin 2"\ "Trott Curve""Tschirnhaus' Cubic""Tschirnhaus' Cubic 2""Visiera""Viviani's Curve""Watt's Curve""Witch of Agnesi""OM1"\ "OM2""OM3""OM4""OM5""OM6""OM7""OM8""OM9""OM10""OM11""OM12""OM13""OM14""OM15""OM16""OM17""OM18"\ "OM19""OM20""OM21""OM22""OM23""OM24""OM25""OM26""OM27""OM28""OM29""OM30""OM31""OM32""OM33""OM34""OM35"\ "OM36""OM37""OM38""OM39""OM40""OM41""OM42""OM43""OM44""OM45""OM46""OM47""OM48""OM49""OM50""OM51""OM52""OM53""OM54""OM55" \ "OM56""OM57""OM58" endparam param a caption="Trapshape Parameter" default=1.0 visible=@trap!="Frequency Curve" \ && @trap!="Arcs of Samothrace" && @trap!="Illumination Curve" \ && @trap!="Logarithmic Sinusoid" \ && @trap!="Elkies Trinomial Curve" && @trap!="Bolza" \ && @trap!="Hyperelliptic Curve" \ && @trap!="Maltese Cross Curve" && @trap!="Ampersand Curve" \ && @trap!="Heart of Eugene Beutel" && @trap!="Heart of Raphael Laporte" \ && @trap!="Butterfly Knot" && @trap!="Trott Curve" && @trap!="Swastika Curve" \ && @trap!="Biquartic" && @trap!="Butterfly Curve" && @trap!="Bean Curve" \ && @trap!="Bean Curve 2" && @trap!="Egg of Columbus" && @trap!="Sinus Chain" \ && @trap!="Szego Curve" && @trap!="Links Curve" && @trap!="Double Egg 2" \ && @trap!="Heart Curve" && @trap!="Cornoid 2" \ && @trap!="Nodal Curve" && @trap!="Trisectrix of Maclaurin 2" \ && @trap!="Neile's Semi-Cubical Parabola 2" endparam param a2 caption="Trapshape Parameter 2" default=1.0 visible=@trap=="Cartesian Oval" || @trap=="Conchoid of de Sluze" \ || @trap=="Ellipse" || @trap=="Folium" || @trap=="Kampyle of Eudoxus" \ || @trap=="Superellipse" || @trap=="Newton's Diverging Parabolas" \ || @trap=="Pearls of Sluze" || @trap=="Spiric Sections" \ || @trap=="Bullet-Nose Curve" \ || @trap=="Dwulistne" || @trap=="Cubic Joint" || @trap=="Syntractrix" \ || @trap=="Oblique Strophoid" || @trap=="Superellipse 2" || @trap=="Oblique Cissoid" \ || @trap=="Hippopede" || @trap=="Oblique Pancappa" || @trap=="Oblique Cappa" \ || @trap=="Oblique Bifolium" || @trap=="Lemniscate of Booth" \ || @trap=="Curve of Jefabek" || @trap=="Curve of Cramer" \ || @trap=="OM3" || @trap=="OM4" || @trap=="OM5" || @trap=="Hippopede of Proclus" \ || @trap=="OM11" || @trap=="Cissoid of Zahradnik" \ || @trap=="Rose Curve" || @trap=="Rose Curve 2" || @trap=="Cassinian Ovals" \ || @trap=="Conchoid of Nicomedes" || @trap=="Devil's Curve" || @trap=="Durer's Conchoid" \ || @trap=="Devil's Curve 2" || @trap=="Durer's Conchoid 2" || @trap=="Hyperbola" \ || @trap=="Parabola" || @trap=="Hyperbola 2" \ || @trap=="Pear-Shaped Quartic" || @trap=="Serpentine Curve" || @trap=="Sinusoid"\ || @trap=="Trident 2" || @trap=="Atriphthaloid" || @trap=="Clairaut Curve" || @trap=="Clinoid" \ || @trap=="Cross Curve" || @trap=="Cubic of Apollonius" || @trap=="Chasles Cubic" || @trap=="Circular Cubic" \ || @trap=="Dumbbell Curve" || @trap=="Kieroid"\ || @trap=="Egg of Granville" || @trap=="Curve of Rosillo" || @trap=="OM13" || @trap=="Ophiuride" \ || @trap=="Klein Quartic" || @trap=="Tangentoid" || @trap=="Beetle" || @trap=="Secantoid" || @trap=="Hyperbolic Secantoid" \ || @trap=="Spiric Curve" || @trap=="Spiric of Perseus" || @trap=="Tetracuspid" || @trap=="Trifolium" \ || @trap=="Trifolium 2" || @trap=="OM14" || @trap=="OM10" || @trap=="Isoptic Curve" || @trap=="Cotangentoid" \ || @trap=="Cosinusoid" || @trap=="Hyperbolic Cosinusoid" || @trap=="Cosecantoid" || @trap=="Hyperbolic Cosecantoid" \ || @trap=="Hyperbolic Sinusoid" || @trap=="Hyperbolic Cotangentoid" || @trap=="OM16" || @trap=="Alain Curve" \ || @trap=="OM19" || @trap=="OM20" || @trap=="Focal Conic Conchoid" || @trap=="Conchoid of a Circle" || @trap=="Satchel" \ || @trap=="Kepler's Folium" || @trap=="Parabola 2" || @trap=="Parabola 3" || @trap=="Scarab" || @trap=="Lissajous Quadratic" \ || @trap=="Watt's Curve" || @trap=="Limacon of Pascal 2" || @trap=="Newton's Diverging Parabolas 2" || @trap=="OM29" \ || @trap=="OM30" || @trap=="OM31" || @trap=="OM32" || @trap=="OM37" || @trap=="OM38" || @trap=="OM39" || @trap=="OM40" \ || @trap=="OM41" || @trap=="OM42" || @trap=="OM43" || @trap=="OM44" || @trap=="OM45" || @trap=="OM46" || @trap=="OM47" \ || @trap=="OM48" || @trap=="OM50" || @trap=="OM51" || @trap=="OM52" || @trap=="OM53" || @trap=="OM54" || @trap=="OM56" endparam param a3 caption="Trapshape Parameter 3" default=1.0 visible=@trap=="Cartesian Oval" || @trap=="Superellipse" || @trap=="Newton's Diverging Parabolas" \ || @trap=="Pearls of Sluze" || @trap=="Spiric Sections" || @trap=="Superellipse 2" \ || @trap=="Oblique Pancappa" || @trap=="OM11" || @trap=="Cissoid of Zahradnik" \ || @trap=="Parabola" \ || @trap=="Trident 2" || @trap=="Clinoid" || @trap=="Cubic of Apollonius" || @trap=="Chasles Cubic" \ || @trap=="Circular Cubic" || @trap=="Kieroid" || @trap=="Egg of Granville" || @trap=="Curve of Rosillo" \ || @trap=="Klein Quartic" || @trap=="Beetle" || @trap=="Spiric Curve" || @trap=="Spiric of Perseus" \ || @trap=="Trifolium" || @trap=="OM16" || @trap=="OM19" || @trap=="OM20" || @trap=="Conchoid of a Circle" \ || @trap=="Parabola 2" || @trap=="Parabola 3" || @trap=="Watt's Curve" || @trap=="OM31" || @trap=="OM32" \ || @trap=="OM37" || @trap=="OM38" || @trap=="OM42" || @trap=="OM43" || @trap=="OM44" || @trap=="OM56" endparam param a4 caption="Trapshape Parameter 4" default=1.0 visible=@trap=="Pearls of Sluze" || @trap=="Superellipse 2" || @trap=="Cissoid of Zahradnik" \ || @trap=="Trident 2" || @trap=="Cartesian Oval" || @trap=="Chasles Cubic" \ || @trap=="Circular Cubic" || @trap=="Spiric Curve" endparam param a5 caption="Trapshape Parameter 5" default=1.0 visible=@trap=="Pearls of Sluze" || @trap=="Cissoid of Zahradnik" \ || @trap=="Circular Cubic" endparam heading endheading param Fs caption="Function 1" enum="sin""sinh""asin""asinh""cos""cosh""acos""acosh""tan""tanh""atan"\ "atanh""cotan""cotanh""sqr""sqrt""log""exp""abs""cabs""conj"\ "flip""ident""recip""versin""aversin""haversin""ahaversin""coversin""acoversin"\ "hacoversin""vercos""avercos""havercos""ahavercos""covercos"\ "acovercos""hacovercos""acotan""acotanh" \ "sec""sech""asec""asech""cosec""cosech""acosec""acosech""exsec""aexsec"\ "excosec""aexcosec""crd""acrd""gd""agd""sinc""sinhc""cosc""coshc"\ "tanc""tanhc""cotanc""cotanhc""secc""sechc""cosecc""cosechc"\ "cube""cuberoot""colog""logit""expit""gauss""softplus"\ "primecount""sqr+""cube+""sin+""cos+""tan+""cotan+""sec+""cosec+""sin*""cos*""tan*""cotan*""sec*"\ "cosec*""loglog""sinsin""coscos""+pixel""-pixel"\ "*pixel""/pixel""ceil""floor""trunc""round" default=22 endparam func fn2 default=ident() endfunc func fn3 default=ident() endfunc heading endheading param p1 caption="Parameter 1" default=1.0 endparam param p2 caption="Parameter 2" default=0.1 endparam param p3 caption="Parameter 3" default=1.0 endparam param p4 caption="Parameter 4" default=2.0 endparam } BostaSwamu{ init: float a=0 float b=1e+318 loop: if @Fs=="sin" z=sin(abs(#z)) elseif @Fs=="sinh" z=sinh(abs(#z)) elseif @Fs=="asin" z=asin(abs(#z)) elseif @Fs=="asinh" z=asinh(abs(#z)) elseif @Fs=="cos" z=cos(abs(#z)) elseif @Fs=="cosh" z=cosh(abs(#z)) elseif @Fs=="acos" z=acos(abs(#z)) elseif @Fs=="acosh" z=acosh(abs(#z)) elseif @Fs=="tan" z=tan(abs(#z)) elseif @Fs=="tanh" z=tanh(abs(#z)) elseif @Fs=="atan" z=atan(abs(#z)) elseif @Fs=="atanh" z=atanh(abs(#z)) elseif @Fs=="cotan" z=cotan(abs(#z)) elseif @Fs=="cotanh" z=cotanh(abs(#z)) elseif @Fs=="sqr" z=sqr(abs(#z)) elseif @Fs=="sqrt" z=sqrt(abs(#z)) elseif @Fs=="log" z=log(abs(#z)) elseif @Fs=="exp" z=exp(abs(#z)) elseif @Fs=="abs" z=abs(abs(#z)) elseif @Fs=="cabs" z=cabs(abs(#z)) elseif @Fs=="conj" z=conj(abs(#z)) elseif @Fs=="flip" z=flip(abs(#z)) elseif @Fs=="ident" z=ident(abs(#z)) elseif @Fs=="recip" z=recip(abs(#z)) elseif @Fs=="versin" z=1-cos(abs(#z)) elseif @Fs=="aversin" z=acos(1-abs(#z)) elseif @Fs=="haversin" z=(1-cos(abs(#z)))/2 elseif @Fs=="ahaversin" z=2*asin(sqrt(abs(#z))) elseif @Fs=="coversin" z=1-sin(abs(#z)) elseif @Fs=="acoversin" z=asin(1-abs(#z)) elseif @Fs=="hacoversin" z=(1-sin(abs(#z)))/2 elseif @Fs=="vercos" z=1+cos(abs(#z)) elseif @Fs=="avercos" z=acos(1+abs(#z)) elseif @Fs=="havercos" z=(1+cos(abs(#z)))/2 elseif @Fs=="ahavercos" z=2*acos(sqrt(abs(#z))) elseif @Fs=="covercos" z=1+sin(abs(#z)) elseif @Fs=="acovercos" z=asin(1+abs(#z)) elseif @Fs=="hacovercos" z=(1+sin(abs(#z)))/2 elseif @Fs=="acotan" z=atan(1/(abs(#z))) elseif @Fs=="acotanh" z=atanh(1/(abs(#z))) elseif @Fs=="sec" z=1/cos(abs(#z)) elseif @Fs=="sech" z=1/cosh(abs(#z)) elseif @Fs=="asec" z=acos(1/abs(#z)) elseif @Fs=="asech" z=acosh(1/abs(#z)) elseif @Fs=="cosec" z=1/sin(abs(#z)) elseif @Fs=="cosech" z=1/sinh(abs(#z)) elseif @Fs=="acosec" z=asin(1/abs(#z)) elseif @Fs=="acosech" z=asinh(1/abs(#z)) elseif @Fs=="exsec" z=1/cos(abs(#z))-1 elseif @Fs=="aexsec" z= acos(1/(abs(#z)+1)) elseif @Fs=="excosec" z=1/sin(abs(#z))-1 elseif @Fs=="aexcosec" z=asin(1/(abs(#z)+1)) elseif @Fs=="crd" z=2*sin(abs(#z)/2) elseif @Fs=="acrd" z=2*asin(abs(#z)/2) elseif @Fs=="gd" z=asin(tanh(abs(#z))) elseif @Fs=="agd" z=asinh(tan(abs(#z))) elseif @Fs=="sinc" z=sin(abs(#z))/(abs(#z)) elseif @Fs=="sinhc" z=sinh(abs(#z))/(abs(#z)) elseif @Fs=="cosc" z=cos(abs(#z))/(abs(#z)) elseif @Fs=="coshc" z=cosh(abs(#z))/(abs(#z)) elseif @Fs=="tanc" z=tan(abs(#z))/(abs(#z)) elseif @Fs=="tanhc" z=tanh(abs(#z))/(abs(#z)) elseif @Fs=="cotanc" z=cotan(abs(#z))/(abs(#z)) elseif @Fs=="cotanhc" z=cotanh(abs(#z))/(abs(#z)) elseif @Fs=="secc" z=1/(abs(#z)*cos(abs(#z))) elseif @Fs=="sechc" z=1/(abs(#z)*cosh(abs(#z))) elseif @Fs=="cosecc" z= 1/(abs(#z)*sin(abs(#z))) elseif @Fs=="cosechc" z=1/(abs(#z)*sinh(abs(#z))) elseif @Fs=="cube" z=abs(#z)^3 elseif @Fs=="cuberoot" z=abs(#z)^(1/3) elseif @Fs=="colog" z=-log(abs(#z)) elseif @Fs=="logit" z= log(abs(#z)/(1-abs(#z))) elseif @Fs=="expit" z=1/(1+exp(-abs(#z))) elseif @Fs=="gauss" z=exp(-sqr(abs(#z))) elseif @Fs=="softplus" z=log(1+exp(abs(#z))) elseif @Fs=="primecount" z=abs(#z)/log(abs(#z)) elseif @Fs=="sqr+" z=sqr(abs(#z))+abs(#z) elseif @Fs=="cube+" z=abs(#z)^3+sqr(abs(#z))+abs(#z) elseif @Fs=="sin+" z=sin(abs(#z))+abs(#z) elseif @Fs=="cos+" z=cos(abs(#z))+abs(#z) elseif @Fs=="tan+" z=tan(abs(#z))+abs(#z) elseif @Fs=="cotan+" z=cotan(abs(#z))+abs(#z) elseif @Fs=="sec+" z=1/cos(abs(#z))+abs(#z) elseif @Fs=="cosec+" z=1/sin(abs(#z))+abs(#z) elseif @Fs=="sin*" z=sin(abs(#z))*abs(#z) elseif @Fs=="cos*" z=cos(abs(#z))*abs(#z) elseif @Fs=="tan*" z=tan(abs(#z))*abs(#z) elseif @Fs=="cotan*" z=cotan(abs(#z))*abs(#z) elseif @Fs=="sec*" z=abs(#z)/cos(abs(#z)) elseif @Fs=="cosec*" z=abs(#z)/sin(abs(#z)) elseif @Fs=="loglog" z=log(log(abs(#z))) elseif @Fs=="sinsin" z=sin(sin(abs(#z))) elseif @Fs=="coscos" z=cos(cos(abs(#z))) elseif @Fs=="+pixel" z=abs(#z)+pixel elseif @Fs=="-pixel" z=abs(#z)-pixel elseif @Fs=="*pixel" z=abs(#z)*pixel elseif @Fs=="/pixel" z=abs(#z)/pixel elseif @Fs=="ceil" z=ceil(abs(#z)) elseif @Fs=="floor" z=floor(abs(#z)) elseif @Fs=="trunc" z=trunc(abs(#z)) else z=round(abs(#z)) endif float x=real(fn2(z)) float y=imag(fn2(z)) if @trap==0 a=cabs(y-sin(x)+flip(p4-x)) elseif @trap==1 a=cabs(-4*p4*(x-x^3/3-y)+flip(x/(-4*p4))) elseif @trap==2 a=cabs(asin(atanh(z))*(p4-asin(x)+atanh(y))) elseif @trap==3 a=cabs(x^(2/3)+y^(2/3)+cosh(z)^(2/3)-p4^2) elseif @trap==4 a=cabs(-p4*tan(y-x)+sqr(y)*z+p5*x+y-x*acosh(z)+cotanh(x)*y-p6*z-x-y-z) elseif @trap==5 a=cabs(-2*p4*(y-x)+p5*y*z-1.5*p6*trunc(x+y)-p5*x*z-0.5*@p7*z+p5*x*y+2.5*p5*@p8+x*y*z-x-y-flip(z)-p5) elseif @trap==6 a=cabs(x-p4*tan(y+cos(1.25*p5*y))+flip(y+p4*tan(x+cos(1.25*p5*x)))) elseif @trap==7 a=cabs(recip(z)-x/abs(recip(y))+3*p4*sqrt(x*y-cabs(z))) elseif @trap==8 a=cabs(x^2/p4^2+y^2/p5^2+log(z)^2/p6^2-1) elseif @trap==9 a=cabs(p4*x-y*acosh(z)-p5*y+x*acosh(z)-p6*z+x*y/3-x-y-tan(z)) elseif @trap==10 a=cabs(p4*e^z*cos(x)-cos(y)) elseif @trap==11 a=cabs(p4*e^sqr(z)*cos(x)-cos(y)) elseif @trap==12 a=cabs(x-p4*(log(y^2+log(3*p5*y))+p6)+flip(y+p4*(cos(x^2+cos(3*p5*x))+p6))) elseif @trap==13 a=cabs(x+3*p4*real(sin(y+sin(2*p5*(y-sin(2*p6*y)))))+flip(y-3*p4*real(sin(x-sin(2*p5*(x-sin(2*p6*x))))))) elseif @trap==14 a=cabs((x^2+y^2)*cotanh(z)-2*p4*x*y) elseif @trap==15 a=cabs(x-p4*tan(y+cos(1.25*p5*y))+tan(y+p4*cos(x+1.25*p5*x))) elseif @trap==16 a=cabs(exp(z)-p5*sin(p6)+y-p4*cos(p6)+x) elseif @trap==17 a=cabs(x*y+y*cotanh(z)+cotanh(z)*x-p4*(x+y+cotanh(z))+1) elseif @trap==18 a=cabs(x^2+(z-p6)^2-p4^2+y^2+(z-p6)^2-p5^2) elseif @trap==19 a=cabs(x^2+(flip(z)-p6)^2-p4^2+y^2+(flip(z)-p6)^2-p5^2) elseif @trap==20 a=cabs(x^2+(asin(z)-p6)^2-p4^2+y^2+(asin(z)-p6)^2-p5^2) elseif @trap==21 a=cabs(x-p4*asinh(y+cos(6*p5*y))+flip(y+p4*acos(x+sin(6*p5*x)))) elseif @trap==22 a=cabs(p4*x-y*flip(z)+p5*y+x*flip(z)+p6*z+x*y/3-x-y-flip(z)) elseif @trap==23 a=cabs(exp(z)-p4*(x^2-y^2)/sqrt(x^2+y^2)) elseif @trap==24 a=cabs(x^2/p4^2+y^2/p5^2+acos(z)^2/p6^2-1) elseif @trap==25 a=cabs(p4*x-y*z-p5*y+x*z-p6*z+2*x*y-x-y-conj(z)) elseif @trap==26 a=cabs(p4*x-y*z-p5*y+x*z-p6*z+2*x*y-x-y-asin(z)) elseif @trap==27 a=cabs((1/p5-p4)*x+x*y-p2*y-x^2-2*x+p6*cabs(z)-y) elseif @trap==28 a=cabs(y-0.5*p4*x*(x-p5)*(x-3*p6)) elseif @trap==29 a=cabs(y-0.5*p4*recip(x)*(x-p5)*(x-3*p6)) elseif @trap==30 a=cabs(y-sqrt(-x^2-p4^2+p4*sqrt(2*x^2+p4*x+p4^2))) elseif @trap==31 a=cabs(y-sin(-x^2-p4^2+p4*acosh(2*x^2+p4*x+p4^2))) elseif @trap==32 a=cabs(y*x-x^p4+z*y^p5-x*y*z^p6) elseif @trap==33 a=cabs(y*x-x^p4+exp(z)*y^p5-x*y*sqr(z)^p6) elseif @trap==34 a=cabs(0.1*p4*(x^2+y^2)^2*(x-y)-z^2) elseif @trap==35 a=cabs(0.1*p4*(x^2+y^2)^2*(x-y)-log(z)^2) elseif @trap==36 a=cabs(x+p4*p5*sin(2*pi*y)+flip(y-(p4/p5)*sin(2*pi*(x+p4*p5*sin(2*pi*y))))) elseif @trap==37 a=cabs(1+y-3*p4*cabs(x)+flip(p5*x)) elseif @trap==38 a=cabs(3*x*((x-y)^2-2.5*p4)/((3*x-y)^2+p5)+flip(y*(y^2+2*x*y-3*x^2-2*p6)/((3*x-y)^2+@p7))) elseif @trap==39 a=cabs(x-p4*log(y+tan(2*p5*y))+flip(y+p4*log(x+tan(2*p5*x)))) elseif @trap==40 a=cabs(x^2+-y^2+p4*x+p5*y+flip(2*x*y+p6*x+@p7*y)-recip(z)^2) elseif @trap==41 a=cabs(x^(2/3)+y^(2/3)+exp(z)^(2/3)-p4^2) elseif @trap==42 a=cabs(cabs(z)*y+flip(p4*(1-x^2)*y-x)-recip(z)) elseif @trap==43 a=cabs(log(z)*y+flip(p4*(1-x^2)*y-x)-exp(z)) elseif @trap==44 a=cabs(sqr(z)*y+flip(p4*(1-x^2)*y-x)-sqrt(z)) elseif @trap==45 a=cabs((1-(p4*atanh(z)^2+1)*x+y*x^2)/(-p5)+flip((p4*x-tanh(z)^2*y*x^2)/p6)) elseif @trap==46 a=cabs((1-(p4*cotan(z)^2+1)*x+y*x^2)/(-p5)+flip((p4*x-tanh(z)^2*y*x^2)/p6)) elseif @trap==47 a=cabs((1-(p4*cotanh(z)^2+1)*x+y*x^2)/(-p5)+flip((p4*x-tanh(z)^2*y*x^2)/p6)) elseif @trap==48 a=cabs(tan(z)*(-p4-x-4*x*y)/(1+x^2)+flip(p5*x*(1-y)/(1+x^2))/(z-1)) elseif @trap==49 a=cabs(tanh(z)*(-p4-x-4*x*y)/(1+x^2)+flip(p5*x*(1-y)/(1+x^2))/(z-1)) elseif @trap==50 a=cabs(cosh(z)*(-p4-x-4*x*y)/(1+x^2)+flip(p5*x*(1-y)/(1+x^2))/(z-1)) elseif @trap==51 a=cabs(z*(-p4-x-4*x*y)/(1+x^2)+flip(p5*x*(1-y)/(1+x^2))/(sqrt(z)-1)) elseif @trap==52 a=cabs(tan(z)*(-p4-x-4*x*y)/(1+x^2)+flip(p5*x*(1-y)/(1+x^2))/(tan(z)-1)) elseif @trap==53 a=cabs(sin(z)*(-p4-x-4*x*y)/(1+x^2)+flip(p5*x*(1-y)/(1+x^2))/(sin(z)-1)) elseif @trap==54 a=cabs(cabs(z)*(-4*p4-x-4*x*y)/(1+x^2)+flip(4*p5*x*(1-y)/(1+x^2))/(cabs(z)-1)) elseif @trap==55 a=cabs(y+flip(-(-p4*x^3+2*p5*x+3*p6*y)/@p7)) elseif @trap==56 a=cabs(z*y+flip(-(-p4*z*x^3+2*p5*x+3*p6*y)/@p7)) elseif @trap==57 a=cabs(recip(z)*y+flip(-(-p4*log(z)*x^3+2*p5*x+3*p6*y)/@p7)) elseif @trap==58 a=cabs(p4*sin(y+tan(p5*y))+flip(p4*sin(x+tan(p5*x)))) elseif @trap==59 a=cabs(x-p4*sin(y+tan(p5*y))+flip(y-p4*sin(x+tan(p5*x)))) elseif @trap==60 a=cabs(y^2-x^2*(4*p4-x)/(4*p4+x)) elseif @trap==61 a=cabs(atan(z)*x*(x^2+y^2)-4*p5*x*y-p4*y^2-sinh(z)^2) elseif @trap==62 a=cabs(z*x*(x^2+y^2)-4*p5*x*y-p4*y^2-cotanh(z)^2) elseif @trap==63 a=cabs((2*x+y)%1+flip((x+y)%1)) elseif @trap==64 a=cabs(tanh(z)*(-p4-tanh(x)+y)) elseif @trap==65 a=cabs(x^(2/3)+y^(2/3)+log(z)^(2/3)-p4^2) elseif @trap==66 a=cabs(x*y+y*cotan(z)+cotan(z)*x-p4*(x+y+cotan(z))+1) elseif @trap==67 a=cabs(4*p4*x-x*z-2*x+p5*z-p5*cosh(x)*y^2-cos(z)) elseif @trap==68 a=cabs(4*p4*x-x*z-2*x+p5*z-p5*log(x)*y^2-cos(z)) elseif @trap==69 a=cabs(4*p4*x-x*z-2*x+p5*z-p5*round(x)*y^2-cos(z)) elseif @trap==70 a=cabs(-2*p4*(y-x)+p5*y*z+0.2*p6*(x+y)-p5*x*z-@p7*z+p5*x*y-p5*@p8+x*y*z-x-y-z-p5) elseif @trap==71 a=cabs(-2*p4*(y-x)+p5*y*z+0.2*p6*tan(x+y)-p5*x*z-@p7*z+p5*x*y+2.5*p5*@p8+x*y*z-x-y-flip(z)-p5) elseif @trap==72 a=cabs(-2*p4*(y-x)+p5*y*z-1.5*p6*tan(x+y)-p5*x*z-0.5*@p7*z+p5*x*y+2.5*p5*@p8+x*y*z-x-y-flip(z)-p5) elseif @trap==73 a=cabs(x^2/p4^2+y^2/p5^2+flip(z)^2/p6^2-1) elseif @trap==74 a=cabs(-p4*(y-x)+y*log(z)+p5*x+y-x*z+x*y-p6*cosh(z)-x-y-log(z)) elseif @trap==75 a=cabs(x^2/p4^2+y^2/p5^2+z^2/p6^2-1) elseif @trap==76 a=cabs(-p4*acos(y-x)+flip(y)*z+p5*x+y-x*asin(z)+sin(x)*y-p6*z-x-y-z) elseif @trap==77 a=cabs(x-p4*sin(y+tan(p5*y))+flip(y+p4*sin(x+tan(p5*x)))) elseif @trap==78 a=cabs(x-p4*tan(y+sin(p5*y))+flip(y+p4*sin(x+tan(p5*x)))) elseif @trap==79 a=cabs(x+2.5*p4*sin(y+sin(p5*y))+flip(y-2.5*p4*sin(x+sin(p5*x)))) elseif @trap==80 a=cabs(x-p4*cos(y+cos(7*p5*y))+flip(y+p4*cos(x+cos(7*p5*x)))) elseif @trap==81 a=cabs(y-(x/cabs(x))*(abs(sin(x)*cos(p5)-2*p4-x*sin(-2*p4+p5+2*p6)))+flip(-2*p4-atanh(x))-log(z)) elseif @trap==82 a=cabs(x-p4*asinh(y+cos(6*p5*y))+acos(y+p4*sin(x+6*p5*x))) elseif @trap==83 a=cabs((x^2+y^2)*recip(z)-2*p4*x*y) elseif @trap==84 a=cabs(x-p4*asinh(y+asinh(p5*y))+flip(y+p4*tan(x+sin(p5*x)))) elseif @trap==85 a=cabs(x^2+tanh(z)^2-2*p4*x+p5*tanh(z)-x*y) elseif @trap==86 a=cabs(x^2/p4^2+y^2/p5^2+cabs(z)^2/p6^2-1) elseif @trap==87 a=cabs((y-z+p5-6*p4-1)*sin(x)+(6*p4-2)*sqrt(y)-p6*sin(z)) elseif @trap==88 a=cabs((y-z+p5+p4-1)*sqr(x)+(-p4-2)*atanh(y)+1.5*p6*z) elseif @trap==89 a=cabs((y-z+p5+0.5*p4-1)*cotan(x)+(-0.5*p4-2)*flip(y)+1.5*p6*atanh(z)) elseif @trap==90 a=cabs(sin(p4*y)-z*cos(p5*x)+z*sin(p6*x)-cos(@p7*y)+sin(x)-x-y-z) elseif @trap==91 a=cabs(-2*x+y*z+1-y^2-z) elseif @trap==92 a=cabs(x-p4*(1+((1-e^p6)/(-p6))*y)+p5*p4*((1-e^p6)/(-p6))*cos(2*pi*x)+flip(e^p6*(y-p5*cos(2*pi*x)))) elseif @trap==93 a=cabs(x-p4*(sin(y^2+sin(3*p5*y))+p6)+flip(y+p4*(sin(x^2+sin(3*p5*x))+p6))) elseif @trap==94 a=cabs(x-p4*(cos(y^2+cos(3*p5*y))+p6)+flip(y+p4*(cos(x^2+cos(3*p5*x))+p6))) elseif @trap==95 a=cabs(x-p4*(sin(y^2+sin(3*p5*y))+p6)+sin(y+p4*(sin(x^2+cos(3*p5*x))+p6))) elseif @trap==96 a=cabs(x-1.5*p4*(asin(y^2+asin(1.2*p5*y))+0.05*p6)+flip(y+1.5*p4*(asin(x^2+asin(1.2*p5*x))+0.05*p6))) elseif @trap==97 a=cabs(p4*e^sin(z)*cos(x)-cos(y)) elseif @trap==98 a=cabs(2*p4*(y-asin(x)^p5)+flip(x-y+p6*z)) elseif @trap==99 a=cabs(sin(p4*y)+p5*sin(p4*x)+flip(sin(p6*x)+@p7*sin(p6*y))) elseif @trap==100 a=cabs(tan(p4*y)+p5*cos(p4*x)+flip(tan(p6*x)+@p7*sin(p6*y))) elseif @trap==101 a=cabs(sin(-2*p4*y)+(sin(-2*p4*x))^2+flip(sin(1.5*p5*x)+(sin(1.5*p5*y))^2)) elseif @trap==102 a=cabs(sin(p4*y)+(sin(p4*x))^2+ (sin(p4*x))^3+flip(sin(p5*x)+ (sin(p5*y))^2+ (sin(p6*y))^3)) elseif @trap==103 a=cabs((x^2+y^2)*log(z)-2*p4*x*y) elseif @trap==104 a=cabs(x-3*p4*real(sin(y+sin(p5*(y+sin(-3*p6*y)))))+flip(y+3*p4*real(sin(x+sin(p5*(x+sin(-3*p6*x))))))) endif if a=0.75 && d<=1 && a==0 a=b c=8*d^2-6 endif final: if a>0 if @col=="HSL" #color=hsl(p5*c,p6*c,@p7*c) else #color=rgb(@p8*c,@p9*c,@p10*c) endif else #solid=true endif default: title="Felida Direct" param p1 default=(1,0) endparam param p2 default=(1,0) endparam param p3 caption="Modulus" default=1.0 endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc param col caption="Colour" enum="hsl""rgb" default=0 endparam param p5 caption="Hue" default=0.5 visible=@col==0 endparam param p6 caption="Saturation" default=0.5 visible=@col==0 endparam param p7 caption="Luminance" default=0.5 visible=@col==0 endparam param p8 caption="Red" default=0.5 visible=@col==1 endparam param p9 caption="Green" default=0.5 visible=@col==1 endparam param p10 caption="Blue" default=0.5 visible=@col==1 endparam } AttractorsDirect { init: int a=0 int b=1 float c=0.0 float d=0.0 loop: b=b+1 if @Sym==false float x=real(fn1(#z)) float y=imag(fn1(#z)) else float x=abs(real(fn1(#z))) float y=abs(imag(fn1(#z))) endif if @V=="Baker's Map" d=cabs(fn2(2*x-floor(2*x)+flip((y+floor(2*x))/2))-p1) elseif @V=="Baker's Map 2" if 0<=x && x<0.5 d=cabs(fn2(2*x+flip(y/2))-p1) else d=cabs(fn2(2-2*x+flip(1-y/2))-p1) endif elseif @V=="Beddington Mod" d=cabs(fn2(x*exp(@Ap2*(1-0.1*x)-@Ap1*y)+flip(x*(1-exp(-@Ap1*y))))-p1) elseif @V=="Bogdanov" d=cabs(fn2(x+y+@Ap1*y+@Ap2*x*(x-1)+@Ap3*x*y+flip(y+@Ap1*y+@Ap2*x*(x-1)+@Ap3*x*y))-p1) elseif @V=="Brusselator" d=cabs(fn2((1-(@Ap1+1)*x+y*x^2)/@Ap2+flip((@Ap1*x-y*x^2)/@Ap3))-p1) elseif @V=="Buckling Column Model" d=cabs(fn2(y+flip((@Ap1*x^3+@Ap2*x+@Ap3*y)/@Ap4))-p1) elseif @V=="Burgers" d=cabs(fn2((1-@Ap1)*x-y^2+flip((1+@Ap2)*y+x*y))-p1) elseif @V=="Cao-Lai" d=cabs(fn2(@Ap1*x*(1-x)+flip(@Ap2*x*sin(2*pi*y)/(2*pi)))-p1) elseif @V=="Cathala" d=cabs(fn2(@Ap1*x+y+flip(@Ap2/2+x^2))-p1) elseif @V=="Chip" d=cabs(fn2(y-(x/cabs(x))*cos(sqr(log(abs(@Ap2*x-2*@Ap3))))*atan(sqr(log(abs(2*@Ap3*x-@Ap2))))+flip(@Ap1-x))-p1) elseif @V=="Chirikov Mod" d=cabs(fn2(x+y+(@Ap1/2*pi)*sin(2*pi*x)+flip(x+y+(@Ap1/2*pi)*sin(2*pi*x)-x))-p1) elseif @V=="Cremona" d=cabs(fn2(x*cos(@Ap1)-(y-x^2)*sin(@Ap1)+flip(x*sin(@Ap1)-(y-x^2)*cos(@Ap1)))-p1) elseif @V=="Damped Simple Pendulum" d=cabs(fn2(y+flip(-@Ap1*sin(x)-@Ap2*y))-p1) elseif @V=="de Jong" d=cabs(fn2(sin(@Ap1*y)-cos(@Ap2*x)+flip(sin(@Ap3*x)-cos(@Ap4*y)))-p1) elseif @V=="Dissipative Standard Map" d=cabs(fn2(x+@Ap1*y-@Ap2+(@Ap3/(2*pi))*sin(2*pi*x)+flip(@Ap1*y-@Ap2+(@Ap3/(2*pi))*sin(2*pi*x)))-p1) elseif @V=="Duffing" d=cabs(fn2(y+flip(x-x^3-@Ap1*y+@Ap2))-p1) elseif @V=="Duffing 2" d=cabs(fn2(y+flip(-@Ap1*x-@Ap2*x^3+@Ap3))-p1) elseif @V=="Duffing Mod" d=cabs(fn2(y+flip(-@Ap2*x+@Ap1*y-y^3))-p1) elseif @V=="Duffing Parametric" d=cabs(fn2(y+flip(-x-x^3+(@Ap1+@Ap2*x^2+@Ap3*@Ap4*x)*y+@Ap4*@Ap5))-p1) elseif @V=="Grebogi" d=cabs(fn2(@Ap1*tanh(x)*cos(2*pi*y)+flip((y+real(@Ap2))%1))-p1) elseif @V=="Gumowski-Mira" d=cabs(fn2(y+@Ap1*(1-0.05*y^2)*y+@Ap2*x+2*(1-@Ap2)*x^2/(1+x^2)\ +flip(-x+@Ap2*(y+@Ap1*(1-0.05*y^2)*y+@Ap2*x+2*(1-@Ap2)*x^2/(1+x^2))\ +2*(1-@Ap2)*(y+@Ap1*(1-0.05*y^2)*y+@Ap2*x+2*(1-@Ap2)*x^2/(1+x^2))^2/\ (1+(y+@Ap1*(1-0.05*y^2)*y+@Ap2*x+2*(1-@Ap2)*x^2/(1+x^2))^2)))-p1) elseif @V=="Gumowski-Mira 2" if x<-0.5 d=cabs(fn2((1-@Ap1)*x+y+flip(y+(-2*@Ap1*x-0.9*@Ap1)))-p1) elseif cabs(x)<0.5 d=cabs(fn2((1-@Ap1)*x+y+flip(y-@Ap1*x/5))-p1) else d=cabs(fn2((1-@Ap1)*x+y+flip(y+(-2*@Ap1*x+0.9*@Ap1)))-p1) endif elseif @V=="Hamilton" d=cabs(fn2(x+@Ap1*@Ap2*sin(2*pi*y)+flip(y-(@Ap1/@Ap2)*sin(2*pi*(x+@Ap1*@Ap2*sin(2*pi*y)))))-p1) elseif @V=="Hamilton Torus" d=cabs(fn2(-sin(y)*(1-@Ap1)+flip(sin(x)*(1+@Ap1)))-p1) elseif @V=="HCA" d=cabs(fn2(1-@Ap1*x^2+@Ap2*(y^2-x^2)+flip(1-@Ap1*y^2+@Ap2*(x^2-y^2)))-p1) elseif @V=="Henon" d=cabs(fn2(1-@Ap1*x^2+y+flip(@Ap2*x))-p1) elseif @V=="Henon-Heiles 1" d=cabs(fn2(-@Ap1*x-@Ap2*x*y+flip(-@Ap3*y-@Ap4*x^2+@Ap5*y^2))-p1) elseif @V=="Henon-Heiles 2" d=cabs(fn2(y+flip(-@Ap1*x-@Ap2*x^2+@Ap3))-p1) elseif @V=="Hopalong" d=cabs(fn2(y-sqrt(cabs(@Ap2*x-@Ap3))*x/cabs(x)+flip(@Ap1-x))-p1) elseif @V=="Ilhem-Amel 1" d=cabs(fn2(x^3+@Ap1*x+@Ap2/2+y+flip(@Ap3*x))-p1) elseif @V=="Ilhem-Amel 2" d=cabs(fn2(@Ap4*x^3+@Ap1*x+@Ap2/2+@Ap5*y+flip(@Ap3*x+@Ap6*y))-p1) elseif @V=="Inverse Cremona" d=cabs(fn2(x*cos(@Ap1)+y*sin(@Ap1)+flip(-x*sin(@Ap1)+y*cos(@Ap1)+(x*cos(@Ap1)+y*sin(@Ap1))^2))-p1) elseif @V=="Kam Torus" d=cabs(fn2(x*cos(@Ap1)+(x^2-y)*sin(@Ap1)+flip(x*sin(@Ap1)-(x^2-y)*cos(@Ap1)))-p1) elseif @V=="Kaplan-Yorke" d=cabs(fn2(real(@Ap1)*x%1+flip(-@Ap2*y+cos(2*pi*x)))-p1) elseif @V=="Kolmogorov-Volterra" d=cabs(fn2((x*(@Ap1-x^2)-@Ap2*x*y)/(1+x^2)+flip((@Ap3*x^2-1)*y/(1+x^2)))-p1) elseif @V=="Latoocarfian" d=cabs(fn2(sin(@Ap1*y)+@Ap2*sin(@Ap1*x)+flip(sin(@Ap3*x)+@Ap4*sin(@Ap3*y)))-p1) elseif @V=="Limit Cycle" d=cabs(fn2(x-y-@Ap1*x*(x^2+y^2)+@Ap3+flip(x+y-@Ap2*y*(x^2+y^2)+@Ap4))-p1) elseif @V=="Lozi" d=cabs(fn2(1-@Ap1*cabs(x)+y+flip(@Ap2*x))-p1) elseif @V=="Lozi Mod" d=cabs(fn2(1+@Ap1*(cabs(x)-y^2)+y+flip(@Ap2*x))-p1) elseif @V=="Marotto-Lorenz" d=cabs(fn2((1-@Ap1*x-@Ap2*y)*(@Ap1*x+@Ap2*y)+flip(x))-p1) elseif @V=="Mira 1" d=cabs(fn2((1-@Ap1/2)*x+y+flip(@Ap1*@Ap2*x/2+@Ap3*y-@Ap1*x^3/2))-p1) elseif @V=="Mira 2" d=cabs(fn2(x^2-y^2+@Ap1*x+@Ap2+flip(2*x*y-5*@Ap1*y/2+@Ap3))-p1) elseif @V=="Mira 3" if -0.5<=x && x<=0.5 d=cabs(fn2((1-@Ap1)*x+y+flip(y-(@Ap1/5)*x))-p1) elseif x>1.5 d=cabs(fn2((1-@Ap1)*x+y+flip(-2*@Ap1*x+0.9*p1))-p1) else d=cabs(fn2((1-@Ap1)*x+y+flip(-2*@Ap1*x-0.9*p1))-p1) endif elseif @V=="Mira 4" if x<=6 d=cabs(fn2(y+flip(y-@Ap1*x))-p1) else d=cabs(fn2(y+flip(y+2*x-6*(2+@Ap1)*x))-p1) endif elseif @V=="Multifold Henon" d=cabs(fn2(1-@Ap1*sin(x)+@Ap2*y+flip(x))-p1) elseif @V=="Nowicki-Swirszcz" d=cabs(fn2(3*x*((x-Y)^2-@Ap1)/((3*x-Y)^2-@Ap2)+flip(Y*(Y^2+2*x*Y-3*x^2-@Ap3)/((3*x-Y)^2-@Ap4)))-p1) elseif @V=="Parametric Pendulum" d=cabs(fn2(y+flip(@Ap1*sin(x)/2+y*(@Ap2+@Ap3*cos(x))))-p1) elseif @V=="Pendulum" d=cabs(fn2(y+flip(-sin(x)+@Ap1))-p1) elseif @V=="Pendulum Morozov" d=cabs(fn2(y+flip(-sin(x)+y*(@Ap1+@Ap2*cos(@Ap3*x))*(-@Ap4)))-p1) elseif @V=="Pickover 1" d=cabs(fn2(sin(@Ap1*y)+@Ap2*cos(@Ap1*x)+flip(sin(@Ap3*x)+@Ap4*cos(@Ap3*y)))-p1) elseif @V=="Pickover 2" d=cabs(fn2(sin(@Ap1*y)+(sin(@Ap1*x))^2+(sin(@Ap1*x))^3+flip(sin(@Ap2*x)+(sin(@Ap2*y))^2+(sin(@Ap3*y))^3))-p1) elseif @V=="Pickover 3" d=cabs(fn2(sin(@Ap1*y)+(sin(@Ap1*x))^2+flip(sin(@Ap2*x)+(sin(@Ap2*y))^2))-p1) elseif @V=="Pickover 4" d=cabs(fn2(cabs(sin(@Ap1*y))+(sin(@Ap1*x))^2+flip(cabs(sin(@Ap2*x))+(sin(@Ap2*y))^2))-p1) elseif @V=="Planar Autonomous" d=cabs(fn2(x*(@Ap1-x-@Ap2*y+@Ap3*x*y+y^2)+flip(y*(-@Ap1+y+@Ap2*x-@Ap3*x^2-x*y)))-p1) elseif @V=="Polyharmonic Pendulum" d=cabs(fn2(y+flip(-@Ap1*sin(x)-@Ap2*sin(3*x)+@Ap3*sin(@Ap4)))-p1) elseif @V=="Popcorn" d=cabs(fn2(@Ap1*sin(y+tan(@Ap2*y))+flip(@Ap1*sin(x+tan(@Ap2*x))))-p1) elseif @V=="Popcorn 2" d=cabs(fn2(x-@Ap1*sin(y+tan(@Ap2*y))+flip(y-@Ap1*sin(x+tan(@Ap2*x))))-p1) elseif @V=="Popcorn Mod 1" d=cabs(fn2(x-real(@Ap1*tan(y+sin(@Ap2*y)))-imag(@Ap1*tan(x+sin(@Ap2*x)))+flip(y-real(@Ap1*tan(x+sin(@Ap2*x)))-imag(@Ap1*tan(y+sin(@Ap2*y)))))-p1) elseif @V=="Popcorn Mod 2" d=cabs(fn2(x-real(@Ap1*tan(y+sqr(@Ap2*y)))-imag(@Ap1*tan(x+sqr(@Ap2*x)))+flip(y-real(@Ap1*tan(x+sqr(@Ap2*x)))-imag(@Ap1*tan(y+sqr(@Ap2*y)))))-p1) elseif @V=="Popcorn Mod 3" d=cabs(fn2(x-real(@Ap1*flip(y+tan(@Ap2*y)))-imag(@Ap1*flip(x+tan(@Ap2*x)))+flip(y-real(@Ap1*flip(x+tan(@Ap2*x)))-imag(@Ap1*flip(y+tan(@Ap2*y)))))-p1) elseif @V=="Popcorn Mod 4" d=cabs(fn2(x-real(@Ap1*atanh(y+tan(@Ap2*y)))-imag(@Ap1*atanh(x+tan(@Ap2*x)))+flip(y-real(@Ap1*atanh(x+tan(@Ap2*x)))-imag(@Ap1*atanh(y+tan(@Ap2*y)))))-p1) elseif @V=="Quadruptwo" d=cabs(fn2(y-(x/cabs(x))*sin(log(abs(@Ap2*x-@Ap3)))*atan(sqr(log(abs(@Ap3*x-@Ap2))))+flip(@Ap1-x))-p1) elseif @V=="Sprott" d=cabs(fn2((1+2*@Ap1*@Ap2)*x-2*@Ap2*x*y+flip((1-2*@Ap2)*y+2*@Ap2*x^2))-p1) elseif @V=="Sprott-Elhadj" d=cabs(fn2(@Ap1*x/(1+y^2)+flip(x+@Ap2*y))-p1) elseif @V=="Strelkova-Anishchenko" d=cabs(fn2(1-@Ap1*x^2+@Ap2*(y-x)+flip(1-@Ap1*y^2+@Ap2*(x-y)))-p1-1) elseif @V=="Standard Map" d=cabs(fn2(x%(2*pi)+@Ap1*sin(y%(2*pi))+flip(y%(2*pi)+x%(2*pi)+@Ap1*sin(y%(2*pi))))-p1) elseif @V=="Standard Map 2" d=cabs(fn2(x+y+(@Ap1/(2*pi))*sin(2*pi*x)+flip(y+(@Ap1/(2*pi))*sin(2*pi*x)))-p1) elseif @V=="Svensson" d=cabs(fn2(@Ap1*sin(@Ap2*x)-sin(@Ap3*y)+flip(@Ap4*cos(@Ap2*x)-cos(@Ap3*y)))-p1) elseif @V=="Threeply" d=cabs(fn2(y-(x/cabs(x))*(abs(sin(x)*cos(@Ap1)+@Ap2-x*sin(@Ap1+@Ap2+@Ap3)))+flip(@Ap3-x))-p1) elseif @V=="Tinkerbell" d=cabs(fn2(x^2-y^2+@Ap1*x+@Ap2*y+flip(2*x*y-@Ap3*x+@Ap4*y))-p1) elseif @V=="Ushiki" d=cabs(fn2((@Ap1-x-@Ap2*y)*x+flip((@Ap3-y-@Ap4*x)*y))-p1) elseif @V=="Van der Pol 1" d=cabs(fn2(@Ap1*(x-x^3/3-y)+flip(x/@Ap1))-p1) elseif @V=="Van der Pol 2" d=cabs(fn2(y+flip(@Ap1*(1-x^2)*y-x))-p1) elseif @V=="Volterra" d=cabs(fn2(e^y-1+@Ap2*(e^x-1)*e^y/(@Ap2+e^(2*x))+flip(@Ap1*(1-e^x)-@Ap1*@Ap2*(e^x-1)*e^x/(@Ap2+e^(2*x))))-p1) elseif @V=="Volterra-Lotka 1" d=cabs(fn2(@Ap1*x-@Ap2*x*y+flip(-@Ap3*y+@Ap4*x*y))-p1) elseif @V=="Volterra-Lotka 2" d=cabs(fn2(@Ap1*x*(1-x-@Ap2*y)+flip(@Ap3*y*(1-y-@Ap4*x)))-p1) elseif @V=="Zito" d=cabs(fn2(x*y+@Ap1*x-y+flip(x+y))-p1) elseif @V=="OM1" d=cabs(fn2(-@Ap3*(@Ap1*(y-flip(x)^2)-y+@Ap2*(x+flip(y))))-p1) elseif @V=="OM2" d=cabs(fn2((x*(1-x)+y*atanh(@Ap1-x)/(p1+x))/@Ap2+flip(x-y))-p1) elseif @V=="OM3" d=cabs(fn2((x*(1-x)+y*flip(@Ap1-x)/(p1+x))/@Ap2+flip(x-y))-p1) elseif @V=="OM4" d=cabs(fn2((x%(2*pi))+(y%(2*pi))+@Ap1*sin(2*pi*(x%(2*pi)))+flip((x%(2*pi))+(y%(2*pi))+@Ap1*sin(2*pi*(x%(2*pi)))-(x%(2*pi))))-p1) elseif @V=="OM5" d=cabs(fn2(-@Ap1*(x+y)+flip(-y-@Ap1*x^2*flip(y)))-p1) elseif @V=="OM6" d=cabs(fn2(@Ap1*x+@Ap2*y-@Ap3*x*y-(@Ap4*(x+flip(y))+@Ap5)*x/(x+@Ap6)+flip(@Ap7+@Ap8*(x+flip(y))-@Ap9*y-@Ap10*x*y/(y+@Ap11)))-p1) elseif @V=="OM7" d=cabs(fn2((1/3)*(-(pi+1)*x+@Ap1-@Ap2+(x+flip(y))*y+((1-@Ap1)*(x^2-y)^2)+(2*(@Ap1+@Ap2-(x+flip(y))))*x*y)*(1/(3*sqrt(x^2+y^2))) \ +flip((1/3)*((@Ap2-@Ap1-(x+flip(y)))*x-(@Ap1+1)*y)+((2*(@Ap1-1))*x*y+(@Ap1+@Ap2-(x+flip(y)))*(x^2-y^2))*(1/(3*sqrt(x^2+y^2)))))-p1) elseif @V=="OM8" d=cabs(fn2(@Ap1*(y-x)+flip(x-x*y+@Ap2*y+@Ap3))-p1) elseif @V=="OM9" d=cabs(fn2(y+flip(-@Ap1*x-((@Ap2-@Ap1)/2)*(|x+1|-|x-1|)-@Ap3*y+@Ap4*cos(@Ap5*(x+flip(y)))))-p1) elseif @V=="OM10" d=cabs(fn2((x-@Ap1*y)*cos(x+flip(y))-@Ap2*y*sin(x+flip(y))+flip((x*@Ap3*y)*sin(x+flip(y))+@Ap4*y*cos(x+flip(y))))-p1) elseif @V=="OM11" d=cabs(fn2(x-y-cos(x)*(@Ap1*x^2+@Ap2*y^2)+flip(x+y-y*(@Ap3*x^2+@Ap4*y^2)))-p1) elseif @V=="OM12" d=cabs(fn2(x-y-cotan(x)*(@Ap1*x^2+@Ap2*y^2)+flip(x+y-cotan(y)*(@Ap3*x^2+@Ap4*y^2)))-p1) elseif @V=="OM13" d=cabs(fn2(x-y-cotanh(x)*(@Ap1*x^2+@Ap2*y^2)+flip(x+y-cotanh(y)*(@Ap3*x^2+@Ap4*y^2)))-p1) elseif @V=="OM14" d=cabs(fn2(x-y-sin(x)*(@Ap1*x^2+@Ap2*y^2)+flip(x+y-sin(y)*(@Ap3*x^2+@Ap4*y^2)))-p1) elseif @V=="OM15" d=cabs(fn2(@Ap1*x^2-y*x+flip(@Ap2*y*x))-p1) elseif @V=="OM16" d=cabs(fn2(@Ap1*x*cotan(x)-y*exp(x)+flip(@Ap2*y*x))-p1) elseif @V=="OM17" d=cabs(fn2(@Ap1*x*cotan(x)-y*log(x)+flip(@Ap2*y*sqr(x)))-p1) elseif @V=="OM18" d=cabs(fn2(@Ap1*x*cotan(x)-y*cotan(x)+flip(@Ap2*y*tan(x)))-p1) elseif @V=="OM19" d=cabs(fn2(x+@Ap1*@Ap2*sin(2*pi*y)+flip(y-(@Ap1/@Ap2)*sin(2*pi*(x+@Ap1*@Ap2*2*pi*y))))-p1) elseif @V=="OM20" d=cabs(fn2(x+@Ap1*@Ap2*cotan(2*pi*y)+flip(y-(@Ap1/@Ap2)*cotan(2*pi*(x+@Ap1*@Ap2*cotanh(2*pi*y)))))-p1) elseif @V=="OM21" d=cabs(fn2(x+@Ap1*@Ap2*cos(2*pi*y)+flip(y-(@Ap1/@Ap2)*cos(2*pi*(x+@Ap1*@Ap2*asinh(2*pi*y)))))-p1) elseif @V=="OM22" d=cabs(fn2(sin(y)+flip(sin(x)+y*(@Ap1-y^2)))-p1) elseif @V=="OM23" d=cabs(fn2(tan(y)+flip(tan(x)+y*(@Ap1-y^2)))-p1) elseif @V=="OM24" d=cabs(fn2(flip(y)+flip(atanh(x)+y*(@Ap1-y^2)))-p1) elseif @V=="OM25" d=cabs(fn2(x+flip(y)+cosh(x)*y+flip(@Ap1-x^2))-p1) elseif @V=="OM26" d=cabs(fn2(x+@Ap1*y^2+sin(x)^3+flip(y-@Ap2*x^2+sin(y)^3))-p1) elseif @V=="OM27" d=cabs(fn2(x+@Ap1*y^2+flip(x)^3+flip(y-@Ap2*x^2+flip(y)^3))-p1) elseif @V=="OM28" d=cabs(fn2(sin(@Ap1*y)+(sin(@Ap1*x))^2+(sin(@Ap1*y))^3+flip(sin(@Ap2*x)+(sin(@Ap2*y))^2+(sin(@Ap2*x))^3))-p1) elseif @V=="OM29" d=cabs(fn2(@Ap1*x*(1-x/@Ap2)-y*cos(x)+flip(@Ap3*y*(1-y/@Ap4)+x*cotan(y)))-p1) elseif @V=="OM30" if y>0.5 d=cabs(fn2(2*@Ap1*x+flip(2*@Ap2*y-2*@Ap3))-p1) elseif x>0.5 d=cabs(fn2(2*@Ap1*x-2*@Ap3+flip(2*@Ap2*y))-p1) else d=cabs(fn2(2*@Ap1*x+flip(2*@Ap2*y))-p1) endif elseif @V=="OM31" if y>0.5 d=cabs(fn2(sin(2*@Ap1*x+flip(2*@Ap2*y-2*@Ap3)))-p1) elseif x>0.5 d=cabs(fn2(sin(2*@Ap1*x-2*@Ap3+flip(2*@Ap2*y)))-p1) else d=cabs(fn2(sin(2*@Ap1*x+flip(2*@Ap2*y)))-p1) endif elseif @V=="OM32" d=cabs(fn2(sin(@Ap1*x)-tan(@Ap2*y)+flip(tan(@Ap3*x)+sin(@Ap4*y)))-p1) elseif @V=="OM33" d=cabs(fn2(@Ap1*sin(x)-tan(y)-sin(x+flip(y))+flip(-@Ap2*tan(x)+sin(y)+sin(x+flip(y))))-p1) elseif @V=="OM34" d=cabs(fn2(@Ap1*sin(x)-tan(y)-abs(x+flip(y))+flip(-@Ap2*tan(x)+sin(y)+exp(x+flip(y))))-p1) elseif @V=="OM35" d=cabs(fn2(@Ap1*sin(x)-tan(y)-abs(x+flip(y))+flip(-@Ap2*tan(x)+sin(y)+abs(x+flip(y))))-p1) elseif @V=="OM36" d=cabs(fn2(@Ap1*sin(x)-tan(y)-x+flip(y)+flip(-@Ap2*tan(x)+sin(y)+flip(x+flip(y))))-p1) elseif @V=="OM37" d=cabs(fn2((@Ap1*tan(y)-@Ap2)/(@Ap1*tan(x)+@Ap2)+flip((@Ap1*tan(x)-@Ap2)/(@Ap1*tan(y)+@Ap2)))-p1) elseif @V=="OM38" d=cabs(fn2((@Ap1*cos(y)-@Ap2)/(@Ap1*tan(x)+@Ap2)+flip((@Ap1*cos(x)-@Ap2)/(@Ap1*tan(y)+@Ap2)))-p1) elseif @V=="OM39" d=cabs(fn2((@Ap1*exp(y)-@Ap2)/(@Ap1*x+@Ap2)+flip((@Ap1*exp(x)-@Ap2)/(@Ap1*y+@Ap2)))-p1) elseif @V=="OM40" d=cabs(fn2(x-sin(y+@Ap1*sin(@Ap2*y+@Ap3*sin(@Ap4*y)))+flip(y-sin(x+@Ap1*sin(@Ap2*x+@Ap3*sin(@Ap4*x)))))-p1) elseif @V=="OM41" d=cabs(fn2(x-tan(y+@Ap1*tan(@Ap2*y+@Ap3*tan(@Ap4*y)))+flip(y-tan(x+@Ap1*tan(@Ap2*x+@Ap3*tan(@Ap4*x)))))-p1) elseif @V=="OM42" d=cabs(fn2(x-sqr(y+@Ap1*sqr(@Ap2*y+@Ap3*sqr(@Ap4*y)))+flip(y-sqr(x+@Ap1*sqr(@Ap2*x+@Ap3*sqr(@Ap4*x)))))-p1) elseif @V=="OM43" d=cabs(fn2(x-@Ap1*sin(y+sin(2*@Ap2*(y+sin(@Ap3*sin(@Ap4*y)))))+flip(y+@Ap1*sin(x+sin(2*@Ap2*(x+sin(@Ap3*sin(@Ap4*x)))))))-p1) elseif @V=="OM44" d=cabs(fn2(x-@Ap1*sin(y+sin(@Ap2*(x+sin(@Ap3*sin(@Ap4*y)))))+flip(y+@Ap1*sin(x+sin(@Ap2*(y+sin(@Ap3*sin(@Ap4*x)))))))-p1) elseif @V=="OM45" d=cabs(fn2(x-(@Ap1/2)*real(sin(y+sin(@Ap2*(y+sin(@Ap3*y)))))+flip(y+(@Ap1/2)*real(sin(x+sin(@Ap2*(x+sin(@Ap3*x)))))))-p1) endif if d>=p2 && d<=1 && a==0 a=b c=(d^2-p2)*(2/(1-p2)) endif final: if a>0 if @col=="HSL" #color=hsl(@H*c,@S*c,@L*c) else #color=rgb(@R*c,@G*c,@B*c) endif else #solid=true endif default: title="Attractors Direct" param V caption="Attractor" enum="Baker's Map""Baker's Map 2""Beddington Mod""Bogdanov""Brusselator""Buckling Column Model""Burgers" \ "Cao-Lai""Cathala""Chip""Chirikov Mod""Cremona""Damped Simple Pendulum""de Jong" \ "Dissipative Standard Map""Duffing""Duffing 2""Duffing Mod""Duffing Parametric""Grebogi""Gumowski-Mira" \ "Gumowski-Mira 2""Hamilton""Hamilton Torus""HCA""Henon""Henon-Heiles 1""Henon-Heiles 2" \ "Hopalong""Ilhem-Amel 1""Ilhem-Amel 2""Inverse Cremona""Kam Torus""Kaplan-Yorke" \ "Kolmogorov-Volterra""Latoocarfian""Limit Cycle""Lozi""Lozi Mod""Marotto-Lorenz""Mira 1""Mira 2""Mira 3" \ "Mira 4""Multifold Henon""Nowicki-Swirszcz""Parametric Pendulum""Pendulum" \ "Pendulum Morozov""Pickover 1""Pickover 2""Pickover 3""Pickover 4" \ "Planar Autonomous""Polyharmonic Pendulum""Popcorn""Popcorn 2" \ "Popcorn Mod 1""Popcorn Mod 2""Popcorn Mod 3""Popcorn Mod 4""Quadruptwo""Sprott" \ "Sprott-Elhadj""Strelkova-Anishchenko""Standard Map""Standard Map 2""Svensson" \ "Threeply""Tinkerbell""Ushiki""Van der Pol 1""Van der Pol 2""Volterra""Volterra-Lotka 1""Volterra-Lotka 2""Zito" \ "OM1""OM2""OM3""OM4""OM5""OM6""OM7""OM8""OM9""OM10""OM11""OM12""OM13""OM14""OM15" \ "OM16""OM17""OM18""OM19""OM20""OM21""OM22""OM23""OM24""OM25""OM26""OM27" \ "OM28""OM29""OM30""OM31""OM32""OM33""OM34""OM35""OM36" \ "OM37""OM38""OM39""OM40""OM41""OM42""OM43""OM44""OM45" default=0 endparam param Ap1 caption="Attractor Parameter" default=(1,0) visible=@V=="Beddington Mod" || @V=="Bogdanov" || @V=="Brusselator"|| @V=="Buckling Column Model" || @V=="Burgers" || @V=="Cao-Lai" \ || @V=="Cathala" || @V=="Chip" || @V=="Chirikov Mod" || @V=="Cremona" || @V=="Damped Simple Pendulum" || @V=="de Jong" || @V=="Dissipative Standard Map" || @V=="Duffing" || @V=="Duffing 2" || @V=="Duffing Mod" \ || @V=="Duffing Parametric" || @V=="Grebogi" \ || @V=="Gumowski-Mira" || @V=="Gumowski-Mira 2" || @V=="Hamilton" || @V=="Hamilton Torus" || @V=="HCA" || @V=="Henon" || @V=="Henon-Heiles 1" \ || @V=="Henon-Heiles 2" || @V=="Hopalong" || @V=="Ilhem-Amel 1" || @V=="Ilhem-Amel 2" || @V=="Inverse Cremona" || @V=="Kam Torus" || @V=="Kaplan-Yorke" || @V=="Kolmogorov-Volterra" \ || @V=="Latoocarfian" || @V=="Limit Cycle" || @V=="Lozi" || @V=="Lozi Mod" || @V=="Marotto-Lorenz" || @V=="Mira 1" || @V=="Mira 2" || @V=="Mira 3" || @V=="Mira 4" \ || @V=="Multifold Henon" || @V=="Nowicki-Swirszcz" || @V=="Parametric Pendulum" || @V=="Pendulum" || @V=="Pendulum Morozov" || @V=="Pickover 1" \ || @V=="Pickover 2" || @V=="Pickover 3" || @V=="Pickover 4" || @V=="Planar Autonomous" || @V=="Polyharmonic Pendulum" \ || @V=="Popcorn" || @V=="Popcorn 2" || @V=="Popcorn Mod 1" || @V=="Popcorn Mod 2" || @V=="Popcorn Mod 3" || @V=="Popcorn Mod 4" \ || @V=="Quadruptwo" || @V=="Sprott" || @V=="Sprott-Elhadj" || @V=="Strelkova-Anishchenko" || @V=="Standard Map" || @V=="Standard Map 2" || @V=="Svensson" \ || @V=="Threeply" || @V=="Tinkerbell" || @V=="Ushiki" || @V=="Van der Pol 1" || @V=="Van der Pol 2" || @V=="Volterra" \ || @V=="Volterra-Lotka 1" || @V=="Volterra-Lotka 2" || @V=="Zito" \ || @V=="OM1" || @V=="OM2" || @V=="OM3" \ || @V=="OM4" || @V=="OM5" ||@V=="OM6" ||@V=="OM7" ||@V=="OM8" ||@V=="OM9" ||@V=="OM10" || @V=="OM11" || @V=="OM12" || @V=="OM13" || @V=="OM14" \ || @V=="OM15" || @V=="OM16" || @V=="OM17" || @V=="OM18" || @V=="OM19" || @V=="OM20" || @V=="OM21" || @V=="OM22" || @V=="OM23" || @V=="OM24" \ || @V=="OM25" || @V=="OM26" || @V=="OM27" || @V=="OM28" || @V=="OM29" || @V=="OM30" || @V=="OM31" || @V=="OM32" || @V=="OM33" \ || @V=="OM34" || @V=="OM35" || @V=="OM36" || @V=="OM37" || @V=="OM38" || @V=="OM39" || @V=="OM40" || @V=="OM41" || @V=="OM42" \ || @V=="OM43" || @V=="OM44" || @V=="OM45" endparam param Ap2 caption="Attractor Parameter 2" default=(1,0) visible=@V=="Beddington Mod" || @V=="Bogdanov" || @V=="Brusselator" || @V=="Buckling Column Model" || @V=="Burgers" \ || @V=="Cao-Lai" || @V=="Cathala" || @V=="Chip" || @V=="Damped Simple Pendulum" || @V=="de Jong" || @V=="Dissipative Standard Map" || @V=="Duffing" || @V=="Duffing 2" || @V=="Duffing Mod" \ || @V=="Duffing Parametric" || @V=="Grebogi" \ || @V=="Gumowski-Mira" || @V=="Hamilton" || @V=="HCA" || @V=="Henon" || @V=="Henon-Heiles 1" || @V=="Henon-Heiles 2" || @V=="Hopalong" \ || @V=="Ilhem-Amel 1" || @V=="Ilhem-Amel 2" || @V=="Kaplan-Yorke" \ || @V=="Kolmogorov-Volterra" || @V=="Latoocarfian" || @V=="Limit Cycle" || @V=="Lozi" || @V=="Lozi Mod" || @V=="Marotto-Lorenz" || @V=="Mira 1" \ || @V=="Mira 2" || @V=="Multifold Henon" || @V=="Nowicki-Swirszcz" || @V=="Parametric Pendulum" || @V=="Pendulum Morozov" || @V=="Pickover 1" \ || @V=="Pickover 2" || @V=="Pickover 3" \ || @V=="Pickover 4" || @V=="Planar Autonomous" || @V=="Polyharmonic Pendulum" || @V=="Popcorn" || @V=="Popcorn 2" \ || @V=="Popcorn Mod 1" || @V=="Popcorn Mod 2" || @V=="Popcorn Mod 3" || @V=="Popcorn Mod 4" || @V=="Quadruptwo" || @V=="Sprott" || @V=="Sprott-Elhadj" \ || @V=="Strelkova-Anishchenko" || @V=="Svensson" || @V=="Threeply" || @V=="Tinkerbell" || @V=="Ushiki" || @V=="Volterra" || @V=="Volterra-Lotka 1" \ || @V=="Volterra-Lotka 2" || @V=="OM1" || @V=="OM2" || @V=="OM3" \ || @V=="OM6" ||@V=="OM7" || @V=="OM8" || @V=="OM9" || @V=="OM10" || @V=="OM11" || @V=="OM12" || @V=="OM13" || @V=="OM14" || @V=="OM15" \ || @V=="OM15" || @V=="OM16" || @V=="OM17" || @V=="OM18" || @V=="OM19" || @V=="OM20" || @V=="OM21" || @V=="OM26" || @V=="OM27" || @V=="OM28" \ || @V=="OM29" || @V=="OM30" || @V=="OM31" || @V=="OM32" || @V=="OM33" || @V=="OM34" || @V=="OM35" || @V=="OM36" \ || @V=="OM37" || @V=="OM38" || @V=="OM39" || @V=="OM40" || @V=="OM41" || @V=="OM42" || @V=="OM43" || @V=="OM44" || @V=="OM45" endparam param Ap3 caption="Attractor Parameter 3" default=(1,0) visible=@V=="Bogdanov" || @V=="Brusselator"|| @V=="Buckling Column Model" || @V=="Chip" || @V=="de Jong" || @V=="Dissipative Standard Map" || @V=="Duffing 2" \ || @V=="Duffing Parametric" || @V=="Henon-Heiles 1" || @V=="Henon-Heiles 2" || @V=="Hopalong" \ || @V=="Ilhem-Amel 1" || @V=="Ilhem-Amel 2" || @V=="Kolmogorov-Volterra" || @V=="Latoocarfian" || @V=="Limit Cycle" || @V=="Mira 1" \ || @V=="Mira 2" || @V=="Nowicki-Swirszcz" || @V=="Parametric Pendulum" || @V=="Pendulum Morozov" || @V=="Pickover 1" \ || @V=="Pickover 2" || @V=="Planar Autonomous" || @V=="Polyharmonic Pendulum" || @V=="Quadruptwo" || @V=="Svensson" || @V=="Threeply" || @V=="Tinkerbell" || @V=="Ushiki" \ || @V=="Volterra-Lotka 1" || @V=="Volterra-Lotka 2" || @V=="OM1" \ || @V=="OM6" || @V=="OM8" || @V=="OM9" || @V=="OM10" || @V=="OM11" || @V=="OM12" || @V=="OM13" || @V=="OM14" \ || @V=="OM29" || @V=="OM30" || @V=="OM31" || @V=="OM32" || @V=="OM40" || @V=="OM41" || @V=="OM42" || @V=="OM43" || @V=="OM44" || @V=="OM45" endparam param Ap4 caption="Attractor Parameter 4" default=(1,0) visible=@V=="Buckling Column Model" || @V=="de Jong" || @V=="Duffing Parametric" || @V=="Henon-Heiles 1" \ || @V=="Ilhem-Amel 2" || @V=="Latoocarfian" || @V=="Limit Cycle" || @V=="Nowicki-Swirszcz" \ || @V=="Pendulum Morozov" || @V=="Pickover 1" || @V=="Polyharmonic Pendulum" || @V=="Svensson" || @V=="Tinkerbell" \ || @V=="Ushiki" || @V=="Volterra-Lotka 1" || @V=="Volterra-Lotka 2" || @V=="OM6" ||@V=="OM9" ||@V=="OM10" \ || @V=="OM11" || @V=="OM12" || @V=="OM13" || @V=="OM14" || @V=="OM29" || @V=="OM32" || @V=="OM40" || @V=="OM41" || @V=="OM42" \ || @V=="OM43" || @V=="OM44" endparam param Ap5 caption="Attractor Parameter 5" default=(1,0) visible=@V=="Duffing Parametric" || @V=="Henon-Heiles 1" || @V=="Ilhem-Amel 2" || @V=="OM6" || @V=="OM9" endparam param Ap6 caption="Attractor Parameter 6" default=(1,0) visible=@V=="Ilhem-Amel 2" || @V=="OM6" endparam param Ap7 caption="Attractor Parameter 7" default=(1,0) visible=@V=="OM6" endparam param Ap8 caption="Attractor Parameter 8" default=(1,0) visible=@V=="OM6" endparam param Ap9 caption="Attractor Parameter 9" default=(1,0) visible=@V=="OM6" endparam param Ap10 caption="Attractor Parameter 10" default=(1,0) visible=@V=="OM6" endparam param Ap11 caption="Attractor Parameter 11" default=(1,0) visible=@V=="OM6" endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc param col caption="Colour" enum="hsl""rgb" default=0 endparam param H caption="Hue" default=0.5 visible=@col==0 endparam param S caption="Saturation" default=0.5 visible=@col==0 endparam param L caption="Luminance" default=0.5 visible=@col==0 endparam param R caption="Red" default=0.5 visible=@col==1 endparam param G caption="Green" default=0.5 visible=@col==1 endparam param B caption="Blue" default=0.5 visible=@col==1 endparam param p1 default=(0,0) endparam param p2 caption="Parameter 2" default=-0.67 endparam param Sym caption="Symmetrise" default=false endparam } Eschangaleng { init: float a=0.0 k=(0,0) float b=0.0 a=pi loop: if @Fs=="ident" z=ident(#z) elseif @Fs=="sin" z=sin(#z) elseif @Fs=="sinh" z=sinh(#z) elseif @Fs=="asin" z=asin(#z) elseif @Fs=="asinh" z=asinh(#z) elseif @Fs=="versin" z=1-cos(#z) elseif @Fs=="aversin" z=acos(1-#z) elseif @Fs=="haversin" z=(1-cos(#z))/2 elseif @Fs=="ahaversin" z=2*asin(sqrt(#z)) elseif @Fs=="coversin" z=1-sin(#z) elseif @Fs=="acoversin" z=asin(1-#z) elseif @Fs=="hacoversin" z=(1-sin(#z))/2 elseif @Fs=="cos" z=cos(#z) elseif @Fs=="cosh" z=cosh(#z) elseif @Fs=="acos" z=acos(#z) elseif @Fs=="acosh" z=acosh(#z) elseif @Fs=="vercos" z=1+cos(#z) elseif @Fs=="avercos" z=acos(1+#z) elseif @Fs=="havercos" z=(1+cos(#z))/2 elseif @Fs=="ahavercos" z=2*acos(sqrt(#z)) elseif @Fs=="covercos" z=1+sin(#z) elseif @Fs=="acovercos" z=asin(1+#z) elseif @Fs=="hacovercos" z=(1+sin(#z))/2 elseif @Fs=="tan" z=tan(#z) elseif @Fs=="tanh" z=tanh(#z) elseif @Fs=="atan" z=atan(#z) elseif @Fs=="atanh" z=atanh(#z) elseif @Fs=="cotan" z=cotan(#z) elseif @Fs=="cotanh" z=cotanh(#z) elseif @Fs=="acotan" z=atan(1/(#z)) elseif @Fs=="acotanh" z=atanh(1/(#z)) elseif @Fs=="sec" z=1/cos(#z) elseif @Fs=="sech" z=1/cosh(#z) elseif @Fs=="asec" z=acos(1/#z) elseif @Fs=="asech" z=acosh(1/#z) elseif @Fs=="cosec" z=1/sin(#z) elseif @Fs=="cosech" z=1/sinh(#z) elseif @Fs=="acosec" z=asin(1/#z) elseif @Fs=="acosech" z=asinh(1/#z) elseif @Fs=="exsec" z=1/cos(#z)-1 elseif @Fs=="aexsec" z= acos(1/(#z+1)) elseif @Fs=="excosec" z=1/sin(#z)-1 elseif @Fs=="aexcosec" z=asin(1/(#z+1)) elseif @Fs=="crd" z=2*sin(#z/2) elseif @Fs=="acrd" z=2*asin(#z/2) elseif @Fs=="gd" z=asin(tanh(#z)) elseif @Fs=="agd" z=asinh(tan(#z)) elseif @Fs=="sinc" z=sin(#z)/(#z) elseif @Fs=="sinhc" z=sinh(#z)/(#z) elseif @Fs=="cosc" z=cos(#z)/(#z) elseif @Fs=="coshc" z=cosh(#z)/(#z) elseif @Fs=="tanc" z=tan(#z)/(#z) elseif @Fs=="tanhc" z=tanh(#z)/(#z) elseif @Fs=="cotanc" z=cotan(#z)/(#z) elseif @Fs=="cotanhc" z=cotanh(#z)/(#z) elseif @Fs=="secc" z=1/(#z*cos(#z)) elseif @Fs=="sechc" z=1/(#z*cosh(#z)) elseif @Fs=="cosecc" z= 1/(#z*sin(#z)) elseif @Fs=="cosechc" z=1/(#z*sinh(#z)) elseif @Fs=="sqr" z=sqr(#z) elseif @Fs=="sqrt" z=sqrt(#z) elseif @Fs=="cube" z=#z^3 elseif @Fs=="cuberoot" z=#z^(1/3) elseif @Fs=="log" z=log(#z) elseif @Fs=="colog" z=-log(#z) elseif @Fs=="exp" z=exp(#z) elseif @Fs=="abs" z=abs(#z) elseif @Fs=="cabs" z=cabs(#z) elseif @Fs=="conj" z=conj(#z) elseif @Fs=="flip" z=flip(#z) elseif @Fs=="recip" z=recip(#z) elseif @Fs=="logit" z= log(#z/(1-#z)) elseif @Fs=="expit" z=1/(1+exp(-#z)) elseif @Fs=="gauss" z=exp(-sqr(#z)) elseif @Fs=="softplus" z=log(1+exp(#z)) elseif @Fs=="primecount" z=#z/log(#z) elseif @Fs=="ceil" z=ceil(#z) elseif @Fs=="floor" z=floor(#z) elseif @Fs=="trunc" z=trunc(#z) else z=round(#z) endif float x=real(z) float y=imag(z) if @V=="Bogdanov-Takens" b=abs(atan2(y+flip(p1+p2*x+x^2-x*y)-k)) elseif @V=="Cat Map 1" b=abs(atan2((2*x+y)%@m+flip((x+y)%@m)-k)) elseif @V=="Cat Map 2" b=abs(atan2((2*x+y)%@m+flip((x+y+real(p1)*cos(2*pi*x))%@m)-k)) elseif @V=="Cayley" b=abs(atan2((z-sqrt(-1))/(z+sqrt(-1))-k)) elseif @V=="Chebyshev" b=abs(atan2(p1*((z+sqrt(z^2-1))^@e1+(z-sqrt(z^2-1))^@e1)/2-k)) elseif @V=="Circle Map" b=abs(atan2(z+p1-(p2/(2*pi))*sin(2*pi*z)-k)) elseif @V=="Clifford" b=abs(atan2(sin(p1*y)+p3*cos(p1*x)+flip(sin(p2*x)+p4*cos(p2*y))-k)) elseif @V=="de Jong" b=abs(atan2(sin(p1*y)-cos(p2*x)+flip(sin(p3*x)-cos(p4*y))-k)) elseif @V=="Duffing" b=abs(atan2(y+flip(x-x^3-p1*y+p2)-k)) elseif @V=="Gabor" b=abs(atan2(p1*exp(-p2*((z-0.5*p3)/p3)^2)*cos(z*2*p4*pi/p3)-k)) elseif @V=="Gingerbread" b=abs(atan2(1-p1*y+p2*cabs(x)+flip(x)-k)) elseif @V=="Heagy-Hammel" b=abs(atan2(p1*(1-p2*cos(2*pi*y))*x*(1-x)+flip((y+real(p3))%@m)-k)) elseif @V=="Henon" b=abs(atan2(1-p1*x^2+y+flip(p2*x)-k)) elseif @V=="Hopalong" b=abs(atan2(y-sqrt(cabs(p2*x-p3))*x/cabs(x)+flip(p1-x)-k)) elseif @V=="Ikeda" b=abs(atan2(1+p1*(x*cos(0.4-6/(1+x^2+y^2))-y*sin(0.4-6/(1+x^2+y^2)))+flip(p1*(x*sin(0.4-6/(1+x^2+y^2))+y*cos(0.4-6/(1+x^2+y^2))))-k)) elseif @V=="Julia" b=abs(atan2(z^@e2+p1-k)) elseif @V=="Kam Torus" b=abs(atan2(x*cos(p1)+(x^2-y)*sin(p1)+flip(x*sin(p1)-(x^2-y)*cos(p1))-k)) elseif @V=="Lasota" b=abs(atan2(p1*z^@e1*exp(-z)-p2*z-k)) elseif @V=="Latoocarfian" b=abs(atan2(sin(p1*imag(z))+p2*sin(p1*real(z))+flip(sin(p3*x)+p4*sin(p3*y))-k)) elseif @V=="Mackey-Glass 1" b=abs(atan2((p1*z*p2^@e1)/(p2^@e1+z^@e1)-k)) elseif @V=="Mackey-Glass 2" b=abs(atan2(p1*z/(1+z^@e1)-p2*z-k)) elseif @V=="Mandelbrot" b=abs(atan2(z^@e2+pixel-k)) elseif @V=="Martin" b=abs(atan2(y-sin(x)+flip(p1-x)-k)) elseif @V=="Newton" b=abs(atan2(z-p1*(z^@e3-p2)/(z^(@e3-1))-k)) elseif @V=="Perez-Malta-Coutinho" b=abs(atan2((p1-p2*z)*z-p3*z-k)) elseif @V=="Popcorn 1" b=abs(atan2(p1*sin(y+tan(p2*y))+flip(p1*sin(x+tan(p2*x)))-k)) elseif @V=="Popcorn 2" b=abs(atan2(x-p1*sin(y+tan(p2*y))+flip(y-p1*sin(x+tan(p2*x)))-k)) elseif @V=="Sigmoid" b=abs(atan2(recip(1+exp(-p1*z))-k)) elseif @V=="Sine Map" b=abs(atan2(y+flip(p1*sin(x)+p2*y)-k)) elseif @V=="Sine-Sine" b=abs(atan2(sin(x)-sin(2*y)+flip(x)-k)) elseif @V=="Standard Map" b=abs(atan2(x+p1*imag(z)+p2+(p3/(2*pi))*sin(2*pi*x)+flip(p1*y+p2+(p3/(2*pi))*sin(2*pi*x))-k)) elseif @V=="Tent Map" if real(z)<0.5 b=abs(atan2(p1*z-k)) else b=abs(atan2(p1*(1-z)-k)) endif elseif @V=="Tinkerbell" b=abs(atan2(x^2-y^2+p1*x+p2*y+flip(2*x*y-p3*x+p4*y)-k)) elseif @V=="Van der Pol 1" b=abs(atan2(p1*(x-x^3/3-y)+flip(x/p1)-k)) elseif @V=="Van der Pol 2" b=abs(atan2(y+flip(p1*(1-x^2)*y-x)-k)) elseif @V=="OM 1" b=abs(atan2(x-y-ident(x)*(p1*x^2+p2*y^2)+flip(x+y-ident(y)*(p3*x^2+p4*y^2))-k)) elseif @V=="OM 2" b=abs(atan2(x-y-abs(x)*(p1*x^2+p2*y^2)+flip(x+y-abs(y)*(p3*x^2+p4*y^2))-k)) elseif @V=="OM 3" b=abs(atan2(x-y-cos(x)*(p1*x^2+p2*y^2)+flip(x+y-cos(y)*(p3*x^2+p4*y^2))-k)) elseif @V=="OM 4" b=abs(atan2(cos(p1*x)-sin(p2*y)+flip(sin(p3*x)+cos(p4*y))-k)) elseif @V=="OM 5" b=abs(atan2(x-tan(y-p1*sin(y))+flip(y+tan(x+p2*sin(y)))-k)) elseif @V=="OM 6" b=abs(atan2(x-sin(y-p1*y)+flip(y+sin(x+p2*y))-k)) elseif @V=="OM 7" b=abs(atan2(x+p1+p2*sin(x)+p3*cos(y)+flip(y+p4)-k)) else b=abs(atan2(p1*y-exp(x^2)+flip(flip(x)+p2*x*y)-k)) endif if b0 g=true c=(imag(p1)-1)*b+a*imag(p1) endif f=f+1 a=f%real(p1) endif final: if g #index=((real(c)+1)%p2)/p2 else #solid=true endif default: title="Grom Shig Lumati" param p1 default=(3.5,1.03) endparam param p2 caption="Parameter 2" default =0.15 endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc } DistanceEstimationPlus { ;Various modifications of Distance Esimator in Standard.ucl, by Damien Jones. init: a=(0,0) loop: if @Fs=="ident" z=ident(#z) elseif @Fs=="sin" z=sin(#z) elseif @Fs=="sinh" z=sinh(#z) elseif @Fs=="asin" z=asin(#z) elseif @Fs=="asinh" z=asinh(#z) elseif @Fs=="versin" z=1-cos(#z) elseif @Fs=="aversin" z=acos(1-#z) elseif @Fs=="haversin" z=(1-cos(#z))/2 elseif @Fs=="ahaversin" z=2*asin(sqrt(#z)) elseif @Fs=="coversin" z=1-sin(#z) elseif @Fs=="acoversin" z=asin(1-#z) elseif @Fs=="hacoversin" z=(1-sin(#z))/2 elseif @Fs=="cos" z=cos(#z) elseif @Fs=="cosh" z=cosh(#z) elseif @Fs=="acos" z=acos(#z) elseif @Fs=="acosh" z=acosh(#z) elseif @Fs=="vercos" z=1+cos(#z) elseif @Fs=="avercos" z=acos(1+#z) elseif @Fs=="havercos" z=(1+cos(#z))/2 elseif @Fs=="ahavercos" z=2*acos(sqrt(#z)) elseif @Fs=="covercos" z=1+sin(#z) elseif @Fs=="acovercos" z=asin(1+#z) elseif @Fs=="hacovercos" z=(1+sin(#z))/2 elseif @Fs=="tan" z=tan(#z) elseif @Fs=="tanh" z=tanh(#z) elseif @Fs=="atan" z=atan(#z) elseif @Fs=="atanh" z=atanh(#z) elseif @Fs=="cotan" z=cotan(#z) elseif @Fs=="cotanh" z=cotanh(#z) elseif @Fs=="acotan" z=atan(1/(#z)) elseif @Fs=="acotanh" z=atanh(1/(#z)) elseif @Fs=="sec" z=1/cos(#z) elseif @Fs=="sech" z=1/cosh(#z) elseif @Fs=="asec" z=acos(1/#z) elseif @Fs=="asech" z=acosh(1/#z) elseif @Fs=="cosec" z=1/sin(#z) elseif @Fs=="cosech" z=1/sinh(#z) elseif @Fs=="acosec" z=asin(1/#z) elseif @Fs=="acosech" z=asinh(1/#z) elseif @Fs=="exsec" z=1/cos(#z)-1 elseif @Fs=="aexsec" z= acos(1/(#z+1)) elseif @Fs=="excosec" z=1/sin(#z)-1 elseif @Fs=="aexcosec" z=asin(1/(#z+1)) elseif @Fs=="crd" z=2*sin(#z/2) elseif @Fs=="acrd" z=2*asin(#z/2) elseif @Fs=="gd" z=asin(tanh(#z)) elseif @Fs=="agd" z=asinh(tan(#z)) elseif @Fs=="sinc" z=sin(#z)/(#z) elseif @Fs=="sinhc" z=sinh(#z)/(#z) elseif @Fs=="cosc" z=cos(#z)/(#z) elseif @Fs=="coshc" z=cosh(#z)/(#z) elseif @Fs=="tanc" z=tan(#z)/(#z) elseif @Fs=="tanhc" z=tanh(#z)/(#z) elseif @Fs=="cotanc" z=cotan(#z)/(#z) elseif @Fs=="cotanhc" z=cotanh(#z)/(#z) elseif @Fs=="secc" z=1/(#z*cos(#z)) elseif @Fs=="sechc" z=1/(#z*cosh(#z)) elseif @Fs=="cosecc" z= 1/(#z*sin(#z)) elseif @Fs=="cosechc" z=1/(#z*sinh(#z)) elseif @Fs=="sqr" z=sqr(#z) elseif @Fs=="sqrt" z=sqrt(#z) elseif @Fs=="cube" z=#z^3 elseif @Fs=="cuberoot" z=#z^(1/3) elseif @Fs=="log" z=log(#z) elseif @Fs=="colog" z=-log(#z) elseif @Fs=="exp" z=exp(#z) elseif @Fs=="abs" z=abs(#z) elseif @Fs=="cabs" z=cabs(#z) elseif @Fs=="conj" z=conj(#z) elseif @Fs=="flip" z=flip(#z) elseif @Fs=="recip" z=recip(#z) elseif @Fs=="logit" z= log(#z/(1-#z)) elseif @Fs=="expit" z=1/(1+exp(-#z)) elseif @Fs=="gauss" z=exp(-sqr(#z)) elseif @Fs=="softplus" z=log(1+exp(#z)) elseif @Fs=="primecount" z=#z/log(#z) elseif @Fs=="ceil" z=ceil(#z) elseif @Fs=="floor" z=floor(#z) elseif @Fs=="trunc" z=trunc(#z) else z=round(#z) endif if @S==false z=z else z=abs(z) endif float x=real(z) float y=imag(z) if @V=="Burgers" a=@pow*cabs(p1*x-y^2+flip(p2*y+x*y))^(@pow-1)*a+1 elseif @V=="Chirikov Mod" a=@pow*cabs(x+y+(p1/2*pi)*sin(2*pi*x)+flip(x+y+(p1/2*pi)*sin(2*pi*x)-x))^(@pow-1)*a+1 elseif @V=="de Jong" a=(@pow+1)*cabs(sin(p1*y)-cos(p2*x)+flip(sin(p3*x)-cos(p4*y)))*a+1 elseif @V=="Duffing" a=@pow*cabs(y+flip(x-x^3-p1*y+p2))^(@pow-1)*a+1 elseif @V=="Duffing 2" a=@pow*cabs(y+flip(-p1*x-p2*x^3+p3))^(@pow-1)*a+1 elseif @V=="Duffing Mod" a=@pow*cabs(y+flip(-p2*x+p1*y-y^3))^(@pow-1)*a+1 elseif @V=="Duffing Parametric" a=@pow*cabs(y+flip(-x-x^3+(p1+p2*x^2+p3*p4*x)*y+p4*p5))^(@pow-1)*a+1 elseif @V=="Hamilton" a=@pow*cabs(x+p1*p2*sin(2*pi*y)+flip(y-(p1/p2)*sin(2*pi*(x+p1*p2*sin(2*pi*y)))))^(@pow-1)*a+1 elseif @V=="Hamilton Torus" a=(@pow+0.5)*cabs(-sin(y)*(1-p1)+flip(sin(x)*(1+p1)))*a+1 elseif @V=="Henon" a=@pow*cabs(1-p1*x^2+y+flip(p2*x))^(@pow-1)*a+1 elseif @V=="Hopalong" a=@pow*cabs(y-sqrt(cabs(p2*x-p3))*x/cabs(x)+flip(p1-x))^(@pow-1)*a+1 elseif @V=="Hyperbola" a=@pow*cabs(x^2/p1^2-y^2/p2^2-1)^(@pow-1)*a+1 elseif @V=="Ikeda" a=@pow*cabs(p1+p2*(x*cos(p3-p4/(x^2+y^2+1))-y*sin(p3-p4/(x^2+y^2+1)))\ +flip(p2*(x*sin(p3-p4/(x^2+y^2+1))+y*cos(p3-p4/(x^2+y^2+1)))))^(@pow-1)*a+1 elseif @V=="Kam Torus" a=@pow*cabs(x*cos(p1)+(x^2-y)*sin(p1)+flip(x*sin(p1)-(x^2-y)*cos(p1)))^(@pow-1)*a+1 elseif @V=="Martin" a=@pow*cabs(y+sin(x)+flip(p1-x))^(@pow-1)*a+1 elseif @V=="Parabola" a=@pow*cabs(p1*x^2+p2*x+(-2)*p3-y)^(@pow-1)*a+1 elseif @V=="Pendulum Morozov" a=@pow*cabs(y+flip(-sin(x)+y*(p1+p2*cos(p3*x))*(-p4)))^(@pow-1)*a+1 elseif @V=="Pickover 1" a=(@pow+1)*cabs(sin(p1*y)+p3*cos(p1*x)+flip(sin(p2*x)+p4*cos(p2*y)))*a+1 elseif @V=="Pickover 2" a=@pow*cabs(sin(p1*y)+(sin(p1*x))^2+(sin(p1*x))^3+flip(sin(p2*x)+(sin(p2*y))^2+(sin(p3*y))^3))*a+1 elseif @V=="Pickover 3" a=@pow*cabs(sin(p1*y)+(sin(p1*x))^2+flip(sin(p2*x)+(sin(p2*y))^2))*a+1 elseif @V=="Pickover 4" a=@pow*cabs(cabs(sin(p1*y))+(sin(p1*x))^2+flip(cabs(sin(p2*x))+(sin(p2*y))^2))*a+1 elseif @V=="Pickover 5 (Latoocarfian)" a=(@pow+1)*cabs(sin(p1*y)+p2*sin(p1*x)+flip(sin(p3*x)+p4*sin(p3*y)))*a+1 elseif @V=="Pickover 6 (Popcorn)" a=@pow*cabs(x-p1*sin(y+tan(p2*y))+flip(y-p1*sin(x+tan(p2*x))))^(@pow-1)*a+1 elseif @V=="Polyharmonic Pendulum" a=@pow*cabs(y+flip(-p1*sin(x)-p2*sin(3*x)+p3*sin(p4)))^(@pow-1)*a+1 elseif @V=="Popcorn Mod 1" a=@pow*cabs(x-real(p1*tan(y+sin(p2*y)))-imag(p1*tan(x+sin(p2*x)))+flip(y-real(p1*tan(x+sin(p2*x)))-imag(p1*tan(y+sin(p2*y)))))^(@pow-1)*a+1 elseif @V=="Popcorn Mod 2" a=@pow*cabs(x-real(p1*tan(y+sqr(p2*y)))-imag(p1*tan(x+sqr(p2*x)))+flip(y-real(p1*tan(x+sqr(p2*x)))-imag(p1*tan(y+sqr(p2*y)))))^(@pow-1)*a+1 elseif @V=="Popcorn Mod 3" a=@pow*cabs(x-real(p1*flip(y+tan(p2*y)))-imag(p1*flip(x+tan(p2*x)))+flip(y-real(p1*flip(x+tan(p2*x)))-imag(p1*flip(y+tan(p2*y)))))^(@pow-1)*a+1 elseif @V=="Popcorn Mod 4" a=@pow*cabs(x-real(p1*atanh(y+tan(p2*y)))-imag(p1*atanh(x+tan(p2*x)))+flip(y-real(p1*atanh(x+tan(p2*x)))-imag(p1*atanh(y+tan(p2*y)))))^(@pow-1)*a+1 elseif @V=="Sine" a=@pow*cabs(y+flip(p1*sin(x)+p2*y))^(@pow-1)*a+1 elseif @V=="Standard Map" a=@pow*cabs(x+p1*y-p2+(p3/(2*pi))*sin(2*pi*x)+flip(p1*y-p2+(p3/(2*pi))*sin(2*pi*x)))^(@pow-1)*a+1 elseif @V=="Svensson" a=(@pow+1)*cabs(p1*sin(p2*x)-sin(p3*y)+flip(p4*cos(p2*x)-cos(p3*y)))*a+1 elseif @V=="Van der Pol 1" a=@pow*cabs(p1*(x-x^3/3-y)+flip(x/p1))^(@pow-1)*a+1 elseif @V=="Van der Pol 2" a=@pow*cabs(y+flip(p1*(1-x^2)*y-x))^(@pow-1)*a+1 elseif @V=="Van der Pol 3" a=@pow*cabs(y-p1*x*(cabs(x)-1)+flip(-x))^(@pow-1)*a+1 elseif @V=="Van der Pol 4" a=@pow*cabs(y-p1*x*(x^4+x^2-1)/10+flip(-x))^(@pow-1)*a+1 elseif @V=="Van der Pol 5" a=@pow*cabs(y-p1*x*(2*x^2-sin(pi*x)^2-2)+flip(-x))^(@pow-1)*a+1 elseif @V=="Van der Pol 6" a=@pow*cabs(y-p1*(x-cabs(x+1)+cabs(x-1))+flip(-x))^(@pow-1)*a+1 elseif @V=="Van der Pol 7" a=@pow*cabs(y-p1*(cabs(x)*x^3-x)+flip(-x))^(@pow-1)*a+1 elseif @V=="OM1" a=@pow*((x%(2*pi))+(y%(2*pi))+p1*sin(2*pi*(x%(2*pi)))+flip((x%(2*pi))+(y%(2*pi))+p1*sin(2*pi*(x%(2*pi)))-(x%(2*pi))))^(@pow-1)*a+1 elseif @V=="OM2" a=@pow*(x-y-cotan(x)*(p1*x^2+p2*y^2)+flip(x+y-cotan(y)*(p3*x^2+p4*y^2)))^(@pow-1)*a+1 elseif @V=="OM3" a=@pow*(p1*x*cotan(x)-y*log(x)+flip(p2*y*sqr(x)))^(@pow-1)*a+1 elseif @V=="OM4" a=@pow*(p1*x*cotan(x)-y*cotan(x)+flip(p2*y*tan(x)))^(@pow-1)*a+1 elseif @V=="OM5" a=@pow*(x+p1*p2*sin(2*pi*y)+flip(y-(p1/p2)*sin(2*pi*(x+p1*p2*2*pi*y))))^(@pow-1)*a+1 elseif @V=="OM6" a=@pow*(x+p1*p2*cotan(2*pi*y)+flip(y-(p1/p2)*cotan(2*pi*(x+p1*p2*cotanh(2*pi*y)))))^(@pow-1)*a+1 elseif @V=="OM7" a=@pow*(x+p1*p2*cos(2*pi*y)+flip(y-(p1/p2)*cos(2*pi*(x+p1*p2*asinh(2*pi*y)))))^(@pow-1)*a+1 elseif @V=="OM8" a=@pow*(sin(y)+flip(sin(x)+y*(p1-y^2)))^(@pow-1)*a+1 elseif @V=="OM9" a=@pow*(sin(p1*y)+(sin(p1*x))^2+(sin(p1*y))^3+flip(sin(p2*x)+(sin(p2*y))^2+(sin(p2*x))^3))^(@pow-1)*a+1 elseif @V=="OM10" a=@pow*(sin(p1*x)-tan(p2*y)+flip(tan(p3*x)+sin(p4*y)))^(@pow-1)*a+1 elseif @V=="OM11" a=@pow*((p1*tan(y)-p2)/(p1*tan(x)+p2)+flip((p1*tan(x)-p2)/(p1*tan(y)+p2)))^(@pow-1)*a+1 endif final: #index=(@pow*log(cabs(#z))*cabs(#z)/cabs(a))^(1/@pow) default: title="Distance Estimation Plus" param v caption="Variant" enum="Burgers""Chirikov Mod""de Jong""Duffing""Duffing 2""Duffing Mod""Duffing Parametric"\ "Hamilton""Hamilton Torus""Henon""Hopalong""Hyperbola""Ikeda""Kam Torus""Martin""Parabola""Pendulum Morozov"\ "Pickover 1""Pickover 2""Pickover 3""Pickover 4""Pickover 5 (Latoocarfian)"\ "Pickover 6 (Popcorn)""Polyharmonic Pendulum""Popcorn Mod 1""Popcorn Mod 2""Popcorn Mod 3""Popcorn Mod 4""Sine""Standard Map""Svensson""Van der Pol 1""Van der Pol 2"\ "Van der Pol 3""Van der Pol 4""Van der Pol 5""Van der Pol 6""Van der Pol 7""OM1""OM2""OM3""OM4""OM5""OM6""OM7""OM8""OM9""OM10""OM11" default=0 endparam param p1 default=(1,0) visible=@V=="Burgers" || @V=="Chirikov Mod" || @V=="de Jong" || @V=="Duffing" || @V=="Duffing 2" || @V=="Duffing Mod" \ || @V=="Duffing Parametric" || @V=="Hamilton" || @V=="Hamilton Torus" || @V=="Henon" || @V=="Hopalong" || @V=="Hyperbola" || @V=="Ikeda" || @V=="Kam Torus" \ || @V=="Martin" || @V=="Parabola" || @V=="Pendulum Morozov" || @V=="Pickover 1" || @V=="Pickover 2" || @V=="Pickover 3" || @V=="Pickover 4" \ || @V=="Pickover 5 (Latoocarfian)" \ || @V=="Pickover 6 (Popcorn)" || @V=="Polyharmonic Pendulum" || @V=="Popcorn Mod 1" || @V=="Popcorn Mod 2" || @V=="Popcorn Mod 3" || @V=="Popcorn Mod 4" \ || @V=="Sine" || @V=="Standard Map" || @V=="Svensson" || @V=="Van der Pol 1" || @V=="Van der Pol 2" \ || @V=="Van der Pol 3" || @V=="Van der Pol 4" || @V=="Van der Pol 5" || @V=="Van der Pol 6" || @V=="Van der Pol 7" || @V=="OM1" || @V=="OM2" || @V=="OM3" \ || @V=="OM4" || @V=="OM5" || @V=="OM6" || @V=="OM7" || @V=="OM8" || @V=="OM9" || @V=="OM10" || @V=="OM11" endparam param p2 default=(1,0) visible=@V=="Burgers" || @V=="de Jong" || @V=="Duffing" || @V=="Duffing 2" || @V=="Duffing Mod" || @V=="Duffing Parametric" \ || @V=="Hamilton" || @V=="Henon" || @V=="Hopalong" || @V=="Hyperbola" || @V=="Ikeda" || @V=="Parabola" || @V=="Pendulum Morozov" \ || @V=="Pickover 1" || @V=="Pickover 2" || @V=="Pickover 3" || @V=="Pickover 4" || @V=="Pickover 5 (Latoocarfian)" \ || @V=="Pickover 6 (Popcorn)" || @V=="Polyharmonic Pendulum" || @V=="Popcorn Mod 1" || @V=="Popcorn Mod 2" || @V=="Popcorn Mod 3" \ || @V=="Popcorn Mod 4" || @V=="Sine" || @V=="Standard Map" || @V=="Svensson" || @V=="OM2" || @V=="OM3" || @V=="OM4" || @V=="OM5" || @V=="OM6" || @V=="OM7" \ || @V=="OM9" || @V=="OM10" || @V=="OM11" endparam param p3 default=(1,0) visible=@V=="de Jong" || @V=="Duffing 2" || @V=="Duffing Parametric" || @V=="Hopalong" || @V=="Ikeda" \ || @V=="Parabola" || @V=="Pendulum Morozov" || @V=="Pickover 1" \ || @V=="Pickover 2" || @V=="Pickover 5 (Latoocarfian)" \ || @V=="Polyharmonic Pendulum" || @V=="Standard Map" || @V=="Svensson" || @V=="OM2" || @V=="OM10" endparam param p4 default=(1,0) visible=@V=="de Jong" || @V=="Duffing Parametric" || @V=="Ikeda" || @V=="Pendulum Morozov" \ || @V=="Pickover 1" || @V=="Pickover 5 (Latoocarfian)" || @V=="Polyharmonic Pendulum" || @V=="Svensson" || @V=="OM2" || @V=="OM10" endparam param p5 default=(1,0) visible=@V=="Duffing Parametric" endparam param Fs caption="Function" enum="ident""sin""sinh""asin""asinh""versin""aversin""haversin""ahaversin""coversin""acoversin"\ "hacoversin""cos""cosh""acos""acosh""vercos""avercos""havercos""ahavercos""covercos"\ "acovercos""hacovercos""tan""tanh""atan""atanh""cotan""cotanh""acotan""acotanh" \ "sec""sech""asec""asech""cosec""cosech""acosec""acosech""exsec""aexsec"\ "excosec""aexcosec""crd""acrd""gd""agd""sinc""sinhc""cosc""coshc"\ "tanc""tanhc""cotanc""cotanhc""secc""sechc""cosecc""cosechc""sqr""sqrt"\ "cube""cuberoot""log""colog""exp""abs""cabs""conj""flip""recip"\ "logit""expit""gauss""softplus""primecount""ceil""floor""trunc""round" default=0 endparam param pow caption="Exponent" default=2.0 endparam param S caption="Symmetrise" default=false endparam } Exp(-|z|)Variations { ;Please note: This works well with ArcTan Transfer Function. Also Sqrt, CubeRoot and Log. ;Doesn't look so good with the default Linear and the others. init: float a=0.0 loop: if @Fs=="sin" z=sin(#z) elseif @Fs=="sinh" z=sinh(#z) elseif @Fs=="asin" z=asin(#z) elseif @Fs=="asinh" z=asinh(#z) elseif @Fs=="cos" z=cos(#z) elseif @Fs=="cosh" z=cosh(#z) elseif @Fs=="acos" z=acos(#z) elseif @Fs=="acosh" z=acosh(#z) elseif @Fs=="tan" z=tan(#z) elseif @Fs=="tanh" z=tanh(#z) elseif @Fs=="atan" z=atan(#z) elseif @Fs=="atanh" z=atanh(#z) elseif @Fs=="cotan" z=cotan(#z) elseif @Fs=="cotanh" z=cotanh(#z) elseif @Fs=="sqr" z=sqr(#z) elseif @Fs=="sqrt" z=sqrt(#z) elseif @Fs=="log" z=log(#z) elseif @Fs=="exp" z=exp(#z) elseif @Fs=="abs" z=abs(#z) elseif @Fs=="cabs" z=cabs(#z) elseif @Fs=="conj" z=conj(#z) elseif @Fs=="flip" z=flip(#z) elseif @Fs=="ident" z=ident(#z) elseif @Fs=="recip" z=recip(#z) elseif @Fs=="versin" z=1-cos(#z) elseif @Fs=="aversin" z=acos(1-#z) elseif @Fs=="haversin" z=(1-cos(#z))/2 elseif @Fs=="ahaversin" z=2*asin(sqrt(#z)) elseif @Fs=="coversin" z=1-sin(#z) elseif @Fs=="acoversin" z=asin(1-#z) elseif @Fs=="hacoversin" z=(1-sin(#z))/2 elseif @Fs=="vercos" z=1+cos(#z) elseif @Fs=="avercos" z=acos(1+#z) elseif @Fs=="havercos" z=(1+cos(#z))/2 elseif @Fs=="ahavercos" z=2*acos(sqrt(#z)) elseif @Fs=="covercos" z=1+sin(#z) elseif @Fs=="acovercos" z=asin(1+#z) elseif @Fs=="hacovercos" z=(1+sin(#z))/2 elseif @Fs=="acotan" z=atan(1/(#z)) elseif @Fs=="acotanh" z=atanh(1/(#z)) elseif @Fs=="sec" z=1/cos(#z) elseif @Fs=="sech" z=1/cosh(#z) elseif @Fs=="asec" z=acos(1/#z) elseif @Fs=="asech" z=acosh(1/#z) elseif @Fs=="cosec" z=1/sin(#z) elseif @Fs=="cosech" z=1/sinh(#z) elseif @Fs=="acosec" z=asin(1/#z) elseif @Fs=="acosech" z=asinh(1/#z) elseif @Fs=="exsec" z=1/cos(#z)-1 elseif @Fs=="aexsec" z= acos(1/(#z+1)) elseif @Fs=="excosec" z=1/sin(#z)-1 elseif @Fs=="aexcosec" z=asin(1/(#z+1)) elseif @Fs=="crd" z=2*sin(#z/2) elseif @Fs=="acrd" z=2*asin(#z/2) elseif @Fs=="gd" z=asin(tanh(#z)) elseif @Fs=="agd" z=asinh(tan(#z)) elseif @Fs=="sinc" z=sin(#z)/(#z) elseif @Fs=="sinhc" z=sinh(#z)/(#z) elseif @Fs=="cosc" z=cos(#z)/(#z) elseif @Fs=="coshc" z=cosh(#z)/(#z) elseif @Fs=="tanc" z=tan(#z)/(#z) elseif @Fs=="tanhc" z=tanh(#z)/(#z) elseif @Fs=="cotanc" z=cotan(#z)/(#z) elseif @Fs=="cotanhc" z=cotanh(#z)/(#z) elseif @Fs=="secc" z=1/(#z*cos(#z)) elseif @Fs=="sechc" z=1/(#z*cosh(#z)) elseif @Fs=="cosecc" z= 1/(#z*sin(#z)) elseif @Fs=="cosechc" z=1/(#z*sinh(#z)) elseif @Fs=="cube" z=#z^3 elseif @Fs=="cuberoot" z=#z^(1/3) elseif @Fs=="colog" z=-log(#z) elseif @Fs=="logit" z= log(#z/(1-#z)) elseif @Fs=="expit" z=1/(1+exp(-#z)) elseif @Fs=="gauss" z=exp(-sqr(#z)) elseif @Fs=="softplus" z=log(1+exp(#z)) elseif @Fs=="primecount" z=#z/log(#z) elseif @Fs=="sqr+" z=sqr(#z)+#z elseif @Fs=="cube+" z=#z^3+sqr(#z)+#z elseif @Fs=="sin+" z=sin(#z)+#z elseif @Fs=="cos+" z=cos(#z)+#z elseif @Fs=="tan+" z=tan(#z)+#z elseif @Fs=="cotan+" z=cotan(#z)+#z elseif @Fs=="sec+" z=1/cos(#z)+#z elseif @Fs=="cosec+" z=1/sin(#z)+#z elseif @Fs=="sin*" z=sin(#z)*#z elseif @Fs=="cos*" z=cos(#z)*#z elseif @Fs=="tan*" z=tan(#z)*#z elseif @Fs=="cotan*" z=cotan(#z)*#z elseif @Fs=="sec*" z=#z/cos(#z) elseif @Fs=="cosec*" z=#z/sin(#z) elseif @Fs=="loglog" z=log(log(#z)) elseif @Fs=="sinsin" z=sin(sin(#z)) elseif @Fs=="coscos" z=cos(cos(#z)) elseif @Fs=="+pixel" z=#z+pixel elseif @Fs=="-pixel" z=#z-pixel elseif @Fs=="*pixel" z=#z*pixel elseif @Fs=="/pixel" z=#z/pixel elseif @Fs=="ceil" z=ceil(#z) elseif @Fs=="floor" z=floor(#z) elseif @Fs=="trunc" z=trunc(#z) else z=round(#z) endif if @S==true z=abs(z) else z=z endif float x=real(z) float y=imag(z) if @V=="Astroid" z=x^(2/3)+y^(2/3)-p1^(2/3) elseif @V=="Bean Curve" z=x^4+x^2*y^2+y^4-x*(x^2+y^2) elseif @V=="Bicorn" z=y^2*(p1^2-x^2)-(x^2+2*p1*y-p1^2)^2 elseif @V=="Bifolium" z=(x^2+y^2)^2-4*p1*x*y^2 elseif @V=="Bow Curve" z=x^4-x^2*y+y^3 elseif @V=="Butterfly Curve" z=x^6+y^6-x^2 elseif @V=="Cardioid" z=(x^2+y^2-2*p1*x)^2-4*p1^2*(x^2+y^2) elseif @V=="Cartesian Oval" z=((1-p1^2)*(x^2+y^2)+2*p1^2*p2*x+p3^2-p1^2*p2^2)^2-4*p3^2*(x^2+y^2) elseif @V=="Cassinian Oval" z=((x-p1)^2+y^2)*((x+p1)^2+y^2)-p2^4 elseif @V=="Catenary" z=y-p1*cosh(x/p1) elseif @V=="Cayley's Sextic" z=4*(x^2+y^2-p1*x)^3-27*p1^2*(x^2+y^2)^2 elseif @V=="Cissoid of Diocles" z=(x^2+y^2)*x-2*p1*y^2 elseif @V=="Cochleoid" z=(x^2+y^2)*atan(y/x)-p1*y elseif @V=="Conchoid of de Sluze" z=p1*(x-p1)*(x^2+y^2)-p2*x^2 elseif @V=="Conchoid of Nicomedes" z=(x-p1)^2*(x^2+y^2)-p2^2*x^2 elseif @V=="Cornoid" z=-4*p1^6+3*p1^2*x^4+x^6+8*p1^4*y^2-6*p1^2*x^2*y^2+3*x^4*y^2-5*p1^2*y^4+3*x^2*y^4+y^6 elseif @V=="Deltoid" z=(x^2+y^2)^2-8*(p1-0.5)*x*(x^2-3*y^2)+18*(p1-0.5)^2*(x^2+y^2)-27*(p1-0.5)^4 elseif @V=="Devil's Curve" z=y^2*(y^2-p1^2)-x^2*(x^2-p2^2) elseif @V=="Durer's Conchoid" z=2*y^2*(x^2+y^2)-2*p2*y^2*(x+y)+y^2*(p2^2-3*p1^2)-p1^2*x^2+2*p1^2*p2*(x+y)+p1^2*(p1^2-p2^2) elseif @V=="Eight Curve" z=x^4-p1^2*(x^2-y^2) elseif @V=="Ellipse" z=x^2/p1^2+y^2/p2^2-1 elseif @V=="Folium" z=(x^2+y^2)*(x*(x+p2)+y^2)-4*p1*x*y^2 elseif @V=="Folium of Descartes" z=x^3+y^3-3*p1*x*y elseif @V=="Hyperbola" z=x^2/p1^2-y^2/p2^2-1 elseif @V=="Kampyle of Eudoxus" z=p1^2*x^4-p2^4*(x^2+y^2) elseif @V=="Kappa Curve" z=x^2*(x^2+y^2)-p1^2*y^2 elseif @V=="Kieroid" z=y^2*(x-p1)^2+x^2*(x-p2)^2-p3^2*x^2 elseif @V=="Lemniscate of Bernoulli" z=(x^2+y^2)^2-2*p1^2*(x^2-y^2) elseif @V=="Limacon of Pascal" z=(x^2+y^2-2*p1*x)^2-p2^2*(x^2+y^2) elseif @V=="Nephroid" z=(x^2+y^2-4*(p1-0.5)^2)^3-108*(p1-0.5)^4*y^2 elseif @V=="Newton's Diverging Parabolas" z=p1*y^2-x*(x^2-2*p2*x+p3) elseif @V=="Oblique Strophoid" z=y*(x^2+y^2)-p1*(x^2-y^2)-2*p2*x*y elseif @V=="Parabola" z=y-p1*x^2-p2*x-p3 elseif @V=="Pear-Shaped Quartic" z=p1^2*y^2-x^3*(p2-x) elseif @V=="Pearls of Sluze" z=y^p1-p2*x^p3*(p4-x)^p5 elseif @V=="Quadrifolium" z=(x^2+y^2)^3-4*p1^2*x^2*y^2 elseif @V=="Right Strophoid" z=y^2-x^2*(p1-x)/(p1+x) elseif @V=="Serpentine Curve" z=x^2*y+p1^2*y-p1*p2*x elseif @V=="Spiric Section" z=(x^2+y^2-p1^2+p2^2+p3^2)^2-4*p2^2*(x^2+p3^2) elseif @V=="Superellipse" z=cabs(x/p1)^p3+cabs(y/p2)^p3-1 elseif @V=="Trident Curve" z=p1*x^3+p2*x^2+p3*x+p4-x*y elseif @V=="Trifolium" z=(x^2+y^2)*(y^2+x*(x+p1))-4*p1*x*y^2 elseif @V=="Trisectrix of Maclaurin" z=y^2*(p1+x)-x^2*(3*p1-x) elseif @V=="Tschirnhaus’s Cubic" z=3*p1*y^2-x*(x-p1)^2 elseif @V=="Witch of Agnesi" z=y*(x^2+p1^2)-p1^3 elseif @V=="Cat Map" z=(2*x+y)%1+flip((x+y)%1) elseif @V=="Chip" z=y-(x/cabs(x))*cos(sqr(log(abs(p2*x-p3))))*atan(sqr(log(abs(p3*x-p2))))+flip(p1-x) elseif @V=="Clifford" z=sin(p1*y)+p3*cos(p1*x)+flip(sin(p2*x)+p4*cos(p2*y)) elseif @V=="de Jong" z=sin(p1*y)-cos(p2*x)+flip(sin(p3*x)-cos(p4*y)) elseif @V=="Duffing" z=y+flip(-p2*x+p1*y-y^3) elseif @V=="Gingerbread" z=1-y+cabs(x)+flip(x) elseif @V=="Gumowski-Mira" z=y+p1*(1-0.05*y^2)*y+p2*x+2*(1-p2)*x^2/(1+x^2)\ +flip(-x+p2*(y+p1*(1-0.05*y^2)*y+p2*x+2*(1-p2)*x^2/(1+x^2))\ +2*(1-p2)*(y+p1*(1-0.05*y^2)*y+p2*x+2*(1-p2)*x^2/(1+x^2))^2/\ (1+(y+p1*(1-0.05*y^2)*y+p2*x+2*(1-p2)*x^2/(1+x^2))^2)) elseif @V=="Hamilton" z=x+p1*p2*sin(2*pi*y)+flip(y-(p1/p2)*sin(2*pi*(x+p1*p2*sin(2*pi*y)))) elseif @V=="Henon" z=1-p1*x^2+y+flip(p2*x) elseif @V=="Henon-Heiles" z=-p1*x-p2*x*y+flip(-p3*y-p4*x^2+p5*y^2) elseif @V=="Hopalong" z=y-sqrt(cabs(p2*x-p3))*x/cabs(x)+flip(p1-x) elseif @V=="Ikeda" z=p1+p2*(x*cos(p3-p4/(x^2+y^2+1))-y*sin(p3-p4/(x^2+y^2+1))) \ +flip(p2*(x*sin(p3-p4/(x^2+y^2+1))+y*cos(p3-p4/(x^2+y^2+1)))) elseif @V=="Kam Torus" z=x*cos(p1)+(x^2-y)*sin(p1)+flip(x*sin(p1)-(x^2-y)*cos(p1)) elseif @V=="Kaplan-Yorke" z=real(p1)*x%1+flip(-p2*y+cos(2*pi*x)) elseif @V=="Latoocarfian" z=sin(p1*y)+p2*sin(p1*x)+flip(sin(p3*x)+p4*sin(p3*y)) elseif @V=="Lozi" z=1-p1*cabs(x)+y+flip(p2*x) elseif @V=="Martin" z=y+sin(x)+flip(p1-x) elseif @V=="Popcorn" z=x-p1*sin(y+tan(p2*y))+flip(y-p1*sin(x+tan(p2*x))) elseif @V=="Quadruptwo" z=y-(x/cabs(x))*sin(log(abs(p2*x-p3)))*atan(sqr(log(abs(p3*x-p2))))+flip(p1-x) elseif @V=="Standard Map" z=x+p1*y-p2+(p3/(2*pi))*sin(2*pi*x)+flip(p1*y-p2+(p3/(2*pi))*sin(2*pi*x)) elseif @V=="Threeply" z=y-(x/cabs(x))*(abs(sin(x)*cos(p1)+p2-x*sin(p1+p2+p3)))+flip(p3-x) elseif @V=="Tinkerbell" z=x^2-y^2+p1*x+p2*y+flip(2*x*y-p3*x+p4*y) elseif @V=="Ushiki" z=(p1-x-p2*y)*x+flip((p3-y-p4*x)*y) elseif @V=="Van der Pol" z=p1*(x-x^3/3-y)+flip(x/p1) elseif @V=="Volterra-Lotka" z=p1*x-p2*x*y+flip(-p3*y+p4*x*y) elseif @V=="OM1" z=(x^2-y^2)*(x^2+y^2)^2-2*p1*x*y*(x-p1^2) elseif @V=="OM2" z=p1*sin(x^2+y^2)+p2*x*(x^2-y^2)-2*p1*x*y*(p1^2-p2^2) elseif @V=="OM3" z=sin(x)^3+sin(y)^3-p1 elseif @V=="OM4" z=((p1*p2-x)^2+(p2-y)^2)/p3^2-1 elseif @V=="OM5" z=p1*y-p2/(x*cos(x))+p3/(x*cos(y)) elseif @V=="OM6" z=((p1*p2-x*y)^3+(p2*p3-(X^2+y^2)^2)) elseif @V=="OM7" z=y^2+x^2-((x+(p3*(x-p1))/sqrt((x-p1)^2+(y-p2)^2))-(y+(p3*(y-p2))/sqrt((x-p1)^2+(y-p2)^2))) elseif @V=="OM8" z=x^2-4*p1*y*(x^2+y^2)+y^3*p1^2*(x^2-y^2)^4 elseif @V=="OM9" z=y-x*(x^4-p1)*(x^2+y^2)^2 elseif @V=="OM10" z=(x%(2*pi))+(y%(2*pi))+p1*sin(2*pi*(x%(2*pi)))+flip((x%(2*pi))+(y%(2*pi))+p1*sin(2*pi*(x%(2*pi)))-(x%(2*pi))) elseif @V=="OM11" z=x-y-cotan(x)*(p1*x^2+p2*y^2)+flip(x+y-cotan(y)*(p3*x^2+p4*y^2)) elseif @V=="OM12" z=x+p1*p2*sin(2*pi*y)+flip(y-(p1/p2)*sin(2*pi*(x+p1*p2*2*pi*y))) elseif @V=="OM13" z=x+p1*p2*cotan(2*pi*y)+flip(y-(p1/p2)*cotan(2*pi*(x+p1*p2*cotanh(2*pi*y)))) elseif @V=="OM14" z=x+p1*p2*cos(2*pi*y)+flip(y-(p1/p2)*cos(2*pi*(x+p1*p2*asinh(2*pi*y)))) elseif @V=="OM15" z=x+y+(p1/2*pi)*sin(2*pi*x)+flip(x+y+(p1/2*pi)*sin(2*pi*x)-x) elseif @V=="OM16" z=sin(y)+flip(sin(x)+y*(p1-y^2)) elseif @V=="OM17" z=sin(p1*y)+(sin(p1*x))^2+(sin(p1*y))^3+flip(sin(p2*x)+(sin(p2*y))^2+(sin(p2*x))^3) elseif @V=="OM18" z=sin(p1*x)-tan(p2*y)+flip(tan(p3*x)+sin(p4*y)) elseif @V=="OM19" z=(p1*tan(y)-p2)/(p1*tan(x)+p2)+flip((p1*tan(x)-p2)/(p1*tan(y)+p2)) elseif @V=="OM20" z=sin(p1*y)-p3*tan(p1*x)+flip(sin(p2*x)-p4*tan(p2*y)) endif a=a+exp(-cabs(z)) final: #index=@adj*a default: title = "Exp(-|z|) Variations" param V caption="Variant" enum="Astroid""Bean Curve""Bicorn""Bifolium""Bow Curve""Butterfly Curve""Cardioid""Cartesian Oval""Cassinian Oval""Catenary"\ "Cayley's Sextic""Cissoid of Diocles""Cochleoid""Conchoid of de Sluze""Conchoid of Nicomedes""Cornoid""Deltoid"\ "Devil's Curve""Durer's Conchoid""Eight Curve""Ellipse""Folium""Folium of Descartes""Hyperbola""Kampyle of Eudoxus""Kappa Curve""Kieroid"\ "Lemniscate of Bernoulli""Limacon of Pascal""Nephroid""Newton's Diverging Parabolas""Oblique Strophoid""Parabola""Pear-Shaped Quartic"\ "Pearls of Sluze""Quadrifolium""Right Strophoid""Serpentine Curve""Spiric Section""Superellipse""Trident Curve""Trifolium"\ "Trisectrix of Maclaurin""Tschirnhaus’s Cubic""Witch of Agnesi""Cat Map""Chip""Clifford""de Jong""Duffing""Gingerbread""Gumowski-Mira""Hamilton"\ "Henon""Henon-Heiles""Hopalong""Ikeda""Kam Torus""Kaplan-Yorke""Latoocarfian""Lozi""Martin""Popcorn"\ "Quadruptwo""Standard Map""Threeply""Tinkerbell""Ushiki""Van der Pol""Volterra-Lotka""OM1""OM2""OM3""OM4""OM5""OM6""OM7""OM8""OM9""OM10""OM11""OM12""OM13""OM14""OM15"\ "OM16""OM17""OM18""OM19""OM20" default=0 endparam param p1 caption="Parameter" default=(1,0) visible=@V=="Astroid" || @V=="Bicorn" || @V=="Bifolium" || @V=="Cardioid" || @V=="Catenary" || @V=="Cartesian Oval" || @V=="Cassinian Oval" \ || @V=="Cayley's Sextic" || @V=="Cissoid of Diocles" || @V=="Cochleoid" || @V=="Conchoid of de Sluze" || @V=="Conchoid of Nicomedes" \ || @V=="Cornoid" || @V=="Deltoid" || @V=="Devil's Curve" || @V=="Durer's Conchoid" || @V=="Eight Curve" || @V=="Ellipse" || @V=="Folium" \ || @V=="Folium of Descartes" || @V=="Hyperbola" || @V=="Kampyle of Eudoxus" || @V=="Kappa Curve" || @V=="Kieroid" || @V=="Lemniscate of Bernoulli" \ || @V=="Limacon of Pascal" || @V=="Nephroid" || @V=="Newton's Diverging Parabolas" || @V=="Oblique Strophoid" || @V=="Parabola" \ || @V=="Pear-Shaped Quartic" || @V=="Pearls of Sluze" || @V=="Quadrifolium" || @V=="Right Strophoid" \ || @V=="Serpentine Curve" || @V=="Spiric Section" || @V=="Superellipse" || @V=="Trident Curve" \ || @V=="Trifolium" || @V=="Trisectrix of Maclaurin" || @V=="Tschirnhaus’s Cubic" || @V=="Witch of Agnesi" || @V=="Chip" || @V=="Clifford" || @V=="de Jong" || @V=="Duffing" || @V=="Gumowski-Mira" \ || @V=="Hamilton" || @V=="Henon" || @V=="Henon-Heiles" || @V=="Hopalong" || @V=="Ikeda" || @V=="Kam Torus" || @V=="Kaplan-Yorke" || @V=="Latoocarfian" || @V=="Lozi" || @V=="Martin" || @V=="Popcorn" || @V=="Quadruptwo" \ || @V=="Standard Map" || @V=="Threeply" || @V=="Tinkerbell" || @V=="Ushiki" || @V=="Van der Pol" || @V=="Volterra-Lotka" || @V=="OM1" || @V=="OM2" || @V=="OM3" || @V=="OM4" || @V=="OM5" \ || @V=="OM6" || @V=="OM7" || @V=="OM8" || @V=="OM9" || @V=="OM10" || @V=="OM11" || @V=="OM12" || @V=="OM13" || @V=="OM14" || @V=="OM15" \ || @V=="OM16" || @V=="OM17" || @V=="OM18" || @V=="OM19" || @V=="OM20" endparam param p2 default=(1,0) visible=@V=="Cartesian Oval" || @V=="Cassinian Oval" || @V=="Conchoid of de Sluze" || @V=="Conchoid of Nicomedes" || @V=="Devil's Curve" \ || @V=="Durer's Conchoid" || @V=="Ellipse" || @V=="Folium" || @V=="Gumowski-Mira" || @V=="Hyperbola" \ || @V=="Kampyle of Eudoxus" || @V=="Kieroid" || @V=="Limacon of Pascal" || @V=="Newton's Diverging Parabolas" \ || @V=="Oblique Strophoid" || @V=="Parabola" || @V=="Pear-Shaped Quartic" || @V=="Serpentine Curve" \ || @V=="Spiric Section" || @V=="Superellipse" || @V=="Trident Curve" \ || @V=="Chip" || @V=="Clifford" || @V=="de Jong" || @V=="Duffing" || @V=="Hamilton" || @V=="Henon" || @V=="Henon-Heiles" || @V=="Hopalong" \ || @V=="Ikeda" || @V=="Kaplan-Yorke" || @V=="Latoocarfian" || @V=="Lozi" || @V=="Pearls of Sluze" || @V=="Popcorn" || @V=="Quadruptwo" \ || @V=="Standard Map" || @V=="Threeply" || @V=="Tinkerbell" || @V=="Ushiki" || @V=="Volterra-Lotka" || @V=="OM2" || @V=="OM4" || @V=="OM5" || @V=="OM6" \ || @V=="OM7" || @V=="OM11" || @V=="OM12" \ || @V=="OM13" || @V=="OM14" || @V=="OM17" || @V=="OM18" || @V=="OM19" || @V=="OM20" endparam param p3 default=(1,0) visible=@V=="Cartesian Oval" || @V=="Kieroid" || @V=="Newton's Diverging Parabolas" || @V=="Parabola" || @V=="Pearls of Sluze" \ || @V=="Spiric Section" || @V=="Superellipse" || @V=="Trident Curve" || @V=="Chip" || @V=="Clifford" || @V=="de Jong" || @V=="Henon-Heiles" \ || @V=="Hopalong" || @V=="Ikeda" || @V=="Latoocarfian" || @V=="Quadruptwo" \ || @V=="Standard Map" || @V=="Threeply" || @V=="Tinkerbell" || @V=="Ushiki" || @V=="Volterra-Lotka" || @V=="OM4" || @V=="OM5" || @V=="OM6" \ || @V=="OM7" || @V=="OM11" || @V=="OM18" || @V=="OM20" endparam param p4 default=(1,0) visible=@V=="Trident Curve" || @V=="Clifford" || @V=="de Jong" || @V=="Ikeda" || @V=="Latoocarfian" || @V=="Pearls of Sluze" \ || @V=="Henon-Heiles" || @V=="Tinkerbell" || @V=="Ushiki" || @V=="Volterra-Lotka" || @V=="OM11" || @V=="OM18" || @V=="OM20" endparam param p5 default=(1,0) visible=@V=="Pearls of Sluze" || @V=="Henon-Heiles" endparam param Fs caption="Function" enum="sin""sinh""asin""asinh""cos""cosh""acos""acosh""tan""tanh""atan"\ "atanh""cotan""cotanh""sqr""sqrt""log""exp""abs""cabs""conj"\ "flip""ident""recip""versin""aversin""haversin""ahaversin""coversin""acoversin"\ "hacoversin""vercos""avercos""havercos""ahavercos""covercos"\ "acovercos""hacovercos""acotan""acotanh" \ "sec""sech""asec""asech""cosec""cosech""acosec""acosech""exsec""aexsec"\ "excosec""aexcosec""crd""acrd""gd""agd""sinc""sinhc""cosc""coshc"\ "tanc""tanhc""cotanc""cotanhc""secc""sechc""cosecc""cosechc"\ "cube""cuberoot""colog""logit""expit""gauss""softplus"\ "primecount""sqr+""cube+""sin+""cos+""tan+""cotan+""sec+""cosec+""sin*""cos*""tan*""cotan*""sec*"\ "cosec*""loglog""sinsin""coscos""+pixel""-pixel"\ "*pixel""/pixel""ceil""floor""trunc""round" default=22 endparam param adj caption="Adjustment" default=1.0 endparam param S caption="Symmetrise" default=false endparam } Chopper { init: float a=0.0 float b=1.0e12 loop: if @V==0 z=p1*flip(#z)+p2 elseif @V==1 z=p1*conj(#z)+p2 elseif @V==2 z=p1*cabs(#z)+p2 elseif @V==3 z=p1*abs(#z)+p2 elseif @V==4 z=p1*sqr(#z)+p2 elseif @V==5 z=p1*sin(#z)+p2 elseif @V==6 z=p1*sinh(#z)+p2 elseif @V==7 z=p1*asin(#z)+p2 else z=p1*asinh(#z)+p2 endif z=abs(z) a=cabs(z-round(#z)) if a1 #solid=true endif #index=a default: title="Pipodi Macku" param V caption="Variant" enum="Hamilton Torus""Kam Torus""Kaplan-Yorke""Latoocarfian""OM1""OM2""OM3""OM4""OM5""OM6""OM7""OM8"\ "OM9""OM10""OM11""OM12""OM13""OM14""OM15""OM16""OM17""OM18""OM19""OM20""OM21""OM22""OM23""OM24""OM25""OM26""OM27""Pendulum"\ "Pendulum Damped""Pendulum Morozov""Pendulum Polyharmonic""Pickover""Pickover 2""Pickover 3""Popcorn""Svensson" default=0 endparam param F caption="Function" enum="half""crd""acrd""gd""agd""sin""sinh""asin""asinh""tan""tanh""atan""atanh""sqr""sqrt""conj""flip""ident" default=17 endparam param p1 caption="Parameter" default=(-0.1,0) endparam param p2 default=(1.4,0) visible=@V=="Kaplan-Yorke" || @V=="Latoocarfian" || @V=="OM1" || @V=="OM2" || @V=="OM5" || @V=="OM6" || @V=="OM7" || @V=="OM8" \ || @V=="OM9" || @V=="OM10" || @V=="OM11" || @V=="OM12" || @V=="OM13" || @V=="OM14" || @V=="OM15" || @V=="OM16" || @V=="OM17" || @V=="OM20" \ || @V=="OM21" || @V=="OM22" || @V=="OM23" || @V=="OM24"|| @V=="OM25" || @V=="OM26" || @V=="OM27" || @V=="Pendulum Damped" || @V=="Pendulum Morozov" \ || @V=="Pendulum Polyharmonic" || @V=="Pickover" || @V=="Pickover 2" || @V=="Pickover 3" || @V=="Popcorn" || @V=="Svensson" endparam param p3 default=(1,0) visible=@V=="Latoocarfian" || @V=="OM1" || @V=="OM8" || @V=="OM11" || @V=="OM12" || @V=="OM13" || @V=="OM14" || @V=="OM15" || @V=="OM16" \ || @V=="OM23" || @V=="OM24"|| @V=="OM25" || @V=="OM26" || @V=="OM27" || @V=="Pendulum Morozov" || @V=="Pendulum Polyharmonic" \ || @V=="Pickover" || @V=="Svensson" endparam param p4 default=(1,0) visible=@V=="Latoocarfian" || @V=="OM1" || @V=="OM8" || @V=="OM11" || @V=="OM12" || @V=="OM13" || @V=="OM14" || @V=="OM15" || @V=="OM16" \ || @V=="OM23" || @V=="OM24"|| @V=="OM25" || @V=="OM26" || @V=="OM27" || @V=="Pendulum Morozov" || @V=="Pendulum Polyharmonic" || @V=="Svensson" endparam param S caption="Symmetrise" default=false endparam } Altherim { init: a=(0.0) float b=0.0 float c=0.0 float d=0.0 float k=0.0 loop: z=abs(fn1(#z)) float x=real(z) float y=imag(z) if @V=="Cat Map" a=(2*x+y)%@M+flip((x+y)%@M) elseif @V=="Hamilton" a=x+p1*p2*sin(2*pi*y)+flip(y-(p1/p2)*sin(2*pi*(x+p1*p2*sin(2*pi*y)))) elseif @V=="Hamilton Torus" a=-sin(y)*(1-(p1+0.5))+flip(sin(x)*(1+(p1+0.5))) elseif @V=="HCA" a=1-p1*x^2+p2*(y^2-x^2)+flip(1-p1*y^2+p2*(x^2-y^2)) elseif @V=="Latoocarfian" a=sin(p1*y)+p2*sin(p1*x)+flip(sin(p3*x)+p4*sin(p3*y)) elseif @V=="Popcorn" a=x-p1*sin(y+tan(p2*y))+flip(y-p1*sin(x+tan(p2*x))) elseif @V=="Svensson" a=(p1+1)*sin((p2+1)*x)-sin(p3*y)+flip(p4*cos((p2+1)*x)-cos(p3*y)) elseif @V=="OM1" a=x+p1*(tan(p2*x)+tan(p3*y))+flip(y+p1*(tan(p2*y)-tan(p3*x))) elseif @V=="OM2" a=x+p1*(tan(p2*x)+cotan(p3*y))+flip(y+p1*(tan(p2*y)-cotan(p3*x))) elseif @V=="OM3" a=x+p1*(asin(p2*y)^2)+flip(y+p1*(asin(p2*x)^2)) elseif @V=="OM4" a=x+p1*(tanh(p2*y)^2)+flip(y+p1*(cosh(p2*x)^2)) elseif @V=="OM5" a=x+p1*tan(y+tan(p2*y))+flip(y+p1*tan(x*tan(p2*x))) elseif @V=="OM6" a=x+p1*asin(y+tan(p2*y))+flip(y+p1*asin(x*tan(p2*x))) elseif @V=="OM7" a=a=x+p1*p2*cos(2*pi*y)+flip(y-(p1/p2)*sin(2*pi*(x+p1*p2*sin(2*pi*y)))) elseif @V=="OM8" a=(real(p1)*x+real(p2)*y)%@M+flip((real(p1)*x/2+real(p3)*y)%@M) elseif @V=="OM9" a=p1*x+flip(-p1*y+p2*sin(2*pi*x)) elseif @V=="OM10" a=x+y+(p1/2*pi)*sin(2*pi*x)+flip(x+y+(p1/2*pi)*sin(2*pi*x)-x) endif b=|a| d=b^2 c=@adj1*d k=k+log(c) final: #index=@adj2*k/#numiter default: title="Altherim" param V caption="Variant" enum="Cat Map""Hamilton""Hamilton Torus""HCA""Latoocarfian""Popcorn""Svensson"\ "OM1""OM2""OM3""OM4""OM5""OM6""OM7""OM8""OM9""OM10" default=0 endparam param p1 default=(1,0) visible=@V!="Cat Map" endparam param p2 default=(1,0) visible=@V!="Cat Map" && @V!="Hamilton Torus" && @V!="OM10" endparam param p3 default=(1,0) visible=@V=="Latoocarfian" || @V=="Svensson" endparam param p4 default=(1,0) visible=@V=="Latoocarfian" || @V=="Svensson" endparam param M caption="Modulus" default=2.25 visible=@V=="Cat Map" endparam param adj1 caption="Adjustment 1" default=1.0 endparam param adj2 caption="Adjustment 2" default=0.2 endparam func fn1 caption="Function" default=ident() endfunc } Batrengli { ; A modification of Pseudo Lyapunov in mt.ucl init: a=(0,0) b=(0,0) float c=0.0 float d=0.0 float f=0.0 float k=0.0 loop: z=abs(fn1(#z)) x=real(z) y=imag(z) a=sin(p1*y)+p2*sin(p1*x)+flip(sin(p3*x)+p4*sin(p3*y)) b=sin(p1*y)+(sin(p1*x))^2+flip(sin(p2*x)+(sin(p2*y))^2) c=|fn2(a)-fn2(b)| f=c^2 d=p5*f k=k+log(d) final: #index=p6*k/#numiter default: title="Batrengli" func fn1 default=ident() endfunc func fn2 default=ident() endfunc param p1 default=(1,0) endparam param p2 default=(1,0) endparam param p3 default=(1,0) endparam param p4 default=(1,0) endparam param p5 caption="Adjustment 1" default=1.0 endparam param p6 caption="Adjustment 2" default=-0.105 endparam } Algoroid{ ; A modification of Triangle Inequality Average by Damien Jones/Kerry Mitchell init: float a=0.0 float b=0.0 float c=cabs(pixel) float d=1/log(@p7) float f=log(log(1)/2) float g=0.0 float h=0.0 float k=0.0 bool first=true loop: z=fn1(#z) x=real(z) y=imag(z) if @V=="Astroid" z=x^(2/3)+y^(2/3)-p1^(2/3) elseif @V=="Atriphthaloid" z=x^4*(x^2+y^2)-(p2*x^2-p1^3)^2 elseif @V=="Cardioid" z=(x^2+y^2-2*p1*x)^2-4*p1^2*(x^2+y^2) elseif @V=="Cissoid 1" z=y^2-x^3/(2*p1-x) elseif @V=="Cissoid 2" z=y^2*(2*p1-x)-x^8 elseif @V=="Cissoid 3" z=p3*x^2+2*p4*x*y+(p5+1)*y^2-2*p1*x-2*p2*y elseif @V=="Cissoid 4" z=(x^2+y^2)*(x*cos(p2)+y*sin(p2))-2*p1*y^2 elseif @V=="Clinoid" z=y-p2*e^(x/p1)-p3*e^(-x/p1) elseif @V=="Cochleoid" z=(x^2+y^2)*atan(y/x)-p1*y elseif @V=="Conchoid 1" z=(x^2+y^2+p3^2-p2^2)^2*(y^2+(x+p1)^2)-4*p3^2*(x*(x+p1)+y^2)^2 elseif @V=="Conchoid 2" z=(x-p2)^2*(x^2+y^2)-p1^2*x^2 elseif @V=="Conchoid 3" z=p1*(x+p1)*(x^2+y^2)-p2^2*x^2 elseif @V=="Cornoid 1" z=(x^2+y^2)^3+p1^2*(3*x^4-6*x^2*y^2-5*y^4)+8*p1^4*y^2-4*p1^6 elseif @V=="Cornoid 2" z=x^6+y^6+3*x^4*y^2+3*x^2*y^4+3*x^4-5*y^4+8*y^2-4 elseif @V=="Cycloid" z=x-p1*recip(cos(1-y/p1))+sqrt(y*(2^p1-y)) elseif @V=="Deltoid 1" z=(x^2+y^2+12*p1*x+9*p1^2)-4*p1*(2*x+3*p1)^3 elseif @V=="Deltoid 2" z=(x^2+y^2)^2+18*p1^2*(x^2+y^2)-27*p1^4-8*p1*x*(x^2-3*y^2) elseif @V=="Kieroid" z=y^2*(x-p1)^2+x^2*(x-p2)^2-p3^2*x^2 elseif @V=="Nephroid 1" z=(x^2+y^2-4*p1^2)^3-108*p1^4*x^2 elseif @V=="Nephroid 2" z=(x^2+y^2)*(x*2+y^2-p1^2)^2-4*p1^2*(x^2+y^2-p1*x)^2 elseif @V=="Nephroid 3" z=(p1^2-4*(x^2+y^2))^3-108*p1^2*x^2*(x^2+y^2) elseif @V=="Strophoid 1" z=y*(x^2+y^2)-p1*(x^2-y^2)-2*p2*x*y elseif @V=="Strophoid 2" z=y^2-x^2*(p1-x)/(p1+x) elseif @V=="Scyphoid" z=x^4-y^4-4*p1*x*y^2 endif b=a if !first g=cabs(z-pixel) h=abs(g-c) a=a+((cabs(z)-h)/(g+c-h)) else first=false endif final: a=a/#numiter b=b/(#numiter-1) k=d*f-d*log(log(cabs(z))) #index =b+(a-b)*(k+1) default: title="Algoroid" param V caption="Variant" enum="Astroid""Atriphthaloid""Cardioid""Cissoid 1""Cissoid 2""Cissoid 3""Cissoid 4""Clinoid""Cochleoid"\ "Conchoid 1""Conchoid 2""Conchoid 3""Cornoid 1" "Cornoid 2""Cycloid""Deltoid 1""Deltoid 2"\ "Kieroid""Nephroid 1""Nephroid 2""Nephroid 3""Strophoid 1""Strophoid 2""Scyphoid" default=0 endparam param p1 default=(1,0) visible=@V!="Cornoid 2" endparam param p2 default=(1,0) visible=@V=="Atriphthaloid" || @V=="Cissoid 3" || @V=="Cissoid 4" || @V=="Clinoid" || @V=="Conchoid 1" \ || @V=="Conchoid 2" || @V=="Conchoid 3" || @V=="Kieroid" || @V=="Strophoid 1" endparam param p3 default=(1,0) visible=@V=="Cissoid 3" || @V=="Conchoid 1" || @V=="Kieroid" endparam param p4 default=(1,0) visible=@V=="Cissoid 3" endparam param p5 default=(1,0) visible=@V=="Cissoid 3" endparam func fn1 caption="Function" default=ident() endfunc param p7 caption="Adjustment" default=2.0 endparam } Abracadabra { init: a=(0,0) float c=0.0 float d=0.0 float f=0.0 float k=0.0 loop: z=abs(fn1(#z)) x=real(z) y=imag(z) if @V=="I" a=(p1-p2)*cos(x)+p2*cos((p1/p2-1)*y)+flip((p1-p2)*sin(x)-p2*sin((p1/p2-1)*y)) elseif @V=="II" a=(p1+p2)*cos(x)-p2*cos((p1/p2+1)*y)+flip((p1+p2)*sin(x)+p2*sin((p1/p2-1)*y)) elseif @V=="III" a=p1*(2*cos(x)-cos(2*y))+flip(p1*(2*sin(x)-sin(2*y))) elseif @V=="IV" a=p1+cos(x)+flip(p1*tan(y)+sin(x)) elseif @V=="V" a=p1+cos(x)+flip(p1*tan(x)+sin(y)) elseif @V=="VI" a=p1*(2*cos(x)+cos(2*y))+flip(p1*(2*sin(x)-sin(2*y))) elseif @V=="VII" a=p1*cos(2*x)*cos(p2*y)+flip(p1*(2+cos(2*x))*sin(p2*y)) elseif @V=="VIII" a=p1*cos(x)*(1-2*sin(y)^2)+flip(p1*sin(x)*(1+2*cos(y)^2)) elseif @V=="IX" a=p1*2*cos(x)+p2*cos(3*y)+flip(p1*sin(3*x)) elseif @V=="X" a=-6*p1*cos(x)/5+p1*cos(6*y)/5+flip(-6*p1*sin(x)/5+p1*sin(6*y)/5) elseif @V=="XI" a=p1*(cos(x)+y*sin(y))+flip(p1*(sin(x)-y*cos(y))) elseif @V=="XII" a=(p1+p2)*cos(p2*x/p1)-p3*p2*cos((1+p2/p1)*y)+flip((p1+p2)*sin(p2*x/p1)-p3*p2*sin((1+p2/p1)*y)) elseif @V=="XIII" a=p1*cos(x)*sin(y-p2)^2/(sin(p2)^2)+flip(p1*cos(x-p2)*sin(y)^2/(sin(p2)^2)) elseif @V=="XIV" a=2*p1*cos(x)^2+p2*cos(y)+flip(2*p1*cos(x)*sin(x)+p2*sin(y)) elseif @V=="XV" a=p1*(3*cos(x)-cos(3*y))+flip(p1*(3*sin(x)-sin(3*y))) elseif @V=="XVI" a=-p1+2*p1*cos(x)*(1+cos(y))+flip(2*p1*sin(x)*(1-cos(y))) endif c=|a| f=c^2 d=p5*f k=k+log(d) final: #index=p6*k/#numiter default: title="Abracadabra" param V caption="Variant" enum="I""II""III""IV""V""VI""VII""VIII""IX""X""XI""XII""XIII""XIV""XV""XVI" default=0 endparam func fn1 caption="Function" default=ident() endfunc param p1 default=(-1.05,0.8) endparam param p2 default=(0.85,-0.05) visible=@V=="I" || @V=="II" || @V=="VII" || @V=="IX" || @V=="XII" || @V=="XIII" || @V=="XIV" endparam param p3 default=(1,0) visible=@V=="XII" endparam param p5 caption="Adjustment 1" default=0.05 endparam param p6 caption="Adjustment 2" default=-0.35 endparam } Arteroid { init: float a=0.0 float b=0.0 float c=0.0 loop: a=a+0.02 b=b+0.01 if @S==false z=fn1(#z) else z=abs(fn1(#z)) endif x=real(z) y=imag(z) if @V=="Astroid" z=x^(2/3)+y^(2/3)-(p1-3)^(2/3) elseif @V=="Atriphthaloid" z=x^4*(x^2+y^2)-(p2*x^2-(p1-2.25)^3)^2 elseif @V=="Cardioid" z=(x^2+y^2-2*p1*x)^2-4*p1^2*(x^2+y^2) elseif @V=="Chirikoid" z=x+y+((p1+2.7)/2*pi)*sin(2*pi*x)+flip(x+y+((p1+2.7)/2*pi)*sin(2*pi*x)-x) elseif @V=="Cissoid 1" z=y^2-x^3/(2*(p1-0.5)-x) elseif @V=="Cissoid 2" z=y^2*(2*(p1-4)-x)-x^8 elseif @V=="Cissoid 3" z=p3*x^2+2*p4*x*y+(p5+1)*y^2-2*(p1+2.5)*x-2*p2*y elseif @V=="Cissoid 4" z=(x^2+y^2)*(x*cos(p2+2)+y*sin(p2+2))-2*p1*y^2 elseif @V=="Cliffordoid" z=sin(p1*y)+(p2+3)*cos(p1*x)+flip(sin(p3*x)+p4*cos(p3*y)) elseif @V=="Clinoid" z=y-(p2+1)*e^(x/p1)-p3*e^(-x/p1) elseif @V=="Cochleoid" z=(x^2+y^2)*atan(y/x)-(p1+5)*y elseif @V=="Conchoid 1" z=(x^2+y^2+p3^2-p2^2)^2*(y^2+(x+p1)^2)-4*p3^2*(x*(x+p1)+y^2)^2 elseif @V=="Conchoid 2" z=(x-(p2+2.5))^2*(x^2+y^2)-p1^2*x^2 elseif @V=="Conchoid 3" z=p1*(x+p1)*(x^2+y^2)-p2^2*x^2 elseif @V=="Cornoid" z=(x^2+y^2)^3+p1^2*(3*x^4-6*x^2*y^2-5*y^4)+8*p1^4*y^2-4*p1^6 elseif @V=="Cycloid" z=x-(p1-2.5)*recip(cos(1-y/(p1-2.5)))+sqrt(y*(2^(p1-2.5)-y)) elseif @V=="Deltoid 1" z=(x^2+y^2+12*(p1-1.85)*x+9*(p1-1.85)^2)-4*(p1-1.85)*(2*x+3*(p1-1.85))^3 elseif @V=="Deltoid 2" z=(x^2+y^2)^2+18*p1^2*(x^2+y^2)-27*p1^4-8*p1*x*(x^2-3*y^2) elseif @V=="Hamiltoid" z=x+(p1+0.6)*(p2-0.8)*sin(2*pi*y)+flip(y-((p1+0.6)/(p2-0.8))*sin(2*pi*(x+(p1+0.6)*(p2-0.8)*sin(2*pi*y)))) elseif @V=="Kieroid" z=y^2*(x-p1)^2+x^2*(x-(p2+2))^2-p3^2*x^2 elseif @V=="Latoocarfoid" z=sin(p1*y)+(p2+2.5)*sin(p1*x)+flip(sin(p3*x)+p4*sin(p3*y)) elseif @V=="Magusoid 1" z=((p1+4)-p2)*cos(x)+p2*cos(((p1+4)/p2-1)*y)+flip(((p1+4)-p2)*sin(x)-p2*sin(((p1+4)/p2-1)*y)) elseif @V=="Magusoid 2" z=-6*(p1-4.5)*cos(x)/5+(p1-4.5)*cos(6*y)/5+flip(-6*(p1-4.5)*sin(x)/5+(p1-4.5)*sin(6*y)/5) elseif @V=="Magusoid 3" z=(p1+2)*(2*cos(x)-cos(2*y))+flip((p1+2)*(2*sin(x)-sin(2*y))) elseif @V=="Magusoid 4" z=(p1+2)+cos(x)+flip((p1+2)*tan(y)+sin(x)) elseif @V=="Magusoid 5" z=(p1+(p2+2))*cos((p2+2)*x/p1)-p3*(p2+2)*cos((1+(p2+2)/p1)*y)+flip((p1+(p2+2))*sin((p2+2)*x/p1)-p3*(p2+2)*sin((1+(p2+2)/p1)*y)) elseif @V=="Magusoid 6" z=2*p1*cos(x)^2+(p2+2.5)*cos(y)+flip(2*p1*cos(x)*sin(x)+(p2+2.5)*sin(y)) elseif @V=="Magusoid 7" z=(p1+1)*cos(2*x)*cos(p2*y)+flip((p1+1)*(2+cos(2*x))*sin(p2*y)) elseif @V=="Magusoid 8" z=-(p1+0.8)+2*(p1+0.8)*cos(x)*(1+cos(y))+flip(2*(p1+0.8)*sin(x)*(1-cos(y))) elseif @V=="Magusoid 9" z=(p1+1.5)*2*cos(x)+p2*cos(3*y)+flip((p1+1.5)*sin(3*x)) elseif @V=="Magusoid 10" z=((p1+2)+p2)*cos(x)-p2*cos(((p1+2)/p2+1)*y)+flip(((p1+2)+p2)*sin(x)+p2*sin(((p1+2)/p2-1)*y)) elseif @V=="Magusoid 11" z=(p1+1.8)*(cos(x)+y*sin(y))+flip((p1+1.8)*(sin(x)-y*cos(y))) elseif @V=="Magusoid 12" z=p1+cos(x)+flip(p1*tan(x)+sin(y)) elseif @V=="Magusoid 13" z=p1*cos(x)*sin(y-(p2+1.7))^2/(sin((p2+1.7))^2)+flip(p1*cos(x-(p2+1.7))*sin(y)^2/(sin((p2+1.7))^2)) elseif @V=="Magusoid 14" z=(p1+3)*(2*cos(x)+cos(2*y))+flip((p1+3)*(2*sin(x)-sin(2*y))) elseif @V=="Magusoid 15" z=(p1+0.8)*(3*cos(x)-cos(3*y))+flip((p1+0.8)*(3*sin(x)-sin(3*y))) elseif @V=="Magusoid 16" z=(p1+1)*cos(x)*(1-2*sin(y)^2)+flip((p1+1)*sin(x)*(1+2*cos(y)^2)) elseif @V=="Magusoid 17" z=((p1-2)*tan(y)-p2)/((p1-2)*tan(x)+p2)+flip(((p1-2)*tan(x)-p2)/((p1-2)*tan(y)+p2)) elseif @V=="Nephroid 1" z=(x^2+y^2-4*(p1-0.5)^2)^3-108*(p1-0.5)^4*x^2 elseif @V=="Nephroid 2" z=(x^2+y^2)*(x*2+y^2-p1^2)^2-4*p1^2*(x^2+y^2-p1*x)^2 elseif @V=="Nephroid 3" z=(p1^2-4*(x^2+y^2))^3-108*p1^2*x^2*(x^2+y^2) elseif @V=="Popcornoid" z=x-(p1+4)*sin(y+tan(p2*y))+flip(y-(p1+4)*sin(x+tan(p2*x))) elseif @V=="Scyphoid" z=x^4-y^4-4*(p1-3)*x*y^2 elseif @V=="Strophoid" z=y*(x^2+y^2)-p1*(x^2-y^2)-2*(p2+1)*x*y endif c=c+real(atanh(|z|*a))*@adj/b final: #index=(c%(@m*1000))/(@m*1000) default: title="Arteroid" param V caption="Variant" enum="Astroid""Atriphthaloid""Cardioid""Chirikoid""Cissoid 1""Cissoid 2""Cissoid 3""Cissoid 4""Cliffordoid"\ "Clinoid""Cochleoid""Conchoid 1""Conchoid 2""Conchoid 3""Cornoid"\ "Cycloid""Deltoid 1""Deltoid 2""Hamiltoid""Kieroid""Latoocarfoid""Magusoid 1""Magusoid 2""Magusoid 3"\ "Magusoid 4""Magusoid 5""Magusoid 6""Magusoid 7""Magusoid 8""Magusoid 9""Magusoid 10"\ "Magusoid 11""Magusoid 12""Magusoid 13""Magusoid 14""Magusoid 15""Magusoid 16""Magusoid 17"\ "Nephroid 1""Nephroid 2""Nephroid 3""Popcornoid""Scyphoid""Strophoid" default=1 endparam param p1 default=(1,0) endparam param p2 default=(1,0) visible=@v=="Atriphthaloid" || @V=="Cissoid 3" || @V=="Cissoid 4" || @V=="Cliffordoid" || @V=="Clinoid" || @V=="Conchoid 1" \ || @V=="Conchoid 2" || @V=="Conchoid 3" || @V=="Hamiltoid" || @V=="Kieroid" || @V=="Latoocarfoid" || @V=="Magusoid 1" \ || @V=="Magusoid 5" || @V=="Magusoid 6" || @V=="Magusoid 7" || @V=="Magusoid 9" || @V=="Magusoid 10" \ || @V=="Magusoid 13" || @V=="Magusoid 17" || @V=="Popcornoid" || @V=="Strophoid" endparam param p3 default=(1,0) visible=@V=="Cissoid 3" || @V=="Cliffordoid" || @V=="Clinoid" || @V=="Conchoid 1" || @V=="Kieroid" || @V=="Latoocarfoid" \ || @V=="Magusoid 5" endparam param p4 default=(1,0) visible=@V=="Cissoid 3" || @V=="Cliffordoid" || @V=="Latoocarfoid" endparam param p5 default=(1,0) visible=@V=="Cissoid 3" endparam func fn1 caption="Function" default=ident() endfunc param adj caption="Adjustment 1" default=2.0 endparam param m caption="Adjustment 2" default=1.0 endparam param S caption="Symmetrise" default=true endparam } Ampomestion { ;A modification of Speed Limits by Mike Williams (mjw.ucl) init: float a=1e20 int i=0 b=(0,0) float c=0.0 float d=1e20 loop: if @S==true z=abs(fn1(#z)) else z=fn1(#z) endif float x=real(z) float y=imag(z) if @V=="Baker's Map 1" z=2*x-floor(2*x)+flip((y+floor(2*x))/2) elseif @V=="Baker's Map 2" if 0<=x && x<0.5 z=2*x+flip(y/2) else z=2-2*x+flip(1-y/2) endif elseif @V=="Barnsley" if x>=0 z=(z-1)*p1 else z=(z+1)*p1 endif elseif @V=="Cat Map" z=(2*x+y)%1+flip((x+y)%1) elseif @V=="Cayley" z=(z-sqrt(-1))/(z+sqrt(-1)) elseif @V=="Cornpop" z=x-p1*tan(y+sin((p2-1.5)*y))+flip(y-p1*tan(x+sin((p2-1.5)*x))) elseif @V=="Cube" z=p1*z^3 elseif @V=="Cube+" z=p1*(z^3+sqr(z)+z) elseif @V=="Frothy Basin" z=z^2-(1+p1*sqrt(-1))*conj(z) elseif @V=="Hamilton" z=x+p1*p2*sin(2*pi*y)+flip(y-(p1/p2)*sin(2*pi*(x+p1*p2*sin(2*pi*y)))) elseif @V=="Latoocarfian" z=sin(p1*y)+p2*sin(p1*x)+flip(sin(p3*x)+p4*sin(p3*y)) elseif @V=="Mackey-Glass 1" z=(p1*z*p2^p3)/(p2^p3+z^p3) elseif @V=="Mackey-Glass 2" z=p1*z/(1+z^p3)-p2*z elseif @V=="Magnet" z=sqr((z^3+3*(p1-1)*z+(p1-1)*(p1-2))/(3*z^2+3*(p1-2)*z+(p1-1)*(p1-2)+1)) elseif @V=="Magus 1" z=sin(p1*y)+p2*cos(p1*sin(p2*x))+flip(sin(p3*x)+p4*cos(p3*sin(p4*y))) elseif @V=="Magus 2" z=x-p1*real(sin(y+sin(p2*(y+sin(p3*y)))))+flip(y+p1*real(sin(x+sin(p2*(x+sin(p3*x)))))) elseif @V=="Magus 3" z=p1*sin(p2*cos(p3*x))+flip(p1*cos(p2*sin(p3*y))) elseif @V=="Magus 4" z=p1*sin(p2*tan(p3*x))+flip(p1*tan(p2*sin(p3*y))) elseif @V=="Magus 5" z=p1*sin(p2*sin(p3*x))+flip(p1*cos(p2*cos(p3*y))) elseif @V=="Magus 6" z=p1*sin(p2*sin(p3*x))+p1*cos(p2*cos(p3*y))+flip(p1*cos(p2*cos(p3*x))-p1*sin(p2*sin(p3*y))) elseif @V=="Magus 7" z=x-(p1/p2)*cos(2*pi*(x+p1*p2*cos(2*pi*y)))+flip(y-(p1/p2)*sin(2*pi*(x+p1*p2*sin(2*pi*y)))) elseif @V=="Magus 8" z=x-p1*sin(y+sqr(p2*y+sin(y)))+flip(y-p3*sin(x+sqr(p4*x+sin(x)))) elseif @V=="Magus 9" z=|sin(p1*y)|+(sin(p1*x))^2+flip(|sin(p2*x)|+(sin(p2*y))^2) elseif @V=="Magus 10" z=x-(p1/p2)*sin(2*pi*(x+p1*p2*sin(2*pi*y)))+flip(y-(p1/p2)*sin(2*pi*(x+p1*p2*sin(2*pi*y)))) elseif @V=="Magus 11" z=x*cos(p1)+(x^2-y)*sin(p1)-sin(y)*(1-p1)+flip(sin(x)*(1+p1)+x*sin(p1)-(x^2-y)*cos(p1)) elseif @V=="Magus 12" z=cos(p1)*(x+p2*sin(y))+sin(p1)*y-sin(y)*(1-p1)+flip(sin(x)*(1+p1)-sin(p1)*(x+p2*sin(y))+cos(p1)*y) elseif @V=="Magus 13" z=sin(p1*y)+(sin(p1*x))^2+(sin(p1*y))^3+flip(sin(p2*x)+(sin(p2*y))^2+(sin(p2*x))^3) elseif @v=="Magus 14" z=p1/z-floor(p2/z) elseif @V=="Magus 15" z=z-p1*sin(z) elseif @v=="Magus 16" z=sin(p1*y)+p2*sin(p1*x)+flip(cos(p3*x)+p4*cos(p3*y)) elseif @V=="Magus 17" z=real(sin(y))+p1*real(sin(p2*x))+imag(flip(p1))*real(sin(p2*x))+flip(real(sin(x))+p1*real(sin(p2*y))+imag(flip(p1))*real(sin(p2*y))) elseif @V=="Munster" z=p1*z^2*(z-p2)/(1-p2*z) elseif @V=="Newton" z=z-p1*(z^3-p2)/(3*z^2) elseif @v=="Pickover" z=sin(p1*y)+p2*cos(p1*x)+flip(sin(p3*x)+p4*cos(p3*y)) elseif @v=="Quack" if y>0 k=z else k=conj(z) endif z=log(k+p1) elseif @v=="sqr+" z=p1*(sqr(z)+z) elseif @V=="Tent Map" if x<0.5 z=p1*z else z=p1*(1-z) endif elseif @V=="Threeply" z=y-(x/cabs(x))*(abs(sin(x)*cos(p1)+p2-x*sin(p1+p2+p3)))+flip(p3-x) elseif @V=="Volterra" z=e^y-1+p2*(e^x-1)*e^y/(p2+e^(2*x))+flip(p1*(1-e^x)-p1*p2*(e^x-1)*e^x/(p2+e^(2*x))) elseif @V=="Zaslavskii" z=(x+real(p1)*(1+((1-e^(-real(p3)))/real(p3))*y)+real(p2)*real(p1)*((1-e^(-real(p3)))/real(p3))*cos(2*pi*x))%1+flip(e^(-real(p3))*(y+real(p2)*cos(2*pi*x))) endif i=i+1 if i==1 b=z else c=cabs(z-b) if c<@adj2 && c>@adj1 d=c if c1.5 a=cabs((1-p1)*x+y+flip(-2*p1*x+0.9*p1)) else a=cabs((1-p1)*x+y+flip(-2*p1*x-0.9*p1)) endif elseif @V=="Mira 4" if x<=6 a=cabs(y+flip(y-p1*x)) else a=cabs(y+flip(y+2*x-6*(2+p1)*x)) endif elseif @V=="OM1" a=cabs((1/3)*(-(pi+1)*x+p1-p2+(x+flip(y))*y+((1-p1)*(x^2-y)^2)+(2*(p1+p2-(x+flip(y))))*x*y)*(1/(3*sqrt(x^2+y^2))) \ +flip((1/3)*((p2-p1-(x+flip(y)))*x-(p1+1)*y)+((2*(p1-1))*x*y+(p1+p2-(x+flip(y)))*(x^2-y^2))*(1/(3*sqrt(x^2+y^2))))) elseif @V=="OM2" a=cabs(real(sin(y))+p1*real(sin(p2*x))+imag(flip(p1))*real(sin(p2*x))+flip(real(sin(x))+p1*real(sin(p2*y))+imag(flip(p1))*real(sin(p2*y)))) elseif @V=="OM3" k=(p1-0.5)*x-y-(1.5-p1)*x a=cabs(k+flip(x-(p1-0.5)*k+(1.5-p1)*cotanh(cotanh(k)))) elseif @V=="OM4" a=cabs(p1*(y-x^2)+flip(x-y+p2*z)) elseif @V=="OM5" a=cabs(x-y-sin(x)*(p1*x^2+p2*y^2)+flip(x+y-cos(y)*(p3*x^2+p4*y^2))) elseif @V=="OM6" a=cabs(x-(p1/2)*real(sin(y+sin(p2*(y+sin(p3*y)))))+flip(y+(p1/2)*real(sin(x+sin(p2*(x+sin(p3*x))))))) elseif @V=="OM7" a=cabs(x-cos(p1*sin(y)+cos(p2*y)^2)+flip(y-cos(p1*sin(x)-cos(p2*x)^2))) elseif @V=="OM8" a=cabs(p1*sin(x)*cos(y)-cos(x)*p2*sin(y)+flip(p1*cos(y)*sin(x)+sin(y)*p2*cos(x))) elseif @V=="OM9" a=cabs(p1*sin(x)*sin(y)-cos(x)*p2*cos(y)+flip(p1*sin(y)*sin(x)+cos(y)*p2*cos(x))) elseif @V=="OM10" a=cabs(-p3*(p1*(y-flip(x)^2)-y+p2*(x+flip(y)))) elseif @V=="OM11" a=cabs((x%(2*pi))+(y%(2*pi))+p1*sin(2*pi*(x%(2*pi)))+flip((x%(2*pi))+(y%(2*pi))+p1*sin(2*pi*(x%(2*pi)))-(x%(2*pi)))) elseif @V=="OM12" a=cabs(sin(y)+flip(sin(x)+y*(p1-y^2))) elseif @V=="Polyharmonic Pendulum" a=cabs(y+flip(-p1*sin(x)-p2*sin(3*x)+p3*sin(p4))) elseif @V=="Volterra" a=cabs(y+flip(-p1*x-((p2-p1)/2)*(|x+1|-|x-1|)-p3*y+p4*cos(p5*(x+flip(y))))) elseif @V=="Volterra-Lotka" a=cabs(p1*x-p2*x*y+flip(-p3*y+p4*x*y)) elseif @V=="Zito" a=cabs(x*y+p1*x-y+flip(x+y)) endif if(a10*@adj #index=log(#numiter) endif default: title="Bawn Spret" param V caption="Variant" enum="Cremona""Duffing""Garrote-Mira""Gumowski-Mira 1""Gumowski-Mira 2""Henon-Heiles 1"\ "Henon-Heiles 2""Inverse Cremona""Kaplan-Yorke""Marotto-Lorenz""Mira 1""Mira 2""Mira 3""Mira 4"\ "OM1""OM2""OM3""OM4""OM5""OM6""OM7""OM8""OM9""OM10""OM11""OM12""Polyharmonic Pendulum""Volterra""Volterra-Lotka""Zito" default=0 endparam param p1 caption="Parameter" default=(1,0) endparam param p2 default=(1,0) visible=@V=="Duffing" || @V=="Garrote-Mira" || @V=="Gumowski-Mira 1" || @V=="Henon-Heiles 1" \ || @V=="Henon-Heiles 2" || @V=="Kaplan-Yorke" || @V=="Marotto-Lorenz" || @V=="Mira 1" \ || @V=="Mira 2" || @V=="OM1" || @V=="OM2" || @V=="OM4" || @V=="OM5" || @V=="OM6" || @V=="OM7" \ || @V=="OM8" || @V=="OM9" || @V=="OM10" || @V=="Polyharmonic Pendulum" || @V=="Volterra" \ || @V=="Volterra-Lotka" endparam param p3 default=(1,0) visible=@V=="Duffing" || @V=="Henon-Heiles 1" || @V=="Henon-Heiles 2" || @V=="Mira 1" \ || @V=="Mira 2" || @V=="OM5" || @V=="OM6" || @V=="OM10" || @V=="Polyharmonic Pendulum" || @V=="Volterra" \ || @V=="Volterra-Lotka" endparam param p4 default=(1,0) visible=@V=="Duffing" || @V=="Henon-Heiles 1" || @V=="OM5" || @V=="Polyharmonic Pendulum" \ || @V=="Volterra" || @V=="Volterra-Lotka" endparam param p5 default=(1,0) visible=@V=="Henon-Heiles 1" || @V=="Volterra" endparam func fn1 caption="Function" default=ident() endfunc param adj caption="Adjustment" default=2.0 endparam } Yomplad { init: float a=0.0 float b=1.0 float c=0.0 float d=1/log(real(@adj1)) float f=log(log(100*@adj2)/2) float g=0.0 loop: if @F=="sqr" z=sqr(#z) elseif @F=="sqrt" z=sqrt(#z) elseif @F=="log" z=log(#z) elseif @F=="log+" z=log(#z)+#z elseif @F=="log*" z=log(#z)*#z elseif @F=="cabs" z=cabs(#z) elseif @F=="cabs*" z=cabs(#z)*#z elseif @F=="flip" z=flip(#z) elseif @F=="ident" z=ident(#z) elseif @F=="recip" z=recip(#z) elseif @F=="recip+" z=recip(#z)+#z elseif @F=="+pixel" z=#z+pixel elseif @F=="*pixel" z=#z*pixel endif if @S z=abs(z) else z=z endif if @V==0 z=sin(p1*imag(z))+p2*sin(p1*real(z))+flip(sin(p3*real(z))+p4*sin(p3*imag(z))) elseif @V==1 z=real(z)+p1*p2*sin(2*pi*imag(z))+flip(imag(z)-(p1/p2)*sin(2*pi*(real(z)+p1*p2*sin(2*pi*imag(z))))) elseif @V==2 z=sin(p1*imag(z))+(sin(p1*real(z)))^2+(sin(p1*real(z)))^3+flip(sin(p2*real(z))+(sin(p2*imag(z)))^2+(sin(p3*imag(z)))^3) elseif @V==3 z=p3*real(z)^2+2*p4*real(z)*imag(z)+(p5+1)*imag(z)^2-2*p1*real(z)-2*p2*imag(z) elseif @V==4 if imag(z)>0.5 z=sin(flip(2*(p2-1)*imag(z)-2*p3)) elseif real(z)>0.5 z=sin(2*p1*real(z)-2*p3+flip(2*(p2-1)*imag(z))) else z=sin(2*p1*real(z)+flip(2*(p2-1)*imag(z))) endif elseif @V==5 z=sin(p1*imag(z))+(sin(p1*real(z)))^2+flip(sin(p2*real(z))+(sin(p2*imag(z)))^2) elseif @V==6 z=(real(z)-2*p1)*(real(z)^2+imag(z)^2)+p2^2*(cos(2*p3*real(z))+sin(2*p3*imag(z))) elseif @V==7 z=sin(p1*imag(z))+p2*cos(p1*real(z))+flip(sin(p3*real(z))+p4*cos(p3*imag(z))) elseif @V==8 z=p1*imag(z)^2-p2*abs(sin(p3*real(z))+0.1*sin(2*real(z))) elseif @V==9 z=real(z)+imag(z)+(p1/2*pi)*sin(2*pi*real(z))+flip(real(z)+imag(z)+(p1/2*pi)*sin(2*pi*real(z))-real(z)) elseif @v==10 z=real(z)*(p1-real(z)-p2*imag(z)+p3*real(z)*imag(z)+imag(z)^2)+flip(imag(z)*(-p1+imag(z)+p2*real(z)-p3*real(z)^2-real(z)*imag(z))) elseif @V==11 z=real(z)-sin(imag(z)+p1*sin(p2*imag(z)+p3*sin(p4*imag(z))))+flip(imag(z)-sin(real(z)+p1*sin(p2*real(z)+p3*sin(p4*real(z))))) elseif @V==12 z=sin(p1*imag(z))+(sin(p1*real(z)))^2+(sin(p1*imag(z)))^3+flip(sin(p2*real(z))+(sin(p2*imag(z)))^2+(sin(p2*real(z)))^3) elseif @V==13 z=sin(p1*real(z))-tan((p2-1.5)*imag(z))+flip(tan(p3*real(z))+sin(p4*imag(z))) elseif @V==14 z=(real(z)^2-(p1+0.5)^2)*(real(z)-(p1+0.5))^2+(imag(z)^2-(p1+0.5)^2)^2 elseif @V==15 z=(real(z)^2+imag(z)^2-2*p1*real(z))^2-4*p1^2*(real(z)^2+imag(z)^2) elseif @V==16 z=(p2-3.2)*sqrt((real(z)-p1)^2+imag(z)^2)+p3*sqrt((real(z)+p1)^2+imag(z)^2)-p4 elseif @V==17 z=p1*z^2*(z-(p2+2))/(1-(p2+2)*z) elseif @V==18 x=imag(z) y=-p1*real(z)-(p2+1)*real(z)^3+p3 z=x+flip(y) elseif @V==19 if 0<=real(z) && real(z)<0.5 x=2*p1*real(z) y=p2*imag(z)/2 else x=p1*(2-2*real(z)) y=p2*(1-imag(z)/2) endif z=x+flip(y) elseif @V==20 z=(p1-3)*(z-sqrt(-1))/(z+sqrt(-1))+p2-0.5 else x=sin(real(z))-p1*cos(imag(z)+p2*sin(imag(z)+cos(imag(z)))) y=sin(imag(z))+p1*cos(real(z)+p2*sin(real(z)+cos(real(z)))) z=x+flip(y) endif c=cabs(z) a=b b=b*(abs(2*c)) final: a=log(a) b=log(b) b=abs(b/#numiter) a=abs(a/(#numiter-1)) g=d*f-d*log(log(cabs(z))) #index=a+(b-a)*(g+1) default: title="Yomplad" param V caption="Variant" enum="1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16""17""18""19""20""21""22" default=0 endparam param p1 default=(1,0) endparam param p2 default=(1,0) visible=@V!=9 && @V!=14 && @V!=15 endparam param p3 default=(1,0) visible=@V==0 || @V==2 || @V==3 || @V==4 || @V==6 || @V==7 || @V==8 || @V==10 || @V==11 || @V==13 || @V==16 || @V==18 endparam param p4 default=(1,0) visible=@V==0 || @V==3 || @V==7 || @V==11 || @V==13 || @V==16 endparam param p5 default=(1,0) visible=@V==3 endparam param F caption="Function" enum="sqr""sqrt""log""log+""log*""cabs""cabs*""flip""ident""recip""recip+""+pixel""*pixel" default=8 endparam param adj1 caption="Adjustment 1" default=2.0 endparam param adj2 caption="Adjustment 2" default=1.0 endparam param S caption="Symmetrise" default=true endparam } PickoverTraps { ;Colouring based on Spheroid Trap by Paul Carlson / Ken Childress (pwc.ucl). ;Variants are formulas by Clifford Pickover. init: float a=real(@adj1) float b=imag(@adj1) float c=(b-1)/@adj2 float d= 0.0 float f= 0.0 int i= 0 float g=253.0 bool h=false j=(0,0) loop: if !h if @S==true z=abs(fn1(#z)) else z=fn1(#z) endif if @V==0 x=sin(p1*imag(z))+p2*sin(p1*real(z)) y=sin(p3*real(z))+p4*sin(p3*imag(z)) z=x+flip(y) elseif @V==1 x=sin(p1*imag(z))+sqr(sin(p1*real(z))) y=sin(p2*real(z))+sqr(sin(p2*imag(z))) z=x+flip(y) elseif @V==2 x=sin(p1*imag(z))+(sin(p1*real(z)))^2+ (sin(p1*real(z)))^3 y=sin(p2*real(z))+(sin(p2*imag(z)))^2+ (sin(p3*imag(z)))^3 z=x+flip(y) elseif @V==3 x=abs(sin(p1*imag(z)))+(sin(p1*real(z)))^2 y=abs(sin(p2*real(z)))+(sin(p1*imag(z)))^2 z=x+flip(y) elseif @V==4 x=sin(p1*imag(z))+p2*cos(p1*real(z)) y=sin(p3*real(z))+p4*cos(p3*imag(z)) z=x+flip(y) elseif @V==5 x=real(z)-p1*sin(imag(z)+tan(p2*imag(z))) y=imag(z)-p1*sin(real(z)+tan(p2*real(z))) z=x+flip(y) elseif @V==6 x=p1*sin(imag(z)+tan(p2*imag(z))) y=p1*sin(real(z)+tan(p2*real(z))) z=x+flip(y) endif if @O==0 f=|j|/|#z| else f=|j|/|z| endif j=z if f<@adj2 && i> 0 h=true g=c*f+d*b endif i=i+1 d=i%a endif final: if h #index=((real(g)+1)%256)/256 else #solid=true endif default: title="Pickover Traps" param O caption="Version" enum="I""II" default=1 endparam param V caption="Variant" enum="1""2""3""4""5""6""7" default=0 endparam param adj1 caption="Adjustment 1" default=(8,30) endparam param adj2 caption="Adjustment 2" default=0.188 endparam param p1 default=(1,0) endparam param p2 default=(1,0) endparam param p3 default=(1,0) visible=@V==0 || @V==2 || @V==4 endparam param p4 default=(1,0) visible=@V==0 || @V==4 endparam func fn1 caption="Function" default=ident() endfunc param S caption="Symmetrise" default=false endparam } PickoverTraps2 { init: float a=0.0 float b=0.0 float c=0.0 float d=1e20 f=(0,0) int i=0 loop: z=fn1(#z) if @V==0 x=sin(p1*imag(z))+p2*sin(p1*real(z)) y=sin(p3*real(z))+p4*sin(p3*imag(z)) elseif @V==1 x=sin(p1*imag(z))+sqr(sin(p1*real(z))) y=sin(p2*real(z))+sqr(sin(p2*imag(z))) elseif @V==2 x=sin(p1*imag(z))+(sin(p1*real(z)))^2+ (sin(p1*real(z)))^3 y=sin(p2*real(z))+(sin(p2*imag(z)))^2+ (sin(p3*imag(z)))^3 elseif @V==3 x=abs(sin(p1*imag(z)))+(sin(p1*real(z)))^2 y=abs(sin(p2*real(z)))+(sin(p1*imag(z)))^2 elseif @V==4 x=sin(p1*imag(z))+p2*cos(p1*real(z)) y=sin(p3*real(z))+p4*cos(p3*imag(z)) elseif @V==5 x=real(z)-p1*sin(imag(z)+tan(p2*imag(z))) y=imag(z)-p1*sin(real(z)+tan(p2*real(z))) else x=p1*sin(imag(z)+tan(p2*imag(z))) y=p1*sin(real(z)+tan(p2*real(z))) endif z=x+flip(y) float g=cabs(#z) float h=cabs(z) if h<0 h=h+2*pi endif float j=g g=g+@adj4*sin(@adj3*h) h=h+@adj2*cos(@adj1*j) if @V2=="a" a=g*cos(h) b=g*sin(h) else a=g*real(h) b=g*imag(h) endif f=(a+flip(b))^@pow c=cabs(z-f) if c0 float x1=floor(real(c))%256 float y1=floor(imag(c))%256 if x1<0 x1=x1+256 endif if y1<0 y1=y1+256 endif float x2=(x1+1)%256 float y2=(y1+1)%256 float x3=real(c)-floor(real(c)) float y3=imag(c)-floor(imag(c)) float x4=x3-1 float y4=y3-1 float f1=(x1^@pow2%65536+y1)^@pow2%65536 float f2=(x2^@pow2%65536+y1)^@pow2%65536 float f3=(x1^@pow2%65536+y2)^@pow2%65536 float f4=(x2^@pow2%65536+y2)^@pow2%65536 float g1=(f1)^@pow2*0.25%512-256 float g2=(f2)^@pow2*0.25%512-256 float g3=(f3)^@pow2*0.25%512-256 float g4=(f4)^@pow2*0.25%512-256 float g5=(f1+1)^@pow2*0.25%512-256 float g6=(f2+1)^@pow2*0.25%512-256 float g7=(f3+1)^@pow2*0.25%512-256 float g8=(f4+1)^@pow2*0.25%512-256 float h=0.0; h=1/sqrt(sqr(g1)+sqr(g5)) g1=g1*h g5=g5*h h=1/sqrt(sqr(g2)+sqr(g6)) g2=g2*h g6=g6*h h=1/sqrt(sqr(g3)+sqr(g7)) g3=g3*h g7=g7*h h=1/sqrt(sqr(g4)+sqr(g8)) g4=g4*h g8=g8*h float j1=x3*g1+y3*g5 float j2=x4*g2+y3*g6 float j3=x3*g3+y4*g7 float j4=x4*g4+y4*g8 float k1=sqr(x3)*(3-x3*2) float k2=sqr(y3)*(3-y3*2) float k3=j1+k1*(j2-j1) float k4=j3+k1*(j4-j3) if @fn=="abs" a=a+real(abs(k3+k2*(k4-k3)))*d*b elseif @fn=="abs acos log" a=a+real(abs(acos(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="abs cos log" a=a+real(abs(cos(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="abs floor log" a=a+real(abs(floor(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="abs sin log" a=a+real(abs(sin(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="abs sinh log" a=a+real(abs(sinh(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="abs sqr log" a=a+real(abs(sqr(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="acos acos log" a=a+real(acos(acos(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="acos ceil" a=a+real(acos(ceil(k3+k2*(k4-k3))))*d*b elseif @fn=="acos flip log" a=a+real(acos(flip(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="acos log conj" a=a+real(acos(log(conj(k3+k2*(k4-k3)))))*d*b elseif @fn=="acos log cotan" a=a+real(acos(log(cotan(k3+k2*(k4-k3)))))*d*b elseif @fn=="acos recip" a=a+real(acos(recip(k3+k2*(k4-k3))))*d*b elseif @fn=="acos sin exp" a=a+real(acos(sin(exp(k3+k2*(k4-k3)))))*d*b elseif @fn=="acos sin log" a=a+real(acos(sin(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="acos sinh log" a=a+real(acos(sinh(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="acosh flip cotanh" a=a+real(acosh(flip(cotanh(k3+k2*(k4-k3)))))*d*b elseif @fn=="asin ceil" a=a+real(asin(ceil(k3+k2*(k4-k3))))*d*b elseif @fn=="atanh ceil log" a=a+real(atanh(ceil(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="atanh log" a=a+real(atanh(log(k3+k2*(k4-k3))))*d*b elseif @fn=="cabs sqrt" a=a+real(cabs(sqrt(k3+k2*(k4-k3))))*d*b elseif @fn=="ceil" a=a+real(ceil(k3+k2*(k4-k3)))*d*b elseif @fn=="ceil log" a=a+real(ceil(log(k3+k2*(k4-k3))))*d*b elseif @fn=="cos log" a=a+real(cos(log(k3+k2*(k4-k3))))*d*b elseif @fn=="cosh conj acos" a=a+real(cosh(conj(acos(k3+k2*(k4-k3)))))*d*b elseif @fn=="cotan exp exp" a=a+real(cotan(exp(exp(k3+k2*(k4-k3)))))*d*b elseif @fn=="cotanh sqrt" a=a+real(cotanh(sqrt(k3+k2*(k4-k3))))*d*b elseif @fn=="exp" a=a+real(exp(k3+k2*(k4-k3)))*d*b elseif @fn=="exp acos" a=a+real(exp(acos(k3+k2*(k4-k3))))*d*b elseif @fn=="exp ceil" a=a+real(exp(ceil(k3+k2*(k4-k3))))*d*b elseif @fn=="exp exp" a=a+real(exp(exp(k3+k2*(k4-k3))))*d*b elseif @fn=="exp exp exp" a=a+real(exp(exp(exp(k3+k2*(k4-k3)))))*d*b elseif @fn=="flip log" a=a+real(flip(log(k3+k2*(k4-k3))))*d*b elseif @fn=="flip sqrt" a=a+real(flip(sqrt(k3+k2*(k4-k3))))*d*b elseif @fn=="floor" a=a+real(floor(k3+k2*(k4-k3)))*d*b elseif @fn=="floor log" a=a+real(floor(log(k3+k2*(k4-k3))))*d*b elseif @fn=="ident" a=a+real(k3+k2*(k4-k3))*d*b elseif @fn=="log" a=a+real(log(k3+k2*(k4-k3)))*d*b elseif @fn=="log acos" a=a+real(log(acos(k3+k2*(k4-k3))))*d*b elseif @fn=="log acos acos" a=a+real(log(acos(acos(k3+k2*(k4-k3)))))*d*b elseif @fn=="log acos floor" a=a+real(log(acos(floor(k3+k2*(k4-k3)))))*d*b elseif @fn=="log acos recip" a=a+real(log(acos(recip(k3+k2*(k4-k3)))))*d*b elseif @fn=="log ceil exp" a=a+real(log(ceil(exp(k3+k2*(k4-k3)))))*d*b elseif @fn=="log log" a=a+real(log(log(k3+k2*(k4-k3))))*d*b elseif @fn=="log log abs" a=a+real(log(log(abs(k3+k2*(k4-k3)))))*d*b elseif @fn=="log log cos" a=a+real(log(log(cos(k3+k2*(k4-k3)))))*d*b elseif @fn=="log log log" a=a+real(log(log(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="log log sqr" a=a+real(log(log(sqr(k3+k2*(k4-k3)))))*d*b elseif @fn=="log log sqrt" a=a+real(log(log(sqrt(k3+k2*(k4-k3)))))*d*b elseif @fn=="log sqr" a=a+real(log(sqr(k3+k2*(k4-k3))))*d*b elseif @fn=="log sqr log" a=a+real(log(sqr(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="log sqrt" a=a+real(log(sqrt(k3+k2*(k4-k3))))*d*b elseif @fn=="log sqrt acos" a=a+real(log(sqrt(acos(k3+k2*(k4-k3)))))*d*b elseif @fn=="log sqrt log" a=a+real(log(sqrt(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="log sqrt sqrt" a=a+real(log(sqrt(sqrt(k3+k2*(k4-k3)))))*d*b elseif @fn=="recip log" a=a+real(recip(log(k3+k2*(k4-k3))))*d*b elseif @fn=="recip sqrt" a=a+real(recip(sqrt(k3+k2*(k4-k3))))*d*b elseif @fn=="round cos exp" a=a+real(round(cos(exp(k3+k2*(k4-k3)))))*d*b elseif @fn=="round cotan exp" a=a+real(round(cotan(exp(k3+k2*(k4-k3)))))*d*b elseif @fn=="round exp exp" a=a+real(round(exp(exp(k3+k2*(k4-k3)))))*d*b elseif @fn=="round log" a=a+real(round(log(k3+k2*(k4-k3))))*d*b elseif @fn=="round sinh cotan" a=a+real(round(sinh(cotan(k3+k2*(k4-k3)))))*d*b elseif @fn=="round sinh exp" a=a+real(round(sinh(exp(k3+k2*(k4-k3)))))*d*b elseif @fn=="sin exp exp" a=a+real(sin(exp(exp(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr acos log" a=a+real(sqr(acos(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr asin log" a=a+real(sqr(asin(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr asinh log" a=a+real(sqr(asinh(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr atan log" a=a+real(sqr(atan(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr atanh log" a=a+real(sqr(atanh(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr cabs log" a=a+real(sqr(cabs(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr cotanh log" a=a+real(sqr(cotanh(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr exp exp" a=a+real(sqr(exp(exp(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr floor log" a=a+real(sqr(floor(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr log" a=a+real(sqr(log(k3+k2*(k4-k3))))*d*b elseif @fn=="sqr log abs" a=a+real(sqr(log(abs(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr log acos" a=a+real(sqr(log(acos(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr log flip" a=a+real(sqr(log(flip(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr log log" a=a+real(sqr(log(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr log sqr" a=a+real(sqr(log(sqr(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr recip log" a=a+real(sqr(recip(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr tanh log" a=a+real(sqr(tanh(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt" a=a+real(sqrt(k3+k2*(k4-k3)))*d*b elseif @fn=="sqrt abs log" a=a+real(sqrt(abs(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt acos" a=a+real(sqrt(acos(k3+k2*(k4-k3))))*d*b elseif @fn=="sqrt acos log" a=a+real(sqrt(acos(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt acosh log" a=a+real(sqrt(acosh(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt asin log" a=a+real(sqrt(asin(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt asinh log" a=a+real(sqrt(asinh(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt atan log" a=a+real(sqrt(atan(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt cabs log" a=a+real(sqrt(cabs(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt ceil log" a=a+real(sqrt(ceil(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt cos log" a=a+real(sqrt(cos(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt cosh log" a=a+real(sqrt(cosh(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt cotan log" a=a+real(sqrt(cotan(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt flip log" a=a+real(sqrt(flip(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt log" a=a+real(sqrt(log(k3+k2*(k4-k3))))*d*b elseif @fn=="sqrt log acos" a=a+real(sqrt(log(acos(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt log cosh" a=a+real(sqrt(log(cosh(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt log cotanh" a=a+real(sqrt(log(cotanh(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt log flip" a=a+real(sqrt(log(flip(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt log log" a=a+real(sqrt(log(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt log recip" a=a+real(sqrt(log(recip(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt log sqrt" a=a+real(sqrt(log(sqrt(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt recip log" a=a+real(sqrt(recip(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt sin log" a=a+real(sqrt(sin(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt sinh log" a=a+real(sqrt(sinh(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt sqrt" a=a+real(sqrt(sqrt(k3+k2*(k4-k3))))*d*b elseif @fn=="sqrt sqrt log" a=a+real(sqrt(sqrt(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt tan log" a=a+real(sqrt(tan(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="tan exp exp" a=a+real(tan(exp(exp(k3+k2*(k4-k3)))))*d*b elseif @fn=="tan tan cos" a=a+real(tan(tan(cos(k3+k2*(k4-k3)))))*d*b elseif @fn=="trunc log" a=a+real(trunc(log(k3+k2*(k4-k3))))*d*b endif d=d*0.5 c=c/0.5 i=i-1 endwhile final: #index=(log(a)+@p7)*@p8 default: title="Plazmiki" param Fs caption="Function 1" enum="*pixel""+pixel"\ "abs""abs recip""cabs""conj""cos*""crd""cube""cube+"\ "exp""flip""flip recip""ident""recip""recip abs""recip flip""recip sqr"\ "sin*""smoothstep""softplus""sqr""sqr acos""sqr acosh""sqr log""sqr+" default=13 endparam param fn caption="Function 2" enum="abs""abs acos log""abs cos log""abs floor log"\ "abs sin log""abs sinh log""abs sqr log"\ "acos acos log""acos ceil"\ "acos flip log""acos log conj""acos log cotan"\ "acos recip""acos sin exp""acos sin log""acos sinh log" \ "acosh flip cotanh""asin ceil""atanh ceil log""atanh log"\ "cabs sqrt""ceil""ceil log""cos log""cosh conj acos""cotan exp exp"\ "cotanh sqrt""exp""exp acos""exp ceil""exp exp""exp exp exp"\ "flip log""flip sqrt""floor""floor log"\ "ident""log""log acos""log acos acos"\ "log acos floor""log acos recip""log ceil exp""log log"\ "log log abs""log log cos""log log log""log log sqr""log log sqrt"\ "log sqr""log sqr log""log sqrt""log sqrt acos""log sqrt log"\ "log sqrt sqrt""recip log""recip sqrt""round cos exp""round cotan exp"\ "round exp exp""round log""round sinh cotan""round sinh exp""sin exp exp"\ "sqr acos log""sqr asin log""sqr asinh log""sqr atan log""sqr atanh log"\ "sqr cabs log""sqr cotanh log""sqr exp exp""sqr floor log""sqr log"\ "sqr log abs""sqr log acos""sqr log flip""sqr log log"\ "sqr log sqr""sqr recip log""sqr tanh log""sqrt""sqrt abs log"\ "sqrt acos""sqrt acos log""sqrt acosh log""sqrt asin log""sqrt asinh log"\ "sqrt atan log""sqrt cabs log""sqrt ceil log""sqrt cos log""sqrt cosh log"\ "sqrt cotan log""sqrt flip log""sqrt log""sqrt log acos"\ "sqrt log cosh""sqrt log cotanh""sqrt log flip""sqrt log log"\ "sqrt log recip""sqrt log sqrt""sqrt recip log""sqrt sin log""sqrt sinh log"\ "sqrt sqrt""sqrt sqrt log""sqrt tan log""tan exp exp""tan tan cos"\ "trunc log" default=37 endparam param p2 caption="Parameter 1" default=(1,0) endparam param p3 caption="Parameter 2" default=(0,0) endparam param p7 caption="Parameter 3" default=1.0 endparam param p8 caption="Parameter 4" default=0.5 endparam param pow1 caption="Exponent 1" default=1.0 endparam param pow2 caption="Exponent 2" default=2.0 endparam param p4 caption="Iterations" default=1 min=1 endparam } Plazmiki2 { ; This is a modification of Fractional Brownian Motion II by Damien Jones (dmj.ucl) init: float a=0.0 loop: if @S==false z=#z else z=abs(#z) endif x=real(z) y=imag(z) if @V=="Clifford" z=sin(@Ap1*y)+@Ap2*cos(@Ap1*x)+flip(sin(@Ap3*x)+@Ap4*cos(@Ap3*y)) elseif @V=="de Jong" z=sin(@Ap1*y)-cos(@Ap2*x)+flip(sin(@Ap3*x)-cos(@Ap4*y)) elseif @V=="Hamilton Torus" z=-sin(y)*(1-(@Ap1+(0,1)))+flip(sin(x)*(1+(@Ap1+(0,1)))) elseif @V=="Henon" z=1-@Ap1*x^2+y+flip(@Ap2*x) elseif @V=="Ikeda" z=@Ap1+@Ap2*(x*cos(@Ap3-@Ap4/(x^2+y^2+1))-y*sin(@Ap3-@Ap4/(x^2+y^2+1))) \ +flip(@Ap2*(x*sin(@Ap3-@Ap4/(x^2+y^2+1))+y*cos(@Ap3-@Ap4/(x^2+y^2+1)))) elseif @V=="Kam Torus" z=x*cos(@Ap1)+(x^2-y)*sin(@Ap1)+flip(x*sin(@Ap1)-(x^2-y)*cos(@Ap1)) elseif @V=="Latoocarfian" z=sin(@Ap1*y)+@Ap2*sin(@Ap1*x)+flip(sin(@Ap3*x)+@Ap4*sin(@Ap3*y)) elseif @V=="Polyharmonic Pendulum" z=y+flip(-@Ap1*sin(x)-@Ap2*sin(3*x)+@Ap3*sin(@Ap4)) elseif @V=="Popcorn" z=x-@Ap1*sin(y+tan((@Ap2+(0,1))*y))+flip(y-@Ap1*sin(x+tan((@Ap2+(0,1))*x))) elseif @V=="Standard Map" z=x+@Ap1*y-@Ap2+(@Ap3/(2*pi))*sin(2*pi*x)+flip(@Ap1*y-@Ap2+(@Ap3/(2*pi))*sin(2*pi*x)) endif float b=1-cabs(z^@pow1)/16 if b<0 b=0 else b=sqr(b) endif c=z*p2+p3 float d=1.0 int i=p4 while i>0 float x1=floor(real(c))%256 float y1=floor(imag(c))%256 if x1<0 x1=x1+256 endif if y1<0 y1=y1+256 endif float x2=(x1+1)%256 float y2=(y1+1)%256 float x3=real(c)-floor(real(c)) float y3=imag(c)-floor(imag(c)) float x4=x3-1 float y4=y3-1 float f1=(x1^@pow2%65536+y1)^@pow2%65536 float f2=(x2^@pow2%65536+y1)^@pow2%65536 float f3=(x1^@pow2%65536+y2)^@pow2%65536 float f4=(x2^@pow2%65536+y2)^@pow2%65536 float g1=(f1)^@pow2*0.25%512-256 float g2=(f2)^@pow2*0.25%512-256 float g3=(f3)^@pow2*0.25%512-256 float g4=(f4)^@pow2*0.25%512-256 float g5=(f1+1)^@pow2*0.25%512-256 float g6=(f2+1)^@pow2*0.25%512-256 float g7=(f3+1)^@pow2*0.25%512-256 float g8=(f4+1)^@pow2*0.25%512-256 float h=0.0; h=1/sqrt(sqr(g1)+sqr(g5)) g1=g1*h g5=g5*h h=1/sqrt(sqr(g2)+sqr(g6)) g2=g2*h g6=g6*h h=1/sqrt(sqr(g3)+sqr(g7)) g3=g3*h g7=g7*h h=1/sqrt(sqr(g4)+sqr(g8)) g4=g4*h g8=g8*h float j1=x3*g1+y3*g5 float j2=x4*g2+y3*g6 float j3=x3*g3+y4*g7 float j4=x4*g4+y4*g8 float k1=sqr(x3)*(3-x3*2) float k2=sqr(y3)*(3-y3*2) float k3=j1+k1*(j2-j1) float k4=j3+k1*(j4-j3) if @fn=="abs" a=a+real(abs(k3+k2*(k4-k3)))*d*b elseif @fn=="abs acos log" a=a+real(abs(acos(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="abs cos log" a=a+real(abs(cos(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="abs floor log" a=a+real(abs(floor(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="abs sin log" a=a+real(abs(sin(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="abs sinh log" a=a+real(abs(sinh(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="abs sqr log" a=a+real(abs(sqr(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="acos acos log" a=a+real(acos(acos(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="acos ceil" a=a+real(acos(ceil(k3+k2*(k4-k3))))*d*b elseif @fn=="acos flip log" a=a+real(acos(flip(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="acos log conj" a=a+real(acos(log(conj(k3+k2*(k4-k3)))))*d*b elseif @fn=="acos log cotan" a=a+real(acos(log(cotan(k3+k2*(k4-k3)))))*d*b elseif @fn=="acos recip" a=a+real(acos(recip(k3+k2*(k4-k3))))*d*b elseif @fn=="acos sin exp" a=a+real(acos(sin(exp(k3+k2*(k4-k3)))))*d*b elseif @fn=="acos sin log" a=a+real(acos(sin(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="acos sinh log" a=a+real(acos(sinh(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="acosh flip cotanh" a=a+real(acosh(flip(cotanh(k3+k2*(k4-k3)))))*d*b elseif @fn=="asin ceil" a=a+real(asin(ceil(k3+k2*(k4-k3))))*d*b elseif @fn=="atanh ceil log" a=a+real(atanh(ceil(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="atanh log" a=a+real(atanh(log(k3+k2*(k4-k3))))*d*b elseif @fn=="cabs sqrt" a=a+real(cabs(sqrt(k3+k2*(k4-k3))))*d*b elseif @fn=="ceil" a=a+real(ceil(k3+k2*(k4-k3)))*d*b elseif @fn=="ceil log" a=a+real(ceil(log(k3+k2*(k4-k3))))*d*b elseif @fn=="cos log" a=a+real(cos(log(k3+k2*(k4-k3))))*d*b elseif @fn=="cosh conj acos" a=a+real(cosh(conj(acos(k3+k2*(k4-k3)))))*d*b elseif @fn=="cotan exp exp" a=a+real(cotan(exp(exp(k3+k2*(k4-k3)))))*d*b elseif @fn=="cotanh sqrt" a=a+real(cotanh(sqrt(k3+k2*(k4-k3))))*d*b elseif @fn=="exp" a=a+real(exp(k3+k2*(k4-k3)))*d*b elseif @fn=="exp acos" a=a+real(exp(acos(k3+k2*(k4-k3))))*d*b elseif @fn=="exp ceil" a=a+real(exp(ceil(k3+k2*(k4-k3))))*d*b elseif @fn=="exp exp" a=a+real(exp(exp(k3+k2*(k4-k3))))*d*b elseif @fn=="exp exp exp" a=a+real(exp(exp(exp(k3+k2*(k4-k3)))))*d*b elseif @fn=="flip log" a=a+real(flip(log(k3+k2*(k4-k3))))*d*b elseif @fn=="flip sqrt" a=a+real(flip(sqrt(k3+k2*(k4-k3))))*d*b elseif @fn=="floor" a=a+real(floor(k3+k2*(k4-k3)))*d*b elseif @fn=="floor log" a=a+real(floor(log(k3+k2*(k4-k3))))*d*b elseif @fn=="ident" a=a+real(k3+k2*(k4-k3))*d*b elseif @fn=="log" a=a+real(log(k3+k2*(k4-k3)))*d*b elseif @fn=="log acos" a=a+real(log(acos(k3+k2*(k4-k3))))*d*b elseif @fn=="log acos acos" a=a+real(log(acos(acos(k3+k2*(k4-k3)))))*d*b elseif @fn=="log acos floor" a=a+real(log(acos(floor(k3+k2*(k4-k3)))))*d*b elseif @fn=="log acos recip" a=a+real(log(acos(recip(k3+k2*(k4-k3)))))*d*b elseif @fn=="log ceil exp" a=a+real(log(ceil(exp(k3+k2*(k4-k3)))))*d*b elseif @fn=="log log" a=a+real(log(log(k3+k2*(k4-k3))))*d*b elseif @fn=="log log abs" a=a+real(log(log(abs(k3+k2*(k4-k3)))))*d*b elseif @fn=="log log cos" a=a+real(log(log(cos(k3+k2*(k4-k3)))))*d*b elseif @fn=="log log log" a=a+real(log(log(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="log log sqr" a=a+real(log(log(sqr(k3+k2*(k4-k3)))))*d*b elseif @fn=="log log sqrt" a=a+real(log(log(sqrt(k3+k2*(k4-k3)))))*d*b elseif @fn=="log sqr" a=a+real(log(sqr(k3+k2*(k4-k3))))*d*b elseif @fn=="log sqr log" a=a+real(log(sqr(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="log sqrt" a=a+real(log(sqrt(k3+k2*(k4-k3))))*d*b elseif @fn=="log sqrt acos" a=a+real(log(sqrt(acos(k3+k2*(k4-k3)))))*d*b elseif @fn=="log sqrt log" a=a+real(log(sqrt(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="log sqrt sqrt" a=a+real(log(sqrt(sqrt(k3+k2*(k4-k3)))))*d*b elseif @fn=="recip log" a=a+real(recip(log(k3+k2*(k4-k3))))*d*b elseif @fn=="recip sqrt" a=a+real(recip(sqrt(k3+k2*(k4-k3))))*d*b elseif @fn=="round cos exp" a=a+real(round(cos(exp(k3+k2*(k4-k3)))))*d*b elseif @fn=="round cotan exp" a=a+real(round(cotan(exp(k3+k2*(k4-k3)))))*d*b elseif @fn=="round exp exp" a=a+real(round(exp(exp(k3+k2*(k4-k3)))))*d*b elseif @fn=="round log" a=a+real(round(log(k3+k2*(k4-k3))))*d*b elseif @fn=="round sinh cotan" a=a+real(round(sinh(cotan(k3+k2*(k4-k3)))))*d*b elseif @fn=="round sinh exp" a=a+real(round(sinh(exp(k3+k2*(k4-k3)))))*d*b elseif @fn=="sin exp exp" a=a+real(sin(exp(exp(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr acos log" a=a+real(sqr(acos(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr asin log" a=a+real(sqr(asin(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr asinh log" a=a+real(sqr(asinh(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr atan log" a=a+real(sqr(atan(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr atanh log" a=a+real(sqr(atanh(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr cabs log" a=a+real(sqr(cabs(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr cotanh log" a=a+real(sqr(cotanh(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr exp exp" a=a+real(sqr(exp(exp(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr floor log" a=a+real(sqr(floor(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr log" a=a+real(sqr(log(k3+k2*(k4-k3))))*d*b elseif @fn=="sqr log abs" a=a+real(sqr(log(abs(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr log acos" a=a+real(sqr(log(acos(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr log flip" a=a+real(sqr(log(flip(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr log log" a=a+real(sqr(log(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr log sqr" a=a+real(sqr(log(sqr(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr recip log" a=a+real(sqr(recip(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqr tanh log" a=a+real(sqr(tanh(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt" a=a+real(sqrt(k3+k2*(k4-k3)))*d*b elseif @fn=="sqrt abs log" a=a+real(sqrt(abs(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt acos" a=a+real(sqrt(acos(k3+k2*(k4-k3))))*d*b elseif @fn=="sqrt acos log" a=a+real(sqrt(acos(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt acosh log" a=a+real(sqrt(acosh(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt asin log" a=a+real(sqrt(asin(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt asinh log" a=a+real(sqrt(asinh(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt atan log" a=a+real(sqrt(atan(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt cabs log" a=a+real(sqrt(cabs(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt ceil log" a=a+real(sqrt(ceil(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt cos log" a=a+real(sqrt(cos(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt cosh log" a=a+real(sqrt(cosh(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt cotan log" a=a+real(sqrt(cotan(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt flip log" a=a+real(sqrt(flip(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt log" a=a+real(sqrt(log(k3+k2*(k4-k3))))*d*b elseif @fn=="sqrt log acos" a=a+real(sqrt(log(acos(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt log cosh" a=a+real(sqrt(log(cosh(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt log cotanh" a=a+real(sqrt(log(cotanh(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt log flip" a=a+real(sqrt(log(flip(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt log log" a=a+real(sqrt(log(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt log recip" a=a+real(sqrt(log(recip(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt log sqrt" a=a+real(sqrt(log(sqrt(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt recip log" a=a+real(sqrt(recip(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt sin log" a=a+real(sqrt(sin(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt sinh log" a=a+real(sqrt(sinh(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt sqrt" a=a+real(sqrt(sqrt(k3+k2*(k4-k3))))*d*b elseif @fn=="sqrt sqrt log" a=a+real(sqrt(sqrt(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="sqrt tan log" a=a+real(sqrt(tan(log(k3+k2*(k4-k3)))))*d*b elseif @fn=="tan exp exp" a=a+real(tan(exp(exp(k3+k2*(k4-k3)))))*d*b elseif @fn=="tan tan cos" a=a+real(tan(tan(cos(k3+k2*(k4-k3)))))*d*b elseif @fn=="trunc log" a=a+real(trunc(log(k3+k2*(k4-k3))))*d*b endif d=d*0.5 c=c/0.5 i=i-1 endwhile final: #index=(sqr(atan(a))+@p7)*@p8 default: title="Plazmiki 2" param V caption="Attractor" enum="Clifford""de Jong""Hamilton Torus""Henon""Ikeda""Kam Torus""Latoocarfian"\ "Polyharmonic Pendulum""Popcorn""Standard Map" default=0 endparam param Ap1 caption="Attractor Parameter" default=(1,0) endparam param Ap2 caption="Attractor Parameter 2" default=(1,0) visible=@V!="Hamilton Torus" && @V!="Kam Torus" endparam param Ap3 caption="Attractor Parameter 3" default=(1,0) visible=@V=="Clifford" || @V=="de Jong" || @V=="Ikeda" || @V=="Latoocarfian" || @V=="Polyharmonic Pendulum" \ || @V=="Standard Map" endparam param Ap4 caption="Attractor Parameter 4" default=(1,0) visible=@V=="Clifford" || @V=="de Jong" || @V=="Ikeda" || @V=="Latoocarfian" || @V=="Polyharmonic Pendulum" endparam param fn caption="Function" enum="abs""abs acos log""abs cos log""abs floor log"\ "abs sin log""abs sinh log""abs sqr log"\ "acos acos log""acos ceil"\ "acos flip log""acos log conj""acos log cotan"\ "acos recip""acos sin exp""acos sin log""acos sinh log" \ "acosh flip cotanh""asin ceil""atanh ceil log""atanh log"\ "cabs sqrt""ceil""ceil log""cos log""cosh conj acos""cotan exp exp"\ "cotanh sqrt""exp""exp acos""exp ceil""exp exp""exp exp exp"\ "flip log""flip sqrt""floor""floor log"\ "ident""log""log acos""log acos acos"\ "log acos floor""log acos recip""log ceil exp""log log"\ "log log abs""log log cos""log log log""log log sqr""log log sqrt"\ "log sqr""log sqr log""log sqrt""log sqrt acos""log sqrt log"\ "log sqrt sqrt""recip log""recip sqrt""round cos exp""round cotan exp"\ "round exp exp""round log""round sinh cotan""round sinh exp""sin exp exp"\ "sqr acos log""sqr asin log""sqr asinh log""sqr atan log""sqr atanh log"\ "sqr cabs log""sqr cotanh log""sqr exp exp""sqr floor log""sqr log"\ "sqr log abs""sqr log acos""sqr log flip""sqr log log"\ "sqr log sqr""sqr recip log""sqr tanh log""sqrt""sqrt abs log"\ "sqrt acos""sqrt acos log""sqrt acosh log""sqrt asin log""sqrt asinh log"\ "sqrt atan log""sqrt cabs log""sqrt ceil log""sqrt cos log""sqrt cosh log"\ "sqrt cotan log""sqrt flip log""sqrt log""sqrt log acos"\ "sqrt log cosh""sqrt log cotanh""sqrt log flip""sqrt log log"\ "sqrt log recip""sqrt log sqrt""sqrt recip log""sqrt sin log""sqrt sinh log"\ "sqrt sqrt""sqrt sqrt log""sqrt tan log""tan exp exp""tan tan cos"\ "trunc log" default=37 endparam param p2 caption="Parameter 1" default=(1,0) endparam param p3 caption="Parameter 2" default=(0,0) endparam param p7 caption="Parameter 3" default=1.0 endparam param p8 caption="Parameter 4" default=0.5 endparam param pow1 caption="Exponent 1" default=2.0 endparam param pow2 caption="Exponent 2" default=2.0 endparam param p4 caption="Iterations" default=1 min=1 endparam param S caption="Symmetrise" default=false endparam } Plasmosis{ ; This draws on work by Ron Barnett and Damien Jones. Many thanks to them. init: float a=0.0 float b=1e30 d1=(1,0) d2=(0,1)^0.411111111111 float f=0.0 float g=1.0 int i=7 pix=pixel if @F1=="sin" pix=sin(pix) elseif @F1=="sinh" pix=sinh(pix) elseif @F1=="cos" pix=cos(pix) elseif @F1=="cosh" pix=cosh(pix) elseif @F1=="cotan" pix=cotan(pix) elseif @F1=="cotanh" pix=cotanh(pix) elseif @F1=="sqr" pix=sqr(pix) elseif @F1=="sqrt" pix=sqrt(pix) elseif @F1=="log" pix=log(pix) elseif @F1=="exp" pix=exp(pix) elseif @F1=="abs" pix=abs(pix) elseif @F1=="conj" pix=conj(pix) elseif @F1=="flip" pix=flip(pix) elseif @F1=="ident" pix=ident(pix) elseif @F1=="recip" pix=recip(pix) elseif @F1=="versin" pix=1-cos(pix) elseif @F1=="haversin" pix=(1-cos(pix))/2 elseif @F1=="coversin" pix=1-sin(pix) elseif @F1=="hacoversin" pix=(1-sin(pix))/2 elseif @F1=="vercos" pix=1+cos(pix) elseif @F1=="havercos" pix=(1+cos(pix))/2 elseif @F1=="covercos" pix=1+sin(pix) elseif @F1=="hacovercos" pix=(1+sin(pix))/2 elseif @F1=="cosec" pix=1/sin(pix) elseif @F1=="cosech" pix=1/sinh(pix) elseif @F1=="excosec" pix=1/sin(pix)-1 elseif @F1=="aexcosec" pix=asin(1/(pix+1)) elseif @F1=="crd" pix=2*sin(pix/2) elseif @F1=="acrd" pix=2*asin(pix/2) elseif @F1=="sinc" pix=sin(pix)/(pix) elseif @F1=="sinhc" pix=sinh(pix)/(pix) elseif @F1=="cosc" pix=cos(pix)/(pix) elseif @F1=="coshc" pix=cosh(pix)/(pix) elseif @F1=="cotanc" pix=cotan(pix)/(pix) elseif @F1=="cotanhc" pix=cotanh(pix)/(pix) elseif @F1=="cosecc" pix= 1/(pix*sin(pix)) elseif @F1=="cosechc" pix=1/(pix*sinh(pix)) elseif @F1=="cube" pix=pix^3 elseif @F1=="cuberoot" pix=pix^(1/3) elseif @F1=="colog" pix=-log(pix) elseif @F1=="expit" pix=1/(1+exp(-pix)) elseif @F1=="softplus" pix=log(1+exp(pix)) elseif @F1=="sqr+" pix=sqr(pix)+pix elseif @F1=="cube+" pix=pix^3+sqr(pix)+pix elseif @F1=="sin+" pix=sin(pix)+pix elseif @F1=="cos+" pix=cos(pix)+pix elseif @F1=="cotan+" pix=cotan(pix)+pix elseif @F1=="cosec+" pix=1/sin(pix)+pix elseif @F1=="sin*" pix=sin(pix)*pix elseif @F1=="cos*" pix=cos(pix)*pix elseif @F1=="cotan*" pix=cotan(pix)*pix elseif @F1=="cosec*" pix=pix/sin(pix) elseif @F1=="+pixel" pix=pix+pixel elseif @F1=="-pixel" pix=pix-pixel else pix=pix*pixel endif h=pix*p3*d1+p4 while i>0 float j1=floor(real(h))%256 float j2=floor(imag(h))%256 if j1<0 j1=j1+256 endif if j2<0 j2=j2+256 endif float j3=(j1+1)%256 float j4=(j2+1)%256 float k1=real(h)-floor(real(h)) float k2=imag(h)-floor(imag(h)) float k3=k1-1 float k4=k2-1 float m1=(j1^2%65536+j2)^2%65536 float m2=(j3^2%65536+j2)^2%65536 float m3=(j1^2%65536+j4)^2%65536 float m4=(j3^2%65536+j4)^2%65536 float n1=m1^2*0.25%512-256 float n2=m2^2*0.25%512-256 float n3=m3^2*0.25%512-256 float n4=m4^2*0.25%512-256 float n5=(m1+1)^2*0.25%512-256 float n6=(m2+1)^2*0.25%512-256 float n7=(m3+1)^2*0.25%512-256 float n8=(m4+1)^2*0.25%512-256 float p=0.0 p=1/sqrt(sqr(n1)+sqr(n5)) n1=n1*p n5=n5*p p=1/sqrt(sqr(n2)+sqr(n6)) n2=n2*p n6=n6*p p=1/sqrt(sqr(n3)+sqr(n7)) n3=n3*p n7=n7*p p=1/sqrt(sqr(n4)+sqr(n8)) n4=n4*p n8=n8*p float q1=k1*n1+k2*n5 float q2=k3*n2+k2*n6 float q3=k1*n3+k4*n7 float q4=k3*n4+k4*n8 float r1=sqr(k1)*(3-k1*2) float r2=sqr(k2)*(3-k2*2) float r3=q1+r1*(q2-q1) float r4=q3+r1*(q4-q3) f=f+(r3+r2*(r4-r3))*g g=g/2 h=h*d2*2 i=i-1 endwhile loop: if @Fs=="sin" z=sin(#z) elseif @Fs=="sinh" z=sinh(#z) elseif @Fs=="asin" z=asin(#z) elseif @Fs=="asinh" z=asinh(#z) elseif @Fs=="tan" z=tan(#z) elseif @Fs=="tanh" z=tanh(#z) elseif @Fs=="atan" z=atan(#z) elseif @Fs=="atanh" z=atanh(#z) elseif @Fs=="sqr" z=sqr(#z) elseif @Fs=="sqrt" z=sqrt(#z) elseif @Fs=="ident" z=ident(#z) elseif @Fs=="versin" z=1-cos(#z) elseif @Fs=="aversin" z=acos(1-#z) elseif @Fs=="haversin" z=(1-cos(#z))/2 elseif @Fs=="ahaversin" z=2*asin(sqrt(#z)) elseif @Fs=="avercos" z=acos(1+#z) elseif @Fs=="exsec" z=1/cos(#z)-1 elseif @Fs=="aexsec" z= acos(1/(#z+1)) elseif @Fs=="crd" z=2*sin(#z/2) elseif @Fs=="acrd" z=2*asin(#z/2) elseif @Fs=="gd" z=asin(tanh(#z)) elseif @Fs=="agd" z=asinh(tan(#z)) elseif @Fs=="cube" z=#z^3 elseif @Fs=="cuberoot" z=#z^(1/3) elseif @Fs=="logit" z= log(#z/(1-#z)) elseif @Fs=="primecount" z=#z/log(#z) elseif @Fs=="sqr+" z=sqr(#z)+#z elseif @Fs=="cube+" z=#z^3+sqr(#z)+#z elseif @Fs=="sin+" z=sin(#z)+#z elseif @Fs=="tan+" z=tan(#z)+#z elseif @Fs=="sin*" z=sin(#z)*#z elseif @Fs=="cos*" z=cos(#z)*#z elseif @Fs=="sinsin" z=sin(sin(#z)) elseif @Fs=="+pixel" z=#z+pixel elseif @Fs=="*pixel" z=#z*pixel else z=#z/pixel endif a=cabs(z) if a=#maxiter k1=#maxiter-1 endif init: float a = 0.0 float b=1e20 float c=-1 float d=0.0 float f=0.0 int k2=0 loop: z=p1*fn1(#z)+p2 if k2<=k1 if @v=="Tv" d=cabs(p3*fn2(fn3(z^4+2*sqrt(3)*sqrt(-1)*z^2+1))+p4) elseif @v=="Tf" d=cabs(p3*fn2(fn3(z^4-2*sqrt(3)*sqrt(-1)*z^2+1))+p4) elseif @v=="Ov" d=cabs(p3*fn2(fn3(z^5-z))+p4) elseif @v=="Of" d=cabs(p3*fn2(fn3(z^8+14*z^4+1))+p4) elseif @v=="Oe" d=cabs(p3*fn2(fn3(z^12-33*z^8-33*z^4+1))+p4) elseif @v=="Yv" d=cabs(p3*fn2(fn3(z^11+11*z^6-z))+p4) elseif @v=="Yf" d=cabs(p3*fn2(fn3(z^20-228*z^15+494*z^10+228*z^5+1))+p4) elseif @v=="Ye" d=cabs(p3*fn2(fn3(z^30+522*z^25-10005*z^20-10005*z^10-522*z^5+1))+p4) endif f=d if f< b b = f endif if f>c c = f endif a= a+ exp(-d) k2=k2+1 endif final: if @solid if @invert if sqrt(a)/(1+c-b)<@p7 #index=sqrt(a)/(1+c-b)+p6*real(#random) else #solid=true endif else if sqrt(a)/(1+c-b)>@p7 #index=sqrt(a)/(1+c-b)+p6*real(#random) else #solid=true endif endif else #index=sqrt(a)/(1+c-b)+p6*real(#random) endif default: title="Klein Polynomial Traps" param V caption="Polynomial" enum="Tv""Tf""Ov""Of""Oe""Yv""Yf""Ye" default=3 endparam param p1 default=(0.5,0) endparam param p2 default=(0,0) endparam param p3 default=(1,0) endparam param p4 default=(0,0) endparam param p5 caption="Detail" default=4 endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc param p6 caption="Fuzziness" default=0.0 endparam param solid caption="Solid Colour" default=false endparam param p7 caption="Solid Colour Adjustment" default=0.5 visible=@solid==true endparam param invert caption="Invert" default=false visible=@solid==true endparam } PoincaréPolynomialTraps { global: int k1=p5 if k1>=#maxiter k1=#maxiter-1 endif init: float a = 0.0 float b=1e20 float c=-1 float d=0.0 float f=0.0 int k2=0 loop: z=p1*fn1(#z)+p2 if k2<=k1 if @v=="Q1(B2)" d=cabs(p3*fn2(fn3(1-z-z^3-z^4))+p4) elseif @v=="Q2(A2)" d=cabs(p3*fn2(fn3(1-z-z^2-z^3))+p4) elseif @v=="Q3(B2)" d=cabs(p3*fn2(fn3(1-z-z^2-z^3-2*z^4))+p4) elseif @v=="Q8(A3)" d=cabs(p3*fn2(fn3(1-z-2*z^2+z^5+z^6))+p4) elseif @v=="Q9(A3)" d=cabs(p3*fn2(fn3(1-z-3*z^2-z^4+z^5+3*z^6))+p4) elseif @v=="Q10(B3)" d=cabs(p3*fn2(fn3(1-z-3*z^3+z^4-z^5+z^8+2*z^9))+p4) elseif @v=="Q11(B3)" d=cabs(p3*fn2(fn3(1-z-2*z^3+z^4-z^5+z^8+z^9))+p4) elseif @v=="Q12(B3)" d=cabs(p3*fn2(fn3(1-z-z^2-3*z^3-z^6+z^7+z^8+3*z^9))+p4) elseif @v=="Q16(G2)" d=cabs(p3*fn2(fn3(1-2*z+z^2-z^4+z^6))+p4) elseif @v=="Q17(B3)" d=cabs(p3*fn2(fn3(1-z-z^3-2*z^5+z^6+z^8+z^9))+p4) elseif @v=="Q18(G2)" d=cabs(p3*fn2(fn3(1-2*z+z^3-z^4-z^5+2*z^6))+p4) elseif @v=="Q19(B3)" d=cabs(p3*fn2(fn3(1-z-z^3-z^4-z^5+z^6+z^8+z^9))+p4) elseif @v=="Q20(G2)" d=cabs(p3*fn2(fn3(1-2*z-2*z^5+3*z^6))+p4) elseif @v=="Q21(D4)" d=cabs(p3*fn2(fn3(1-z-2*z^2-z^3+2*z^5+z^6+2*z^7+3*z^8-z^9+z^10-z^11-2*z^12))+p4) elseif @v=="Q22(B4)" d=cabs(p3*fn2(fn3(1-z-z^2-z^3+z^7+2*z^8+z^9+z^10+z^11-z^15-z^16))+p4) elseif @v=="Q23(D4)" d=cabs(p3*fn2(fn3(1-z-z^3-z^4+z^6+z^7+2*z^8-z^11-z^12))+p4) elseif @v=="Q24(G2)" d=cabs(p3*fn2(fn3(1-z-z^5))+p4) elseif @v=="Q25(B2)" d=cabs(p3*fn2(fn3(1-z-z^3))+p4) elseif @v=="Q26(A2)" d=cabs(p3*fn2(fn3(1-z-z^2))+p4) elseif @v=="Q27(B2)" d=cabs(p3*fn2(fn3(1-z-z^2-z^3))+p4) elseif @v=="Q28(G2)" d=cabs(p3*fn2(fn3(1-z-z^3-z^5))+p4) elseif @v=="Q29(G2)" d=cabs(p3*fn2(fn3(1-z-z^2-z^3-z^4-z^5))+p4) elseif @v=="Q36(A3)" d=cabs(p3*fn2(fn3(1-z-z^2+z^5))+p4) elseif @v=="Q37(B3)" d=cabs(p3*fn2(fn3(1-z-z^3+z^8))+p4) elseif @v=="Q38(B3)" d=cabs(p3*fn2(fn3(1-z-z^2-z^4+z^6+z^8))+p4) elseif @v=="Q39(B3)" d=cabs(p3*fn2(fn3(1-z-z^2-z^3+z^7+z^8))+p4) elseif @v=="Q40(B3)" d=cabs(p3*fn2(fn3(1-z-2*z^3+z^4-z^5+z^6+z^8))+p4) elseif @v=="Q43(B3)" d=cabs(p3*fn2(fn3(1-z-z^4+z^8))+p4) elseif @v=="Q44(B3)" d=cabs(p3*fn2(fn3(1-z-z^3-z^5+z^6+z^8))+p4) elseif @v=="Q46(D4)" d=cabs(p3*fn2(fn3(1-z^2-z^3-z^4-z^5-z^6+z^8+z^9+2*z^10+2*z^11+2*z^12+z^13+z^14-z^16-z^17-z^18-z^19))+p4) elseif @v=="Q47(D5)" d=cabs(p3*fn2(fn3(1-z-z^2-Z^4+z^5+z^6+z^7+z^9+z^10-z^11-z^13-z^14-z^15+z^19))+p4) elseif @v=="Q48(B5)" d=cabs(p3*fn2(fn3(1-z-2*z^3+z^4+z^6-z^7+2*z^8-z^9+z^10+z^12+z^13-z^14-z^15-z^18-z^20+z^24))+p4) elseif @v=="Pg2" d=cabs(p3*fn2(fn3((1+z^3)*(1+z^11)))+p4) elseif @v=="Pf4" d=cabs(p3*fn2(fn3((1+z^3)*(1+z^11)*(1+z^15)*(1+z^23)))+p4) elseif @v=="Pe6" d=cabs(p3*fn2(fn3((1+z^3)*(1+z^9)*(1+z^11)*(1+z^15)*(1+z^17)*(1+z^23)))+p4) elseif @v=="Pe7" d=cabs(p3*fn2(fn3((1+z^3)*(1+z^11)*(1+z^15)*(1+z^19)*(1+z^23)*(1+z^27)*(1+z^35)))+p4) elseif @v=="Pe8" d=cabs(p3*fn2(fn3((1+z^3)*(1+z^15)*(1+z^23)*(1+z^27)*(1+z^35)*(1+z^39)*(1+z^47)*(1+z^59)))+p4) endif f=d if f< b b = f endif if f>c c = f endif a= a+ exp(-d) k2=k2+1 endif final: if @solid if @invert if sqrt(a)/(1+c-b)<@p7 #index=sqrt(a)/(1+c-b)+p6*real(#random) else #solid=true endif else if sqrt(a)/(1+c-b)>@p7 #index=sqrt(a)/(1+c-b)+p6*real(#random) else #solid=true endif endif else #index=sqrt(a)/(1+c-b)+p6*real(#random) endif default: title="Poincaré Polynomial Traps" param V caption="Polynomial" enum="Q1(B2)""Q2(A2)""Q3(B2)"\ "Q8(A3)""Q9(A3)""Q10(B3)""Q11(B3)""Q12(B3)"\ "Q16(G2)""Q17(B3)""Q18(G2)""Q19(B3)""Q20(G2)""Q21(D4)""Q22(B4)""Q23(D4)"\ "Q24(G2)""Q25(B2)""Q26(A2)""Q27(B2)""Q28(G2)""Q29(G2)"\ "Q36(A3)""Q37(B3)""Q38(B3)""Q39(B3)""Q40(B3)"\ "Q43(B3)""Q44(B3)"\ "Q46(D4)""Q47(D5)""Q48(B5)"\ "Pg2""Pf4""Pe6""Pe7""Pe8" default=0 endparam param p1 default=(0.5,0) endparam param p2 default=(0,0) endparam param p3 default=(1,0) endparam param p4 default=(0,0) endparam param p5 caption="Detail" default=4 endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc param p6 caption="Fuzziness" default=0.0 endparam param solid caption="Solid Colour" default=false endparam param p7 caption="Solid Colour Adjustment" default=0.5 visible=@solid==true endparam param invert caption="Invert" default=false visible=@solid==true endparam } KleinPolynomialTraps2 { init: float a=1e100 loop: z=p1*fn1(#z)+p2 if @Va=="1" z=z elseif @Va=="2" if |z|<1 z=z/|z| endif elseif @Va=="3" if |z|>1 z=z/|z| endif endif if @v=="Tv" float b=cabs(p3*10*fn2(log(cabs(fn3(z^4+2*sqrt(3)*sqrt(-1)*z^2+1))))-3*p4) elseif @v=="Tf" float b=cabs(p3*10*fn2(log(cabs(fn3(z^4-2*sqrt(3)*sqrt(-1)*z^2+1))))-3*p4) elseif @v=="Ov" float b=cabs(p3*10*fn2(log(cabs(fn3(z^5-z))))-3*p4) elseif @v=="Of" float b=cabs(p3*10*fn2(log(cabs(fn3(z^8+14*z^4+1))))-3*p4) elseif @v=="Oe" float b=cabs(p3*10*fn2(log(cabs(fn3(z^12-33*z^8-33*z^4+1))))-3*p4) elseif @v=="Yv" float b=cabs(p3*10*fn2(log(cabs(fn3(z^11+11*z^6-z))))-3*p4) elseif @v=="Yf" float b=cabs(p3*10*fn2(log(cabs(fn3(z^20-228*z^15+494*z^10+228*z^5+1))))-3*p4) else float b=cabs(p3*10*fn2(log(cabs(fn3(z^30+522*z^25-10005*z^20-10005*z^10-522*z^5+1))))-3*p4) endif if b1 z=z/cabs(z) endif elseif @Va=="2" if cabs(z)<1 z=z/cabs(z) endif elseif @Va=="3" z=z elseif @Va=="4" if real(z)imag(z) z=flip(z) endif endif if @V=="3" float b=|p3*fn2(log(fn3(z^3+z)))+p4| elseif @V=="4" float b=|p3*fn2(log(fn3(z^4-2)))+p4| elseif @V=="5" float b=|p3*fn2(log(fn3(z^5-z^3-3*z)))+p4| elseif @V=="6" float b=|p3*fn2(log(fn3(z^6-2*z^4-3*z^2+2)))+p4| elseif @V=="7" float b=|p3*fn2(log(fn3(z^7-3*z^5-2*z^3+5*z)))+p4| elseif @V=="8" float b=|p3*fn2(log(fn3(z^8-4*z^6+8*z^2-2)))+p4| else float b=|p3*fn2(log(fn3(z^9-5*z^7+3*z^5+10*z^3-7*z)))+p4| endif if b1 z=z/cabs(z) endif if @V=="3" float b=|p3*fn2(fn3(z^3+z))+p4| elseif @V=="4" float b=|p3*fn2(fn3(z^4-2))+p4| elseif @V=="5" float b=|p3*fn2(fn3(z^5-z^3-3*z))+p4| elseif @V=="6" float b=|p3*fn2(fn3(z^6-2*z^4-3*z^2+2))+p4| elseif @V=="7" float b=|p3*fn2(fn3(z^7-3*z^5-2*z^3+5*z))+p4| elseif @V=="8" float b=|p3*fn2(fn3(z^8-4*z^6+8*z^2-2))+p4| else float b=|p3*fn2(fn3(z^9-5*z^7+3*z^5+10*z^3-7*z))+p4| endif if b1 z=z/|z|+p5 endif elseif @Va=="4" x=real(z) y=imag(z) x=x/|z|+real(p5) y=y/|z|+imag(p5) z=x+flip(y) elseif @Va=="5" if real(z)imag(z) z=flip(z)+p5 endif endif if @v=="2" float b=cabs(p3*10*fn2(log(cabs(fn3(12*z^2+7*z+1))))) elseif @v=="3" float b=cabs(p3*10*fn2(log(cabs(fn3(18*z^3+19*z^2+8*z+1))))) elseif @v=="4" float b=cabs(p3*10*fn2(log(cabs(fn3(24*z^4+37*z^3+27*z^2+9*z+1))))) elseif @v=="5" float b=cabs(p3*10*fn2(log(cabs(fn3(30*z^5+61*z^4+64*z^3+36*z^2+10*z+1))))) elseif @v=="6" float b=cabs(p3*10*fn2(log(cabs(fn3(36*z^6+91*z^5+125*z^4+100*z^3+46*z^2+11*z+1))))) elseif @v=="7" float b=cabs(p3*10*fn2(log(cabs(fn3(42*z^7+127*z^6+216*z^5+225*z^4+146*z^3+57*z^2+12*z+1))))) else float b=cabs(p3*10*fn2(log(cabs(fn3(48*z^8+169*z^7+343*z^6+441*z^5+371*z^4+203*z^3+69*z^2+13*z+1))))) endif if b1 z=z/cabs(z) endif elseif @Va=="4" if real(z)imag(z) z=flip(z) endif elseif @Va=="6" x=real(z) y=imag(z) x=x/|z| y=y/|z| z=x+flip(y) elseif @Va=="7" if |z|<1 z=z/|z| endif elseif @Va=="8" if |z|>1 z=z/|z| endif endif if @v=="3" z=p3*fn2(log(8*z^3-12*z))+p4 elseif @v=="4" z=p3*fn2(log(16*z^4-48*z^2+12))+p4 elseif @v=="5" z=p3*fn2(log(32*z^5-160*z^3+120*z))+p4 elseif @v=="6" z=p3*fn2(log(64*z^6-480*z^4+720*z^2-120))+p4 elseif @v=="7" z=p3*fn2(log(128*z^7-1344*z^5+3360*z^3-1680*z))+p4 elseif @v=="8" z=p3*fn2(log(256*z^8-3584*z^6+13440*z^4-13440*z^2+1680))+p4 elseif @v=="9" z=p3*fn2(log(512*z^9-9216*z^7+48384*z^5-80640*z^3+30240*z))+p4 elseif @v=="10" z=p3*fn2(log(1024*z^10-23040*z^8+161280*z^6-403200*z^4+302400*z^2-30240))+p4 endif c=c+real(atanh(|z|*a))*p5/b final: #index=(c%1000)/1000 default: title="Hermite Polynomial Traps" param V caption="Polynomial" enum="3""4""5""6""7""8""9""10" default=3 endparam param Va caption="Variant" enum="1""2""3""4""5""6""7""8" default=0 endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc param p1 default=(1,0) endparam param p2 default=(0,0) endparam param p3 caption="Parameter 3" default=1.0 endparam param p4 caption="Parameter 4" default=0.0 endparam param p5 caption="Parameter 5" default=2.0 endparam } LegendrePolynomialTraps { ;A modification of Squiggles Coloring by Paul Carson (pwc.ucl) init: float a=p5/10 float b=20*p6 float c=(b-1)/p3 float d=0.0 int i=0 float f=254 bool g=false loop: z=p1*fn1(#z)+p2 if @Va=="1" z=z elseif @Va=="2" x=real(z) y=imag(z) x=x/|z| y=y/|z| z=x+flip(y) elseif @Va=="3" if real(z)imag(z) z=flip(z) endif endif if @v=="2" z=fn2((3*z^2-1)/2) elseif @v=="3" z=fn2((5*z^3-3*z)/2) elseif @v=="4" z=fn2((35*z^4-30*z^2+3)/8) elseif @v=="5" z=fn2((63*z^5-70*z^3+15*z)/8) elseif @v=="6" z=fn2((231*z^6-315*z^4+105*z^2-5)/16) elseif @v=="7" z=fn2((429*z^7-693*z^5+315*z^3-35*z)/16) elseif @v=="8" z=fn2((6435*z^8-12012*z^6+6930*z^4-1260*z^2+35)/128) elseif @v=="9" z=fn2((12155*z^9-25740*z^7+18018*z^5-4620*z^3+315*z)/128) elseif @v=="10" z=fn2((46189*z^10-109395*z^8+90090*z^6-30030*z^4+3465*z^2-63)/256) endif float h=abs(atan(imag(z)/real(z))) float rh=real(h) float ih=imag(h) j=rh+flip(ih) float k=abs(|#z|-|j|) if !g && (k=p4) g=true d=i%a f=c*k+d*b endif i=i+1 final: #index=((real(f)+1)%256)/256 default: title="Legendre Polynomial Traps" param V caption="Polynomial" enum="2""3""4""5""6""7""8""9""10" default=0 endparam param Va caption="Variant" enum="1""2""3""4" default=0 endparam param p1 default=(1,0) endparam param p2 default=(0,0) endparam param p3 caption="Parameter 3" default =1.0 endparam param p4 caption="Parameter 4" default=0 endparam param p5 caption="Parameter 5" default=20.0 endparam param p6 caption="Parameter 6" default=6.25 endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc } LegendrePolynomialTraps2 { init: float c=0.0 loop: if @Fs=="acos" z=acos(#z) elseif @Fs=="acosh" z=acosh(#z) elseif @Fs=="atan" z=atan(#z) elseif @Fs=="sqr" z=sqr(#z) elseif @Fs=="sqrt" z=sqrt(#z) elseif @Fs=="log" z=log(#z) elseif @Fs=="abs" z=abs(#z) elseif @Fs=="cabs" z=cabs(#z) elseif @Fs=="conj" z=conj(#z) elseif @Fs=="flip" z=flip(#z) elseif @Fs=="ident" z=ident(#z) elseif @Fs=="recip" z=recip(#z) elseif @Fs=="asec" z=acos(1/#z) elseif @Fs=="asech" z=acosh(1/#z) elseif @Fs=="aexsec" z= acos(1/(#z+1)) elseif @Fs=="crd" z=2*sin(#z/2) elseif @Fs=="acrd" z=2*asin(#z/2) elseif @Fs=="gd" z=asin(tanh(#z)) elseif @Fs=="agd" z=asinh(tan(#z)) elseif @Fs=="sinc" z=sin(#z)/(#z) elseif @Fs=="sinhc" z=sinh(#z)/(#z) elseif @Fs=="cosc" z=cos(#z)/(#z) elseif @Fs=="coshc" z=cosh(#z)/(#z) elseif @Fs=="cube" z=#z^3 elseif @Fs=="colog" z=-log(#z) elseif @Fs=="softplus" z=log(1+exp(#z)) elseif @Fs=="sqr+" z=sqr(#z)+#z elseif @Fs=="cube+" z=#z^3+sqr(#z)+#z elseif @Fs=="sin+" z=sin(#z)+#z elseif @Fs=="cos+" z=cos(#z)+#z elseif @Fs=="sin*" z=sin(#z)*#z elseif @Fs=="cos*" z=cos(#z)*#z elseif @Fs=="+pixel" z=#z+pixel elseif @Fs=="-pixel" z=#z-pixel elseif @Fs=="*pixel" z=#z*pixel elseif @Fs=="/pixel" z=#z/pixel elseif @Fs=="double" z=#z*2 else z=#z*3 endif if @Va=="1" z=z elseif @Va=="2" if cabs(z)<1 z=z/cabs(z) endif elseif @Va=="3" if cabs(z)>1 z=z/cabs(z) endif elseif @Va=="4" if real(z)imag(z) z=flip(z) endif endif z=flip(z) z=p1*fn2(z)+p2 if @v=="2" z=cabs((3*z^2-1)/2) elseif @v=="3" z=cabs((5*z^3-3*z)/2) elseif @v=="4" z=cabs((35*z^4-30*z^2+3)/8) elseif @v=="5" z=cabs((63*z^5-70*z^3+15*z)/8) elseif @v=="6" z=cabs((231*z^6-315*z^4+105*z^2-5)/16) elseif @v=="7" z=cabs((429*z^7-693*z^5+315*z^3-35*z)/16) elseif @v=="8" z=cabs((6435*z^8-12012*z^6+6930*z^4-1260*z^2+35)/128) elseif @v=="9" z=cabs((12155*z^9-25740*z^7+18018*z^5-4620*z^3+315*z)/128) elseif @v=="10" z=cabs((46189*z^10-109395*z^8+90090*z^6-30030*z^4+3465*z^2-63)/256) endif z=log(z) float d=1-cabs(z)/@adj if d<0 d=0 else d=sqr(d) endif float g=1.0 c=c+g*d g=g*0.5 final: #index=(log(c)+1)*0.5 default: title="Legendre Polynomial Traps 2" param V caption="Polynomial" enum="2""3""4""5""6""7""8""9""10" default=0 endparam param Va caption="Variant" enum="1""2""3""4""5" default=0 endparam param p1 default=(1,0) endparam param p2 default=(0,0) endparam param adj caption="Adjustment" default=1.5 endparam param Fs caption="Function 1" enum="acos""acosh""atan"\ "sqr""sqrt""log""abs""cabs""conj"\ "flip""ident""recip"\ "asec""asech""aexsec"\ "crd""acrd""gd""agd""sinc""sinhc""cosc""coshc"\ "cube""colog""softplus"\ "sqr+""cube+""sin+""cos+""sin*""cos*"\ "+pixel""-pixel"\ "*pixel""/pixel""double""triple" default=10 endparam func fn2 default=ident() endfunc } ca6 { init: loop: final: #index=@var1*(log(sqr(imag(fn1(#numiter)^@var2 + fn2(sqr(#z)/2)^@var2+fn3(exp(#pixel*#z))^@var2)))) default: title="ca6" param var1 caption="Parameter 1" default=0.1 endparam param var2 caption="Parameter 2" default=(1,0) endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc } NewtonPolycol { ;This is a modification of Numberseeker by Edgar Malinovsky (em.ucl) ;Lower values of the Iterations paremeter give smoother colouring. ;Higher values give more detail. ;It will be necessary to increase the value when zooming in. global: int i=@iter if i>=#maxiter i=#maxiter-1 endif init: float a=0.0 float b=0.0 zold=(0,0) int i2=0 loop: if @Fs=="sin" z=sin(#z) elseif @Fs=="sinh" z=sinh(#z) elseif @Fs=="asin" z=asin(#z) elseif @Fs=="asinh" z=asinh(#z) elseif @Fs=="cos" z=cos(#z) elseif @Fs=="cosh" z=cosh(#z) elseif @Fs=="acos" z=acos(#z) elseif @Fs=="acosh" z=acosh(#z) elseif @Fs=="tan" z=tan(#z) elseif @Fs=="tanh" z=tanh(#z) elseif @Fs=="atan" z=atan(#z) elseif @Fs=="atanh" z=atanh(#z) elseif @Fs=="cotan" z=cotan(#z) elseif @Fs=="cotanh" z=cotanh(#z) elseif @Fs=="sqr" z=sqr(#z) elseif @Fs=="sqrt" z=sqrt(#z) elseif @Fs=="log" z=log(#z) elseif @Fs=="exp" z=exp(#z) elseif @Fs=="abs" z=abs(#z) elseif @Fs=="cabs" z=cabs(#z) elseif @Fs=="conj" z=conj(#z) elseif @Fs=="flip" z=flip(#z) elseif @Fs=="ident" z=ident(#z) elseif @Fs=="recip" z=recip(#z) elseif @Fs=="versin" z=1-cos(#z) elseif @Fs=="aversin" z=acos(1-#z) elseif @Fs=="haversin" z=(1-cos(#z))/2 elseif @Fs=="ahaversin" z=2*asin(sqrt(#z)) elseif @Fs=="coversin" z=1-sin(#z) elseif @Fs=="acoversin" z=asin(1-#z) elseif @Fs=="hacoversin" z=(1-sin(#z))/2 elseif @Fs=="vercos" z=1+cos(#z) elseif @Fs=="avercos" z=acos(1+#z) elseif @Fs=="havercos" z=(1+cos(#z))/2 elseif @Fs=="ahavercos" z=2*acos(sqrt(#z)) elseif @Fs=="covercos" z=1+sin(#z) elseif @Fs=="acovercos" z=asin(1+#z) elseif @Fs=="hacovercos" z=(1+sin(#z))/2 elseif @Fs=="acotan" z=atan(1/(#z)) elseif @Fs=="acotanh" z=atanh(1/(#z)) elseif @Fs=="sec" z=1/cos(#z) elseif @Fs=="sech" z=1/cosh(#z) elseif @Fs=="asec" z=acos(1/#z) elseif @Fs=="asech" z=acosh(1/#z) elseif @Fs=="cosec" z=1/sin(#z) elseif @Fs=="cosech" z=1/sinh(#z) elseif @Fs=="acosec" z=asin(1/#z) elseif @Fs=="acosech" z=asinh(1/#z) elseif @Fs=="exsec" z=1/cos(#z)-1 elseif @Fs=="aexsec" z= acos(1/(#z+1)) elseif @Fs=="excosec" z=1/sin(#z)-1 elseif @Fs=="aexcosec" z=asin(1/(#z+1)) elseif @Fs=="crd" z=2*sin(#z/2) elseif @Fs=="acrd" z=2*asin(#z/2) elseif @Fs=="gd" z=asin(tanh(#z)) elseif @Fs=="agd" z=asinh(tan(#z)) elseif @Fs=="sinc" z=sin(#z)/(#z) elseif @Fs=="sinhc" z=sinh(#z)/(#z) elseif @Fs=="cosc" z=cos(#z)/(#z) elseif @Fs=="coshc" z=cosh(#z)/(#z) elseif @Fs=="tanc" z=tan(#z)/(#z) elseif @Fs=="tanhc" z=tanh(#z)/(#z) elseif @Fs=="cotanc" z=cotan(#z)/(#z) elseif @Fs=="cotanhc" z=cotanh(#z)/(#z) elseif @Fs=="secc" z=1/(#z*cos(#z)) elseif @Fs=="sechc" z=1/(#z*cosh(#z)) elseif @Fs=="cosecc" z= 1/(#z*sin(#z)) elseif @Fs=="cosechc" z=1/(#z*sinh(#z)) elseif @Fs=="cube" z=#z^3 elseif @Fs=="cuberoot" z=#z^(1/3) elseif @Fs=="colog" z=-log(#z) elseif @Fs=="logit" z= log(#z/(1-#z)) elseif @Fs=="expit" z=1/(1+exp(-#z)) elseif @Fs=="gauss" z=exp(-sqr(#z)) elseif @Fs=="softplus" z=log(1+exp(#z)) elseif @Fs=="primecount" z=#z/log(#z) elseif @Fs=="sqr+" z=sqr(#z)+#z elseif @Fs=="cube+" z=#z^3+sqr(#z)+#z elseif @Fs=="sin+" z=sin(#z)+#z elseif @Fs=="cos+" z=cos(#z)+#z elseif @Fs=="tan+" z=tan(#z)+#z elseif @Fs=="cotan+" z=cotan(#z)+#z elseif @Fs=="sec+" z=1/cos(#z)+#z elseif @Fs=="cosec+" z=1/sin(#z)+#z elseif @Fs=="sin*" z=sin(#z)*#z elseif @Fs=="cos*" z=cos(#z)*#z elseif @Fs=="tan*" z=tan(#z)*#z elseif @Fs=="cotan*" z=cotan(#z)*#z elseif @Fs=="sec*" z=#z/cos(#z) elseif @Fs=="cosec*" z=#z/sin(#z) elseif @Fs=="loglog" z=log(log(#z)) elseif @Fs=="sinsin" z=sin(sin(#z)) elseif @Fs=="coscos" z=cos(cos(#z)) elseif @Fs=="+pixel" z=#z+pixel elseif @Fs=="-pixel" z=#z-pixel elseif @Fs=="*pixel" z=#z*pixel elseif @Fs=="/pixel" z=#z/pixel elseif @Fs=="ceil" z=ceil(#z) elseif @Fs=="floor" z=floor(#z) elseif @Fs=="trunc" z=trunc(#z) else z=round(#z) endif z=p1*fn2(z)+p2 if @Va=="1" z=z elseif @Va=="2" if |z|<1 z=z/|z| endif elseif @Va=="3" if |z|>1 z=z/|z| endif elseif @Va=="4" x=real(z) y=imag(z) x=x/|z| y=y/|z| z=x+flip(y) elseif @Va=="5" if real(z)imag(z) z=flip(z) endif elseif @Va=="7" if cabs(z)<1 z=z/cabs(z) endif elseif @Va=="8" if cabs(z)>1 z=z/cabs(z) endif endif if @F3=="sin" if @v=="1" z=p3*sin(5-2*(z-1))+p4 elseif @v=="2" z=p3*sin(5-2*(z-1)+0.5*(z-1)*(z-3))+p4 elseif @v=="3" z=p3*sin(5-2*(z-1)+0.5*(z-1)*(z-3)-0.1*(z-1)*(z-3)*(z-4))+p4 elseif @v=="4" z=p3*sin(5-2*(z-1)+0.5*(z-1)*(z-3)-0.1*(z-1)*(z-3)*(z-4)+0.003*(z-1)*(z-3)*(z-4)*(z-4.5))+p4 endif elseif @f3=="cos" if @v=="1" z=p3*cos(5-2*(z-1))+p4 elseif @v=="2" z=p3*cos(5-2*(z-1)+0.5*(z-1)*(z-3))+p4 elseif @v=="3" z=p3*cos(5-2*(z-1)+0.5*(z-1)*(z-3)-0.1*(z-1)*(z-3)*(z-4))+p4 elseif @v=="4" z=p3*cos(5-2*(z-1)+0.5*(z-1)*(z-3)-0.1*(z-1)*(z-3)*(z-4)+0.003*(z-1)*(z-3)*(z-4)*(z-4.5))+p4 endif else if @v=="1" z=p3*tan(5-2*(z-1))+p4 elseif @v=="2" z=p3*tan(5-2*(z-1)+0.5*(z-1)*(z-3))+p4 elseif @v=="3" z=p3*tan(5-2*(z-1)+0.5*(z-1)*(z-3)-0.1*(z-1)*(z-3)*(z-4))+p4 elseif @v=="4" z=p3*tan(5-2*(z-1)+0.5*(z-1)*(z-3)-0.1*(z-1)*(z-3)*(z-4)+0.003*(z-1)*(z-3)*(z-4)*(z-4.5))+p4 endif endif if i2<=i a=a+exp(-cabs(z+2)) b=b+ exp(-1/cabs(zold-z+2)) zold=#z i2=i2+1 endif final: if |#z-zold|<0.5 #index=b else #index=a endif default: title="Newton Polycol" param V caption="Polynomial" enum="1""2""3""4" default=0 endparam param Va caption="Variant" enum="1""2""3""4""5""6""7""8" default=0 endparam param iter caption="Iterations" default=10 min=0 endparam param p1 default=(1,0) endparam param p2 default=(0,0) endparam param p3 default=(1,0) endparam param p4 default=(0,0) endparam param Fs caption="Function 1" enum="sin""sinh""asin""asinh""cos""cosh""acos""acosh""tan""tanh""atan"\ "atanh""cotan""cotanh""sqr""sqrt""log""exp""abs""cabs""conj"\ "flip""ident""recip""versin""aversin""haversin""ahaversin""coversin""acoversin"\ "hacoversin""vercos""avercos""havercos""ahavercos""covercos"\ "acovercos""hacovercos""acotan""acotanh" \ "sec""sech""asec""asech""cosec""cosech""acosec""acosech""exsec""aexsec"\ "excosec""aexcosec""crd""acrd""gd""agd""sinc""sinhc""cosc""coshc"\ "tanc""tanhc""cotanc""cotanhc""secc""sechc""cosecc""cosechc"\ "cube""cuberoot""colog""logit""expit""gauss""softplus"\ "primecount""sqr+""cube+""sin+""cos+""tan+""cotan+""sec+""cosec+""sin*""cos*""tan*""cotan*""sec*"\ "cosec*""loglog""sinsin""coscos""+pixel""-pixel"\ "*pixel""/pixel""ceil""floor""trunc""round" default=22 endparam func fn2 default=ident() endfunc param f3 caption="Function 3" enum="sin""cos""tan" default=0 endparam } EulerPolynomialTraps { init: float a=0 float b=0 float c=0.01 d=0 bool f=true loop: z=p1*fn1(#z)+p2 if @v=="2" d=p3*fn2(z^2-z)+p4 elseif @v=="3" d=p3*fn2(z^3-1.5*z^2+0.25)+p4 elseif @v=="4" d=p3*fn2(z^4-2*z^3+z)+p4 elseif @v=="5" d=p3*fn2(z^5-2.5*z^4+2.5*z^2-0.5)+p4 elseif @v=="6" d=p3*fn2(z^6-3*z^5+5*z^3-3*z)+p4 elseif @v=="7" d=p3*fn2(z^7-3.5*z^6+8.75*z^4-10.5*z^2+2.125)+p4 elseif @v=="8" d=p3*fn2(z^8-4*z^7+14*z^5-28 *z^3+17*z)+p4 endif a=cabs(fn3(d)-fn3(pixel)) b=cabs(fn4(d)-@fn5(pixel)) if f && p50 float x1=floor(real(c))%256 float y1=floor(imag(c))%256 if x1<0 x1=x1+256 endif if y1<0 y1=y1+256 endif float x2=(x1+1)%256 float y2=(y1+1)%256 float x3=real(c)-floor(real(c)) float y3=imag(c)-floor(imag(c)) float x4=x3-1 float y4=y3-1 float g1=(x1^@pow%(p4*1000)+y1)^@pow%(p4*1000) float g2=(x2^@pow%(p4*1000)+y1)^@pow%(p4*1000) float g3=(x1^@pow%(p4*1000)+y2)^@pow%(p4*1000) float g4=(x2^@pow%(p4*1000)+y2)^@pow%(p4*1000) float h1=g1^@pow*0.25%512-256 float h2=g2^@pow*0.25%512-256 float h3=g3^@pow*0.25%512-256 float h4=g4^@pow*0.25%512-256 float h5=(g1+1)^@pow*0.25%512-256 float h6=(g2+1)^@pow*0.25%512-256 float h7=(g3+1)^@pow*0.25%512-256 float h8=(g4+1)^@pow*0.25%512-256 float j=0.0; j=1/sqrt(sqr(h1)+sqr(h5)) h1=h1*j h5=h5*j j=1/sqrt(sqr(h2)+sqr(h6)) h2=h2*j h6=h6*j j=1/sqrt(sqr(h3)+sqr(h7)) h3=h3*j h7=h7*j j=1/sqrt(sqr(h4)+sqr(h8)) h4=h4*j h8=h8*j float k1=x3*h1+y3*h5 float k2=x4*h2+y3*h6 float k3=x3*h3+y4*h7 float k4=x4*h4+y4*h8 float m1=sqr(x3)*(3-x3*2) float m2=sqr(y3)*(3-y3*2) float m3=k1+m1*(k2-k1) float m4=k3+m1*(k4-k3) if @fn=="ident" d=d+(m3+m2*(m4-m3))*f elseif @fn=="abs" d=d+abs(m3+m2*(m4-m3))*f elseif @fn=="sqrt" d=d+real(sqrt(m3+m2*(m4-m3)))*f elseif @fn=="sqr" d=d+sqr(m3+m2*(m4-m3))*f elseif @fn=="ceil" d=d+ceil(m3+m2*(m4-m3))*f elseif @fn=="smoothstep" d=d+(3*(m3+m2*(m4-m3))^2-2*(m3+m2*(m4-m3))^3)*f elseif @fn=="cuberoot" d=d+((m3+m2*(m4-m3))^(1/3))*f elseif @fn=="ceil/acos" d=d+real(ceil(m3+m2*(m4-m3))/acos(m3+m2*(m4-m3)))*f elseif @fn=="exp/acos" d=d+real(exp(m3+m2*(m4-m3))/acos(m3+m2*(m4-m3)))*f elseif @fn=="log/cotan" d=d+real(log(m3+m2*(m4-m3))/cotan(m3+m2*(m4-m3)))*f elseif @fn=="conj/log" d=d+real(conj(m3+m2*(m4-m3))/log(m3+m2*(m4-m3)))*f elseif @fn=="flip/sqrt" d=d+real(flip(m3+m2*(m4-m3))/sqrt(m3+m2*(m4-m3)))*f elseif @fn=="log*abs" d=d+real(log(m3+m2*(m4-m3))*abs(m3+m2*(m4-m3)))*f elseif @fn=="flip*log" d=d+real(flip(m3+m2*(m4-m3))*log(m3+m2*(m4-m3)))*f elseif @fn=="ident^flip" d=d+real(ident(m3+m2*(m4-m3))^flip(m3+m2*(m4-m3)))*f elseif @fn=="ident^abs" d=d+real(ident(m3+m2*(m4-m3))^abs(m3+m2*(m4-m3)))*f elseif @fn=="ident^sqrt" d=d+real(ident(m3+m2*(m4-m3))^sqrt(m3+m2*(m4-m3)))*f elseif @fn=="flip^acosh" d=d+real(flip(m3+m2*(m4-m3))^acosh(m3+m2*(m4-m3)))*f elseif @fn=="flip^sqrt" d=d+real(flip(m3+m2*(m4-m3))^sqrt(m3+m2*(m4-m3)))*f elseif @fn=="conj^acosh" d=d+real(conj(m3+m2*(m4-m3))^acosh(m3+m2*(m4-m3)))*f elseif @fn=="abs^sqrt" d=d+real(abs(m3+m2*(m4-m3))^sqrt(m3+m2*(m4-m3)))*f elseif @fn=="log^flip" d=d+real(log(m3+m2*(m4-m3))^flip(m3+m2*(m4-m3)))*f elseif @fn=="log^log" d=d+real(log(m3+m2*(m4-m3))^log(m3+m2*(m4-m3)))*f elseif @fn=="log^sqrt" d=d+real(log(m3+m2*(m4-m3))^sqrt(m3+m2*(m4-m3)))*f elseif @fn=="log^acos" d=d+real(log(m3+m2*(m4-m3))^acos(m3+m2*(m4-m3)))*f elseif @fn=="sqr^sqrt" d=d+real(sqr(m3+m2*(m4-m3))^sqrt(m3+m2*(m4-m3)))*f elseif @fn=="sqr^exp" d=d+real(sqr(m3+m2*(m4-m3))^exp(m3+m2*(m4-m3)))*f elseif @fn=="sqr^abs" d=d+real(sqr(m3+m2*(m4-m3))^abs(m3+m2*(m4-m3)))*f elseif @fn=="cotanh^abs" d=d+real(cotanh(m3+m2*(m4-m3))^abs(m3+m2*(m4-m3)))*f elseif @fn=="cotanh^sqrt" d=d+real(cotanh(m3+m2*(m4-m3))^sqrt(m3+m2*(m4-m3)))*f elseif @fn=="acos^sin" d=d+real(acos(m3+m2*(m4-m3))^sin(m3+m2*(m4-m3)))*f elseif @fn=="acos^acos" d=d+real(acos(m3+m2*(m4-m3))^acos(m3+m2*(m4-m3)))*f elseif @fn=="acos^acosh" d=d+real(acos(m3+m2*(m4-m3))^acosh(m3+m2*(m4-m3)))*f elseif @fn=="acos^sqrt" d=d+real(acos(m3+m2*(m4-m3))^sqrt(m3+m2*(m4-m3)))*f elseif @fn=="acos^flip" d=d+real(acos(m3+m2*(m4-m3))^flip(m3+m2*(m4-m3)))*f elseif @fn=="acos^floor" d=d+real(acos(m3+m2*(m4-m3))^floor(m3+m2*(m4-m3)))*f elseif @fn=="cotan*sin" d=d+real(cotan(m3+m2*(m4-m3))*sin(m3+m2*(m4-m3)))*f elseif @fn=="sin*cabs" d=d+real(sin(m3+m2*(m4-m3))*cabs(m3+m2*(m4-m3)))*f elseif @fn=="flip+2*ident" d=d+real(flip(m3+m2*(m4-m3))+2*(m3+m2*(m4-m3)))*f elseif @fn=="sin+abs+sqr" d=d+real(sin(m3+m2*(m4-m3))+abs(m3+m2*(m4-m3))+sqr(m3+m2*(m4-m3)))*f elseif @fn=="exp+trunc+ceil" d=d+real(exp(m3+m2*(m4-m3))+trunc(m3+m2*(m4-m3))+ceil(m3+m2*(m4-m3)))*f elseif @fn=="sqr+2*ceil" d=d+real(sqr(m3+m2*(m4-m3))+2*ceil(m3+m2*(m4-m3)))*f elseif @fn=="3*ceil" d=d+real(3*ceil(m3+m2*(m4-m3)))*f elseif @fn=="^(0.1,0.1)" d=d+real((m3+m2*(m4-m3))^(0.1,0.1))*f elseif @fn=="^(0.5,0.5)" d=d+real((m3+m2*(m4-m3))^(0.5,0.5))*f elseif @fn=="^(1,1)" d=d+real((m3+m2*(m4-m3))^(1,1))*f elseif @fn=="^(1,5)" d=d+real((m3+m2*(m4-m3))^(1,5))*f elseif @fn=="^(2,2)" d=d+real((m3+m2*(m4-m3))^(2,2))*f elseif @fn=="^(1.5,-0.5)" d=d+real((m3+m2*(m4-m3))^(1.5,-0.5))*f elseif @fn=="log^(0,1)" d=d+real(log(m3+m2*(m4-m3))^(0,1))*f elseif @fn=="acosh^0.85" d=d+real(acosh(m3+m2*(m4-m3))^0.85)*f elseif @fn=="exp^(0.15,-5)" d=d+real(exp(m3+m2*(m4-m3))^(0.15,-5))*f elseif @fn=="cube" d=d+(m3+m2*(m4-m3))^3*f elseif @fn=="power4" d=d+(m3+m2*(m4-m3))^4*f elseif @fn=="cosh exp" d=d+real(cosh(exp(m3+m2*(m4-m3))))*f elseif @fn=="cosh sqrt" d=d+real(cosh(sqrt(m3+m2*(m4-m3))))*f elseif @fn=="tan cosh" d=d+real(tan(cosh(m3+m2*(m4-m3))))*f elseif @fn=="sin cosh" d=d+real(sin(cosh(m3+m2*(m4-m3))))*f elseif @fn=="acos abs" d=d+real(acos(abs(m3+m2*(m4-m3))))*f elseif @fn=="log acosh" d=d+real(log(acosh(m3+m2*(m4-m3))))*f elseif @fn=="sqrt acosh" d=d+real(sqrt(acosh(m3+m2*(m4-m3))))*f elseif @fn=="atanh log" d=d+real(atanh(log(m3+m2*(m4-m3))))*f elseif @fn=="acos recip" d=d+real(acos(recip(m3+m2*(m4-m3))))*f elseif @fn=="acos exp" d=d+real(acos(exp(m3+m2*(m4-m3))))*f elseif @fn=="acos acos" d=d+real(acos(acos(m3+m2*(m4-m3))))*f elseif @fn=="exp exp flip" d=d+real(exp(exp(flip(m3+m2*(m4-m3)))))*f elseif @fn=="exp exp abs" d=d+real(exp(exp(abs(m3+m2*(m4-m3)))))*f elseif @fn=="exp exp sqr" d=d+real(exp(exp(sqr(m3+m2*(m4-m3)))))*f elseif @fn=="log log log" d=d+real(log(log(log(m3+m2*(m4-m3)))))*f elseif @fn=="sqrt sqrt sqrt" d=d+real(sqrt(sqrt(sqrt(m3+m2*(m4-m3)))))*f elseif @fn=="log log acosh" d=d+real(log(log(acosh(m3+m2*(m4-m3)))))*f elseif @fn=="sqrt log log" d=d+real(sqrt(log(log(m3+m2*(m4-m3)))))*f elseif @fn=="atanh log log" d=d+real(atanh(log(log(m3+m2*(m4-m3)))))*f elseif @fn=="atan log log" d=d+real(atan(log(log(m3+m2*(m4-m3)))))*f elseif @fn=="acosh log log" d=d+real(acosh(log(log(m3+m2*(m4-m3)))))*f elseif @fn=="acos log log" d=d+real(acos(log(log(m3+m2*(m4-m3)))))*f elseif @fn=="asin log log" d=d+real(asin (log(log(m3+m2*(m4-m3)))))*f elseif @fn=="cos sqrt sqrt" d=d+real(cos(sqrt(sqrt(m3+m2*(m4-m3)))))*f elseif @fn=="cosh sqrt sqrt" d=d+real(cosh(sqrt(sqrt(m3+m2*(m4-m3)))))*f elseif @fn=="round sqrt sqrt" d=d+real(round(sqrt(sqrt(m3+m2*(m4-m3)))))*f endif f=real(fn1(f))^p6*p3 c=c*sqrt(-1)/p3 i=i-1 endwhile #index=real(fn2(d+1))*p5+@F*real(#random)/5 default: title="Texturation" param fn caption="Variant" enum="ident""abs""sqrt""sqr""ceil""smoothstep"\ "cuberoot""ceil/acos""exp/acos""log/cotan"\ "conj/log""flip/sqrt""log*abs""flip*log"\ "ident^flip""ident^abs""ident^sqrt""flip^acosh"\ "flip^sqrt""conj^acosh""abs^sqrt""log^flip"\ "log^log""log^sqrt""log^acos"\ "sqr^sqrt""sqr^exp""sqr^abs""cotanh^abs"\ "cotanh^sqrt""acos^sin""acos^acos"\ "acos^acosh""acos^sqrt""acos^flip""acos^floor"\ "cotan*sin""sin*cabs""flip+2*ident""sin+abs+sqr"\ "exp+trunc+ceil""sqr+2*ceil""3*ceil"\ "^(0.1,0.1)""^(0.5,0.5)""^(1,1)""^(1,5)""^(2,2)"\ "^(1.5,-0.5)""log^(0,1)""acosh^0.85""exp^(0.15,-5)"\ "cube""power4""cosh exp""cosh sqrt""tan cosh""sin cosh"\ "acos abs""log acosh""sqrt acosh""atanh log""acos recip"\ "acos exp""acos acos""exp exp flip""exp exp abs""exp exp sqr"\ "log log log""sqrt sqrt sqrt""log log acosh""sqrt log log"\ "atanh log log""atan log log""acosh log log""acos log log"\ "asin log log""cos sqrt sqrt""cosh sqrt sqrt""round sqrt sqrt" default=0 endparam param p1 caption="Rotozoom" default=(1,0) endparam param p2 caption="Offset" default=(0,0) endparam param p3 caption="Parameter 1" default=0.5 endparam param p4 caption="Parameter 2" default=0.1 endparam param p5 caption="Parameter 3" default=2.0 endparam param iter caption="Iterations" default=7 min=1 endparam param pow caption="Exponent 1" default=2.0 endparam param p6 caption="Exponent 2" default=1.0 endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc param F caption="Fuzziness" default=0.0 endparam } Chettre { global: int k1=p5 if k1>=#maxiter k1=#maxiter-1 endif init: float a=0.0 float b=1e20 float c=-1 float d=0.0 float f=0.0 int k2=0 loop: z=p3*fn1(#z)+p4 if k2<=k1 if @V=="1" d=cabs(fn2(z*(p1-z)+p2)) elseif @V =="2" d=cabs(fn2(z*(p1*1i-z)+p2)) elseif @V=="3" d=cabs(fn2(z^2*(z-(p1+1))/(1-(p1+1)*z)+p2)) elseif @V=="4" d=cabs(fn2(z^2*(z-4)/(p1+4*z)+p2)) elseif @V=="5" d=cabs(fn2(((z^2+p1-1)/(2*z+p1-2))^2+p2)) elseif @V=="6" d=cabs(fn2(((z^2+p1-1i)/(2*z+p1-2i))^2+p2)) elseif @V=="7" d=cabs(fn2(z-p1*(z^3-1)/(3*z^2)+p2)) elseif @V=="8" d=cabs(fn2(z-p1*(z^4-1)/(4*z^3)+p2)) elseif @V=="9" d=cabs(fn2(z+z^2/(z+p1)+p2)) elseif @V=="10" d=cabs(fn2(z+z^2/(z+p1*1i)+p2)) elseif @V=="11" d=cabs(fn2((z-p1*1i)/(z+p1*1i)+p2)) elseif @V=="12" d=cabs(fn2((z-p1)/(z+p1)+p2)) elseif @V=="13" d=cabs(z+p1/fn2(z)+p2) elseif @V=="14" d=cabs(z+p1*1i/fn2(z)+p2) elseif @V=="15" d=cabs(z+p1*fn2(z)+p2) elseif @V=="16" d=cabs(z+p1*1i*fn2(z)+p2) elseif @V=="17" d=cabs(p1*fn2(p1/(z-(p2+1)))+(p2+1)) elseif @V=="18" d=cabs(fn2(sqr((z^3+3*(p1-0.5)*z+(p1-0.5)*(p1-1.5))/(3*z^2+3*(p1-1.5)*z+(p1-0.5)*(p1-1.5)+1))+p2)) elseif @V=="19" d=cabs(fn2(sqr((z^3+3*(p1-1i)*z+(p1-1i)*(p1-2i))/(3*z^2+3*(p1-2i)*z+(p1-1i)*(p1-2i)+1))+p2)) elseif @V=="20" d=cabs(fn2((z^2-p1*1i)/(z^2+p1*1i)+p2)) elseif @V=="21" d=cabs(fn2((z^2-p1)/(z^2+p1)+p2)) endif f=d if fc c=f endif a=a+exp(-d) k2=k2+1 endif final: if @solid if @invert if sqrt(a)/(1+c-b)<@p7 #index=sqrt(a)/(1+c-b)+p6*real(#random) else #solid=true endif else if sqrt(a)/(1+c-b)>@p7 #index=sqrt(a)/(1+c-b)+p6*real(#random) else #solid=true endif endif else #index=sqrt(a)/(1+c-b)+p6*real(#random) endif default: title="Chettre" param V caption="Variant" enum="1""2""3""4""5""6""7""8""9""10"\ "11""12""13""14""15""16""17""18""19""20"\ "21" endparam param p1 caption="Variant Parameter 1" default=1.0 endparam param p2 caption="Variant Parameter 2" default=0.0 endparam param p3 caption="Z Parameter 1" default=(1,0) endparam param p4 caption="Z Parameter 2" default=(0,0) endparam func fn1 caption="Z Function" default=ident() endfunc func fn2 caption="Variant Function" default=ident() endfunc param p5 caption="Detail" default=3 endparam param p6 caption="Fuzziness" default=0.0 endparam param solid caption="Solid Colour" default=false endparam param p7 caption="Solid Colour Adjustment" default=0.5 visible=@solid==true endparam param invert caption="Invert" default=false visible=@solid==true endparam } SnumLocret { global: int k1=p5 if k1>=#maxiter k1=#maxiter-1 endif init: float a=0.0 float b=1e20 float c=-1 float d=0.0 float f=0.0 int k2=0 loop: z=p1*fn1(#z)+p2 if k2<=k1 if @v=="1" d=cabs(z^2*fn3((flip(z)-p3)/(1-p3*flip(z)))+p4) elseif @v=="2" d=cabs(z^2*fn3((cabs(z)-p3)/(1-p3*cabs(z)))+p4) elseif @v=="3" d=cabs(z^2*fn3((abs(z)-p3)/(1-p3*abs(z)))+p4) elseif @v=="4" d=cabs(z^2*fn3((exp(z)-p3)/(1-p3*exp(z)))+p4) elseif @v=="5" d=cabs(z^2*fn3((sqr(z)-p3)/(1-p3*sqr(z)))+p4) elseif @v=="6" d=cabs(z^2*fn3((cosh(z)-p3)/(1-p3*cosh(z)))+p4) elseif @v=="7" d=cabs(z^2*fn3((cos(z)-p3)/(1-p3*cos(z)))+p4) elseif @v=="8" d=cabs(z+z^2*fn3((recip(z)-p3)/(1-p3*recip(z)))+p4) elseif @v=="9" d=cabs(z+z^2*fn3((flip(z)-p3)/(1-p3*flip(z)))+p4) elseif @v=="10" d=cabs(z+z^2*fn3((conj(z)-p3)/(1-p3*conj(z)))+p4) elseif @v=="11" d=cabs(z+z^2*fn3((abs(z)-p3)/(1-p3*abs(z)))+p4) elseif @v=="12" d=cabs(z+z^2*fn3((cosh(z)-p3)/(1-p3*cosh(z)))+p4) endif f=d if fc c=f endif a=a+exp(-d) k2=k2+1 endif final: if @solid if @invert if sqrt(a)/(1+c-b)<@p7 #index=sqrt(a)/(1+c-b)+p6*real(#random) else #solid=true endif else if sqrt(a)/(1+c-b)>@p7 #index=sqrt(a)/(1+c-b)+p6*real(#random) else #solid=true endif endif else #index=sqrt(a)/(1+c-b)+p6*real(#random) endif default: title="Snum Locret" param V caption="Variant" enum="1""2""3""4""5""6""7""8""9""10"\ "11""12" default=3 endparam param p1 caption="Z Parameter 1" default=(0.5,0) endparam param p2 caption="Z Parameter 2" default=(0,0) endparam param p3 caption="Variant Parameter 1" default=(2,0) endparam param p4 caption="Variant Parameter 2" default=(0,0) endparam param p5 caption="Detail" default=4 endparam func fn1 caption="Z Function" default=ident() endfunc func fn3 caption="Variant Function" default=ident() endfunc param p6 caption="Fuzziness" default=0.0 endparam param solid caption="Solid Colour" default=false endparam param p7 caption="Solid Colour Adjustment" default=0.5 visible=@solid==true endparam param invert caption="Invert" default=false visible=@solid==true endparam } OrgumaLocus3 { init: b=(0,0) c=(0,0) d=(0,0) float f=0 bool g=true loop: if g if @V=="1" b=fn2(log(#z+p3/fn3(#z))) elseif @V=="2" b=fn2(log(#z+p3*fn3(#z))) elseif @V=="3" b=fn2(log(#z^2*fn3((#z-(p3+1))/(1-(p3+1)*#z)))) elseif @V=="4" b=fn2(log(#z^2*fn3((#z-4)/(p3+4*#z)))) elseif @V=="5" z=#z if |z|<1 z=z/|z| endif b=fn2(log(-p3*fn3(z))) elseif @V=="6" z=#z if |z|>1 z=z/|z| endif b=fn2(log(p3*fn3(z))) elseif @V=="7" z=#z if real(z)imag(z) z=flip(z) endif b=fn2(log(p3*fn3(z))) elseif @V=="9" b=fn2(log(-p3*fn3((#z-1i)/(#z+1i)))) elseif @V=="10" b=fn2(log(-p3*fn3((#z-1)/(#z+1)))) elseif @V=="11" b=fn2(log(#z-p3*(fn3(#z)^3-1)/(3*fn3(#z)^2))) elseif @V=="12" b=fn2(log(fn3((#z^2-p3-1)/(2*#z-p3-2))^2)) endif b=(b-p1)*p4 f=cabs(fn1(b)) if f>1e-10 d=b/f f=p2*0.5/(0.25+(p2^2-0.25)*imag(d)^2) c=f*d f=cabs((c-b)^3)/0.05 if f<=1 g=false endif endif endif final: if g #solid=true else if |b|>|c| f=1+f else f=1-f endif endif #index=f/2 default: title="Orguma Locus 3" param V caption="Variant" enum="1""2""3""4""5""6""7""8""9""10"\ "11""12" endparam func fn1 default=recip() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc param p1 default=(0,0) endparam param p2 caption="Parameter 2" default=0.5 endparam param p3 default=(1,0) endparam param p4 caption="Parameter 4" default=1.0 endparam } AmmaGorgShulti { init: float a=0.0 float b=0.0 float c=0.0 d=(0,0) int f=0 bool g=false loop: z=#z+p1/fn1(#z) if !g b=|d|/|fn2((z+p2))| if @V=="1" d=z elseif @V=="2" d=z+1/z elseif @V=="3" d=z-1/z elseif @V=="4" d=(z-1)/(z+1) elseif @V=="5" d=z^2/(z+1) elseif @V=="6" d=log(z) elseif @V=="7" d=sqr(z) elseif @V=="8" d=tan(z) elseif @V=="9" d=acosh(z) elseif @V=="10" d=cosh(z) elseif @V=="11" d=z+flip(z) elseif @V=="12" d=z+conj(z) elseif @V=="13" d=z+cotan(z) elseif @V=="14" d=z+tan(z) elseif @V=="15" d=z+cos(z) elseif @V=="16" d=z-conj(z) elseif @V=="17" d=z-cabs(z) elseif @V=="18" d=z-log(z) endif if b0 g=true c=(131/p3)*b+a*131 endif f=f+1 a=f % (-25) endif final: if g #index=((real(c)+1) % 289)/289 else #solid=true endif default: title="Amma Gorg Shulti" param V caption="Variant" enum="1""2""3""4""5""6""7""8""9""10"\ "11""12""13""14""15""16""17""18" endparam func fn1 caption="Add Recip Function" default=ident() endfunc func fn2 caption="Z Function" default=ident() endfunc param p1 caption="Add Recip Parameter" default=(1,0) endparam param p2 caption="Z Parameter" default=(0,0) endparam param p3 caption="Parameter 3" default=0.5 endparam } Blengrundesiwo2 { init: int a=0 int b=1 float c=0.0 float d=0.0 loop: b=b+1 if @V=="1" z=p3*sqr(#z) elseif @V=="2" z=p3*#z elseif @V=="3" z=p3*flip(#z) elseif @V=="4" z=p3*atanh(#z) elseif @V=="5" z=p3*atan(#z) elseif @V=="6" z=p3*tanh(#z) elseif @V=="7" z=p3*tan(#z) elseif @V=="8" z=p3*sin(#z) elseif @V=="9" z=p3*sinh(#z) elseif @V=="10" z=p3*asinh(#z) elseif @V=="11" z=p3*flip(sqr(#z)) elseif @V=="12" z=p3*sqr(sqr(#z)) elseif @V=="13" z=p3*atanh(sqr(#z)) elseif @V=="14" z=p3*atan(sqr(#z)) elseif @V=="15" z=p3*tanh(sqr(#z)) elseif @V=="16" z=p3*tan(sqr(#z)) elseif @V=="17" z=p3*asinh(sqr(#z)) elseif @V=="18" z=p3*sqr(tan(#z)) elseif @V=="19" z=p3*sinh(sqr(#z)) elseif @V=="20" z=p3*sin(sqr(#z)) elseif @V=="21" z=p3*sqr(atanh(#z)) elseif @V=="22" z=p3*sqr(atan(#z)) elseif @V=="23" z=p3*(sqr(#z)/flip(#z)) elseif @V=="24" z=p3*(sqr(#z)/conj(#z)) elseif @V=="25" z=p3*(sqr(#z)/cabs(#z)) elseif @V=="26" z=p3*(sqr(#z)/log(#z)) elseif @V=="27" z=p3*(#z*abs(#z)/flip(#z)) elseif @V=="28" z=p3*(#z*abs(#z)/cosh(#z)) elseif @V=="29" z=p3*(#z*abs(#z)/cos(#z)) elseif @V=="30" z=p3*(#z^3/abs(#z)) elseif @V=="31" z=p3*(#z^3/tanh(#z)) elseif @V=="32" z=p3*(#z^3/cos(#z)) elseif @V=="33" z=p3*(#z*tanh(#z)/flip(#z)) elseif @V=="34" z=p3*(#z*tanh(#z)/conj(#z)) elseif @V=="35" z=p3*(#z*tanh(#z)/log(#z)) elseif @V=="36" z=p3*(#z*tanh(#z)/atanh(#z)) elseif @V=="37" z=p3*(#z*tanh(#z)/tan(#z)) elseif @V=="38" z=p3*(#z*tanh(#z)/asinh(#z)) elseif @V=="39" z=p3*(#z*tanh(#z)/sin(#z)) elseif @V=="40" z=p3*(#z*tan(#z)/flip(#z)) elseif @V=="41" z=p3*(#z*tan(#z)/conj(#z)) elseif @V=="42" z=p3*(#z*tan(#z)/cabs(#z)) elseif @V=="43" z=p3*(#z*tan(#z)/tanh(#z)) elseif @V=="44" z=p3*(#z*flip(#z)/atan(#z)) elseif @V=="45" z=p3*(#z*flip(#z)/tanh(#z)) elseif @V=="46" z=p3*(#z*flip(#z)/tan(#z)) elseif @V=="47" z=p3*(#z*flip(#z)/cos(#z)) elseif @V=="48" z=p3*(#z*flip(#z)/sinh(#z)) elseif @V=="49" z=p3*(#z*flip(#z)/sin(#z)) elseif @V=="50" z=p3*(#z*sqrt(#z)/cabs(#z)) elseif @V=="51" z=p3*(#z*sqrt(#z)/cos(#z)) elseif @V=="52" z=p3*(#z*atanh(#z)/cabs(#z)) else z=p3*(#z*tan(#z)/cabs(#z)) endif d=cabs(fn2(z)*fn1(z)+1) if d>=p2 && d<=1 && a==0 a=b c=cabs((d-p2)*(2/(z-p2))) endif final: if a>0 #index=c else #solid=true endif default: title="Blengrundesiwo 2" param V caption="Variant" 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""39""40"\ "41""42""43""44""45""46""47""48""49""50"\ "51""52""53" endparam func fn1 default=cabs() endfunc func fn2 default=ident() endfunc param p3 caption="Parameter 1" default=(1,0) endparam param p2 caption="Parameter 2" default=0.75 endparam } MagmaGrolthius4 { init: float a=0.0 float b=0.0 float c=0.0 d=(0,0) int f=0 bool g=false loop: if !g if @V2=="1" b=p5*|d|/|fn2(#z)|+p6 elseif @V2=="2" b=p5*|d|/|fn2(#z+0.65/exp(#z))|+p6 elseif @V2=="3" b=p5*|d|/|fn2(#z-0.5/conj(#z))|+p6 elseif @V2=="4" b=p5*|d|/|fn2(#z-2*tanh(#z))|+p6 elseif @V2=="5" b=p5*|d|/|fn2(#z-cotanh(#z))|+p6 elseif @V2=="6" b=p5*|d|/|fn2(#z+flip(#z))|+p6 elseif @V2=="7" b=p5*|d|/|fn2(#z+cosh(#z))|+p6 elseif @V2=="8" b=p5*|d|/|fn2(#z+0.3/sqr(#z))|+p6 elseif @V2=="9" b=p5*|d|/|fn2(#z-cotan(#z))|+p6 elseif @V2=="10" b=p5*|d|/|fn2(#z+0.5/abs(#z))|+p6 elseif @V2=="11" b=p5*|d|/|fn2(#z-2*sinh(#z))|+p6 elseif @V2=="12" b=p5*|d|/|fn2(#z+1/cosh(#z))|+p6 elseif @V2=="13" b=p5*|d|/|fn2(#z+1/cos(#z))|+p6 elseif @V2=="14" b=p5*|d|/|fn2(#z-cosh(#z))|+p6 elseif @V2=="15" b=p5*|d|/|fn2(#z-1/#z)|+p6 elseif @V2=="16" b=p5*|d|/|fn2(#z+cos(#z))|+p6 elseif @V2=="17" b=p5*|d|/|fn2(#z-exp(#z))|+p6 elseif @V2=="18" b=p5*|d|/|fn2(#z+0.5/flip(#z))|+p6 elseif @V2=="19" b=p5*|d|/|fn2(#z-cos(#z))|+p6 elseif @V2=="20" b=p5*|d|/|fn2(#z-0.3/sqr(#z))|+p6 elseif @V2=="21" b=p5*|d|/|fn2(#z-1/cos(#z))|+p6 elseif @V2=="22" b=p5*|d|/|fn2(#z+cotanh(#z))|+p6 elseif @V2=="23" b=p5*|d|/|fn2(#z-1/cosh(#z))|+p6 elseif @V2=="24" b=p5*|d|/|fn2(#z+conj(#z))|+p6 elseif @V2=="25" b=p5*|d|/|fn2(#z+1/exp(#z))|+p6 elseif @V2=="26" b=p5*|d|/|fn2(#z-0.5/abs(#z))|+p6 elseif @V2=="27" b=p5*|d|/|fn2(#z+cotan(#z))|+p6 elseif @V2=="28" b=p5*|d|/|fn2(#z-2*tan(#z))|+p6 elseif @V2=="29" b=p5*|d|/|fn2(#z-2*sin(#z))|+p6 elseif @V2=="30" b=p5*|d|/|fn2(#z+1/#z)|+p6 elseif @V2=="31" b=p5*|d|/|fn2(#z+0.3/exp(#z))|+p6 endif if @V=="1" d=#z+p1*sqr(fn1(#z)) elseif @V=="2" d=#z+p1*sqr(fn1(#z-#z^2)) elseif @V=="3" d=#z+p1*sqr(fn1(#z+#z^2)) elseif @V=="4" d=#z+p1*sqr(fn1(#z+flip(#z))) elseif @V=="5" d=#z+p1*sqr(fn1(#z+abs(#z))) elseif @V=="6" d=#z+p1*sqr(fn1(#z-cosh(#z))) elseif @V=="7" d=#z+p1*sqr(fn1(flip(#z)/#z)) elseif @V=="8" d=#z+p1*sqr(fn1(conj(#z)/#z)) elseif @V=="9" d=#z+p1*sqr(fn1(#z^3)) elseif @V=="10" d=#z+p1*sqr(fn1(conj(#z)*#z)) elseif @V=="11" d=#z+p1*sqr(fn1(abs(#z)*#z)) elseif @V=="12" d=#z+p1*sqr(fn1(exp(#z)*#z)) elseif @V=="13" d=#z+p1*sqr(fn1(#z+3.4*#z*flip(#z))) elseif @V=="14" d=#z+p1*sqr(fn1(#z+1.5*#z*conj(#z))) elseif @V=="15" d=#z+p1*sqr(fn1(#z+2.25*#z*abs(#z))) elseif @V=="16" d=#z+p1*sqr(fn1(#z-0.65*#z*exp(#z))) elseif @V=="17" d=#z+p1*sqr(fn1(#z-2.67*#z^3)) elseif @V=="18" d=#z+p1*sqr(fn1(#z-0.67*#z*cotan(#z))) elseif @V=="19" d=#z+p1*sqr(fn1(#z-2.8*#z*tanh(#z))) elseif @V=="20" d=#z+p1*sqr(fn1(#z-2.8*#z*cosh(#z))) elseif @V=="21" d=#z+p1*sqr(fn1(#z-2.8*#z*cos(#z))) elseif @V=="22" d=#z+p1*sqr(fn1((flip(#z)+0.3)/(1+0.3*flip(#z)))) elseif @V=="23" d=#z+p1*sqr(fn1((conj(#z)+0.8)/(1+0.8*conj(#z)))) elseif @V=="24" d=#z+p1*sqr(fn1((abs(#z)-0.9)/(1-0.9*abs(#z)))) elseif @V=="25" d=#z+p1*sqr(fn1((exp(#z)-0.55)/(1-0.55*exp(#z)))) elseif @V=="26" d=#z+p1*sqr(fn1((sqr(#z)+0.45)/(1+0.45*sqr(#z)))) elseif @V=="27" d=#z+p1*sqr(fn1((cotanh(#z)+3.5)/(1+3.5*cotanh(#z)))) elseif @V=="28" d=#z+p1*sqr(fn1((recip(#z)+2)/(1+2*recip(#z)))) endif if b0 g=true c=((imag(p2*100)-1)/p3)*b+a*imag(p2*100) endif f=f+1 a=f%real(p2*100) endif final: if g #index=((real(c)+1)%(p4*289))/(p4*289) else #solid=true endif default: title="Magma Grolthius 4" param V2 caption="Variant 1" 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" endparam param V caption="Variant 2" 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" endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc param p5 caption="Parameter 1" default=1.0 endparam param p6 caption="Parameter 2" default=0.0 endparam param p1 caption="Parameter 3" default=(1,0) endparam param p2 caption="Parameter 4" default=(-0.25,1.32) endparam param p3 caption="Parameter 5" default=0.5 endparam param p4 caption="Parameter 6" default=1.0 endparam } Arnipel { init: float a=0.0 float b=0.0 float c=0.0 loop: a=a+0.02 b=b+0.01 z=p1*fn1(#z)+p2 if @Va=="1" z=z elseif @Va=="2" if cabs(z)<1 z=z/cabs(z) endif elseif @Va=="3" if cabs(z)>1 z=z/cabs(z) endif elseif @Va=="4" z=z+cos(z) elseif @Va=="5" z=z-1/exp(z) elseif @Va=="6" z=z+cosh(z) elseif @Va=="7" if |z|<1 z=z/|z| endif elseif @Va=="8" if |z|>1 z=z/|z| endif elseif @Va=="9" z=z+0.3*cotanh(z) elseif @Va=="10" z=z+cotan(z) elseif @Va=="11" z=z+0.3*cosh(z) elseif @Va=="12" z=z-1/z elseif @Va=="13" z=z-0.3/exp(z) elseif @Va=="14" z=z-1/log(z) elseif @Va=="15" z=z+0.3*cos(z) elseif @Va=="16" z=z-0.3/sqrt(z) elseif @Va=="17" z=z-1/sqrt(z) elseif @Va=="18" z=z-0.3/sqr(z) elseif @Va=="19" z=z-1/cos(z) elseif @Va=="20" z=z-0.3/log(z) elseif @Va=="21" z=z-0.3/z elseif @Va=="22" z=z+cotanh(z) elseif @Va=="23" z=z+sqrt(z) elseif @Va=="24" z=z+log(z) elseif @Va=="25" z=z-1/sqr(z) elseif @Va=="26" z=z-0.3/cos(z) elseif @Va=="27" z=z+0.3*sqr(z) elseif @Va=="28" z=z+0.3*log(z) elseif @Va=="29" z=z+sqr(z) elseif @Va=="30" z=z+exp(z) elseif @Va=="31" z=z-0.3*cotanh(z) elseif @Va=="32" z=z-cosh(z) elseif @Va=="33" z=z-cos(z) elseif @Va=="34" z=z+1/z elseif @Va=="35" z=z+1/exp(z) elseif @Va=="36" z=z+1/log(z) elseif @Va=="37" z=z-0.3*sqr(z) elseif @Va=="38" z=z-sqrt(z) elseif @Va=="39" z=z-log(z) elseif @Va=="40" z=z-exp(z) elseif @Va=="41" z=z-0.3*log(z) elseif @Va=="42" z=z-sqr(z) elseif @Va=="43" z=z-cotanh(z) elseif @Va=="44" z=z-cotan(z) elseif @Va=="45" z=z-0.3*cosh(z) elseif @Va=="46" z=z-0.3*cos(z) elseif @Va=="47" z=z+0.3/exp(z) elseif @Va=="48" z=z+0.3/log(z) elseif @Va=="49" z=z+1/sqrt(z) elseif @Va=="50" z=z+0.3/sqrt(z) elseif @Va=="51" z=z+1/sqr(z) elseif @Va=="52" z=z+0.3/sqr(z) elseif @Va=="53" z=z+1/cos(z) elseif @Va=="54" z=z+0.3/cos(z) elseif @Va=="55" if |z|<1 z=z/|z| endif z=-cos(z) elseif @Va=="56" if |z|<1 z=z/|z| endif z=flip(z) elseif @Va=="57" if |z|<1 z=z/|z| endif z=cosh(z) elseif @Va=="58" if |z|<1 z=z/|z| endif z=sin(z) endif if @v=="1" z=p3*log(z+200*(cotan(z)^4-1)/(4*cotan(z)^3))+p4 elseif @v=="2" z=p3*log(z+200*(flip(z)^4-1)/(4*flip(z)^3))+p4 elseif @v=="3" z=p3*log(z+200*(cotanh(z)^4-1)/(4*cotanh(z)^3))+p4 elseif @v=="4" z=p3*log(z+200*(log(z)^4-1)/(4*log(z)^3))+p4 elseif @v=="5" z=p3*log(z-200*(cosh(z)^4-1)/(4*cosh(z)^3))+p4 elseif @v=="6" z=p3*log(z+200*(sqr(z)^4-1)/(4*sqr(z)^3))+p4 elseif @v=="7" z=p3*log(z-200*(cotan(z)^4-1)/(4*cotan(z)^3))+p4 elseif @v=="8" z=p3*log(z-200*(cotanh(z)^4-1)/(4*cotanh(z)^3))+p4 elseif @v=="9" z=p3*log(z+200*(z^4-1)/(4*z^3))+p4 elseif @v=="10" z=p3*log(z-200*(abs(z)^4-1)/(4*abs(z)^3))+p4 elseif @v=="11" z=p3*log(z-200*(cos(z)^4-1)/(4*cos(z)^3))+p4 elseif @v=="12" z=p3*log(z-200*(log(z)^4-1)/(4*log(z)^3))+p4 elseif @v=="13" z=p3*log(z+200*(cos(z)^4-1)/(4*cos(z)^3))+p4 elseif @v=="14" z=p3*log(z-200*(z^4-1)/(4*z^3))+p4 elseif @v=="15" z=p3*log(z-200*(sqr(z)^4-1)/(4*sqr(z)^3))+p4 elseif @v=="16" z=p3*log(z+200*(cosh(z)^4-1)/(4*cosh(z)^3))+p4 elseif @v=="17" z=p3*log(z+200*(abs(z)^4-1)/(4*abs(z)^3))+p4 elseif @v=="18" z=p3*log(z-200*(flip(z)^3-1)/(3*z^2))+p4 elseif @v=="19" z=p3*log(z-200*(sinh(z)^3-1)/(3*z^2))+p4 elseif @v=="20" z=p3*log(z-200*(sqrt(z)^3-1)/(3*z^2))+p4 elseif @v=="21" z=p3*log(z-200*(abs(z)^3-1)/(3*z^2))+p4 elseif @v=="22" z=p3*log(z-200*(conj(z)^3-1)/(3*z^2))+p4 elseif @v=="23" z=p3*log(z-200*(atanh(z)^3-1)/(3*z^2))+p4 elseif @v=="24" z=p3*log(z-200*(sqr(z)^3-1)/(3*z^2))+p4 elseif @v=="25" z=p3*log(z+200*(abs(z)^3-1)/(3*z^2))+p4 elseif @v=="26" z=p3*log(z+200*(flip(z)^3-1)/(3*z^2))+p4 elseif @v=="27" z=p3*log(z-200*(tan(z)^3-1)/(3*z^2))+p4 elseif @v=="28" z=p3*log(z+200*(conj(z)^3-1)/(3*z^2))+p4 elseif @v=="29" z=p3*log(z+200*(sqr(z)^3-1)/(3*z^2))+p4 endif c=c+real(atanh(|z|*a))*p5/b final: #index=(c%1000)/1000 default: title="Arnipel" param Va caption="Variant 1" 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""39""40"\ "41""42""43""44""45""46""47""48""49""50"\ "51""52""53""54""55""56""57""58" endparam param V caption="Variant 2" 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" endparam func fn1 caption="Function" default=ident() endfunc param p1 default=(1,0) endparam param p2 default=(0,0) endparam param p3 caption="Parameter 3" default=1.0 endparam param p4 caption="Parameter 4" default=0.0 endparam param p5 caption="Parameter 5" default=2.0 endparam } Tiggray { ; This is a modification of Wavy Traps by Piotr Borys (pb.ucl) init: float a=1e38 float b=0.0 complex c[#maxiter+1] c[0]=#z d=(0,0) int i=0 f=p3 float h float j float k float m loop: i=i+1 d=p1*fn1(#z)+p2 if @V=="1" d=d elseif @V=="2" d=d+cabs(d) elseif @V=="3" d=d-cabs(d) elseif @V=="4" d=d+log(d) elseif @V=="5" d=d-log(d) elseif @V=="6" d=d-cotanh(d) elseif @V=="7" d=d+atanh(d) elseif @V=="8" d=d-atanh(d) elseif @V=="9" d=d-1/d endif d=d-f c[i]=d if i>0 && i<@p8 h=abs(imag(d)) j=cabs(asinh(((real(d))^2)*0.24)) b=abs(h-2.5-j) if i>1 k=abs(imag(c[i-1])) m=cabs(asinh(((real(c[i-1]))^2)*0.24)) b=b+0.3*cabs(asinh(abs(k-2.5+m))) endif endif if b1 z=p1*fn1(#z)+p2 if @M=="None" z=z elseif @M=="1" z=z+p3*fn2(z) else z=z+p3/fn2(z) endif if cabs(z)1 z=z/|z| endif elseif @V=="3" if |z|<1 z=z/|z| endif endif if @V2=="1" c=p4*0.5*real(cos(10*imag(fn3(z))))+p3 d=p4*0.5*real(cos(10*real(fn3(z))))+p3 elseif @V2=="2" c=p4*0.5*real(cos(cos(10*imag(fn3(z)))))+p3 d=p4*0.5*real(cos(10*real(fn3(z))))+p3 elseif @V2=="3" c=p4*0.5*real(cos(10*imag(fn3(z))))+p3 d=p4*0.5*real(cos(cos(10*real(fn3(z)))))+p3 elseif @V2=="4" c=p4*0.5*real(cos(cos(10*imag(fn3(z)))))+p3 d=p4*0.5*real(cos(cos(10*real(fn3(z)))))+p3 endif j=c+flip(d) f=cabs(z-j) if fp5 #solid=true else #index=h endif endif else #index=h endif default: title="Kozmod" param V caption="Variant 1" enum="1""2""3" endparam param V2 caption="Variant 2" enum="1""2""3""4" endparam param p1 caption="Z Parameter 1" default=(1,0) endparam param p2 caption="Z Parameter 2" default=(0,0) endparam func fn2 caption="Z Function" default=ident() endfunc param p4 caption="Kozmod Parameter 1" default=1.0 endparam param p3 caption="Kozmod Parameter 2" default=0.0 endparam func fn3 caption="Kozmod Function" default=ident() endfunc param solid caption="Solid Colour" default=false endparam param invert caption="Solid Colour Invert" visible=@solid==true default=false endparam param p5 caption="Solid Colour Adjustment" default=2.7 visible=@solid==true endparam } Ampomestion2 { ;A modification of Speed Limits by Mike Williams (mjw.ucl) init: float a=1e20 int i=0 b=(0,0) float c=0.0 float d=1e20 loop: if @S==true z=p1*abs(fn1(#z)) else z=p1*fn1(#z) endif if @V==0 z=z+p2*fn2(z) elseif @V==1 z=z+p2/fn2(z) elseif @V==2 z=(fn2(z)-p2*1i)/(fn2(z)+p2*1i) elseif @V==3 z=z^2*(fn2(z)-(p2+1))/(1-(p2+1)*fn2(z)) elseif @V==4 z=z-p2*fn2(z^3-1)/(3*z^2) elseif @V==5 z=sqr((fn2(z)^2+p2-1)/(2*fn2(z)+p2-2)) endif i=i+1 if i==1 b=z else c=cabs(z-b) if c<@adj2 && c>@adj1 d=c if c@p7 #index=a else #solid=true endif else #index=a endif default: title="Avoctusonui" param F caption="Function" enum="sin""sinh""asin""asinh""tan""tanh""atan""atanh""sqr""sqrt""flip""ident" default=11 endparam param p1 default=(1,0) endparam param p2 default=(1,0) endparam param p3 default=(1,0) endparam param p4 default=(1,0) endparam param @solid caption="Solid Colour" default=false endparam param p7 caption="Solid Colour Adjustment" default=0.55 visible=@solid==true endparam } Avoctusonui2 { init: float a=1e20 float b=0.0 float c=0.0 loop: z=fn3(#z) x=real(z) y=imag(z) z=fn1(p1*y)+p2*sin(p1*x)+flip(fn1(p3*x)+p4*sin(p3*y)) z=real(z)+1i*imag(z) if @V=="1" z=p6*fn2(-z*1i) elseif @V=="2" z=z+p6*fn2(-z*1i) elseif @V=="3" z=z+p6/fn2(-z*1i) elseif @V=="4" z=-z*1i z=z^2*fn2((z-(p6+1.7))/(1-(p6+1.7)*z)) elseif @V=="5" z=-z*1i z=sqr(fn2((z^2+p6-1)/(2*z+p1-2))) elseif @V=="6" z=-z*1i z=z-p6*fn2((z^3-1)/(3*z^2)) endif c=atan2(z) c=-(2*pi)*round(3*c/(2*pi))/3 z=z*exp(1i*c) b=abs(real(z)) if b@p7 #index=a else #solid=true endif else #index=a endif default: title="Avoctusonui 2" param V caption="Variant" enum="1""2""3""4""5""6" default=1 endparam param p1 default=(1,0) endparam param p2 default=(1,0) endparam param p3 default=(1,0) endparam param p4 default=(1,0) endparam param p5 default=(1,0) endparam param p6 default=(0.3,0) endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=abs() endfunc param @solid caption="Solid Colour" default=false endparam param p7 caption="Solid Colour Adjustment" default=0.53877 visible=@solid==true endparam } BonaSpallona { init: a=(0,1) b=(0,1) float c=0.0 loop: if @Fs=="sin" z=sin(#z) elseif @Fs=="sinh" z=sinh(#z) elseif @Fs=="asin" z=asin(#z) elseif @Fs=="asinh" z=asinh(#z) elseif @Fs=="cos" z=cos(#z) elseif @Fs=="cosh" z=cosh(#z) elseif @Fs=="acos" z=acos(#z) elseif @Fs=="acosh" z=acosh(#z) elseif @Fs=="tan" z=tan(#z) elseif @Fs=="tanh" z=tanh(#z) elseif @Fs=="atan" z=atan(#z) elseif @Fs=="atanh" z=atanh(#z) elseif @Fs=="cotan" z=cotan(#z) elseif @Fs=="cotanh" z=cotanh(#z) elseif @Fs=="sqr" z=sqr(#z) elseif @Fs=="sqrt" z=sqrt(#z) elseif @Fs=="log" z=log(#z) elseif @Fs=="exp" z=exp(#z) elseif @Fs=="abs" z=abs(#z) elseif @Fs=="cabs" z=cabs(#z) elseif @Fs=="conj" z=conj(#z) elseif @Fs=="flip" z=flip(#z) elseif @Fs=="ident" z=ident(#z) elseif @Fs=="recip" z=recip(#z) elseif @Fs=="versin" z=1-cos(#z) elseif @Fs=="aversin" z=acos(1-#z) elseif @Fs=="haversin" z=(1-cos(#z))/2 elseif @Fs=="ahaversin" z=2*asin(sqrt(#z)) elseif @Fs=="coversin" z=1-sin(#z) elseif @Fs=="acoversin" z=asin(1-#z) elseif @Fs=="hacoversin" z=(1-sin(#z))/2 elseif @Fs=="vercos" z=1+cos(#z) elseif @Fs=="avercos" z=acos(1+#z) elseif @Fs=="havercos" z=(1+cos(#z))/2 elseif @Fs=="ahavercos" z=2*acos(sqrt(#z)) elseif @Fs=="covercos" z=1+sin(#z) elseif @Fs=="acovercos" z=asin(1+#z) elseif @Fs=="hacovercos" z=(1+sin(#z))/2 elseif @Fs=="acotan" z=atan(1/(#z)) elseif @Fs=="acotanh" z=atanh(1/(#z)) elseif @Fs=="sec" z=1/cos(#z) elseif @Fs=="sech" z=1/cosh(#z) elseif @Fs=="asec" z=acos(1/#z) elseif @Fs=="asech" z=acosh(1/#z) elseif @Fs=="cosec" z=1/sin(#z) elseif @Fs=="cosech" z=1/sinh(#z) elseif @Fs=="acosec" z=asin(1/#z) elseif @Fs=="acosech" z=asinh(1/#z) elseif @Fs=="exsec" z=1/cos(#z)-1 elseif @Fs=="aexsec" z= acos(1/(#z+1)) elseif @Fs=="excosec" z=1/sin(#z)-1 elseif @Fs=="aexcosec" z=asin(1/(#z+1)) elseif @Fs=="crd" z=2*sin(#z/2) elseif @Fs=="acrd" z=2*asin(#z/2) elseif @Fs=="gd" z=asin(tanh(#z)) elseif @Fs=="agd" z=asinh(tan(#z)) elseif @Fs=="sinc" z=sin(#z)/(#z) elseif @Fs=="sinhc" z=sinh(#z)/(#z) elseif @Fs=="cosc" z=cos(#z)/(#z) elseif @Fs=="coshc" z=cosh(#z)/(#z) elseif @Fs=="tanc" z=tan(#z)/(#z) elseif @Fs=="tanhc" z=tanh(#z)/(#z) elseif @Fs=="cotanc" z=cotan(#z)/(#z) elseif @Fs=="cotanhc" z=cotanh(#z)/(#z) elseif @Fs=="secc" z=1/(#z*cos(#z)) elseif @Fs=="sechc" z=1/(#z*cosh(#z)) elseif @Fs=="cosecc" z= 1/(#z*sin(#z)) elseif @Fs=="cosechc" z=1/(#z*sinh(#z)) elseif @Fs=="cube" z=#z^3 elseif @Fs=="cuberoot" z=#z^(1/3) elseif @Fs=="colog" z=-log(#z) elseif @Fs=="logit" z= log(#z/(1-#z)) elseif @Fs=="expit" z=1/(1+exp(-#z)) elseif @Fs=="gauss" z=exp(-sqr(#z)) elseif @Fs=="softplus" z=log(1+exp(#z)) elseif @Fs=="primecount" z=#z/log(#z) elseif @Fs=="sqr+" z=sqr(#z)+#z elseif @Fs=="cube+" z=#z^3+sqr(#z)+#z elseif @Fs=="sin+" z=sin(#z)+#z elseif @Fs=="cos+" z=cos(#z)+#z elseif @Fs=="tan+" z=tan(#z)+#z elseif @Fs=="cotan+" z=cotan(#z)+#z elseif @Fs=="sec+" z=1/cos(#z)+#z elseif @Fs=="cosec+" z=1/sin(#z)+#z elseif @Fs=="sin*" z=sin(#z)*#z elseif @Fs=="cos*" z=cos(#z)*#z elseif @Fs=="tan*" z=tan(#z)*#z elseif @Fs=="cotan*" z=cotan(#z)*#z elseif @Fs=="sec*" z=#z/cos(#z) elseif @Fs=="cosec*" z=#z/sin(#z) elseif @Fs=="loglog" z=log(log(#z)) elseif @Fs=="sinsin" z=sin(sin(#z)) elseif @Fs=="coscos" z=cos(cos(#z)) elseif @Fs=="+pixel" z=#z+pixel elseif @Fs=="-pixel" z=#z-pixel elseif @Fs=="*pixel" z=#z*pixel elseif @Fs=="/pixel" z=#z/pixel elseif @Fs=="third" z=#z/3 elseif @Fs=="half" z=#z/2 elseif @Fs=="double" z=#z*2 elseif @Fs=="triple" z=#z*3 elseif @Fs=="ceil" z=ceil(#z) elseif @Fs=="floor" z=floor(#z) elseif @Fs=="trunc" z=trunc(#z) else z=round(#z) endif float x=real(z) float y=imag(z) if @V=="Ampersand Curve" z=(y^2-x^2)*(x-1)*(2*x-3)-4*(x^2+y^2-2*x)^2 elseif @V=="Arcs of Samothrace" z=x^2*(3*x^2-y^2)^2-y^2*(x^2+y^2) elseif @V=="Beddington Mod" z=real(z)*exp(p2*(1-0.1*real(z))-p1*imag(z))+flip(real(z)*(1-exp(-p1*imag(z)))) elseif @V=="Beetle" z=(x^2+y^2)*(x^2+y^2-p1*x-p2*y)-p3^2*x^2*y^2 elseif@V=="Bicorn" z=imag(z)^2*(p1^2-real(z)^2)-(real(z)^2+2*p1*imag(z)-p1^2)^2 elseif @V=="Bicuspid" z=(real(z)^2-p1^2)*(real(z)-p1)^2+(imag(z)^2-p1^2)^2 elseif @V=="Blade's Cubic" z=x^3+y^3-p1^3 elseif @V=="Bolza" z=y^2-x^5+x elseif @V=="Brusselator" z=(1-(p1+1)*x+y*x^2)/p2+flip((p1*x-y*x^2)/p3) elseif @V=="Bullet-Nose Curve" z=(p1^2-x^2)*(p2^2+y^2)-p1^2*p2^2 elseif @V=="Cardioid" z=(x^2+y^2-2*p1*x)^2-4*p1^2*(x^2+y^2) elseif @V=="Cartesian Oval" z=(p2-1)*sqrt((real(z)-p1)^2+imag(z)^2)+p3*sqrt((real(z)+p1)^2+imag(z)^2)-p4 elseif @V=="Cassinian Ovals" z=(real(z)^2+imag(z)^2)^2-2*p1^2*(real(z)^2-imag(z)^2)+p1^4-(p2-0.2)^4 elseif @V=="Cayley's Sextic" z=4*(x^2+y^2-p1*x)^3-27*p1^2*(x^2+y^2)^2 elseif @V=="Chasles Cubic" z=y-p1*x^3-p2*x^2*y-p3*x*y^2-p4*y^3 elseif @V=="Cissoid of Zahradnik" z=p3*x^2+2*p4*x*y+(p5+1)*y^2-2*p1*x-2*p2*y elseif @V=="Clifford" z=sin((p1+1)*imag(z))+p2*cos((p1+1)*real(z))+flip(sin((p3+1)*real(z))+p4*cos((p3+1)*imag(z))) elseif @V=="Conchoid of a Circle" z=(real(z)^2+imag(z)^2+p3^2-p2^2)^2*(imag(z)^2+(real(z)+p1)^2)-4*p3^2*(real(z)*(real(z)+p1)+imag(z)^2)^2 elseif @V=="Conchoid of de Sluze" z=p1*(real(z)+p1)*(real(z)^2+imag(z)^2)-p2^2*real(z)^2 elseif @V=="Conchoid of Nicomedes" z=(real(z)-p2)^2*(real(z)^2+imag(z)^2)-p1^2*real(z)^2 elseif @V=="Conic Sections" z=2*p1^2*x+(1-p1^2)*x^2+y^2-p1^2 elseif @V=="Cornoid" z=(x^2+y^2)^3+p1^2*(3*x^4-6*x^2*y^2-5*y^4)+8*p1^4*y^2-4*p1^6 elseif @V=="Cubic of Apollonius" z=(real(z)-2*p1)*(real(z)^2+imag(z)^2)+(p2+2)^2*(cos(2*p3*real(z))+sin(2*p3*imag(z))) elseif @V=="Curve of Cramer" z=real(z)*(real(z)^2+imag(z)^2)+(p1+1+p2)*real(z)^2-(p1+1-p2)*imag(z)^2 elseif @V=="Curve of Jefabek" z=(p2+1)^2*(real(z)^2+imag(z)^2-p1*real(z))^2-p1^2*(real(z)^2+imag(z)^2)*(real(z)-p1)^2 elseif @V=="Curve of Loriga" z=3*real(z)^2-imag(z)^2-p1^2 elseif @V=="Curve of Rosillo" z=imag(z)^2*(p3-real(z))^2-(p2-real(z))^2*(p1^2-real(z)^2) elseif @V=="Devil's Curve" z=imag(z)^4-real(z)^4-p1^2*imag(z)^2+p2^2*real(z)^2 elseif @V=="Duffing 1" z=y+flip(-p1*y+(1+p2*(p3*cos(p4)+cos(p5)))*x-x^3+p6) elseif @V=="Duffing 2" z=y+flip(-p1*x-p2*x^3+p3) elseif @V=="Duffing 3" z=imag(z)+flip(-p1*x-((p2-p1)/2)*(cabs(x+1)-cabs(x-1))-p3*y+p4) elseif @V=="Duffing Parametric" z=y+flip(-x-x^3+(p1+p2*x^2+p3*p4*x)*y+p4*p5) elseif @V=="Duplicatrix Cubic" z=p1*y^2-x^2*(x-p1) elseif @V=="Egg of Granville" z=real(z)^2*imag(z)^2-(real(z)-p1)*(1-real(z)) elseif @V=="Egg of Kepler" z=(x^2+y^2)^2-p1*x^3 elseif @V=="Fish Curve" z=(2*real(z)^2+imag(z)^2)^2+2*sqrt(2)*p1*real(z)*(2*real(z)^2-3*imag(z)^2)+2*p1^2*(imag(z)^2-real(z)^2) elseif @V=="Focal Conic Conchoid" z=(real(z)^2+imag(z)^2-p1*(p2+1)*real(z))^2-(real(z)^2+imag(z)^2)*((p2+1)*real(z)-(p1+1))^2 elseif @V=="Folium of Descartes" z=x^3+y^3-3*p1*x*y elseif @V=="Gumowski-Mira 1" z=y+p1*(1-0.05*y^2)*y+(p2+0.5)*x+2*(1-(p2+0.5))*x^2/(1+x^2)\ +flip(-x+(p2+0.5)*(y+p1*(1-0.05*y^2)*y+(p2+0.5)*x+2*(1-(p2+0.5))*x^2/(1+x^2))\ +2*(1-(p2+0.5))*(y+p1*(1-0.05*y^2)*y+(p2+0.5)*x+2*(1-(p2+0.5))*x^2/(1+x^2))^2/\ (1+(y+p1*(1-0.05*y^2)*y+(p2+0.5)*x+2*(1-(p2+0.5))*x^2/(1+x^2))^2)) elseif @V=="Gumowski-Mira 2" if x<-0.5 z=-p1*x+y+flip(y+(-2*(p1+1)*x-0.9*(p1+1))) elseif cabs(x)<0.5 z=-p1*x+y+flip(y-(p1+1)*x/5) else z=-p1*x+y+flip(y+(-2*(p1+1)*x+0.9*(p1+1))) endif elseif @V=="Hamilton" z=real(z)+p1*p2*sin(2*pi*imag(z))+flip(imag(z)-(p1/p2)*sin(2*pi*(real(z)+p1*p2*sin(2*pi*imag(z))))) elseif @V=="Hamilton Torus" z=-sin(imag(z))*(2-p1)+flip(sin(real(z))*p1) elseif @V=="Henon 1" z=1-p1*x^2+y+flip((p2-0.5)*x) elseif @V=="Henon 2" z=-(y-real(z)^2)*sin(2*pi/(p1+(0,0.1)))+x*cos(2*pi/(p1+(0,0.1)))+flip((y-real(z)^2)*cos(2*pi/(p1+(0,0.1)))+x*sin(2*pi/(p1+(0,0.1)))) elseif @V=="Henon 3" z=y+flip(-p2^(-1)*(1-p1*y^2-p2*x)) elseif @V=="Henon 4" z=exp(-p1*p2/2)*(x*cos(p2*p3)+(1/p3)*(y-(p4+x^2)+p1*x/2)*sin(p2*p3))+flip(exp(-p1*p2/2)*(-p3*x*sin(p2*p3)+(y-(p4+x^2)+p1*x/2)*cos(p2*p3))-p1*x/2) elseif @V=="Henon 5" z=y+(p1+1)*cos(pi*x/2)-1+flip((p2-0.5)*x) elseif @V=="Henon-Heiles 1" z=-p1*x-p2*x*y+flip(-p3*y-p4*x^2+p5*y^2) elseif @V=="Henon-Heiles 2" z=y+flip(-p1*x-p2*x^2+p3) elseif @V=="Hippopede of Proclus" z=(real(z)^2+imag(z)^2)^2+4*p2*(p2-p1)*(real(z)^2+imag(z)^2)-4*p2^2*real(z)^2 elseif @V=="Hyperbolic Tangentoid" z=y-p1*tanh(x/p2) elseif @V=="Ilhem-Amel 1" z=x^3+p1*x+p2/2+y+flip((p3-0.5)*x) elseif @V=="Ilhem-Amel 2" z=(p4-0.5)*x^3+p1*x+p2/2+p5*y+flip(p3*x+p6*y) elseif @V=="Isoptic Cueve" z=tan(p1)^2*(x+pi/2)^2-y^2+2*p2*x elseif @V=="Kampyle of Eudoxus" z=p1^2*real(z)^4-p2^4*(real(z)^2+imag(z)^2) elseif @V=="Kaplan-Yorke" z=real(p1)*real(z)%1+flip(-p2*imag(z)+cos(2*pi*real(z))) elseif @V=="Kappa Curve" z=y^2*(x^2+y^2)-p1^2*x^2 elseif @V=="Kiss Curve" z=p1^4*imag(z)^2-(p1^2-real(z)^2)^3 elseif @v=="Klein Quartic" z=(real(z)^2+imag(z)^2-p2*p1^2)^2-p3*p1*(imag(z)-p1+sqrt(3)*real(z))*(imag(z)-p1-sqrt(3)*real(z))*(2*imag(z)+p1) elseif @V=="Kolmogorov-Volterra" z=(x*(p1-x^2)-p2*x*y)/(1+x^2)+flip((p3*x^2-1)*y/(1+x^2)) elseif @V=="Latoocarfian" z=sin(p1*y)+p2*sin(p1*x)+flip(sin(p3*x)+p4*sin(p3*y)) elseif @V=="Lemniscate of Bernoulli" z=(real(z)^2+imag(z)^2)^2-(p1+1)^2*(real(z)^2-imag(z)^2) elseif @V=="Lemniscate of Booth" z=(x^2+y^2)^2-(2*p1^2+p2)*x^2+(2*p1^2-p2)*y^2 elseif@V=="Limacon of Pascal" z=(real(z)^2+imag(z)^2-p1*real(z))^2-p2^2*(real(z)^2+imag(z)^2) elseif @V=="Lissajous Curve" z=2*(2*real(z)^2-p1^2)^2-p1*(2*imag(z)-p1)^2*(imag(z)+p1) elseif @V=="Logarithmic Lemniscate" z=imag(z)^2-real(z)^2*log((p1+1)^2/real(z)^2) elseif @V=="Logarithmic Sinusoid" z=y-log(sqrt(1-x^2)) elseif @V=="Lozi" z=1-p1*cabs(x)+y+flip(p2*x) elseif @V=="Lozi Mod" z=1+p1*(cabs(x)-y^2)+y+flip((p2-0.5)*x) elseif @V=="Marotto-Lorenz" z=(1-p1*x-p2*y)*(p1*x+p2*y)+flip(x) elseif @V=="Mira 1" z=(1-p1/2)*x+y+flip(p1*p2*x/2+p3*y-p1*x^3/2) elseif @V=="Mira 2" z=x^2-y^2+p1*x+p2+flip(2*x*y-5*p1*y/2+p3) elseif @V=="Multifold Henon" z=1-p1*sin(x)+p2*y+flip(x) elseif @V=="Nephroid" z=(real(z)^2+imag(z)^2-4*(p1-0.5)^2)^3-108*(p1-0.5)^4*real(z)^2 elseif @V=="Nephroid of Freeth" z=(real(z)^2+imag(z)^2)*(real(z)*2+imag(z)^2-p1^2)^2-4*p1^2*(real(z)^2+imag(z)^2-p1*real(z))^2 elseif @V=="OM1" z=sin((p1-1)*y)+(sin((p1-1)*x))^2+(sin((p1-1)*y))^3+flip(sin(p2*x)+(sin(p2*y))^2+(sin(p2*x))^3) elseif @V=="OM2" z=flip(y)+flip(atanh(x)+y*(p1-y^2)) elseif @V=="OM3" z=sin(p1*x)-tan((p2-1)*y)+flip(tan(p3*x)+sin(p4*y)) elseif @V=="OM4" z=(x^2-y^2)*(x^2+y^2)^2-2*p1*x*y*(x-p1^2) elseif @V=="OM5" z=p1*sin(x^2+y^2)+p2*x*(x^2-y^2)-2*p1*x*y*(p1^2-p2^2) elseif @V=="OM6" z=p1*sin(x)^3+p2*sin(y)^3-(p3-1) elseif @V=="OM7" z=(x^2-(p1-0.2)^2)*(x-(p2-0.2))+(y^2-(p3-0.2)^2)^2 elseif @V=="OM8" z=(x^2-(p1-0.5)^2)*(x-(p2-0.5))^2+(y^2-(p3-0.5)^2)^3 elseif @V=="OM9" z=((p1*p2-x)^2+(p2-y)^2)/p3^2-1 elseif @V=="OM10" z=p1*(x^2+y^2)^4-p1*(x^2+y^2)^3+p2*(x^2+y^2)^2-(x^2+y^2)+p3*y elseif @V=="OM11" z=(2*p1)^p2*y^2-(p1+x)*(p1-x)^(p2+1) elseif @V=="OM12" z=(x%(2*pi))+(y%(2*pi))+p1*sin(2*pi*(x%(2*pi)))+flip((x%(2*pi))+(y%(2*pi))+p2*sin(2*pi*(x%(2*pi)))-(x%(2*pi))) elseif @V=="OM13" z=p1*y-p2/(x*cos(x))+p3/(x*cos(y)) elseif @V=="OM14" z=(1/3)*(-(pi+1)*x+p1-p2+(x+flip(y))*y+((1-p1)*(x^2-y)^2)+(2*(p1+p2-(x+flip(y))))*x*y)*(1/(3*sqrt(x^2+y^2))) \ +flip((1/3)*((p2-p1-(x+flip(y)))*x-(p1+1)*y)+((2*(p1-1))*x*y+(p1+p2-(x+flip(y)))*(x^2-y^2))*(1/(3*sqrt(x^2+y^2)))) elseif @V=="OM15" z=(x-p1*y)*cos(x+flip(y))-p2*y*sin(x+flip(y))+flip((x*p3*y)*sin(x+flip(y))+p4*y*cos(x+flip(y))) elseif @V=="OM16" z=x-y-cotan(x)*(p1*x^2+p2*y^2)+flip(x+y-cotan(y)*(p3*x^2+p4*y^2)) elseif @V=="OM17" z=p1*x*cotan(x)-y*log(x)+flip(p2*y*sqr(x)) elseif @V=="OM18" z=(x^2+y^2)^5+p1*(x^2-y^2)^3-p1^2*y elseif @V=="OM19" z=(((p1-0.5)*p2-x*y)^3+(p2*p3-(X^2+y^2)^2)) elseif @V=="OM20" z=y^2+x^2-((x+(p3*(x-p1))/sqrt((x-p1)^2+(y-p2)^2))-(y+(p3*(y-p2))/sqrt((x-p1)^2+(y-p2)^2))) elseif @V=="OM21" z=x^2-4*p1*y*(x^2+y^2)+y^3*p1^2*(x^2-y^2)^4 elseif @V=="OM22" z=p3*sin(imag(z)+sin(p1*imag(z)))+flip(p4*sin(real(z)+sin(p2*real(z)))) elseif @V=="OM23" z=cos((p1+1)*real(z))-sin(p2*imag(z))+flip(sin(p3*real(z))+cos(p4*imag(z))) elseif @V=="OM24" z=x+(p1-0.8)*p2*cotan(2*pi*y)+flip(y-((p1-0.8)/p2)*cotan(2*pi*(x+(p1-0.8)*p2*cotanh(2*pi*y)))) elseif @V=="OM25" z=p1*sin(x)-tan(y)-sin(x+flip(y))+flip(-p2*tan(x)+sin(y)+sin(x+flip(y))) elseif @V=="OM26" z=x+p1*y^2+sin(x)^3+flip(y-p2*x^2+sin(y)^3) elseif @V=="OM27" z=p1*sin(x)-tan(y)-abs(x+flip(y))+flip(-p2*tan(x)+sin(y)+exp(x+flip(y))) elseif @V=="OM28" z=p1*sin(x)-tan(y)-abs(x+flip(y))+flip(-p2*tan(x)+sin(y)+abs(x+flip(y))) elseif @V=="OM29" z=(p1*tan(y)-p2)/(p1*tan(x)+p2)+flip((p1*tan(x)-p2)/(p1*tan(y)+p2)) elseif @V=="OM30" z=x-sin(y+p1*sin(p2*y+p3*sin(p4*y)))+flip(y-sin(x+p1*sin(p2*x+p3*sin(p4*x)))) elseif @V=="OM31" z=((p1-0.5)-p2)*cos(x)+p2*cos(((p1-0.5)/p2-1)*y)+flip(((p1-0.5)-p2)*sin(y)-p2*sin(((p1-0.5)/p2-1)*x)) elseif @V=="Ophiuride" z=x*(x^2+y^2)-p2*x*y-p1*y^2 elseif @V=="Pearls of Sluze" z=imag(z)^p2-p3*(p1-real(z))^p4*real(z)^p5 elseif @V=="Pendulum Morozov" z=y+flip(-sin(x)+y*(p1+p2*cos(p3*x))*(-p4)) elseif @V=="Polyharmonic Pendulum" z=y+flip(-p1*sin(x)-p2*sin(3*x)+p3*sin(p4)) elseif @V=="Popcorn" z=x-p1*sin(y+tan(p2*y))+flip(y-p1*sin(x+tan(p2*x))) elseif @V=="Quadratix of Hippias" z=real(z)-imag(z)*cotan(imag(z)/(p1-0.5)) elseif @V=="Scarab" z=(real(z)^2+imag(z)^2)*(real(z)^2+imag(z)^2+p1*real(z))^2-p2^2*(real(z)^2-imag(z)^2)^2 elseif @V=="Sinus Chain" z=imag(z)^2-abs(sin(real(z))+p1*sin(2*real(z))) elseif @V=="Spiric of Perseus" z=(x^2+y^2)^2-2*p1*x^2-2*p2*y^2+p3 elseif @V=="Spiric Sections" z=(p3^2-(p1-0.5)^2+p2^2+real(z)^2+imag(z)^2)^2-4*p3^2*(real(z)^2+p2^2) elseif @V=="Standard Map" z=x+p1*y+p2+(p3/(2*pi))*sin(2*pi*x)+flip(p1*y+p2+(p3/(2*pi))*sin(2*pi*x)) elseif @V=="Svensson" z=p1*sin(p2*real(z))-sin(p3*imag(z))+flip(p4*cos(p2*real(z))-cos(p3*imag(z))) elseif @V=="Szego Curve" z=x^2+y^2-e^(2*x-2) elseif @V=="Tetracuspid" z=p1^p2*(cabs(real(z))^p2+cabs(imag(z))^p2)-(real(z)^2+imag(z)^2)^p2 elseif @V=="Tinkerbell" z=real(z)^2-imag(z)^2+p1*real(z)+p2*imag(z)+flip(2*real(z)*imag(z)-p3*real(z)+p4*imag(z)) elseif @V=="Trisectrix of Ceva" z=(real(z)^2+imag(z)^2)^3-((p1+1)*real(z)^2-(p1-1)*imag(z)^2)^2 elseif @V=="Trisectrix of Delange" z=(real(z)^2+imag(z)^2-2*(p1-0.5)^2)^2-real(z)^2*(real(z)^2+imag(z)^2) elseif @V=="Trisectrix of Maclaurin" z=real(z)^2*(real(z)+3*p1)-imag(z)^2*(p1-real(z)) elseif @V=="Trott Curve" z=(144*(real(z)^4+imag(z)^4)-225*(real(z)^2+imag(z)^2)+350*real(z)^2*imag(z)^2+81) elseif @V=="Van der Pol 1" z=(p1+1)*(real(z)-real(z)^3/3-imag(z))+flip(real(z)/(p1+1)) elseif @V=="Van der Pol 2" z=imag(z)-p1*real(z)*(2*real(z)^2-sin(pi*real(z))^2-2)+flip(-real(z)) elseif @V=="Watt's Curve" z=(x^2+y^2)*(x^2+y^2-p3^2)^2+4*p1^2*y^2*(x^2+y^2-p2^2) endif float d=1-cabs(z)/@adj if d<0 d=0 else d=sqr(d) endif f=z*a float g=1.0 c=c+g*d g=g*0.5 f=f*b/0.5 final: if @solid if @invert if (sqrt(c)+1)*0.5<@p7 #index=(sqrt(c)+1)*0.5 else #solid=true endif else if (sqrt(c)+1)*0.5>@p7 #index=(sqrt(c)+1)*0.5 else #solid=true endif endif else #index=(sqrt(c)+1)*0.5 endif default: title="Bona Spallona" param V caption="Variant" enum="Ampersand Curve""Arcs of Samothrace""Beddington Mod""Beetle""Bicorn""Bicuspid"\ "Blade's Cubic""Bolza""Brusselator""Bullet-Nose Curve""Cardioid"\ "Cartesian Oval""Cassinian Ovals""Cayley's Sextic""Chasles Cubic""Cissoid of Zahradnik"\ "Clifford""Conchoid of a Circle"\ "Conchoid of de Sluze""Conchoid of Nicomedes""Conic Sections""Cornoid"\ "Cubic of Apollonius""Curve of Cramer"\ "Curve of Jefabek""Curve of Rosillo""Curve of Loriga""Devil's Curve"\ "Duffing 1""Duffing 2""Duffing 3""Duffing Parametric"\ "Duplicatrix Cubic""Egg of Granville""Egg of Kepler""Fish Curve"\ "Focal Conic Conchoid""Folium of Descartes""Gumowski-Mira 1""Gumowski-Mira 2"\ "Hamilton""Hamilton Torus""Henon 1"\ "Henon 2""Henon 3""Henon 4""Henon 5""Henon-Heiles 1"\ "Henon-Heiles 2""Hippopede of Proclus""Hyperbolic Tangentoid"\ "Ilhem-Amel 1""Ilhem-Amel 2""Isoptic Cueve""Kampyle of Eudoxus"\ "Kaplan-Yorke""Kappa Curve""Kiss Curve""Klein Quartic""Kolmogorov-Volterra"\ "Latoocarfian""Lemniscate of Bernoulli"\ "Lemniscate of Booth""Limacon of Pascal"\ "Lissajous Curve""Logarithmic Lemniscate""Logarithmic Sinusoid""Lozi""Lozi Mod"\ "Marotto-Lorenz""Mira 1""Mira 2""Multifold Henon""Nephroid"\ "Nephroid of Freeth""OM1""OM2""OM3""OM4""OM5""OM6""OM7""OM8""OM9""OM10"\ "OM11""OM12""OM13""OM14""OM15""OM16""OM17""OM18""OM19""OM20"\ "OM21""OM22""OM23""OM24""OM25""OM26""OM27""OM28""OM29""OM30""OM31"\ "Ophiuride""Pearls of Sluze""Pendulum Morozov""Polyharmonic Pendulum""Popcorn"\ "Quadratix of Hippias""Spiric of Perseus""Spiric Sections"\ "Scarab""Sinus Chain""Standard Map""Svensson""Szego Curve""Tetracuspid""Tinkerbell"\ "Trisectrix of Ceva""Trisectrix of Delange""Trisectrix of Maclaurin"\ "Trott Curve""Van der Pol 1""Van der Pol 2""Watt's Curve" default=5 endparam param p1 default=(1,0) visible=@V!="Ampersand Curve" && @V!="Arcs of Samothrace" && @V!="Bolza" \ && @V!="Logarithmic Sinusoid" && @V!="Szego Curve" && @V!="Trott Curve" endparam param p2 default=(1,0) visible=@V=="Beddington Mod" || @V=="Beetle" || @V=="Brusselator" \ || @V=="Bullet-Nose Curve" || @V=="Cartesian Oval" \ || @V=="Cassinian Ovals" \ || @V=="Chasles Cubic" || @V=="Cissoid of Zahradnik" || @V=="Clifford" || @V=="Conchoid of a Circle" \ || @V=="Conchoid of de Sluze" || @V=="Conchoid of Nicomedes" || @V=="Cubic of Apollonius" \ || @V=="Curve of Cramer" || @V=="Curve of Jefabek" || @V=="Curve of Rosillo" || @V=="Devil's Curve" \ || @V=="Duffing 1" || @V=="Duffing 2" || @V=="Duffing 3" \ || @V=="Duffing Parametric" || @V=="Focal Conic Conchoid" || @V=="Gumowski-Mira 1" \ || @V=="Hamilton" || @V=="Henon 1" || @V=="Henon 3" || @V=="Henon 4" || @V=="Henon 5" \ || @V=="Henon-Heiles 1" || @V=="Henon-Heiles 2" || @V=="Hippopede of Proclus" || @V=="Hyperbolic Tangentoid" \ || @V=="Ilhem-Amel 1" || @V=="Ilhem-Amel 2" || @V=="Isoptic Cueve" \ || @V=="Kampyle of Eudoxus" || @V=="Kaplan-Yorke" || @V=="Klein Quartic" \ || @V=="Kolmogorov-Volterra" || @V=="Latoocarfian" \ || @V=="Lemniscate of Booth" || @V=="Limacon of Pascal" || @V=="Lozi" \ || @V=="Lozi Mod" || @V=="Marotto-Lorenz" \ || @V=="Mira 1" || @V=="Mira 2" || @V=="Multifold Henon" || @V=="OM1" \ || @V=="OM3" || @V=="OM5" || @V=="OM6" \ || @V=="OM7" || @V=="OM8" || @V=="OM9" || @V=="OM10" || @V=="OM11" || @V=="OM12"\ || @V=="OM13" || @V=="OM14" || @V=="OM15" || @V=="OM16" || @V=="OM17" \ || @V=="OM19" || @V=="OM20" || @V=="OM22" || @V=="OM23" || @V=="OM24" \ || @V=="OM25" ||@V=="OM26" || @V=="OM27" || @V=="OM28" || @V=="OM29" || @V=="OM30" \ || @V=="OM31" || @V=="Ophiuride" || @V=="Pearls of Sluze" || @V=="Pendulum Morozov" \ || @V=="Polyharmonic Pendulum" || @V=="Popcorn" \ || @V=="Spiric of Perseus" || @V=="Spiric Sections" || @V=="Scarab" || @V=="Standard Map" \ || @V=="Svensson" || @V=="Tetracuspid" || @V=="Tinkerbell" || @V=="Watt's Curve" endparam param p3 default=(1,0) visible=@V=="Beetle" || @V=="Brusselator" || @V=="Cartesian Oval" || @V=="Chasles Cubic" \ || @V=="Cissoid of Zahradnik" || @V=="Clifford" || @V=="Conchoid of a Circle" \ || @V=="Cubic of Apollonius" || @V=="Curve of Rosillo" || @V=="Duffing 1" || @V=="Duffing 2" \ || @V=="Duffing 3" || @V=="Duffing Parametric" || @V=="Henon 4" || @V=="Henon-Heiles 1" \ || @V=="Henon-Heiles 2" || @V=="Ilhem-Amel 1" || @V=="Ilhem-Amel 2" || @V=="Klein Quartic" \ || @V=="Kolmogorov-Volterra" || @V=="Latoocarfian" || @V=="Mira 1" || @V=="Mira 2" || @V=="OM3" \ || @V=="OM6" || @V=="OM7" || @V=="OM8" || @V=="OM9" || @V=="OM10" || @V=="OM13" \ || @V=="OM15" || @V=="OM16" || @V=="OM19" || @V=="OM20" || @V=="OM22" \ || @V=="OM23" || @V=="OM30" || @V=="Pearls of Sluze" || @V=="Pendulum Morozov" || @V=="Polyharmonic Pendulum" \ || @V=="Spiric of Perseus" || @V=="Spiric Sections" || @V=="Standard Map" \ || @V=="Svensson" || @V=="Tinkerbell" || @V=="Watt's Curve" endparam param p4 default=(1,0) visible=@V=="Cartesian Oval" || @V=="Chasles Cubic" || @V=="Cissoid of Zahradnik" \ || @V=="Clifford" || @V=="Duffing 1" || @V=="Duffing 3" || @V=="Duffing Parametric" \ || @V=="Henon 4" || @V=="Henon-Heiles 1" || @V=="Ilhem-Amel 2" || @V=="Latoocarfian" \ || @V=="OM3" || @V=="OM15" || @V=="OM16" \ || @V=="OM22" || @V=="OM23" || @V=="OM30" || @V=="Pearls of Sluze" || @V=="Pendulum Morozov" \ || @V=="Polyharmonic Pendulum" || @V=="Svensson" || @V=="Tinkerbell" endparam param p5 default=(1,0) visible=@V=="Cissoid of Zahradnik" || @V=="Duffing 1" || @V=="Duffing Parametric" \ || @V=="Henon-Heiles 1" || @V=="Ilhem-Amel 2" || @V=="Pearls of Sluze" endparam param p6 default=(1,0) visible=@V=="Duffing 1" || @V=="Ilhem-Amel 2" endparam param adj caption="Adjustment" default=1.0 endparam param Fs caption="Function" enum="sin""sinh""asin""asinh""cos""cosh""acos""acosh""tan""tanh""atan"\ "atanh""cotan""cotanh""sqr""sqrt""log""exp""abs""cabs""conj"\ "flip""ident""recip""versin""aversin""haversin""ahaversin""coversin""acoversin"\ "hacoversin""vercos""avercos""havercos""ahavercos""covercos"\ "acovercos""hacovercos""acotan""acotanh" \ "sec""sech""asec""asech""cosec""cosech""acosec""acosech""exsec""aexsec"\ "excosec""aexcosec""crd""acrd""gd""agd""sinc""sinhc""cosc""coshc"\ "tanc""tanhc""cotanc""cotanhc""secc""sechc""cosecc""cosechc"\ "cube""cuberoot""colog""logit""expit""gauss""softplus"\ "primecount""sqr+""cube+""sin+""cos+""tan+""cotan+""sec+""cosec+""sin*""cos*""tan*""cotan*""sec*"\ "cosec*""loglog""sinsin""coscos""+pixel""-pixel"\ "*pixel""/pixel""third""half""double""triple"\ "ceil""floor""trunc""round" default=22 endparam param @solid caption="Solid Colour" default=false endparam param p7 caption="Solid Colour Adjustment" default=0.55 visible=@solid==true endparam param invert caption="Invert Solid Colour" default=false visible=@solid==true endparam } Alizogorshment { ;Modifications of Paul Derbyshire's Smooth (Generalized) 2 (pdf.ucl) init: a=1/log(@pow) float b=log(log(@bail)) loop: final: float c=0 z=log(fn1(#z)) if @v=="Chirikov Mod" z=real(z)+imag(z)+(p1/2*pi)*sin(2*pi*real(z))+flip(real(z)+imag(z)+(p1/2*pi)*sin(2*pi*real(z))-real(z)) elseif @V=="Circle Map" z=z+(p1-3)-p2*sin(z) elseif @V=="Cissoid of Zahradnik" z=p3*real(z)^2+2*p4*real(z)*imag(z)+(p5+1)*imag(z)^2-2*p1*real(z)-2*p2*imag(z) elseif @V=="Clifford" z=sin((p1+1)*imag(z))+p2*cos((p1+1)*real(z))+flip(sin(p3*real(z))+p4*cos(p3*imag(z))) elseif @V=="Cubic of Apollonius" z=(real(z)-2*p1)*(real(z)^2+imag(z)^2)+(p2+2)^2*(cos(2*p3*real(z))+sin(2*p3*imag(z))) elseif @V=="Curve of Rosillo" z=imag(z)^2*(p3-real(z))^2-(p2-real(z))^2*((p1+1.5)^2-real(z)^2) elseif @V=="de Jong" z=sin(p1*imag(z))-cos(p2*real(z))+flip(sin((p3-3)*real(z))-cos(p4*imag(z))) elseif @V=="Devil's Curve" z=imag(z)^4-real(z)^4-p1^2*imag(z)^2+p2^2*real(z)^2 elseif @V=="Hamilton Torus" z=-sin(imag(z))*(2-p1)+flip(sin(real(z))*p1) elseif @V=="Kan" x=p3*sin(imag(z)+sin(p1*imag(z))) y=p4*sin(real(z)+sin((p2+1)*real(z))) z=x+flip(y) elseif @V=="Kaplan-Yorke" z=real(p1)*real(z)%1+flip(-p2*imag(z)+cos(2*pi*real(z))) elseif @V=="Latoocarfian" z=sin(p1*imag(z))+p2*sin(p1*real(z))+flip(sin(p3*real(z))+p4*sin(p3*imag(z))) elseif @v=="Magus 1" z=(p1*cos(imag(z))-p2)/(p1*tan(real(z))+p2)+flip((p1*cos(real(z))-p2)/(p1*tan(imag(z))+p2)) elseif @V=="Magus 2" z=(p1*tan(imag(z))-p2)/(p1*tan(real(z))+p2)+flip((p1*tan(real(z))-p2)/(p1*tan(imag(z))+p2)) elseif @V=="Magus 3" z=(real(z)%(2*pi))+(imag(z)%(2*pi))+p1*sin(2*pi*(real(z)%(2*pi)))+flip((real(z)%(2*pi))+(imag(z)%(2*pi))+p1*sin(2*pi*(real(z)%(2*pi)))-(real(z)%(2*pi))) elseif @V=="Magus 4" if imag(z)>0.5 z=cos(2*p1*real(z)+flip(2*p2*imag(z)-2*p3)) elseif real(z)>0.5 z=cos(2*p1*real(z)-2*p3+flip(2*p2*imag(z))) else z=cos(2*p1*real(z)+flip(2*p2*imag(z))) endif elseif @V=="Magus 5" z=p1^2*(real(z)^2-imag(z)^2)^2-p1*sin(real(z)^2+imag(z)^2)^2-real(z)^2*imag(z)^2 elseif @V=="Magus 6" x=p1*sin(real(z)*cos(imag(z)))-p2*cos(real(z)*sin(imag(z))) y=p1*cos(imag(z)*sin(real(z)))+p2*sin(imag(z)*cos(real(z))) z=x+flip(y) elseif @V=="Magus 7" x=real(z)+p1+(p2+1)*sin(real(z)^2-imag(z)^2) y=imag(z)+p3+(p2+1)*sin(real(z)^2+imag(z)^2) z=x+flip(y) elseif @V=="Magus 8" x=tan(sin(p1*imag(z)))+(sin(p1*real(z)))^2 y=tan(sin(p2*real(z)))+(sin(p2*imag(z)))^2 z=x+flip(y) elseif @V=="Pharaoh" x=-imag(z)+p1*cos(real(z))*sin(1-real(z)^2-imag(z)^2)+p3 y=real(z)+p2*cos(imag(z))*sin(1-real(z)^2-imag(z)^2)+p4-2 z=x+flip(y) elseif @V=="Popcorn" z=real(z)-p1*sin(imag(z)+tan(p2*imag(z)))+flip(imag(z)-p1*sin(real(z)+tan(p2*real(z)))) elseif @V=="Sinus Chain" z=imag(z)^2-abs(sin(real(z))+p1*sin(2*real(z))) elseif @V=="Svensson" z=(p1+1)*sin(p2*real(z))-sin(p3*imag(z))+flip(p4*cos(p2*real(z))-cos(p3*imag(z))) elseif @V=="Thorn 3" x=real(z)/cos(imag(z))*sin(imag(z))+real(p1) y=imag(z)/sin(real(z))*cos(real(z))+imag(p1) z=x+flip(y) endif c=real(#numiter+a*b-a*log(log(cabs(z)))) float d=@first float f=@last if @trans=="Power" c=c^(1/@transpow) d=d^(1/@transpow) f=f^(1/@transpow) else c=log(c) d=log(d) f=log(f) endif if c@p7 #index=c else #solid=true endif endif else #index=c endif default: title="Alizogorshment" param V caption="Variant" enum="Chirikov Mod""Circle Map""Cissoid of Zahradnik"\ "Clifford""Cubic of Apollonius""Curve of Rosillo""de Jong"\ "Devil's Curve""Hamilton Torus""Kan""Kaplan-Yorke"\ "Latoocarfian""Magus 1""Magus 2""Magus 3"\ "Magus 4""Magus 5""Magus 6""Magus 7""Magus 8""Pharaoh""Popcorn"\ "Sinus Chain""Svensson""Thorn 3" default=0 endparam func fn1 caption="Function" default=ident() endfunc param p1 caption="Parameter" default=(1,0) visible=@V!="Sinus Chain" endparam param p2 default=(1,0) visible=@V=="Circle Map" || @V=="Cissoid of Zahradnik" || @V=="Clifford" || @V=="Cubic of Apollonius" \ || @V=="Curve of Rosillo" || @V=="de Jong" || @V=="Devil's Curve" || @V=="Kan" || @V=="Kaplan-Yorke" || @V=="Latoocarfian" \ || @V=="Magus 1"|| @V=="Magus 2"|| @V=="Magus 4" || @V=="Magus 6" || @V=="Magus 7" || @V=="Magus 8" \ || @V=="Pharaoh" || @V=="Popcorn" || @V=="Svensson" endparam param p3 default=(1,0) visible=@V=="Cissoid of Zahradnik" || @V=="Clifford" || @V=="Cubic of Apollonius" || @V=="Curve of Rosillo" \ || @V=="de Jong" || @V=="Kan" || @V=="Latoocarfian" || @V=="Magus 4" || @V=="Magus 7" || @V=="Pharaoh" || @V=="Svensson" endparam param p4 default=(1,0) visible=@V=="Cissoid of Zahradnik" || @V=="Clifford" || @V=="de Jong"|| @V=="Kan" || @V=="Latoocarfian" \ || @V=="Pharaoh" || @V=="Svensson" endparam param p5 default=(1,0) visible=@V=="Cissoid of Zahradnik" endparam param pow caption="Exponent" default=(2,0) endparam param rep caption="Repetitions" default=8.0 min=1.0 endparam param first caption="First Iteration" default=1 min=1 endparam param last caption="Last Iteration" default=1000 min=1 endparam param trans caption="Transfer" enum="Power""Log" default=1 endparam param transpow caption="Transfer Power" default=3.0 visible=@trans==0 endparam param bail caption="Bailout" default=100000.0 min=1 endparam param solid caption="Solid Colour" default=false endparam param p7 caption="Solid Colour Adjustment" default=2.3 visible=@solid==true endparam param invert caption="Invert Solid Colour" default=false visible=@solid==true endparam } Brahmagupta { ;This is a modification of Numberseeker by Edgar Malinovsky (em.ucl) ;Lower values of the Iterations paremeter give smoother colouring. ;Higher values give more detail. ;It will be necessary to increase the value when zooming in. global: int i=@iter if i>=#maxiter i=#maxiter-1 endif init: float a=0.0 float b=0.0 zold=(0,0) int i2=0 t=abs(p3) loop: if @Fs=="sin" z=sin(#z) elseif @Fs=="sinh" z=sinh(#z) elseif @Fs=="asin" z=asin(#z) elseif @Fs=="asinh" z=asinh(#z) elseif @Fs=="cos" z=cos(#z) elseif @Fs=="cosh" z=cosh(#z) elseif @Fs=="acos" z=acos(#z) elseif @Fs=="acosh" z=acosh(#z) elseif @Fs=="tan" z=tan(#z) elseif @Fs=="tanh" z=tanh(#z) elseif @Fs=="atan" z=atan(#z) elseif @Fs=="atanh" z=atanh(#z) elseif @Fs=="cotan" z=cotan(#z) elseif @Fs=="cotanh" z=cotanh(#z) elseif @Fs=="sqr" z=sqr(#z) elseif @Fs=="sqrt" z=sqrt(#z) elseif @Fs=="log" z=log(#z) elseif @Fs=="exp" z=exp(#z) elseif @Fs=="abs" z=abs(#z) elseif @Fs=="cabs" z=cabs(#z) elseif @Fs=="conj" z=conj(#z) elseif @Fs=="flip" z=flip(#z) elseif @Fs=="ident" z=ident(#z) elseif @Fs=="recip" z=recip(#z) elseif @Fs=="versin" z=1-cos(#z) elseif @Fs=="aversin" z=acos(1-#z) elseif @Fs=="haversin" z=(1-cos(#z))/2 elseif @Fs=="ahaversin" z=2*asin(sqrt(#z)) elseif @Fs=="coversin" z=1-sin(#z) elseif @Fs=="acoversin" z=asin(1-#z) elseif @Fs=="hacoversin" z=(1-sin(#z))/2 elseif @Fs=="vercos" z=1+cos(#z) elseif @Fs=="avercos" z=acos(1+#z) elseif @Fs=="havercos" z=(1+cos(#z))/2 elseif @Fs=="ahavercos" z=2*acos(sqrt(#z)) elseif @Fs=="covercos" z=1+sin(#z) elseif @Fs=="acovercos" z=asin(1+#z) elseif @Fs=="hacovercos" z=(1+sin(#z))/2 elseif @Fs=="acotan" z=atan(1/(#z)) elseif @Fs=="acotanh" z=atanh(1/(#z)) elseif @Fs=="sec" z=1/cos(#z) elseif @Fs=="sech" z=1/cosh(#z) elseif @Fs=="asec" z=acos(1/#z) elseif @Fs=="asech" z=acosh(1/#z) elseif @Fs=="cosec" z=1/sin(#z) elseif @Fs=="cosech" z=1/sinh(#z) elseif @Fs=="acosec" z=asin(1/#z) elseif @Fs=="acosech" z=asinh(1/#z) elseif @Fs=="exsec" z=1/cos(#z)-1 elseif @Fs=="aexsec" z= acos(1/(#z+1)) elseif @Fs=="excosec" z=1/sin(#z)-1 elseif @Fs=="aexcosec" z=asin(1/(#z+1)) elseif @Fs=="crd" z=2*sin(#z/2) elseif @Fs=="acrd" z=2*asin(#z/2) elseif @Fs=="gd" z=asin(tanh(#z)) elseif @Fs=="agd" z=asinh(tan(#z)) elseif @Fs=="sinc" z=sin(#z)/(#z) elseif @Fs=="sinhc" z=sinh(#z)/(#z) elseif @Fs=="cosc" z=cos(#z)/(#z) elseif @Fs=="coshc" z=cosh(#z)/(#z) elseif @Fs=="tanc" z=tan(#z)/(#z) elseif @Fs=="tanhc" z=tanh(#z)/(#z) elseif @Fs=="cotanc" z=cotan(#z)/(#z) elseif @Fs=="cotanhc" z=cotanh(#z)/(#z) elseif @Fs=="secc" z=1/(#z*cos(#z)) elseif @Fs=="sechc" z=1/(#z*cosh(#z)) elseif @Fs=="cosecc" z= 1/(#z*sin(#z)) elseif @Fs=="cosechc" z=1/(#z*sinh(#z)) elseif @Fs=="cube" z=#z^3 elseif @Fs=="cuberoot" z=#z^(1/3) elseif @Fs=="colog" z=-log(#z) elseif @Fs=="logit" z= log(#z/(1-#z)) elseif @Fs=="expit" z=1/(1+exp(-#z)) elseif @Fs=="gauss" z=exp(-sqr(#z)) elseif @Fs=="softplus" z=log(1+exp(#z)) elseif @Fs=="primecount" z=#z/log(#z) elseif @Fs=="sqr+" z=sqr(#z)+#z elseif @Fs=="cube+" z=#z^3+sqr(#z)+#z elseif @Fs=="sin+" z=sin(#z)+#z elseif @Fs=="cos+" z=cos(#z)+#z elseif @Fs=="tan+" z=tan(#z)+#z elseif @Fs=="cotan+" z=cotan(#z)+#z elseif @Fs=="sec+" z=1/cos(#z)+#z elseif @Fs=="cosec+" z=1/sin(#z)+#z elseif @Fs=="sin*" z=sin(#z)*#z elseif @Fs=="cos*" z=cos(#z)*#z elseif @Fs=="tan*" z=tan(#z)*#z elseif @Fs=="cotan*" z=cotan(#z)*#z elseif @Fs=="sec*" z=#z/cos(#z) elseif @Fs=="cosec*" z=#z/sin(#z) elseif @Fs=="loglog" z=log(log(#z)) elseif @Fs=="sinsin" z=sin(sin(#z)) elseif @Fs=="coscos" z=cos(cos(#z)) elseif @Fs=="+pixel" z=#z+pixel elseif @Fs=="-pixel" z=#z-pixel elseif @Fs=="*pixel" z=#z*pixel elseif @Fs=="/pixel" z=#z/pixel elseif @Fs=="ceil" z=ceil(#z) elseif @Fs=="floor" z=floor(#z) elseif @Fs=="trunc" z=trunc(#z) else z=round(#z) endif z=p1*fn2(z)+p2 if @Va=="1" z=z elseif @Va=="2" if |z|<1 z=z/|z| endif elseif @Va=="3" if |z|>1 z=z/|z| endif elseif @Va=="4" x=real(z) y=imag(z) x=x/|z| y=y/|z| z=x+flip(y) elseif @Va=="5" if real(z)imag(z) z=flip(z) endif elseif @Va=="7" if cabs(z)<1 z=z/cabs(z) endif elseif @Va=="8" if cabs(z)>1 z=z/cabs(z) endif endif if @V=="2" x=real(z)^2+t*imag(z)^2 y=2*real(z)*imag(z) elseif @V=="3" x=real(z)^3+3*t*real(z)*imag(z)^2 y=3*real(z)^2*imag(z)+t*imag(z)^3 elseif @V=="4" x=real(z)^4+6*t*real(z)^2*imag(z)^2+t^2*imag(z)^4 y=4*real(z)^3*imag(z)+4*t*real(z)*imag(z)^3 else x=real(z)^5+10*t*real(z)^3*imag(z)^2+5*t^2*real(z)*imag(z)^4 y=5*imag(z)*real(z)^4+10*t*real(z)^2*imag(z)^3+t^2*imag(z)^5 endif z=p4*fn3(x+flip(y))+p5 if i2<=i a=a+exp(-cabs(z+2)) b=b+ exp(-1/cabs(zold-z+2)) zold=#z i2=i2+1 endif final: if |#z-zold|<0.5 if @solid==true if @invert if b<@p7 #index=b else #solid=true endif else if b>@p7 #index=b else #solid=true endif endif else #index=b endif else if @solid==true if @invert if a<@p7 #index=a else #solid=true endif else if a>@p7 #index=a else #solid=true endif endif else #index=a endif endif default: title="Brahmagupta" param V caption="Polynomial" enum="2""3""4""5" default=1 endparam param Va caption="Variant" enum="1""2""3""4""5""6""7""8" default=0 endparam param iter caption="Iterations" default=10 min=0 endparam param p1 default=(1,0) endparam param p2 default=(0,0) endparam param p3 default=(1,0) endparam param p4 default=(1,0) endparam param p5 default=(0,0) endparam param Fs caption="Function 1" enum="sin""sinh""asin""asinh""cos""cosh""acos""acosh""tan""tanh""atan"\ "atanh""cotan""cotanh""sqr""sqrt""log""exp""abs""cabs""conj"\ "flip""ident""recip""versin""aversin""haversin""ahaversin""coversin""acoversin"\ "hacoversin""vercos""avercos""havercos""ahavercos""covercos"\ "acovercos""hacovercos""acotan""acotanh" \ "sec""sech""asec""asech""cosec""cosech""acosec""acosech""exsec""aexsec"\ "excosec""aexcosec""crd""acrd""gd""agd""sinc""sinhc""cosc""coshc"\ "tanc""tanhc""cotanc""cotanhc""secc""sechc""cosecc""cosechc"\ "cube""cuberoot""colog""logit""expit""gauss""softplus"\ "primecount""sqr+""cube+""sin+""cos+""tan+""cotan+""sec+""cosec+""sin*""cos*""tan*""cotan*""sec*"\ "cosec*""loglog""sinsin""coscos""+pixel""-pixel"\ "*pixel""/pixel""ceil""floor""trunc""round" default=22 endparam func fn2 default=ident() endfunc func fn3 default=ident() endfunc param @solid caption="Solid Colour" default=false endparam param p7 caption="Solid Colour Adjustment" default=0.16823 visible=@solid==true endparam param invert caption="Solid Colour Invert" default=false visible=@solid==true endparam } PRNTcol { init: a=(0,1) b=(0,1) float c=0.0 loop: z=p1*#z+p2 if @Fs=="sin" z=sin(z) elseif @Fs=="sinh" z=sinh(z) elseif @Fs=="asin" z=asin(z) elseif @Fs=="asinh" z=asinh(z) elseif @Fs=="cos" z=cos(z) elseif @Fs=="cosh" z=cosh(z) elseif @Fs=="acos" z=acos(z) elseif @Fs=="acosh" z=acosh(z) elseif @Fs=="tan" z=tan(z) elseif @Fs=="tanh" z=tanh(z) elseif @Fs=="atan" z=atan(z) elseif @Fs=="atanh" z=atanh(z) elseif @Fs=="cotan" z=cotan(z) elseif @Fs=="cotanh" z=cotanh(z) elseif @Fs=="sqr" z=sqr(z) elseif @Fs=="sqrt" z=sqrt(z) elseif @Fs=="log" z=log(z) elseif @Fs=="exp" z=exp(z) elseif @Fs=="abs" z=abs(z) elseif @Fs=="cabs" z=cabs(z) elseif @Fs=="conj" z=conj(z) elseif @Fs=="flip" z=flip(z) elseif @Fs=="ident" z=ident(z) elseif @Fs=="recip" z=recip(z) elseif @Fs=="versin" z=1-cos(z) elseif @Fs=="aversin" z=acos(1-z) elseif @Fs=="haversin" z=(1-cos(z))/2 elseif @Fs=="ahaversin" z=2*asin(sqrt(z)) elseif @Fs=="coversin" z=1-sin(z) elseif @Fs=="acoversin" z=asin(1-z) elseif @Fs=="hacoversin" z=(1-sin(z))/2 elseif @Fs=="vercos" z=1+cos(z) elseif @Fs=="avercos" z=acos(1+z) elseif @Fs=="havercos" z=(1+cos(z))/2 elseif @Fs=="ahavercos" z=2*acos(sqrt(z)) elseif @Fs=="covercos" z=1+sin(z) elseif @Fs=="acovercos" z=asin(1+z) elseif @Fs=="hacovercos" z=(1+sin(z))/2 elseif @Fs=="acotan" z=atan(1/(z)) elseif @Fs=="acotanh" z=atanh(1/(z)) elseif @Fs=="sec" z=1/cos(z) elseif @Fs=="sech" z=1/cosh(z) elseif @Fs=="asec" z=acos(1/z) elseif @Fs=="asech" z=acosh(1/z) elseif @Fs=="cosec" z=1/sin(z) elseif @Fs=="cosech" z=1/sinh(z) elseif @Fs=="acosec" z=asin(1/z) elseif @Fs=="acosech" z=asinh(1/z) elseif @Fs=="exsec" z=1/cos(z)-1 elseif @Fs=="aexsec" z= acos(1/(z+1)) elseif @Fs=="excosec" z=1/sin(z)-1 elseif @Fs=="aexcosec" z=asin(1/(z+1)) elseif @Fs=="crd" z=2*sin(z/2) elseif @Fs=="acrd" z=2*asin(z/2) elseif @Fs=="gd" z=asin(tanh(z)) elseif @Fs=="agd" z=asinh(tan(z)) elseif @Fs=="sinc" z=sin(z)/(z) elseif @Fs=="sinhc" z=sinh(z)/(z) elseif @Fs=="cosc" z=cos(z)/(z) elseif @Fs=="coshc" z=cosh(z)/(z) elseif @Fs=="tanc" z=tan(z)/(z) elseif @Fs=="tanhc" z=tanh(z)/(z) elseif @Fs=="cotanc" z=cotan(z)/(z) elseif @Fs=="cotanhc" z=cotanh(z)/(z) elseif @Fs=="secc" z=1/(z*cos(z)) elseif @Fs=="sechc" z=1/(z*cosh(z)) elseif @Fs=="cosecc" z= 1/(z*sin(z)) elseif @Fs=="cosechc" z=1/(z*sinh(z)) elseif @Fs=="cube" z=z^3 elseif @Fs=="cuberoot" z=z^(1/3) elseif @Fs=="colog" z=-log(z) elseif @Fs=="logit" z= log(z/(1-z)) elseif @Fs=="expit" z=1/(1+exp(-z)) elseif @Fs=="gauss" z=exp(-sqr(z)) elseif @Fs=="softplus" z=log(1+exp(z)) elseif @Fs=="primecount" z=z/log(z) elseif @Fs=="sqr+" z=sqr(z)+z elseif @Fs=="cube+" z=z^3+sqr(z)+z elseif @Fs=="sin+" z=sin(z)+z elseif @Fs=="cos+" z=cos(z)+z elseif @Fs=="tan+" z=tan(z)+z elseif @Fs=="cotan+" z=cotan(z)+z elseif @Fs=="sec+" z=1/cos(z)+z elseif @Fs=="cosec+" z=1/sin(z)+z elseif @Fs=="sin*" z=sin(z)*z elseif @Fs=="cos*" z=cos(z)*z elseif @Fs=="tan*" z=tan(z)*z elseif @Fs=="cotan*" z=cotan(z)*z elseif @Fs=="sec*" z=z/cos(z) elseif @Fs=="cosec*" z=z/sin(z) elseif @Fs=="loglog" z=log(log(z)) elseif @Fs=="sinsin" z=sin(sin(z)) elseif @Fs=="coscos" z=cos(cos(z)) elseif @Fs=="+pixel" z=z+pixel elseif @Fs=="-pixel" z=z-pixel elseif @Fs=="*pixel" z=z*pixel elseif @Fs=="/pixel" z=z/pixel elseif @Fs=="third" z=z/3 elseif @Fs=="half" z=z/2 elseif @Fs=="double" z=z*2 elseif @Fs=="triple" z=z*3 elseif @Fs=="ceil" z=ceil(z) elseif @Fs=="floor" z=floor(z) elseif @Fs=="trunc" z=trunc(z) else z=round(z) endif if @v=="3" z=p3*fn3(fn4(z^3+3*z^2+2*z+1))+p4 elseif @v=="4" z=p3*fn3(fn4(z^4+3*z^3+5*z^2+2*z+1))+p4 elseif @v=="5" z=p3*fn3(fn4(z^5+7*z^4+18*z^3+13*z^2+3*z+1))+p4 elseif @v=="6" z=p3*fn3(fn4(z^6+9*z^5+43*z^4+50*z^3+20*z^2+3*z+1))+p4 elseif @v=="7" z=p3*fn3(fn4(z^7+19*z^6+126*z^5+221*z^4+136*z^3+36*z^2+4*z+1))+p4 elseif @v=="8" z=p3*fn3(fn4(z^8+29*z^7+339*z^6+866*z^5+773*z^4+296*z^3+52*z^2+4*z+1))+p4 elseif @v=="9" z=p3*fn3(fn4(z^9+55*z^8+946*z^7+3437*z^6+4281*z^5+2303*z^4+596*z^3+78*z^2+5*z+1))+p4 elseif @v=="10" z=p3*fn3(fn4(z^10+93*z^9+2591*z^8+13250*z^7+22430*z^6+16317*z^5+5817*z^4+1080*z^3+105*z^2+5*z+1))+p4 endif float d=1-cabs(z)/@adj if d<0 d=0 else d=sqr(d) endif f=z*a float g=1.0 c=c+g*d g=g*0.5 f=f*b/0.5 final: ;#index=(sqrt(c)+1)*0.5 if @solid if @invert if (sqrt(c)+1)*0.5<@p7 #index=(sqrt(c)+1)*0.5 else #solid=true endif else if (sqrt(c)+1)*0.5>@p7 #index=(sqrt(c)+1)*0.5 else #solid=true endif endif else #index=(sqrt(c)+1)*0.5 endif default: title="PRNTcol" param V caption="Variant" enum="3""4""5""6""7""8""9""10" default=0 endparam param p1 default=(1,0) endparam param p2 default=(0,0) endparam param p3 default=(1,0) endparam param p4 default=(0,0) endparam param adj caption="Adjustment" default=3.0 endparam param Fs caption="Function" enum="sin""sinh""asin""asinh""cos""cosh""acos""acosh""tan""tanh""atan"\ "atanh""cotan""cotanh""sqr""sqrt""log""exp""abs""cabs""conj"\ "flip""ident""recip""versin""aversin""haversin""ahaversin""coversin""acoversin"\ "hacoversin""vercos""avercos""havercos""ahavercos""covercos"\ "acovercos""hacovercos""acotan""acotanh" \ "sec""sech""asec""asech""cosec""cosech""acosec""acosech""exsec""aexsec"\ "excosec""aexcosec""crd""acrd""gd""agd""sinc""sinhc""cosc""coshc"\ "tanc""tanhc""cotanc""cotanhc""secc""sechc""cosecc""cosechc"\ "cube""cuberoot""colog""logit""expit""gauss""softplus"\ "primecount""sqr+""cube+""sin+""cos+""tan+""cotan+""sec+""cosec+""sin*""cos*""tan*""cotan*""sec*"\ "cosec*""loglog""sinsin""coscos""+pixel""-pixel"\ "*pixel""/pixel""third""half""double""triple"\ "ceil""floor""trunc""round" default=22 endparam func fn2 default=ident() endfunc func fn3 default=ident() endfunc func fn4 default=ident() endfunc param solid caption="Solid Colour" default=false endparam param p7 caption="Solid Colour Adjustment" default=0.5 visible=@solid==true endparam param invert caption="Invert" default=false visible=@solid==true endparam } Zetacol { ;This is a modification of Numberseeker by Edgar Malinovsky (em.ucl) ;Lower values of the Iterations paremeter give smoother colouring. ;Higher values give more detail. ;It will be necessary to increase the value when zooming in. global: int i=@iter if i>=#maxiter i=#maxiter-1 endif init: float a=0.0 float b=0.0 zold=(0,0) int i2=0 loop: if @Fs=="sin" z=sin(#z) elseif @Fs=="sinh" z=sinh(#z) elseif @Fs=="asin" z=asin(#z) elseif @Fs=="asinh" z=asinh(#z) elseif @Fs=="cos" z=cos(#z) elseif @Fs=="cosh" z=cosh(#z) elseif @Fs=="acos" z=acos(#z) elseif @Fs=="acosh" z=acosh(#z) elseif @Fs=="tan" z=tan(#z) elseif @Fs=="tanh" z=tanh(#z) elseif @Fs=="atan" z=atan(#z) elseif @Fs=="atanh" z=atanh(#z) elseif @Fs=="cotan" z=cotan(#z) elseif @Fs=="cotanh" z=cotanh(#z) elseif @Fs=="sqr" z=sqr(#z) elseif @Fs=="sqrt" z=sqrt(#z) elseif @Fs=="log" z=log(#z) elseif @Fs=="exp" z=exp(#z) elseif @Fs=="abs" z=abs(#z) elseif @Fs=="cabs" z=cabs(#z) elseif @Fs=="conj" z=conj(#z) elseif @Fs=="flip" z=flip(#z) elseif @Fs=="ident" z=ident(#z) elseif @Fs=="recip" z=recip(#z) elseif @Fs=="versin" z=1-cos(#z) elseif @Fs=="aversin" z=acos(1-#z) elseif @Fs=="haversin" z=(1-cos(#z))/2 elseif @Fs=="ahaversin" z=2*asin(sqrt(#z)) elseif @Fs=="coversin" z=1-sin(#z) elseif @Fs=="acoversin" z=asin(1-#z) elseif @Fs=="hacoversin" z=(1-sin(#z))/2 elseif @Fs=="vercos" z=1+cos(#z) elseif @Fs=="avercos" z=acos(1+#z) elseif @Fs=="havercos" z=(1+cos(#z))/2 elseif @Fs=="ahavercos" z=2*acos(sqrt(#z)) elseif @Fs=="covercos" z=1+sin(#z) elseif @Fs=="acovercos" z=asin(1+#z) elseif @Fs=="hacovercos" z=(1+sin(#z))/2 elseif @Fs=="acotan" z=atan(1/(#z)) elseif @Fs=="acotanh" z=atanh(1/(#z)) elseif @Fs=="sec" z=1/cos(#z) elseif @Fs=="sech" z=1/cosh(#z) elseif @Fs=="asec" z=acos(1/#z) elseif @Fs=="asech" z=acosh(1/#z) elseif @Fs=="cosec" z=1/sin(#z) elseif @Fs=="cosech" z=1/sinh(#z) elseif @Fs=="acosec" z=asin(1/#z) elseif @Fs=="acosech" z=asinh(1/#z) elseif @Fs=="exsec" z=1/cos(#z)-1 elseif @Fs=="aexsec" z= acos(1/(#z+1)) elseif @Fs=="excosec" z=1/sin(#z)-1 elseif @Fs=="aexcosec" z=asin(1/(#z+1)) elseif @Fs=="crd" z=2*sin(#z/2) elseif @Fs=="acrd" z=2*asin(#z/2) elseif @Fs=="gd" z=asin(tanh(#z)) elseif @Fs=="agd" z=asinh(tan(#z)) elseif @Fs=="sinc" z=sin(#z)/(#z) elseif @Fs=="sinhc" z=sinh(#z)/(#z) elseif @Fs=="cosc" z=cos(#z)/(#z) elseif @Fs=="coshc" z=cosh(#z)/(#z) elseif @Fs=="tanc" z=tan(#z)/(#z) elseif @Fs=="tanhc" z=tanh(#z)/(#z) elseif @Fs=="cotanc" z=cotan(#z)/(#z) elseif @Fs=="cotanhc" z=cotanh(#z)/(#z) elseif @Fs=="secc" z=1/(#z*cos(#z)) elseif @Fs=="sechc" z=1/(#z*cosh(#z)) elseif @Fs=="cosecc" z= 1/(#z*sin(#z)) elseif @Fs=="cosechc" z=1/(#z*sinh(#z)) elseif @Fs=="cube" z=#z^3 elseif @Fs=="cuberoot" z=#z^(1/3) elseif @Fs=="colog" z=-log(#z) elseif @Fs=="logit" z= log(#z/(1-#z)) elseif @Fs=="expit" z=1/(1+exp(-#z)) elseif @Fs=="gauss" z=exp(-sqr(#z)) elseif @Fs=="softplus" z=log(1+exp(#z)) elseif @Fs=="primecount" z=#z/log(#z) elseif @Fs=="sqr+" z=sqr(#z)+#z elseif @Fs=="cube+" z=#z^3+sqr(#z)+#z elseif @Fs=="sin+" z=sin(#z)+#z elseif @Fs=="cos+" z=cos(#z)+#z elseif @Fs=="tan+" z=tan(#z)+#z elseif @Fs=="cotan+" z=cotan(#z)+#z elseif @Fs=="sec+" z=1/cos(#z)+#z elseif @Fs=="cosec+" z=1/sin(#z)+#z elseif @Fs=="sin*" z=sin(#z)*#z elseif @Fs=="cos*" z=cos(#z)*#z elseif @Fs=="tan*" z=tan(#z)*#z elseif @Fs=="cotan*" z=cotan(#z)*#z elseif @Fs=="sec*" z=#z/cos(#z) elseif @Fs=="cosec*" z=#z/sin(#z) elseif @Fs=="loglog" z=log(log(#z)) elseif @Fs=="sinsin" z=sin(sin(#z)) elseif @Fs=="coscos" z=cos(cos(#z)) elseif @Fs=="+pixel" z=#z+pixel elseif @Fs=="-pixel" z=#z-pixel elseif @Fs=="*pixel" z=#z*pixel elseif @Fs=="/pixel" z=#z/pixel elseif @Fs=="ceil" z=ceil(#z) elseif @Fs=="floor" z=floor(#z) elseif @Fs=="trunc" z=trunc(#z) else z=round(#z) endif z=p1*fn2(z)+p2 if @Va=="1" z=z elseif @Va=="2" if cabs(z)<1 z=z/cabs(z) endif elseif @Va=="3" if cabs(z)>1 z=z/cabs(z) endif elseif @Va=="4" x=real(z) y=imag(z) x=x/|z| y=y/|z| z=x+flip(y) elseif @Va=="5" if real(z)imag(z) z=flip(z) endif endif if @v=="3" z=p3*fn3((z^3-z^2)/4)+p4 elseif @v=="4" z=p3*fn3((6*z^4-9*z^3+z^2+z)/30)+p4 elseif @v=="5" z=p3*fn3((2*z^5-4*z^4+z^3+z^2)/12)+p4 elseif @v=="6" z=p3*fn3((6*z^6-15*z^5+6*z^4+6*z^3-z^2-z)/42)+p4 elseif @v=="7" z=p3*fn3((3*z^7-9*z^6+5*z^5+5*z^4-2*z^3-2*z^2)/24)+p4 elseif @v=="8" z=p3*fn3((10*z^8-35*z^7+25*z^6+25*z^5-17*z^4-17*z^3+3*z^2+3*z)/90)+p4 elseif @v=="9" z=p3*fn3((2*z^9-8*z^8+7*z^7+7*z^6-7*z^5-7*z^4+3*z^3+3*z^2)/20)+p4 endif if i2<=i a=a+exp(-cabs(z+2)) b=b+ exp(-1/cabs(zold-z+2)) zold=#z i2=i2+1 endif final: if |#z-zold|<0.5 if @solid if @invert if b<@p7 #index=b else #solid=true endif else if b>@p7 #index=b else #solid=true endif endif else #index=b endif else if @solid if @invert if a<@p7 #index=a else #solid=true endif else if a>@p7 #index=a else #solid=true endif endif else #index=a endif endif default: title="Zetacol" param V caption="Polynomial" enum="3""4""5""6""7""8""9" default=0 endparam param Va caption="Variant" enum="1""2""3""4""5""6" default=0 endparam param iter caption="Iterations" default=10 min=0 endparam param p1 default=(1,0) endparam param p2 default=(0,0) endparam param p3 default=(1,0) endparam param p4 default=(0,0) endparam param Fs caption="Function 1" enum="sin""sinh""asin""asinh""cos""cosh""acos""acosh""tan""tanh""atan"\ "atanh""cotan""cotanh""sqr""sqrt""log""exp""abs""cabs""conj"\ "flip""ident""recip""versin""aversin""haversin""ahaversin""coversin""acoversin"\ "hacoversin""vercos""avercos""havercos""ahavercos""covercos"\ "acovercos""hacovercos""acotan""acotanh" \ "sec""sech""asec""asech""cosec""cosech""acosec""acosech""exsec""aexsec"\ "excosec""aexcosec""crd""acrd""gd""agd""sinc""sinhc""cosc""coshc"\ "tanc""tanhc""cotanc""cotanhc""secc""sechc""cosecc""cosechc"\ "cube""cuberoot""colog""logit""expit""gauss""softplus"\ "primecount""sqr+""cube+""sin+""cos+""tan+""cotan+""sec+""cosec+""sin*""cos*""tan*""cotan*""sec*"\ "cosec*""loglog""sinsin""coscos""+pixel""-pixel"\ "*pixel""/pixel""ceil""floor""trunc""round" default=22 endparam func fn2 default=ident() endfunc func fn3 default=ident() endfunc param solid caption="Solid Colour" default=false endparam param p7 caption="Solid Colour Adjustment" default=0.185 visible=@solid==true endparam param invert caption="Invert" default=false visible=@solid==true endparam } Broubly { init: float c=0.0 loop: if @Fs=="asinh" z=asinh(#z) elseif @Fs=="acosh" z=acosh(#z) elseif @Fs=="atan" z=atan(#z) elseif @Fs=="sqr" z=sqr(#z) elseif @Fs=="sqrt" z=sqrt(#z) elseif @Fs=="log" z=log(#z) elseif @Fs=="abs" z=abs(#z) elseif @Fs=="cabs" z=cabs(#z) elseif @Fs=="conj" z=conj(#z) elseif @Fs=="flip" z=flip(#z) elseif @Fs=="ident" z=ident(#z) elseif @Fs=="recip" z=recip(#z) elseif @Fs=="avercos" z=acos(1+#z) elseif @Fs=="asec" z=acos(1/#z) elseif @Fs=="asech" z=acosh(1/#z) elseif @Fs=="acosec" z=asin(1/#z) elseif @Fs=="acosech" z=asinh(1/#z) elseif @Fs=="aexsec" z= acos(1/(#z+1)) elseif @Fs=="aexcosec" z=asin(1/(#z+1)) elseif @Fs=="crd" z=2*sin(#z/2) elseif @Fs=="gd" z=asin(tanh(#z)) elseif @Fs=="cosc" z=cos(#z)/(#z) elseif @Fs=="coshc" z=cosh(#z)/(#z) elseif @Fs=="cube" z=#z^3 elseif @Fs=="colog" z=-log(#z) elseif @Fs=="logit" z= log(#z/(1-#z)) elseif @Fs=="softplus" z=log(1+exp(#z)) elseif @Fs=="sqr+" z=sqr(#z)+#z elseif @Fs=="cube+" z=#z^3+sqr(#z)+#z elseif @Fs=="+pixel" z=#z+pixel elseif @Fs=="-pixel" z=#z-pixel elseif @Fs=="*pixel" z=#z*pixel elseif @Fs=="/pixel" z=#z/pixel elseif @Fs=="third" z=#z/3 elseif @Fs=="half" z=#z/2 elseif @Fs=="double" z=#z*2 else z=#z*3 endif z=p3*z+p4 if @V=="1" z=fn3(z*(p1-z)+p2) elseif @V=="2" z=fn3(z+p1*z/(z+(p2+1))^3) elseif @V=="3" z=fn3(p1*z*exp((p2+1)-exp(z))) elseif @V=="4" z=fn3(z+p1*abs(flip(z))+p2) elseif @V=="5" z=fn3(z+p1*1i*cos(z)+p2) elseif @V=="6" z=fn3(z+p1*1i*abs(tanh(z))+p2) elseif @V=="7" z=fn3(z+p1*cotanh(flip(z))+p2) elseif @V=="8" z=fn3(z-p1*(z^4-1)/(4*z^3)+p2) elseif @V=="9" z=fn3(z+p1*cosh(z)+p2) elseif @V=="10" z=fn3(sqr((z^3+3*(p1-0.5)*z+(p1-0.5)*(p1-1.5))/(3*z^2+3*(p1-1.5)*z+(p1-0.5)*(p1-1.5)+1))+p2) elseif @V=="11" if |z|<1 z=z/|z| endif z=p1*fn3(z)+p2 elseif @V=="12" z=fn3((z-p1)/(z+p1)+p2) elseif @V=="13" z=z+p1/fn3(z)+p2 elseif @V=="14" z=z+p1*1i/fn3(z)+p2 elseif @V=="15" z=fn3(z+p1*flip(z)+p2) elseif @V=="16" z=fn3(z+p1*1i*sqr(z)+p2) elseif @V=="17" z=fn3(z+p1*flip(sqr(z))+p2) elseif @V=="18" z=fn3(z^2*(z-(p1+1))/(1-(p1+1)*z)+p2) elseif @V=="19" z=fn3(sqr((z^3+3*(p1-1i)*z+(p1-1i)*(p1-2i))/(3*z^2+3*(p1-2i)*z+(p1-1i)*(p1-2i)+1))+p2) elseif @V=="20" z=fn3(z+p1*conj(z)+p2) elseif @V=="21" z=fn3(z+p1*1i*flip(z)+p2) elseif @V=="22" z=fn3(z+p1*conj(exp(z))+p2) elseif @V=="23" z=fn3(z+p1*1i*sqr(sqr(z))+p2) elseif @V=="24" z=fn3(z+p1*conj(sqr(z))+p2) elseif @V=="25" z=fn3(p1*z*cosh(z^2)+p2) elseif @V=="26" z=fn3(p1*z*cos(z^2)+p2) elseif @V=="27" z=fn3(z*(p1*1i-z)+p2) elseif @V=="28" z=fn3(p1*z*sqrt((p2+1)-cabs(z))) elseif @V=="29" z=fn3(z+p1*abs(cotan(z))+p2) elseif @V=="30" z=fn3(z+p1*flip(tan(z))+p2) elseif @V=="31" z=fn3(z+p1*flip(cosh(z))+p2) elseif @V=="32" z=fn3(z+p1*conj(cos(z))+p2) elseif @V=="33" z=p1*fn3(p1/(z-(p2+1)))+(p2+1) elseif @V=="34" z=fn3(z+p1*cosh(flip(z))+p2) elseif @V=="35" z=fn3(((z^2+p1-1)/(2*z+p1-2))^2+(p2-0.5)) elseif @V=="36" z=fn3(z+p1*cosh(sin(z))+p2) elseif @V=="37" z=fn3(z+p1*1i*flip(sinh(z))+p2) elseif @V=="38" z=fn3(z+p1*conj(log(z))+p2) elseif @V=="39" z=fn3(z^2*(z-4)/(p1+4*z)+p2) elseif @V=="40" z=fn3(z+p1*abs(exp(z))+p2) elseif @V=="41" z=fn3(p1*z*log(z^2)+p2) elseif @V=="42" z=fn3(z+p1*exp(conj(z))+p2) elseif @V=="43" z=fn3(z+p1*flip(sinh(z))+p2) elseif @V=="44" z=fn3(z-p1*(z^3-1)/(3*z^2)+p2) elseif @V=="45" z=fn3(z+p1*cabs(tan(z))+p2) elseif @V=="46" z=fn3(z+p1*1i*cos(sinh(z))+p2) elseif @V=="47" z=fn3(z+p1*1i*cosh(conj(z))+p2) elseif @V=="48" z=fn3(p1*z*fn3((p2+1)-sqrt(z))) elseif @V=="49" z=fn3(z+p1*1i*cabs(tanh(z))+p2) elseif @V=="50" z=fn3(z+p1*1i*flip(cotan(z))+p2) elseif @V=="51" z=fn3(z+p1*1i*sqr(sinh(z))+p2) elseif @V=="52" z=fn3((z-p1*1i)/(z+p1*1i)+p2) elseif @V=="53" z=fn3(z+p1*1i*cosh(abs(z))+p2) elseif @V=="54" z=fn3(z+p1*1i*flip(cos(z))+p2) elseif @V=="55" z=fn3(z+p1*1i*abs(sqr(z))+p2) elseif @V=="56" z=fn3(((z^2+p1-1i)/(2*z+p1-2i))^2+p2) elseif @V=="57" z=fn3(z+p1*1i*flip(recip(z))+p2) elseif @V=="58" z=fn3(z+p1*1i*cotan(cosh(z))+p2) elseif @V=="59" z=fn3(z+p1*1i*sqr(tan(z))+p2) elseif @V=="60" z=fn3(z+p1*1i*sin(cos(z))+p2) endif if @Fs2=="sin" z=sin(z) elseif @Fs2=="sinh" z=sinh(z) elseif @Fs2=="asinh" z=asinh(z) elseif @Fs2=="cos" z=cos(z) elseif @Fs2=="cosh" z=cosh(z) elseif @Fs2=="acosh" z=acosh(z) elseif @Fs2=="tan" z=tan(z) elseif @Fs2=="tanh" z=tanh(z) elseif @Fs2=="atan" z=atan(z) elseif @Fs2=="atanh" z=atanh(z) elseif @Fs2=="cotan" z=cotan(z) elseif @Fs2=="cotanh" z=cotanh(z) elseif @Fs2=="sqr" z=sqr(z) elseif @Fs2=="sqrt" z=sqrt(z) elseif @Fs2=="log" z=log(z) elseif @Fs2=="exp" z=exp(z) elseif @Fs2=="ident" z=ident(z) elseif @Fs2=="recip" z=recip(z) elseif @Fs2=="versin" z=1-cos(z) elseif @Fs2=="aversin" z=acos(1-z) elseif @Fs2=="haversin" z=(1-cos(z))/2 elseif @Fs2=="ahaversin" z=2*asin(sqrt(z)) elseif @Fs2=="coversin" z=1-sin(z) elseif @Fs2=="acoversin" z=asin(1-z) elseif @Fs2=="hacoversin" z=(1-sin(z))/2 elseif @Fs2=="vercos" z=1+cos(z) elseif @Fs2=="avercos" z=acos(1+z) elseif @Fs2=="havercos" z=(1+cos(z))/2 elseif @Fs2=="ahavercos" z=2*acos(sqrt(z)) elseif @Fs2=="covercos" z=1+sin(z) elseif @Fs2=="acovercos" z=asin(1+z) elseif @Fs2=="hacovercos" z=(1+sin(z))/2 elseif @Fs2=="acotan" z=atan(1/(z)) elseif @Fs2=="acotanh" z=atanh(1/(z)) elseif @Fs2=="sec" z=1/cos(z) elseif @Fs2=="sech" z=1/cosh(z) elseif @Fs2=="asech" z=acosh(1/z) elseif @Fs2=="cosec" z=1/sin(z) elseif @Fs2=="cosech" z=1/sinh(z) elseif @Fs2=="acosec" z=asin(1/z) elseif @Fs2=="acosech" z=asinh(1/z) elseif @Fs2=="exsec" z=1/cos(z)-1 elseif @Fs2=="aexsec" z= acos(1/(z+1)) elseif @Fs2=="excosec" z=1/sin(z)-1 elseif @Fs2=="aexcosec" z=asin(1/(z+1)) elseif @Fs2=="crd" z=2*sin(z/2) elseif @Fs2=="gd" z=asin(tanh(z)) elseif @Fs2=="agd" z=asinh(tan(z)) elseif @Fs2=="sinc" z=sin(z)/(z) elseif @Fs2=="sinhc" z=sinh(z)/(z) elseif @Fs2=="cosc" z=cos(z)/(z) elseif @Fs2=="coshc" z=cosh(z)/(z) elseif @Fs2=="tanc" z=tan(z)/(z) elseif @Fs2=="tanhc" z=tanh(z)/(z) elseif @Fs2=="cotanc" z=cotan(z)/(z) elseif @Fs2=="cotanhc" z=cotanh(z)/(z) elseif @Fs2=="secc" z=1/(z*cos(z)) elseif @Fs2=="sechc" z=1/(z*cosh(z)) elseif @Fs2=="cosecc" z= 1/(z*sin(z)) elseif @Fs2=="cosechc" z=1/(z*sinh(z)) elseif @Fs2=="cube" z=z^3 elseif @Fs2=="cuberoot" z=z^(1/3) elseif @Fs2=="colog" z=-log(z) elseif @Fs2=="logit" z= log(z/(1-z)) elseif @Fs2=="expit" z=1/(1+exp(-z)) elseif @Fs2=="gauss" z=exp(-sqr(z)) elseif @Fs2=="softplus" z=log(1+exp(z)) elseif @Fs2=="primecount" z=z/log(z) elseif @Fs2=="sqr+" z=sqr(z)+z elseif @Fs2=="cube+" z=z^3+sqr(z)+z elseif @Fs2=="sin+" z=sin(z)+z elseif @Fs2=="cos+" z=cos(z)+z elseif @Fs2=="tan+" z=tan(z)+z elseif @Fs2=="cotan+" z=cotan(z)+z elseif @Fs2=="sec+" z=1/cos(z)+z elseif @Fs2=="cosec+" z=1/sin(z)+z elseif @Fs2=="sin*" z=sin(z)*z elseif @Fs2=="cos*" z=cos(z)*z elseif @Fs2=="tan*" z=tan(z)*z elseif @Fs2=="cotan*" z=cotan(z)*z elseif @Fs2=="sec*" z=z/cos(z) elseif @Fs2=="cosec*" z=z/sin(z) elseif @Fs2=="loglog" z=log(log(z)) elseif @Fs2=="sinsin" z=sin(sin(z)) elseif @Fs2=="coscos" z=cos(cos(z)) elseif @Fs2=="+pixel" z=z+pixel elseif @Fs2=="-pixel" z=z-pixel elseif @Fs2=="*pixel" z=z*pixel elseif @Fs2=="/pixel" z=z/pixel elseif @Fs2=="third" z=z/3 elseif @Fs2=="half" z=z/2 elseif @Fs2=="double" z=z*2 elseif @Fs2=="triple" z=z*3 elseif @Fs2=="ceil" z=ceil(z) elseif @Fs2=="floor" z=floor(z) elseif @Fs2=="trunc" z=trunc(z) else z=round(z) endif float d=1-cabs(z)/@adj if d<0 d=0 else d=sqr(d) endif float g=1.0 c=c+g*d g=g*0.5 final: if @solid==true if @invert if (atan(c)+1)*0.5<@p7 #index=(atan(c)+1)*0.5 else #solid=true endif else if (atan(c)+1)*0.5>@p7 #index=(atan(c)+1)*0.5 else #solid=true endif endif else #index=(atan(c)+1)*0.5 endif default: title="Broubly" param V caption="Variant" 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""39""40"\ "41""42""43""44""45""46""47""48""49""50"\ "51""52""53""54""55""56""57""58""59""60" endparam param p1 caption="Variant Parameter 1" default=(1,0) endparam param p2 caption="Variant Parameter 2" default=(0,0) endparam param p3 caption="Z Parameter 1" default=(1,0) endparam param p4 caption="Z Parameter 2" default=(0,0) endparam param adj caption="Adjustment" default=1.5 endparam param Fs caption="Z Function" enum="asinh""acosh""atan"\ "sqr""sqrt""log""abs""cabs""conj"\ "flip""ident""recip""avercos"\ "asec""asech""acosec""acosech""aexsec"\ "aexcosec""crd""gd""cosc""coshc"\ "cube""colog""logit""softplus"\ "sqr+""cube+"\ "+pixel""-pixel"\ "*pixel""/pixel""third""half""double""triple" default=10 endparam param Fs2 caption="Loop Function" enum="sin""sinh""asinh""cos""cosh""acosh""tan""tanh""atan"\ "atanh""cotan""cotanh""sqr""sqrt""log""exp"\ "ident""recip""versin""aversin""haversin""ahaversin""coversin""acoversin"\ "hacoversin""vercos""avercos""havercos""ahavercos""covercos"\ "acovercos""hacovercos""acotan""acotanh" \ "sec""sech""asech""cosec""cosech""acosec""acosech""exsec""aexsec"\ "excosec""aexcosec""crd""gd""agd""sinc""sinhc""cosc""coshc"\ "tanc""tanhc""cotanc""cotanhc""secc""sechc""cosecc""cosechc"\ "cube""cuberoot""colog""logit""expit""gauss""softplus"\ "primecount""sqr+""cube+""sin+""cos+""tan+""cotan+""sec+""cosec+""sin*""cos*""tan*""cotan*""sec*"\ "cosec*""loglog""sinsin""coscos""+pixel""-pixel"\ "*pixel""/pixel""third""half""double""triple"\ "ceil""floor""trunc""round" default=16 endparam func fn3 caption="Variant Function" default=ident() endfunc param @solid caption="Solid Colour" default=false endparam param p7 caption="Solid Colour Adjustment" default=0.55 visible=@solid==true endparam param invert caption="Invert Solid Colour" default=false visible=@solid==true endparam } Abriskur { ;A modification of Squiggles Coloring by Paul Carson (pwc.ucl) init: float a=real(@adj3) float b=imag(@adj3) float c=(b-1)/@adj1 float d=0.0 int i=0 float f=254 bool g=false loop: z=fn1(#z) float x=real(z) float y=imag(z) if @V=="Bogdanov" z=x+y+p1*y+p2*x*(x-1)+p3*x*y+flip(y+p1*y+p2*x*(x-1)+p3*x*y) elseif @V=="Cayley" z=p1*(z-sqrt(-1))/(z+sqrt(-1))+p2 elseif @V=="Circle Map" z=z+p1-(p2/(2*pi))*sin(2*pi*z) elseif @V=="Clifford" z=sin(p1*y)+p2*cos(p1*x)+flip(sin(p3*x)+p4*cos(p3*y)) elseif @V=="de Jong" z=sin(p1*y)-cos(p2*x)+flip(sin(p3*x)-cos(p4*y)) elseif @V=="Gauss Map" z=exp(-p1*z^2)+p2 elseif @V=="Hamilton Torus" z=-sin(y)*(1-(p1-0.5))+flip(sin(x)*(1+(p1-0.5))) elseif @V=="Hopalong" z=y-sqrt(cabs(p2*x-p3))*x/cabs(x)+flip(p1-x) elseif @V=="Inkle" z=p1*conj(p1/(z+p2))+p2 elseif @V=="Latoocarfian" z=sin(p1*y)+p2*sin(p1*x)+flip(sin(p3*x)+p4*sin(p3*y)) elseif @V=="Logistic Map" z=p1*z*(1-z) elseif @V=="Magus 1" z=p1*x^2-y*x+flip(p2*y*x) elseif @V=="Magus 2" z=(x*(1-x)+y*atanh(p1-x)/(p1+x))/p2+flip(x-y) elseif @V=="Magus 3" z=(x%(2*pi))+(y%(2*pi))+p1*sin(2*pi*(x%(2*pi)))+flip((x%(2*pi))+(y%(2*pi))+p1*sin(2*pi*(x%(2*pi)))-(x%(2*pi))) elseif @V=="Magus 4" z=x-y-cos(x)*(p1*x^2+p2*y^2)+flip(x+y-y*(p3*x^2+p4*y^2)) elseif @V=="Magus 5" z=-p3*(p1*(y-flip(x)^2)-y+p2*(x+flip(y))) elseif @V=="Magus 6" z=x-y-sin(x)*(p1*x^2+p2*y^2)+flip(x+y-sin(y)*(p3*x^2+p4*y^2)) elseif @V=="Magus 7" z=(1/3)*(-(pi+1)*x+p1-p2+(x+flip(y))*y+((1-p1)*(x^2-y)^2)+(2*(p1+p2-(x+flip(y))))*x*y)*(1/(3*sqrt(x^2+y^2))) \ +flip((1/3)*((p2-p1-(x+flip(y)))*x-(p1+1)*y)+((2*(p1-1))*x*y+(p1+p2-(x+flip(y)))*(x^2-y^2))*(1/(3*sqrt(x^2+y^2)))) elseif @V=="Magus 8" z=p1*x*cotan(x)-y*log(x)+flip(p2*y*sqr(x)) elseif @V=="Magus 9" z=x+p1*p2*sin(2*pi*y)+flip(y-(p1/p2)*sin(2*pi*(x+p1*p2*2*pi*y))) elseif @V=="Magus 10" z=x+p1*p2*cotan(2*pi*y)+flip(y-(p1/p2)*cotan(2*pi*(x+p1*p2*cotanh(2*pi*y)))) elseif @V=="Magus 11" z=x-y-cotan(x)*(p1*x^2+p2*y^2)+flip(x+y-cotan(y)*(p3*x^2+p4*y^2)) elseif @V=="Magus 12" z=sin(y)+flip(sin(x)+y*(p1-y^2)) elseif @V=="Magus 13" z=flip(y)+flip(atanh(x)+y*(p1-y^2)) elseif @V=="Magus 14" z=x+p1*y^2+flip(x)^3+flip(y-p2*x^2+flip(y)^3) elseif @V=="Magus 15" z=sin(p1*y)+(sin(p1*x))^2+(sin(p1*y))^3+flip(sin(p2*x)+(sin(p2*y))^2+(sin(p2*x))^3) elseif @V=="Magus 16" z=sin(p1*x)-tan(p2*y)+flip(tan(p3*x)+sin(p4*y)) elseif @V=="Magus 17" z=p1*sin(x)-tan(y)-sin(x+flip(y))+flip(-p2*tan(x)+sin(y)+sin(x+flip(y))) elseif @V=="Magus 18" z=(p1*tan(y)-p2)/(p1*tan(x)+p2)+flip((p1*tan(x)-p2)/(p1*tan(y)+p2)) elseif @V=="Magus 19" z=(p1*cos(y)-p2)/(p1*tan(x)+p2)+flip((p1*cos(x)-p2)/(p1*tan(y)+p2)) elseif @V=="Magus 20" z=(p1*exp(y)-p2)/(p1*x+p2)+flip((p1*exp(x)-p2)/(p1*y+p2)) elseif @V=="Magus 21" z=x-sin(y+p1*sin(p2*y+p3*sin(p4*y)))+flip(y-sin(x+p1*sin(p2*x+p3*sin(p4*x)))) elseif @V=="Magus 22" z=x-(p1/2)*real(sin(y+sin(p2*(y+sin(p3*y)))))+flip(y+(p1/2)*real(sin(x+sin(p2*(x+sin(p3*x)))))) elseif @V=="Magus 23" z=p1*(z^3+2*z^2+3*z)+p2 elseif @V=="Magus 24" z=p1*sin(y)-p2*sin(x*y)+flip(p1*sin(x)+p2*sin(x*y)) elseif @V=="Martin" z=y+sin(x)+flip(p1-x) elseif @V=="Munster" z=p1*z^2*(z-p2)/(1-p2*z) elseif @V=="Polyharmonic Pendulum" z=y+flip(-p1*sin(x)-p2*sin(3*x)+p3*sin(p4)) elseif @V=="Popcorn" z=x-p1*sin(y+tan(p2*y))+flip(y-p1*sin(x+tan(p2*x))) elseif @V=="Sprott-Elhadj" z=p1*x/(1+y^2)+flip(x+p2*y) elseif @V=="Standard Map" z=x+p1*y-p2+(p3/(2*pi))*sin(2*pi*x)+flip(p1*y-p2+(p3/(2*pi))*sin(2*pi*x)) elseif @V=="Svensson" z=p1*sin(p2*x)-sin(p3*y)+flip(p4*cos(p2*x)-cos(p3*y)) elseif @V=="Tinkerbell" z=x^2-y^2+p1*x+p2*y+flip(2*x*y-p3*x+p4*y) elseif @V=="z" z=p1*z+p2 elseif @V=="z^2" z=p1*z^2+p2 elseif @V=="z^3" z=p1*z^3+p2 else z=p1*(z-1)/(z+1)+p2 endif float h=abs(atan(imag(z)/real(z))) float rh=real(h) float ih=imag(h) j=rh+flip(ih) float k=abs(|#z|-|j|) if !g && (k<@adj1) && (i>=@adj2) g=true d=i%a f=c*k+d*b endif i=i+1 final: ;#index=((real(f)+1)%256)/256 if @solid==true if @invert if 256/((real(f)+1)%256)<@p8 #index=((real(f)+1)%256)/256 else #solid=true endif else if 256/((real(f)+1)%256)>@p8 #index=((real(f)+1)%256)/256 else #solid=true endif endif else #index=((real(f)+1)%256)/256 endif default: title="Abriskur" int param version caption="Version" default=100 visible=@version<100 endparam param V enum="Bogdanov""Cayley""Circle Map""Clifford""de Jong""Gauss Map""Hamilton Torus""Hopalong"\ "Inkle""Latoocarfian""Logistic Map""Magus 1""Magus 2""Magus 3"\ "Magus 4""Magus 5""Magus 6""Magus 7""Magus 8""Magus 9""Magus 10""Magus 11"\ "Magus 12""Magus 13""Magus 14""Magus 15""Magus 16""Magus 17""Magus 18"\ "Magus 19""Magus 20""Magus 21""Magus 22""Magus 23""Magus 24""Martin""Munster"\ "Polyharmonic Pendulum""Popcorn""Sprott-Elhadj""Standard Map""Svensson""Tinkerbell""z""z^2""z^3""(z-1)/(z+1)" default=6 endparam param adj1 caption="Adjustment 1" default =1.0 endparam param adj2 caption="Adjustment 2" default=5 endparam param adj3 caption="Adjustment 3" default=(2,125) endparam param p1 default=(1,0) endparam param p2 default=(1,0) visible=@V=="Bogdanov" || @V=="Cayley" || @V=="Circle Map" || @V=="Clifford" \ || @V=="de Jong" || @V=="Gauss Map" || @V=="Hopalong" || @v=="Inkle" || @V=="Latoocarfian" \ || @V=="Magus 1" || @V=="Magus 2" || @V=="Magus 4" || @V=="Magus 5" || @V=="Magus 6" \ || @V=="Magus 7" || @V=="Magus 8" || @V=="Magus 9" || @V=="Magus 10" || @V=="Magus 11" \ || @V=="Magus 14" || @V=="Magus 15" || @V=="Magus 16" || @V=="Magus 17" \ || @V=="Magus 18" || @V=="Magus 19" || @V=="Magus 20" || @V=="Magus 21" \ || @V=="Magus 22" || @V=="Magus 23" || @V=="Magus 24" || @V=="Munster" || @V=="Polyharmonic Pendulum" || @V=="Popcorn" || @V=="Sprott-Elhadj" \ || @V=="Standard Map" || @V=="Svensson" || @V=="Tinkerbell" || @V=="z" || @V=="z^2" || @V=="z^3" || @V=="(z-1)/(z+1)" endparam param p3 default=(1,0) visible=@V=="Bogdanov" || @V=="Clifford" || @V=="de Jong" || @V=="Hopalong" || @V=="Latoocarfian" \ || @V=="Magus 4" || @V=="Magus 5" || @V=="Magus 6" || @V=="Magus 11" || @V=="Magus 16" \ || @V=="Magus 21" || @V=="Magus 22" || @V=="Polyharmonic Pendulum" || @V=="Standard Map" || @V=="Svensson" \ || @V=="Tinkerbell" endparam param p4 default=(1,0) visible=@V=="Clifford" || @V=="de Jong" || @V=="Latoocarfian" || @V=="Magus 4" \ || @V=="Magus 6" || @V=="Magus 11" || @V=="Magus 16" || @V=="Magus 21" \ || @V=="Polyharmonic Pendulum" || @V=="Svensson" || @V=="Tinkerbell" endparam func fn1 caption="Function" default=ident() endfunc param @solid caption="Solid Colour" default=false endparam param p8 caption="Solid Colour Adjustment" default=1.02685 visible=@solid==true endparam param invert caption="Invert Solid Colour" default=false visible=@solid==true endparam } Abriskur2 { ;A modification of Squiggles Coloring by Paul Carson (pwc.ucl) init: float a=real(@adj3) float b=imag(@adj3) float c=(b-1)/@adj1 float d=0.0 int i=0 float f=254 bool g=false loop: z=fn1(#z) if @V=="1" z=p2*(z+p1*fn2(z))+p3 elseif @V=="2" z=p2*(z+p1/fn2(z))+p3 elseif @V=="3" z=p2*((fn2(z)-p1)/(fn2(z)+p1))+p3 elseif @V=="4" z=p2*(z^2/(fn2(z)+p1))+p3 elseif @V=="5" z=p2*((fn2(z)+p1)/z)+p3 elseif @V=="6" z=p2*(z*fn2(p1-z))+p3 elseif @V=="7" z=p2*fn2((z^2+p1-1)/(2*z+p1-2))^2+p3 elseif @V=="8" z=p2*fn2((z-(p1+1))/(1-(p1+1)*z))+p3 elseif @V=="9" z=p2*(z*fn2(flip(z))-p1)+p3 elseif @V=="10" z=p2*(z*fn2(conj(z))-p1)+p3 elseif @V=="11" z=p2*(z*fn2(abs(z))-p1)+p3 elseif @V=="12" z=p2*(z*fn2(exp(z))-p1)+p3 elseif @V=="13" z=p2*(z*fn2(log(z))-p1)+p3 elseif @V=="14" z=p2*(z*fn2(cotanh(z))-p1)+p3 elseif @V=="15" z=p2*(z*fn2(atanh(z))-p1)+p3 elseif @V=="16" z=p2*(z*fn2(tanh(z))-p1)+p3 elseif @V=="17" z=p2*(z*fn2(cos(z))-p1)+p3 elseif @V=="18" z=p2*(z*fn2(z)-p1)+p3 endif float h=abs(atan(imag(z)/real(z))) float rh=real(h) float ih=imag(h) j=rh+flip(ih) float k=abs(|#z|-|j|) if !g && (k<@adj1) && (i>=@adj2) g=true d=i%a f=c*k+d*b endif i=i+1 final: ;#index=((real(f)+1)%256)/256 if @solid==true if @invert if 256/((real(f)+1)%256)<@p8 #index=((real(f)+1)%256)/256 else #solid=true endif else if 256/((real(f)+1)%256)>@p8 #index=((real(f)+1)%256)/256 else #solid=true endif endif else #index=((real(f)+1)%256)/256 endif default: title="Abriskur 2" int param version caption="Version" default=100 visible=@version<100 endparam param V caption="Variant" enum="1""2""3""4""5""6""7""8""9""10"\ "11""12""13""14""15""16""17""18" endparam param p1 caption="Variant Parameter 1" default=(1,0) endparam param p2 caption="Variant Parameter 2" default=(1,0) endparam param p3 caption="Variant Parameter 3" default=(0,0) endparam func fn1 caption="Z Function" default=ident() endfunc func fn2 caption="Variant Function" default=ident() endfunc param adj1 caption="Adjustment 1" default =1.0 endparam param adj2 caption="Adjustment 2" default=2 endparam param adj3 caption="Adjustment 3" default=(2,125) endparam param @solid caption="Solid Colour" default=false endparam param p8 caption="Solid Colour Adjustment" default=1.02685 visible=@solid==true endparam param invert caption="Invert Solid Colour" default=false visible=@solid==true endparam } Brahmagupta2 { init: a=(0,1) b=(0,1) float c=0.0 k=abs(p3) loop: z=p1*#z+p2 if @Fs=="sin" z=sin(z) elseif @Fs=="sinh" z=sinh(z) elseif @Fs=="asin" z=asin(z) elseif @Fs=="asinh" z=asinh(z) elseif @Fs=="cos" z=cos(z) elseif @Fs=="cosh" z=cosh(z) elseif @Fs=="acos" z=acos(z) elseif @Fs=="acosh" z=acosh(z) elseif @Fs=="tan" z=tan(z) elseif @Fs=="tanh" z=tanh(z) elseif @Fs=="atan" z=atan(z) elseif @Fs=="atanh" z=atanh(z) elseif @Fs=="cotan" z=cotan(z) elseif @Fs=="cotanh" z=cotanh(z) elseif @Fs=="sqr" z=sqr(z) elseif @Fs=="sqrt" z=sqrt(z) elseif @Fs=="log" z=log(z) elseif @Fs=="exp" z=exp(z) elseif @Fs=="abs" z=abs(z) elseif @Fs=="cabs" z=cabs(z) elseif @Fs=="conj" z=conj(z) elseif @Fs=="flip" z=flip(z) elseif @Fs=="ident" z=ident(z) elseif @Fs=="recip" z=recip(z) elseif @Fs=="versin" z=1-cos(z) elseif @Fs=="aversin" z=acos(1-z) elseif @Fs=="haversin" z=(1-cos(z))/2 elseif @Fs=="ahaversin" z=2*asin(sqrt(z)) elseif @Fs=="coversin" z=1-sin(z) elseif @Fs=="acoversin" z=asin(1-z) elseif @Fs=="hacoversin" z=(1-sin(z))/2 elseif @Fs=="vercos" z=1+cos(z) elseif @Fs=="avercos" z=acos(1+z) elseif @Fs=="havercos" z=(1+cos(z))/2 elseif @Fs=="ahavercos" z=2*acos(sqrt(z)) elseif @Fs=="covercos" z=1+sin(z) elseif @Fs=="acovercos" z=asin(1+z) elseif @Fs=="hacovercos" z=(1+sin(z))/2 elseif @Fs=="acotan" z=atan(1/(z)) elseif @Fs=="acotanh" z=atanh(1/(z)) elseif @Fs=="sec" z=1/cos(z) elseif @Fs=="sech" z=1/cosh(z) elseif @Fs=="asec" z=acos(1/z) elseif @Fs=="asech" z=acosh(1/z) elseif @Fs=="cosec" z=1/sin(z) elseif @Fs=="cosech" z=1/sinh(z) elseif @Fs=="acosec" z=asin(1/z) elseif @Fs=="acosech" z=asinh(1/z) elseif @Fs=="exsec" z=1/cos(z)-1 elseif @Fs=="aexsec" z= acos(1/(z+1)) elseif @Fs=="excosec" z=1/sin(z)-1 elseif @Fs=="aexcosec" z=asin(1/(z+1)) elseif @Fs=="crd" z=2*sin(z/2) elseif @Fs=="acrd" z=2*asin(z/2) elseif @Fs=="gd" z=asin(tanh(z)) elseif @Fs=="agd" z=asinh(tan(z)) elseif @Fs=="sinc" z=sin(z)/(z) elseif @Fs=="sinhc" z=sinh(z)/(z) elseif @Fs=="cosc" z=cos(z)/(z) elseif @Fs=="coshc" z=cosh(z)/(z) elseif @Fs=="tanc" z=tan(z)/(z) elseif @Fs=="tanhc" z=tanh(z)/(z) elseif @Fs=="cotanc" z=cotan(z)/(z) elseif @Fs=="cotanhc" z=cotanh(z)/(z) elseif @Fs=="secc" z=1/(z*cos(z)) elseif @Fs=="sechc" z=1/(z*cosh(z)) elseif @Fs=="cosecc" z= 1/(z*sin(z)) elseif @Fs=="cosechc" z=1/(z*sinh(z)) elseif @Fs=="cube" z=z^3 elseif @Fs=="cuberoot" z=z^(1/3) elseif @Fs=="colog" z=-log(z) elseif @Fs=="logit" z= log(z/(1-z)) elseif @Fs=="expit" z=1/(1+exp(-z)) elseif @Fs=="gauss" z=exp(-sqr(z)) elseif @Fs=="softplus" z=log(1+exp(z)) elseif @Fs=="primecount" z=z/log(z) elseif @Fs=="sqr+" z=sqr(z)+z elseif @Fs=="cube+" z=z^3+sqr(z)+z elseif @Fs=="sin+" z=sin(z)+z elseif @Fs=="cos+" z=cos(z)+z elseif @Fs=="tan+" z=tan(z)+z elseif @Fs=="cotan+" z=cotan(z)+z elseif @Fs=="sec+" z=1/cos(z)+z elseif @Fs=="cosec+" z=1/sin(z)+z elseif @Fs=="sin*" z=sin(z)*z elseif @Fs=="cos*" z=cos(z)*z elseif @Fs=="tan*" z=tan(z)*z elseif @Fs=="cotan*" z=cotan(z)*z elseif @Fs=="sec*" z=z/cos(z) elseif @Fs=="cosec*" z=z/sin(z) elseif @Fs=="loglog" z=log(log(z)) elseif @Fs=="sinsin" z=sin(sin(z)) elseif @Fs=="coscos" z=cos(cos(z)) elseif @Fs=="+pixel" z=z+pixel elseif @Fs=="-pixel" z=z-pixel elseif @Fs=="*pixel" z=z*pixel elseif @Fs=="/pixel" z=z/pixel elseif @Fs=="third" z=z/3 elseif @Fs=="half" z=z/2 elseif @Fs=="double" z=z*2 elseif @Fs=="triple" z=z*3 elseif @Fs=="ceil" z=ceil(z) elseif @Fs=="floor" z=floor(z) elseif @Fs=="trunc" z=trunc(z) else z=round(z) endif if @Va=="1" z=z elseif @Va=="2" x=real(z) y=imag(z) x=sin(x)/|z| y=cos(y)/|z| z=x+flip(y) elseif @Va=="3" x=real(z) y=imag(z) x=sin(x)/|z| y=sin(y)/|z| z=x+flip(y) elseif @Va=="4" x=real(z) y=imag(z) x=cos(x)/|z| y=cos(y)/|z| z=x+flip(y) elseif @Va=="5" x=real(z) y=imag(z) x=cos(x)/|z| y=sin(y)/|z| z=x+flip(y) elseif @Va=="6" if real(z)imag(z) z=flip(z) endif endif if @V=="2" z=p4*(fn2(log(real(z)^2+k*imag(z)^2+flip(2*real(z)*imag(z)))))+p5 elseif @V=="3" z=p4*(fn2(log(real(z)^3+3*k*real(z)*imag(z)^2+flip(3*real(z)^2*imag(z)+k*imag(z)^3))))+p5 elseif @V=="4" z=p4*(fn2(log(real(z)^4+6*k*real(z)^2*imag(z)^2+k^2*imag(z)^4+flip(4*real(z)^3*imag(z)+4*k*real(z)*imag(z)^3))))+p5 else z=p4*(fn2(log(real(z)^5+10*k*real(z)^3*imag(z)^2+5*k^2*real(z)*imag(z)^4+flip(5*imag(z)*real(z)^4+10*k*real(z)^2*imag(z)^3+k^2*imag(z)^5))))+p5 endif float d=1-cabs(z)/@adj if d<0 d=0 else d=sqr(d) endif f=z*a float g=1.0 c=c+g*d g=g*0.5 f=f*b/0.5 final: #index=(sqrt(c)+1)*0.5 if @solid==true if @invert if (sqrt(c)+1)*0.5<@p7 #index=(sqrt(c)+1)*0.5 else #solid=true endif else if (sqrt(c)+1)*0.5>@p7 #index=(sqrt(c)+1)*0.5 else #solid=true endif endif else #index=(sqrt(c)+1)*0.5 endif default: title="Brahmagupta 2" param V caption="Polynomial" enum="2""3""4""5" default=0 endparam param Va caption="Variant" enum="1""2""3""4""5""6""7" default=0 endparam param p1 default=(1,0) endparam param p2 default=(0,0) endparam param p3 default=(0.2,0.2) endparam param p4 default=(1,0) endparam param p5 default=(0,0) endparam param adj caption="Adjustment" default=3.0 endparam param Fs caption="Function" enum="sin""sinh""asin""asinh""cos""cosh""acos""acosh""tan""tanh""atan"\ "atanh""cotan""cotanh""sqr""sqrt""log""exp""abs""cabs""conj"\ "flip""ident""recip""versin""aversin""haversin""ahaversin""coversin""acoversin"\ "hacoversin""vercos""avercos""havercos""ahavercos""covercos"\ "acovercos""hacovercos""acotan""acotanh" \ "sec""sech""asec""asech""cosec""cosech""acosec""acosech""exsec""aexsec"\ "excosec""aexcosec""crd""acrd""gd""agd""sinc""sinhc""cosc""coshc"\ "tanc""tanhc""cotanc""cotanhc""secc""sechc""cosecc""cosechc"\ "cube""cuberoot""colog""logit""expit""gauss""softplus"\ "primecount""sqr+""cube+""sin+""cos+""tan+""cotan+""sec+""cosec+""sin*""cos*""tan*""cotan*""sec*"\ "cosec*""loglog""sinsin""coscos""+pixel""-pixel"\ "*pixel""/pixel""third""half""double""triple"\ "ceil""floor""trunc""round" default=22 endparam func fn2 default=ident() endfunc param @solid caption="Solid Colour" default=false endparam param p7 caption="Solid Colour Adjustment" default=0.915 visible=@solid==true endparam param invert caption="Invert Solid Colour" default=false visible=@solid==true endparam } AttraktorTraps3 { init: float a=0 int i=0 float b=0 float b2=0 loop: i=i+1 if @S==true if i>=0 && i<=1E20 z=(abs(fn2(fn1(#z)))-@center)/p5 float x=sqrt(p6)*real(z) float y=1/sqrt(p6)*imag(z) if @V=="Bogdanov" b=log(cabs(flip(y+p1*y+p2*x*(x-1)+p3*x*y)+x+y+p1*y+p2*x*(x-1)+p3*x*y)) elseif @V=="Bogdanov-Takens" b=log(cabs(y+flip(p1+p2*x+x^2-x*y))) elseif @V=="Brusselator" b=log(cabs((1-(p1+1)*x+y*x^2)/p2+flip((p1*x-y*x^2)/p3))) elseif @V=="Buckling Column Model" b=log(cabs(y+flip(-(p1*x^3+p2*x+p3*y)/p4))) elseif @V=="Burgers" b=log(cabs(p1*x-y^2+flip(p2*y+x*y))) elseif @V=="Cao-Lai" b=log(cabs(p1*x*(1-x)+flip(p2*x*sin(2*pi*y)/(2*pi)))) elseif @V=="Cat" b=log(cabs((2*x+y)%1+flip((x+y)%1))) elseif @V=="Cathala" b=log(cabs(p1*x+y+flip(p2/2+x^2))) elseif @V=="Cathala 2" b=log(cabs((1-2*p1)*x+y+flip(2*p1*p2*x+p3*y-2*p1*x^3))) elseif @V=="Chip" b=log(cabs(y-(x/cabs(x))*cos(sqr(log(abs(p2*x-p3))))*atan(sqr(log(abs(p3*x-p2))))+flip(p1-x))) elseif @V=="Chirikov Mod" b=log(cabs(x+y+(p1/2*pi)*sin(2*pi*x)+flip(y+(p1/2*pi)*sin(2*pi*x)))) elseif @V=="Coupled Logistic" b=log(cabs((1-p1)*p2*x*(1-x)+p1*p2*y*(1-y)+flip((1-p1)*p2*y*(1-y)+p1*p2*x*(1-x)))) elseif @V=="de Jong" b=log(cabs(sin(p1*y)-cos(p2*x)+flip(sin(p3*x)-cos(p4*y)))) elseif @V=="Duffing" b=log(cabs(y+flip(-p2*x+p1*y-y^3))) elseif @V=="Garrote-Mira" b=log(cabs(y+p1*(1-0.05*y^2)+p2*x+2*(1-p2)*x^2/(1+x^2)\ +flip(-x+p2*(y+p1*(1-0.05*y^2)+p2*x+2*(1-p2)*x^2/(1+x^2))\ +2*(1-p2)*(y+p1*(1-0.05*y^2)+p2*x+2*(1-p2)*x^2/(1+x^2))\ ^2/(1+(y+p1*(1-0.05*y^2)+p2*x+2*(1-p2)*x^2/(1+x^2))^2)))) elseif @V=="Gingerbread" b=log(cabs(1-y+cabs(x)+flip(x))) elseif @V=="Gumowski-Mira" b=log(cabs(y+p1*x+2*(1-p1)*x^2/(1+x^2)+p2*(1-p3*y^2)*y+ \ flip(-x+p1*(y+p1*x+2*(1-p1)*x^2/(1+x^2)+p2*(1-p3*y^2)*y) \ +2*(1-p1)*(y+p1*x+2*(1-p1)*x^2/(1+x^2)+ \ p2*(1-p3*y^2)*y)^2/(1+(y+p1*x+2*(1-p1)*x^2/(1+x^2)+p2*(1-p3*y^2)*y)^2)))) elseif @V=="Gumowski-Mira 2" b=log(cabs(y+p1*(1-p2*y^2)*y+p3*x+2*(1-p3)*x^2/(1+x^2)+flip \ (-x+p3*(y+p1*(1-p2*y^2)*y+p3*x+2*(1-p3)*x^2/(1+x^2)) \ +2*(1-p3)*(y+ p1*(1-p2*y^2)*y+p3*x+2*(1-p3)*x^2/(1+x^2))^2 \ /(1+(y+p1*(1-p2*y^2)*y+p3*x+2*(1-p3)*x^2/(1+x^2))^2)))) elseif @V=="Gumowski-Mira Mod" b=log(cabs((1-p1)*x+y+flip(y+p2*x+2*(1-p2)*x^2*(1+x^2)^(-2)))) elseif @V=="Hamilton" b=log(cabs(x+p1*p2*sin(2*pi*y)+flip(y-(p1/p2)*sin(2*pi*(x+p1*p2*sin(2*pi*y)))))) elseif @V=="HCA" b=log(cabs(1-p1*x^2+p2*(y^2-x^2)+flip(1-p1*y^2+p2*(x^2-y^2)))) elseif @V=="Henon" b=log(cabs(1-p1*x^2+y+flip(p2*x))) elseif @V=="Hopalong" b=log(cabs(y-(x/cabs(x))*sqrt(cabs(p2*x-p3))+flip(p1-x))) elseif @V=="Horsthemke-Lefever" b=log(cabs(p1*x*(1-x/p3)-p2*x*y+flip(-p2*x*y+p4*(@p7-y)))) elseif @V=="Ikeda" b=log(cabs(p1+p2*(x*cos(p3-p4/(x^2+y^2+1))-y*sin(p3-p4/(x^2+y^2+1))) \ +flip(p2*(x*sin(p3-p4/(x^2+y^2+1))+y*cos(p3-p4/(x^2+y^2+1)))))) elseif @V=="Ilhem-Amel" b=log(cabs(x^3+p1*x+p2+y+flip(p3*x))) elseif @V=="Kam Torus" b=log(cabs(x*cos(p1)+(x^2-y)*sin(p1)+flip(x*sin(p1)-(x^2-y)*cos(p1)))) elseif @V=="Latoocarfian" b=log(cabs(sin(p1*y)+p2*sin(p1*x)+flip(sin(p3*x)+p4*sin(p3*y)))) elseif @V=="Lozi" b=log(cabs(1+y-p1*cabs(x)+flip(p2*x))) elseif @V=="Marotto-Lorenz" b=log(cabs((1-p1*x-p2*y)*(p1*x+p2*y)+flip(x))) elseif @V=="Martin" b=log(cabs(y+sin(x)+flip(p1-x))) elseif @V=="Mira" b=log(cabs(p2*y+p1*x+2*(1-p1)*x^2/(1+x^2)\ +flip(-x+p1*(p2*y+p1*x+2*(1-p1)*x^2/(1+x^2))\ +2*(1-p1)*(p2*y+p1*x+2*(1-p1)*x^2/(1+(p2*y\ +p1*x+2*(1-p1)*x^2/(1+x^2))^2))^2/(1+x^2)))) elseif @V=="Mira 2" b=log(cabs(x^2-y^2+p1*x+p2+flip(2*x*y-5*p1*y/2))) elseif @V=="Mira 3" b=log(cabs((1-p1)*x+y+flip(p1*p2*x+p3*y-p1*x^3))) elseif @V=="Modified Lozi" b=log(cabs(1+p1*(cabs(x)-y^2)+y+flip(p2*x))) elseif @V=="Nowicki-Swirszcz" b=log(cabs(3*x*((x-y)^2-p1)/((3*x-y)^2-p2)+flip(y*(y^2+2*x*y-3*x^2-p3)/((3*x-y)^2-p4)))) elseif @V=="Multifold Henon" b=log(cabs(1-p1*sin(x)+p2*y+flip(x))) elseif @V=="Oscillating Chemical Reaction" b=log(cabs((p1-x-4*x*y)/(1+x^2)+flip(p2*x*(1-y)/(1+x^2)))) elseif @V=="Pickover 1" b=log(cabs(sin(p1*y)+p3*cos(p1*x)+flip(sin(p2*x)+p4*cos(p2*y)))) elseif @V=="Pickover 2" b=log(cabs(sin(p1*y)+(sin(p1*x))^2+(sin(p1*x))^3+flip(sin(p2*x)+(sin(p2*y))^2+(sin(p3*y))^3))) elseif @V=="Pickover 3" b=log(cabs(sin(p1*y)+(sin(p1*x))^2+flip(sin(p2*x)+(sin(p2*y))^2))) elseif @V=="Pickover 4" b=log(cabs(cabs(sin(p1*y))+(sin(p1*x))^2+flip(cabs(sin(p2*x))+(sin(p2*y))^2))) elseif @V=="Polyharmonic Pendulum" b=log(cabs(y+flip(-p1*sin(x)-p2*sin(3*x)+p3*sin(p4)))) elseif @V=="Popcorn" b=log(cabs(p1*sin(y+tan(p2*y))+flip(p1*sin(x+tan(p2*x))))) elseif @V=="Popcorn 2" b=log(cabs(x-p1*sin(y+tan(p2*y))+flip(y-p1*sin(x+tan(p2*x))))) elseif @V=="Quadruptwo" b=log(cabs(y-(x/cabs(x))*sin(log(abs(p2*x-p3)))*atan(sqr(log(abs(p3*x-p2))))+flip(p1-x))) elseif @V=="Rayleigh" b=log(cabs(y+flip(-(x+p2*y^3-p1*y)/p3))) elseif @V=="Sine" b=log(cabs(y+flip(p1*sin(x)+p2*y))) elseif @V=="Sine-Sine" b=log(cabs(sin(x)-sin(2*y)+flip(x))) elseif @V=="Sprott" b=log(cabs((1+p1*p2)*x-p2*x*y+flip((1-p2)*y+p2*x^2))) elseif @V=="Sprott-Elhadj" b=log(cabs(p1*x/(1+y^2)+flip(x+p2*y))) elseif @V=="Standard Map" b=log(cabs(x+p1*sin(y)+flip(y+x+p1*sin(y)))) elseif @V=="Strelkova-Anishchenko" b=log(cabs(1-p1*x^2+p2*(y-x)+flip(1-p1*y^2+p2*(x-y)))) elseif @V=="Svensson" b=log(cabs(p4*sin(p1*x)-sin(p2*y)+flip(p3*cos(p1*x)+cos(p2*y)))) elseif @V=="Threeply" b=log(cabs(y-(x/cabs(x))*(abs(sin(x)*cos(p2)+p3-x*sin(p1+p2+p3)))+flip(p1-x))) elseif @V=="Tinkerbell" b=log(cabs(x^2+-y^2+p1*x+p2*y+flip(2*x*y+p3*x+p4*y))) elseif @V=="Ushiki" b=log(cabs((p1-x-p2*y)*x+flip((p3-y-p4*x)*y))) elseif @V=="Van der Pol" b=log(cabs(p1*(x-x^3/3-y)+flip(x/p1))) elseif @V=="Van der Pol 2" b=log(cabs(y+flip(p1*(1-x^2)*y-x))) elseif @V=="Volterra-Lotka" b=log(cabs(p1*x-p2*x*y+flip(-p3*y+p4*x*y))) elseif @V=="OM1" b=log(cabs(p1*y-sin(x)+3*y^2+flip(p2*x^2+cos(y)-3*x))) elseif @V=="OM2" b=log(cabs(p1+p2*y*x+y^2+flip(z+p3*x^2+y^3))) elseif @V=="OM3" b=log(cabs(p1*y^2+x-3*x*y+flip(x-3*p2*x^3-y))) elseif @V=="OM4" b=log(cabs(y-x^2/3+2*p1*x*y+flip(x^3+2*y+p2/2))) elseif @V=="OM5" b=log(cabs(y-p1*x*sin(2*y)+0.001*cos(x)+flip(p2*y*cos(2*x)+0.001*cos(y)))) elseif @V=="OM6" b=log(cabs(x*sin(2*y)+p1*cos(x)+flip(y*cos(2*x)+p2*cos(y)))) elseif @V=="OM7" b=log(cabs(sin(y)+y^3-x/2+flip(p1*x-x^2-0.3*p2*y))) elseif @V=="OM8" b=log(cabs(p1*sinh((x^2-y^2)+2*sqrt(-1)*x*y+p2-1))) elseif @V=="OM9" b=log(cabs(p1*x+y+x^2-2*y^2+flip(-x+p1*y+x^2-x^3))) elseif @V=="OM10" b=log(cabs((x*(1-x)+y*cos(p1-x)/(p1+x))/p2+flip(x-y))) elseif @V=="OM11" b=log(cabs(|sin(p1*y)|+(sin(p1*x))^2+flip(|sin(p2*x)|+(sin(p2*y))^2))) elseif @V=="OM12" b=log(cabs(1-p1*y^2-acosh(x)+flip(p2*x))) elseif @V=="OM13" b=log(cabs(x-y-sin(x)*(p1*x^2+p2*y^2)+flip(x+y-sin(y)*(p3*x^2+p4*y^2)))) elseif @V=="OM14" b=log(cabs(x-y-sin(x)*(p1*x^2+p2*y^2)+flip(x+y-cotanh(y)*(p3*x^2+p4*y^2)))) elseif @V=="OM15" b=log(cabs(x-y-cotanh(x)*(p1*x^2+p2*y^2)+flip(x+y-cotanh(y)*(p3*x^2+p4*y^2)))) elseif @V=="OM16" b=log(cabs(x-y-sin(x)*(p1*x^2+p2*y^2)+flip(x+y-flip(y)*(p3*x^2+p4*y^2)))) elseif @V=="OM17" b=log(cabs(x-y-log(x)*(p1*x^2+p2*y^2)+flip(x+y-sqrt(y)*(p3*x^2+p4*y^2)))) elseif @V=="OM18" b=log(cabs(x-y-tan(x)*(p1*x^2+p2*y^2)+flip(x+y-cotan(y)*(p3*x^2+p4*y^2)))) elseif @V=="OM19" b=log(cabs(p1*x+cos(y)+x^2-2*y^2+flip(-cos(x)+p1*y+x^2-x^3))) elseif @V=="OM20" b=log(cabs(p1*(y-x^2)+flip(-x^2+2*x*p1*(y-x^2)))) elseif @V=="OM21" b=log(cabs(p1*(3*y+1)*x*(1-x)+flip((3*y+1)*y*(p2-y)+p3))) endif b2=cabs(z)+@f b=abs(b^(0.01*@pow1)-b2^0.01)^2 a=b/(cabs(z)+1)^@pow2+a endif else if i>=0 && i<=1E20 z=(fn2(fn1(#z))-@center)/p5 float x=sqrt(p6)*real(z) float y=1/sqrt(p6)*imag(z) if @V=="Bogdanov" b=log(cabs(flip(y+p1*y+p2*x*(x-1)+p3*x*y)+x+y+p1*y+p2*x*(x-1)+p3*x*y)) elseif @V=="Bogdanov-Takens" b=log(cabs(y+flip(p1+p2*x+x^2-x*y))) elseif @V=="Brusselator" b=log(cabs((1-(p1+1)*x+y*x^2)/p2+flip((p1*x-y*x^2)/p3))) elseif @V=="Buckling Column Model" b=log(cabs(y+flip(-(p1*x^3+p2*x+p3*y)/p4))) elseif @V=="Burgers" b=log(cabs(p1*x-y^2+flip(p2*y+x*y))) elseif @V=="Cao-Lai" b=log(cabs(p1*x*(1-x)+flip(p2*x*sin(2*pi*y)/(2*pi)))) elseif @V=="Cat" b=log(cabs((2*x+y)%1+flip((x+y)%1))) elseif @V=="Cathala" b=log(cabs(p1*x+y+flip(p2/2+x^2))) elseif @V=="Cathala 2" b=log(cabs((1-2*p1)*x+y+flip(2*p1*p2*x+p3*y-2*p1*x^3))) elseif @V=="Chip" b=log(cabs(y-(x/cabs(x))*cos(sqr(log(abs(p2*x-p3))))*atan(sqr(log(abs(p3*x-p2))))+flip(p1-x))) elseif @V=="Chirikov Mod" b=log(cabs(x+y+(p1/2*pi)*sin(2*pi*x)+flip(y+(p1/2*pi)*sin(2*pi*x)))) elseif @V=="Coupled Logistic" b=log(cabs((1-p1)*p2*x*(1-x)+p1*p2*y*(1-y)+flip((1-p1)*p2*y*(1-y)+p1*p2*x*(1-x)))) elseif @V=="de Jong" b=log(cabs(sin(p1*y)-cos(p2*x)+flip(sin(p3*x)-cos(p4*y)))) elseif @V=="Duffing" b=log(cabs(y+flip(-p2*x+p1*y-y^3))) elseif @V=="Garrote-Mira" b=log(cabs(y+p1*(1-0.05*y^2)+p2*x+2*(1-p2)*x^2/(1+x^2)\ +flip(-x+p2*(y+p1*(1-0.05*y^2)+p2*x+2*(1-p2)*x^2/(1+x^2))\ +2*(1-p2)*(y+p1*(1-0.05*y^2)+p2*x+2*(1-p2)*x^2/(1+x^2))\ ^2/(1+(y+p1*(1-0.05*y^2)+p2*x+2*(1-p2)*x^2/(1+x^2))^2)))) elseif @V=="Gingerbread" b=log(cabs(1-y+cabs(x)+flip(x))) elseif @V=="Gumowski-Mira" b=log(cabs(y+p1*x+2*(1-p1)*x^2/(1+x^2)+p2*(1-p3*y^2)*y+ \ flip(-x+p1*(y+p1*x+2*(1-p1)*x^2/(1+x^2)+p2*(1-p3*y^2)*y) \ +2*(1-p1)*(y+p1*x+2*(1-p1)*x^2/(1+x^2)+ \ p2*(1-p3*y^2)*y)^2/(1+(y+p1*x+2*(1-p1)*x^2/(1+x^2)+p2*(1-p3*y^2)*y)^2)))) elseif @V=="Gumowski-Mira 2" b=log(cabs(y+p1*(1-p2*y^2)*y+p3*x+2*(1-p3)*x^2/(1+x^2)+flip \ (-x+p3*(y+p1*(1-p2*y^2)*y+p3*x+2*(1-p3)*x^2/(1+x^2)) \ +2*(1-p3)*(y+ p1*(1-p2*y^2)*y+p3*x+2*(1-p3)*x^2/(1+x^2))^2 \ /(1+(y+p1*(1-p2*y^2)*y+p3*x+2*(1-p3)*x^2/(1+x^2))^2)))) elseif @V=="Gumowski-Mira Mod" b=log(cabs((1-p1)*x+y+flip(y+p2*x+2*(1-p2)*x^2*(1+x^2)^(-2)))) elseif @V=="Hamilton" b=log(cabs(x+p1*p2*sin(2*pi*y)+flip(y-(p1/p2)*sin(2*pi*(x+p1*p2*sin(2*pi*y)))))) elseif @V=="HCA" b=log(cabs(1-p1*x^2+p2*(y^2-x^2)+flip(1-p1*y^2+p2*(x^2-y^2)))) elseif @V=="Henon" b=log(cabs(1-p1*x^2+y+flip(p2*x))) elseif @V=="Hopalong" b=log(cabs(y-(x/cabs(x))*sqrt(cabs(p2*x-p3))+flip(p1-x))) elseif @V=="Horsthemke-Lefever" b=log(cabs(p1*x*(1-x/p3)-p2*x*y+flip(-p2*x*y+p4*(@p7-y)))) elseif @V=="Ikeda" b=log(cabs(p1+p2*(x*cos(p3-p4/(x^2+y^2+1))-y*sin(p3-p4/(x^2+y^2+1))) \ +flip(p2*(x*sin(p3-p4/(x^2+y^2+1))+y*cos(p3-p4/(x^2+y^2+1)))))) elseif @V=="Ilhem-Amel" b=log(cabs(x^3+p1*x+p2+y+flip(p3*x))) elseif @V=="Kam Torus" b=log(cabs(x*cos(p1)+(x^2-y)*sin(p1)+flip(x*sin(p1)-(x^2-y)*cos(p1)))) elseif @V=="Latoocarfian" b=log(cabs(sin(p1*y)+p2*sin(p1*x)+flip(sin(p3*x)+p4*sin(p3*y)))) elseif @V=="Lozi" b=log(cabs(1+y-p1*cabs(x)+flip(p2*x))) elseif @V=="Marotto-Lorenz" b=log(cabs((1-p1*x-p2*y)*(p1*x+p2*y)+flip(x))) elseif @V=="Martin" b=log(cabs(y+sin(x)+flip(p1-x))) elseif @V=="Mira" b=log(cabs(p2*y+p1*x+2*(1-p1)*x^2/(1+x^2)\ +flip(-x+p1*(p2*y+p1*x+2*(1-p1)*x^2/(1+x^2))\ +2*(1-p1)*(p2*y+p1*x+2*(1-p1)*x^2/(1+(p2*y\ +p1*x+2*(1-p1)*x^2/(1+x^2))^2))^2/(1+x^2)))) elseif @V=="Mira 2" b=log(cabs(x^2-y^2+p1*x+p2+flip(2*x*y-5*p1*y/2))) elseif @V=="Mira 3" b=log(cabs((1-p1)*x+y+flip(p1*p2*x+p3*y-p1*x^3))) elseif @V=="Modified Lozi" b=log(cabs(1+p1*(cabs(x)-y^2)+y+flip(p2*x))) elseif @V=="Nowicki-Swirszcz" b=log(cabs(3*x*((x-y)^2-p1)/((3*x-y)^2-p2)+flip(y*(y^2+2*x*y-3*x^2-p3)/((3*x-y)^2-p4)))) elseif @V=="Multifold Henon" b=log(cabs(1-p1*sin(x)+p2*y+flip(x))) elseif @V=="Oscillating Chemical Reaction" b=log(cabs((p1-x-4*x*y)/(1+x^2)+flip(p2*x*(1-y)/(1+x^2)))) elseif @V=="Pickover 1" b=log(cabs(sin(p1*y)+p3*cos(p1*x)+flip(sin(p2*x)+p4*cos(p2*y)))) elseif @V=="Pickover 2" b=log(cabs(sin(p1*y)+(sin(p1*x))^2+(sin(p1*x))^3+flip(sin(p2*x)+(sin(p2*y))^2+(sin(p3*y))^3))) elseif @V=="Pickover 3" b=log(cabs(sin(p1*y)+(sin(p1*x))^2+flip(sin(p2*x)+(sin(p2*y))^2))) elseif @V=="Pickover 4" b=log(cabs(cabs(sin(p1*y))+(sin(p1*x))^2+flip(cabs(sin(p2*x))+(sin(p2*y))^2))) elseif @V=="Polyharmonic Pendulum" b=log(cabs(y+flip(-p1*sin(x)-p2*sin(3*x)+p3*sin(p4)))) elseif @V=="Popcorn" b=log(cabs(p1*sin(y+tan(p2*y))+flip(p1*sin(x+tan(p2*x))))) elseif @V=="Popcorn 2" b=log(cabs(x-p1*sin(y+tan(p2*y))+flip(y-p1*sin(x+tan(p2*x))))) elseif @V=="Quadruptwo" b=log(cabs(y-(x/cabs(x))*sin(log(abs(p2*x-p3)))*atan(sqr(log(abs(p3*x-p2))))+flip(p1-x))) elseif @V=="Rayleigh" b=log(cabs(y+flip(-(x+p2*y^3-p1*y)/p3))) elseif @V=="Sine" b=log(cabs(y+flip(p1*sin(x)+p2*y))) elseif @V=="Sine-Sine" b=log(cabs(sin(x)-sin(2*y)+flip(x))) elseif @V=="Sprott" b=log(cabs((1+p1*p2)*x-p2*x*y+flip((1-p2)*y+p2*x^2))) elseif @V=="Sprott-Elhadj" b=log(cabs(p1*x/(1+y^2)+flip(x+p2*y))) elseif @V=="Standard Map" b=log(cabs(x+p1*sin(y)+flip(y+x+p1*sin(y)))) elseif @V=="Strelkova-Anishchenko" b=log(cabs(1-p1*x^2+p2*(y-x)+flip(1-p1*y^2+p2*(x-y)))) elseif @V=="Svensson" b=log(cabs(p4*sin(p1*x)-sin(p2*y)+flip(p3*cos(p1*x)+cos(p2*y)))) elseif @V=="Threeply" b=log(cabs(y-(x/cabs(x))*(abs(sin(x)*cos(p2)+p3-x*sin(p1+p2+p3)))+flip(p1-x))) elseif @V=="Tinkerbell" b=log(cabs(x^2+-y^2+p1*x+p2*y+flip(2*x*y+p3*x+p4*y))) elseif @V=="Ushiki" b=log(cabs((p1-x-p2*y)*x+flip((p3-y-p4*x)*y))) elseif @V=="Van der Pol" b=log(cabs(p1*(x-x^3/3-y)+flip(x/p1))) elseif @V=="Van der Pol 2" b=log(cabs(y+flip(p1*(1-x^2)*y-x))) elseif @V=="Volterra-Lotka" b=log(cabs(p1*x-p2*x*y+flip(-p3*y+p4*x*y))) elseif @V=="OM1" b=log(cabs(p1*y-sin(x)+3*y^2+flip(p2*x^2+cos(y)-3*x))) elseif @V=="OM2" b=log(cabs(p1+p2*y*x+y^2+flip(z+p3*x^2+y^3))) elseif @V=="OM3" b=log(cabs(p1*y^2+x-3*x*y+flip(x-3*p2*x^3-y))) elseif @V=="OM4" b=log(cabs(y-x^2/3+2*p1*x*y+flip(x^3+2*y+p2/2))) elseif @V=="OM5" b=log(cabs(y-p1*x*sin(2*y)+0.001*cos(x)+flip(p2*y*cos(2*x)+0.001*cos(y)))) elseif @V=="OM6" b=log(cabs(x*sin(2*y)+p1*cos(x)+flip(y*cos(2*x)+p2*cos(y)))) elseif @V=="OM7" b=log(cabs(sin(y)+y^3-x/2+flip(p1*x-x^2-0.3*p2*y))) elseif @V=="OM8" b=log(cabs(p1*sinh((x^2-y^2)+2*sqrt(-1)*x*y+p2-1))) elseif @V=="OM9" b=log(cabs(p1*x+y+x^2-2*y^2+flip(-x+p1*y+x^2-x^3))) elseif @V=="OM10" b=log(cabs((x*(1-x)+y*cos(p1-x)/(p1+x))/p2+flip(x-y))) elseif @V=="OM11" b=log(cabs(|sin(p1*y)|+(sin(p1*x))^2+flip(|sin(p2*x)|+(sin(p2*y))^2))) elseif @V=="OM12" b=log(cabs(1-p1*y^2-acosh(x)+flip(p2*x))) elseif @V=="OM13" b=log(cabs(x-y-sin(x)*(p1*x^2+p2*y^2)+flip(x+y-sin(y)*(p3*x^2+p4*y^2)))) elseif @V=="OM14" b=log(cabs(x-y-sin(x)*(p1*x^2+p2*y^2)+flip(x+y-cotanh(y)*(p3*x^2+p4*y^2)))) elseif @V=="OM15" b=log(cabs(x-y-cotanh(x)*(p1*x^2+p2*y^2)+flip(x+y-cotanh(y)*(p3*x^2+p4*y^2)))) elseif @V=="OM16" b=log(cabs(x-y-sin(x)*(p1*x^2+p2*y^2)+flip(x+y-flip(y)*(p3*x^2+p4*y^2)))) elseif @V=="OM17" b=log(cabs(x-y-log(x)*(p1*x^2+p2*y^2)+flip(x+y-sqrt(y)*(p3*x^2+p4*y^2)))) elseif @V=="OM18" b=log(cabs(x-y-tan(x)*(p1*x^2+p2*y^2)+flip(x+y-cotan(y)*(p3*x^2+p4*y^2)))) elseif @V=="OM19" b=log(cabs(p1*x+cos(y)+x^2-2*y^2+flip(-cos(x)+p1*y+x^2-x^3))) elseif @V=="OM20" b=log(cabs(p1*(y-x^2)+flip(-x^2+2*x*p1*(y-x^2)))) elseif @V=="OM21" b=log(cabs(p1*(3*y+1)*x*(1-x)+flip((3*y+1)*y*(p2-y)+p3))) endif b2=cabs(z)+@f b=abs(b^(0.01*@pow1)-b2^0.01)^2 a=b/(cabs(z)+1)^@pow2+a endif endif final: if @solid==true if @invert if 1000*a<@p8 #index=1000*a else #solid=true endif else if 1000*a>@p8 #index=1000*a else #solid=true endif endif else #index=1000*a endif default: title="Attraktor Traps 3" param V caption="Trap" enum="Bogdanov""Bogdanov-Takens""Brusselator""Buckling Column Model""Burgers""Cao-Lai""Cat""Cathala""Cathala 2"\ "Chip""Chirikov Mod""Coupled Logistic""de Jong""Duffing"\ "Garrote-Mira""Gingerbread""Gumowski-Mira""Gumowski-Mira 2""Gumowski-Mira Mod"\ "Hamilton""HCA""Henon""Hopalong""Horsthemke-Lefever""Ikeda""Ilhem-Amel""Kam Torus""Latoocarfian""Lozi"\ "Marotto-Lorenz""Martin""Mira""Mira 2""Mira 3""Modified Lozi""Nowicki-Swirszcz""Multifold Henon""Oscillating Chemical Reaction""Pickover 1"\ "Pickover 2""Pickover 3""Pickover 4""Polyharmonic Pendulum""Popcorn""Popcorn 2""Quadruptwo""Rayleigh""Sine"\ "Sine-Sine""Sprott""Sprott-Elhadj""Standard Map""Strelkova-Anishchenko""Svensson"\ "Threeply""Tinkerbell""Ushiki""Van der Pol""Van der Pol 2""Volterra-Lotka"\ "OM1""OM2""OM3""OM4""OM5""OM6""OM7""OM8""OM9""OM10""OM11""OM12""OM13""OM14""OM15""OM16""OM17""OM18""OM19""OM20""OM21" default=7 endparam func fn1 default=sqr() endfunc func fn2 default=ident() endfunc param p1 caption="Trap Parameter 1" default=(1,0) visible=@V!="Cat" && @V!="Gingerbread" && @V!="Sine-Sine" endparam param p2 caption="Trap Parameter 2" default=(1,0) visible=@V!="Martin" && @V!="Cat" && @V!="Chirikov Mod" && @V!="Gingerbread" \ && @V!="Kam Torus" && @V!="Van der Pol" && @V!="Van der Pol 2" && @V!="Sine-Sine" \ && @V!="OM9" && @V!="OM19" && @V!="OM20" && @V!="Standard Map" endparam param p3 caption="Trap Parameter 3" default=(1,0) visible=@V=="Brusselator" || @V=="Buckling Column Model" || @V=="Rayleigh" || @V=="Hopalong" \ || @V=="Ushiki" || @V=="de Jong" || @V=="Pickover 1" || @V=="Svensson" \ || @V=="Chip" || @V=="Quadruptwo" || @V=="Ikeda" || @V=="Gumowski-Mira" \ || @V=="Gumowski-Mira 2" || @V=="Bogdanov" || @V=="Mira 3" || @V=="Threeply" \ || @V=="Tinkerbell" || @V=="OM2" || @V=="Cathala 2" || @V=="Ilhem-Amel" \ || @V=="Latoocarfian" || @V=="Pickover 2" || @V=="Horsthemke-Lefever" || @V=="OM13" \ || @V=="OM14" || @V=="OM15" || @V=="OM16" || @V=="OM17" || @V=="OM18" || @V=="OM21" \ || @V=="Volterra-Lotka" || @V=="Polyharmonic Pendulum" || @V=="Nowicki-Swirszcz" endparam param p4 caption="Trap Parameter 4" default=(1,0) visible=@V=="Buckling Column Model" || @V=="Ushiki" || @V=="de Jong" \ || @V=="Pickover 1" || @V=="Svensson" || @V=="Ikeda" || @V=="Tinkerbell" \ || @V=="Latoocarfian" || @V=="Horsthemke-Lefever" || @V=="OM13" \ || @V=="OM14" || @V=="OM15" || @V=="OM16" || @V=="OM17" || @V=="OM18" \ || @V=="Volterra-Lotka" || @V=="Polyharmonic Pendulum" || @V=="Nowicki-Swirszcz" endparam param p7 caption="Trap Parameter 5" default=(1,0) visible=@V=="Horsthemke-Lefever" endparam param p5 caption="Parameter 1" default=-2.9 endparam param p6 caption="Parameter 2" default=1.0 endparam param f caption="Parameter 3" default=1.0 endparam param center caption="Parameter 4" default=(0,0) endparam param pow1 caption="Exponent 1" default=.2 endparam param pow2 caption="Exponent2" default=1.0 endparam param @solid caption="Solid Colour" default=false endparam param p8 caption="Solid Colour Adjustment" default=0.14 visible=@solid==true endparam param invert caption="Invert Solid Colour" default=false visible=@solid==true endparam param S caption="Symmetrise" default=false endparam } DietTraps { ;By Samuel Monnier, modified by Otto Magus October 2016.\ ;The basic structure of this algorithm is the same as\ ;'Thin Orbit Traps'(sam.ufm) and 'Thin Orbit Traps II'(tma.ufm).\ ;I have removed some parameters and added others. Their are 200+ ;trapshapes to choose from, and 100+ functions. init: float a=0 int i=0 float b=0 float b2=0 loop: i=i+1 if @Fs=="sin" k=sin(#z) elseif @Fs=="sinh" k=sinh(#z) elseif @Fs=="asin" k=asin(#z) elseif @Fs=="asinh" k=asinh(#z) elseif @Fs=="cos" k=cos(#z) elseif @Fs=="cosh" k=cosh(#z) elseif @Fs=="acos" k=acos(#z) elseif @Fs=="acosh" k=acosh(#z) elseif @Fs=="tan" k=tan(#z) elseif @Fs=="tanh" k=tanh(#z) elseif @Fs=="atan" k=atan(#z) elseif @Fs=="atanh" k=atanh(#z) elseif @Fs=="cotan" k=cotan(#z) elseif @Fs=="cotanh" k=cotanh(#z) elseif @Fs=="sqr" k=sqr(#z) elseif @Fs=="sqrt" k=sqrt(#z) elseif @Fs=="log" k=log(#z) elseif @Fs=="exp" k=exp(#z) elseif @Fs=="abs" k=abs(#z) elseif @Fs=="cabs" k=cabs(#z) elseif @Fs=="conj" k=conj(#z) elseif @Fs=="flip" k=flip(#z) elseif @Fs=="ident" k=ident(#z) elseif @Fs=="recip" k=recip(#z) elseif @Fs=="versin" k=1-cos(#z) elseif @Fs=="aversin" k=acos(1-#z) elseif @Fs=="haversin" k=(1-cos(#z))/2 elseif @Fs=="ahaversin" k=2*asin(sqrt(#z)) elseif @Fs=="coversin" k=1-sin(#z) elseif @Fs=="acoversin" k=asin(1-#z) elseif @Fs=="hacoversin" k=(1-sin(#z))/2 elseif @Fs=="vercos" k=1+cos(#z) elseif @Fs=="avercos" k=acos(1+#z) elseif @Fs=="havercos" k=(1+cos(#z))/2 elseif @Fs=="ahavercos" k=2*acos(sqrt(#z)) elseif @Fs=="covercos" k=1+sin(#z) elseif @Fs=="acovercos" k=asin(1+#z) elseif @Fs=="hacovercos" k=(1+sin(#z))/2 elseif @Fs=="acotan" k=atan(1/(#z)) elseif @Fs=="acotanh" k=atanh(1/(#z)) elseif @Fs=="sec" k=1/cos(#z) elseif @Fs=="sech" k=1/cosh(#z) elseif @Fs=="asec" k=acos(1/#z) elseif @Fs=="asech" k=acosh(1/#z) elseif @Fs=="cosec" k=1/sin(#z) elseif @Fs=="cosech" k=1/sinh(#z) elseif @Fs=="acosec" k=asin(1/#z) elseif @Fs=="acosech" k=asinh(1/#z) elseif @Fs=="exsec" k=1/cos(#z)-1 elseif @Fs=="aexsec" k= acos(1/(#z+1)) elseif @Fs=="excosec" k=1/sin(#z)-1 elseif @Fs=="aexcosec" k=asin(1/(#z+1)) elseif @Fs=="crd" k=2*sin(#z/2) elseif @Fs=="acrd" k=2*asin(#z/2) elseif @Fs=="gd" k=asin(tanh(#z)) elseif @Fs=="agd" k=asinh(tan(#z)) elseif @Fs=="sinc" k=sin(#z)/(#z) elseif @Fs=="sinhc" k=sinh(#z)/(#z) elseif @Fs=="cosc" k=cos(#z)/(#z) elseif @Fs=="coshc" k=cosh(#z)/(#z) elseif @Fs=="tanc" k=tan(#z)/(#z) elseif @Fs=="tanhc" k=tanh(#z)/(#z) elseif @Fs=="cotanc" k=cotan(#z)/(#z) elseif @Fs=="cotanhc" k=cotanh(#z)/(#z) elseif @Fs=="secc" k=1/(#z*cos(#z)) elseif @Fs=="sechc" k=1/(#z*cosh(#z)) elseif @Fs=="cosecc" k= 1/(#z*sin(#z)) elseif @Fs=="cosechc" k=1/(#z*sinh(#z)) elseif @Fs=="cube" k=#z^3 elseif @Fs=="cuberoot" k=#z^(1/3) elseif @Fs=="colog" k=-log(#z) elseif @Fs=="logit" k= log(#z/(1-#z)) elseif @Fs=="expit" k=1/(1+exp(-#z)) elseif @Fs=="gauss" k=exp(-sqr(#z)) elseif @Fs=="softplus" k=log(1+exp(#z)) elseif @Fs=="primecount" k=#z/log(#z) elseif @Fs=="sqr+" k=sqr(#z)+#z elseif @Fs=="cube+" k=#z^3+sqr(#z)+#z elseif @Fs=="sin+" k=sin(#z)+#z elseif @Fs=="cos+" k=cos(#z)+#z elseif @Fs=="tan+" k=tan(#z)+#z elseif @Fs=="cotan+" k=cotan(#z)+#z elseif @Fs=="sec+" k=1/cos(#z)+#z elseif @Fs=="cosec+" k=1/sin(#z)+#z elseif @Fs=="sin*" k=sin(#z)*#z elseif @Fs=="cos*" k=cos(#z)*#z elseif @Fs=="tan*" k=tan(#z)*#z elseif @Fs=="cotan*" k=cotan(#z)*#z elseif @Fs=="sec*" k=#z/cos(#z) elseif @Fs=="cosec*" k=#z/sin(#z) elseif @Fs=="loglog" k=log(log(#z)) elseif @Fs=="sinsin" k=sin(sin(#z)) elseif @Fs=="coscos" k=cos(cos(#z)) elseif @Fs=="+pixel" k=#z+pixel elseif @Fs=="-pixel" k=#z-pixel elseif @Fs=="*pixel" k=#z*pixel elseif @Fs=="/pixel" k=#z/pixel elseif @Fs=="ceil" k=ceil(#z) elseif @Fs=="floor" k=floor(#z) elseif @Fs=="trunc" k=trunc(#z) else k=round(#z) endif if i>=0 && i<=1E20 z=(k-p2)*exp(1i*pi/2*p3)/p4 float x=sqrt(p5)*real(z) float y=1/sqrt(p5)*imag(z) if @trap=="Alain Curve" b=abs((x^2-y^2)^2-@a^2*x^2+@a2^2*y^2) elseif @trap=="Ampersand Curve" b=abs((y^2-x^2)*(x-1)*(2*x-3)-4*(x^2+y^2-2*x)^2) elseif @trap=="Arcs of Samothrace" b=abs(x^2*(3*x^2-y^2)^2-y^2*(x^2+y^2)) elseif @trap=="Astroid" b=abs(x^(2/3)+y^(2/3)-@a^(2/3)) elseif @trap=="Atriphthaloid" b=abs(x^4*(x^2+y^2)-(@a2*x^2-@a^3)^2) elseif @trap=="Bean Curve" b=abs((x^2+y^2)^2-x^3-y^3) elseif @trap=="Bean Curve 2" b=abs(x^4+x^2*y^2+y^4-x*(x^2+y^2)) elseif @trap=="Beetle" b=abs((x^2+y^2)*(x^2+y^2-@a*x-@a2*y)-@a3^2*x^2*y^2) elseif @trap=="Biaxial Eight Reverse" b=abs(@a^2*y^2-x^2*(y^2-x^2)) elseif @trap=="Bicorn" b=abs(y^2*(@a^2-x^2)-(x^2+2*@a*y-@a^2)^2) elseif @trap=="Bicuspid" b=abs((x^2-@a^2)*(x-@a)^2+(y^2-@a^2)^2) elseif @trap=="Biquartic" b=abs(x^8+4*x^6*y+y^3*(y-1)+3*x^4*y*(2*y-3)+2*x^2*y^2*(2*y+3)) elseif @trap=="Blade's Cubic" b=abs(x^3+y^3-@a^3) elseif @trap=="Bolza" b=abs(y^2-x^5+x) elseif @trap=="Bow Curve" b=abs(x^4-(@a+1)*x^2*y+y^3) elseif @trap=="Bullet-Nose Curve" b=abs((@a^2-x^2)*(@a2^2+y^2)-@a^2*@a2^2) elseif @trap=="Butterfly Curve" b=abs(x^6+y^6-x^2) elseif @trap=="Butterfly Knot" b=abs((x^2+y^2)*x^4-(x^2-y^2)^2) elseif @trap=="Cardioid" b=abs((x^2+y^2-2*@a*x)^2-4*@a^2*(x^2+y^2)) elseif @trap=="Cartesian Oval" b=abs((@a2-3.2)*sqrt((x-@a)^2+y^2)+@a3*sqrt((x+@a)^2+y^2)-@a4) elseif @trap=="Cassinian Ovals" b=abs((x^2+y^2)^2-2*@a^2*(x^2-y^2)+@a^4-@a2^4) elseif @trap=="Catenary" b=abs(y-@a*cosh(x/@a)) elseif @trap=="Cayley's Sextic" b=abs(4*(x^2+y^2-@a*x)^3-27*@a^2*(x^2+y^2)^2) elseif @trap=="Cayley's Sextic 2" b=abs(-@a^3*x^3-48*@a*x*(x^2+y^2)^2+64*(x^2+y^2)^3-3*@a^2*(x^2+y^2)*(5*x^2+9*y^2)) elseif @trap=="Ceva's Trisectrix" b=abs((x^2+y^2)^3-((@a+1)*x^2-(@a-1)*y^2)^2) elseif @trap=="Chasles Cubic" b=abs(y-@a*x^3-@a2*x^2*y-@a3*x*y^2-@a4*y^3) elseif @trap=="Circle" b=abs(x^2+y^2-@a^2) elseif @trap=="Circular Cubic" b=abs(x*(x^2+y^2)+@a*x^2+@a2*y^2+2*@a3*x+2*@a4*y+@a5) elseif @trap=="Cissoid of Diocles" b=abs(y^2-x^3/(2*@a-x)) elseif @trap=="Cissoid of Diocles 2" b=abs(y^2*(2*@a-x)-x^8) elseif @trap=="Cissoid of Zahradnik" b=abs(@a3*x^2+2*@a4*x*y+(@a5+1)*y^2-2*@a*x-2*@a2*y) elseif @trap=="Clairaut Curve" b=abs((x^2+y^2)^((@a2+1)/2)-@a*y^@a2) elseif @trap=="Clinoid" b=abs(y-@a2*e^(x/@a)-@a3*e^(-x/@a)) elseif @trap=="Cochleoid" b=abs((x^2+y^2)*atan(y/x)-@a*y) elseif @trap=="Conchoid of a Circle" b=abs((x^2+y^2+@a3^2-@a2^2)^2*(y^2+(x+@a)^2)-4*@a3^2*(x*(x+@a)+y^2)^2) elseif @trap=="Conchoid of Nicomedes" b=abs((x-@a2)^2*(x^2+y^2)-@a^2*x^2) elseif @trap=="Conchoid of de Sluze" b=abs(@a*(x+@a)*(x^2+y^2)-@a2^2*x^2) elseif @trap=="Conic Sections" b=abs(2*@a^2*x+(1-@a^2)*x^2+y^2-@a^2) elseif @trap=="Cornoid" b=abs((x^2+y^2)^3+@a^2*(3*x^4-6*x^2*y^2-5*y^4)+8*@a^4*y^2-4*@a^6) elseif @trap=="Cornoid 2" b=abs(x^6+y^6+3*x^4*y^2+3*x^2*y^4+3*x^4-5*y^4+8*y^2-4) elseif @trap=="Coscoid" b=abs(y-@a*cos(x)/x) elseif @trap=="Cosecantoid" b=abs(y-@a/sin(x/@a2)) elseif @trap=="Cosinusoid" b=abs(y-@a*cos(x/@a2)) elseif @trap=="Cotangentoid" b=abs(y-@a*cotan(x/@a2)) elseif @trap=="Cross Curve" b=abs(@a^2*y^2+@a2^2*x^2-x^2*y^2) elseif @trap=="Cubic Joint" b=abs(y^2*x-@a*y^2-@a2*x^2) elseif @trap=="Cubic of Apollonius" b=abs((x-2*@a)*(x^2+y^2)+@a2^2*(cos(2*@a3*x)+sin(2*@a3*y))) elseif @trap=="Curve of Cramer" b=abs(x*(x^2+y^2)+(@a+1+@a2)*x^2-(@a+1-@a2)*y^2) elseif @trap=="Curve of Jefabek" b=abs((@a2+1)^2*(x^2+y^2-@a*x)^2-@a^2*(x^2+y^2)*(x-@a)^2) elseif @trap=="Curve of Loriga" b=abs(3*x^2-y^2-@a^2) elseif @trap=="Curve of Rosillo" b=abs(y^2*(@a3-x)^2-(@a2-x)^2*(@a^2-x^2)) elseif @trap=="Deltoid" b=abs((x^2+y^2+12*@a*x+9*@a^2)-4*@a*(2*x+3*@a)^3) elseif @trap=="Deltoid 2" b=abs((x^2+y^2)^2+18*@a^2*(x^2+y^2)-27*@a^4-8*@a*x*(x^2-3*y^2)) elseif @trap=="Devil's Curve" b=abs(y^4-x^4+@a*y^2+@a2*x^2) elseif @trap=="Devil's Curve 2" b=abs(y^4-x^4-@a^2*y^2+@a2^2*x^2) elseif @trap=="Dipole Curve" b=abs((x^2+y^2)^3-@a^4*x^2) elseif @trap=="Double Egg" b=abs((x^2+y^2)^3-@a^2*x^4) elseif @trap=="Double Egg 2" b=abs(x^4+2*x^2*y^2+4*y^4-x^3-6*x^2-x*y^2) elseif @trap=="Double Folium" b=abs((x^2+y^2)^2-4*@a*x*y^2) elseif @trap=="Double U" b=abs(y^2*(@a^2-x^2)-@a^4) elseif @trap=="Dumbbell Curve" b=abs(@a2^4*y^2-x^4*(@a^2-x^2)) elseif @trap=="Duplicatrix Cubic" b=abs(@a*y^2-x^2*(x-@a)) elseif @trap=="Durer's Conchoid" b=abs((x^2+x*y+@a*x-@a2^2)^2-(@a2^2-x^2)*(x-y+@a)^2) elseif @trap=="Durer's Conchoid 2" b=abs(2*y^2*(x^2+y^2)-2*@a2*y^2*(x+y)+(@a2^2-3*@a^2)*y^2-@a^2*x^2+2*@a^2*@a2*(x+y)+@a^2*(@a^2-@a2^2)) elseif @trap=="Dwulistne" b=abs((x^2+y^2)^2-(@a*x+@a2*y)*x^2) elseif @trap=="Egg of Columbus" b=abs(y^4+10*y^2*x^2+5*x^4-y) elseif @trap=="Egg of Granville" b=abs(x^2*y^2-@a^2*(x-(@a2+1-@a3))*(@a2+1+@a3-x)) elseif @trap=="Egg of Granville 2" b=abs(x^2*y^2-(x-(@a+0.5))*(1-x)) elseif @trap=="Egg of Kepler" b=abs((x^2+y^2)^2-@a*x^3) elseif @trap=="Eight Curve" b=abs(x^4-@a^2*(x^2-y^2)) elseif @trap=="Elkies Trinomial Curve" b=abs(y^2-x*(81*x^5+396*x^4+738*x^3+660*x^2+269*x+48)) elseif @trap=="Ellipse" b=abs(x^2/@a^2+y^2/@a2^2-1) elseif @trap=="Fish Curve" b=abs((2*x^2+y^2)^2+2*sqrt(2)*@a*x*(2*x^2-3*y^2)+2*@a^2*(y^2-x^2)) elseif @trap=="Focal Conic Conchoid" b=abs((x^2+y^2-@a*@a2*x)^2-(x^2+y^2)*(@a2*x-(@a+1))^2) elseif @trap=="Folium" b=abs((x^2+y^2)*(y^2+x*(x+@a2))-4*@a*x*y^2) elseif @trap=="Folium of Descartes" b=abs(x^3+y^3-3*@a*x*y) elseif @trap=="Folium of Durer" b=abs((x^2+y^2)*(2*(x^2+y^2)-@a^2)^2-@a^4*x^2) elseif @trap=="Frequency Curve" b=abs(y-sqrt(2*pi)*exp(-x^2/2)) elseif @trap=="Heart Curve" b=abs((x^3+y^2-1)^3-x^2*y^3) elseif @trap=="Heart of Eugene Beutel" b=abs((x^2+y^2-1)^3-x^2*y^3) elseif @trap=="Heart of Raphael Laporte" b=abs(x^8-x^6+27*x^4-27*x^2+12*y*x^6-12*y*x^4+42*y^2*x^4+42*y^2*x^2+2*y^3*x^4+26*y^3*x^2+8*y^3+12*y^4*x^2+12*y^4+6*y^5+y^6) elseif @trap=="Hippopede" b=abs((x^2+y^2)^2-@a*x^2-@a2*y^2) elseif @trap=="Hippopede of Proclus" b=abs((x^2+y^2)^2+4*@a2*(@a2-@a)*(x^2+y^2)-4*@a2^2*x^2) elseif @trap=="Hoerl Curve" b=abs(y-x^@a*e^x) elseif @trap=="Humbert's Cubic" b=abs(x^3-3*x*y^2-@a^3) elseif @trap=="Hyperbola" b=abs(x^2/@a^2-y^2/@a2^2-1) elseif @trap=="Hyperbola 2" b=abs(x^2/@a^2-y^2/@a2^2+1) elseif @trap=="Hyperbolic Cosecantoid" b=abs(y-@a/sinh(x/@a2)) elseif @trap=="Hyperbolic Cosinusoid" b=abs(y-@a*cosh(x/@a2)) elseif @trap=="Hyperbolic Cotangentoid" b=abs(y-@a*cotanh(x/@a2)) elseif @trap=="Hyperbolic Secantoid" b=abs(y-@a/cosh(x/@a2)) elseif @trap=="Hyperbolic Sinusoid" b=abs(y-@a*sinh(x/@a2)) elseif @trap=="Hyperbolic Tangentoid" b=abs(y-tanh(@a*x)) elseif @trap=="Hyperelliptic Curve" b=abs(y^2-x*(x+1)*(x-3)*(x+2)*(x-2)) elseif @trap=="Illumination Curve" b=abs(y^2-recip((x^2+1)^3)) elseif @trap=="Inverse Nephroid" b=abs((@a^2-4*(x^2+y^2))^3-108*@a^2*x^2*(x^2+y^2)) elseif @trap=="Isoptic Curve" b=abs(tan(@a)^2*(x+pi/2)^2-y^2+2*@a2*x) elseif @trap=="Kampyle of Eudoxus" b=abs(@a^2*x^4-@a2^4*(x^2+y^2)) elseif @trap=="Kappa Curve" b=abs(y^2*(x^2+y^2)-@a^2*x^2) elseif @trap=="Kepler's Folium" b=abs(((x-@a2)^2+y^2)*(x*(x-@a2)+y^2)-4*@a*(x-@a2)*y^2) elseif @trap=="Kiepert Curve" b=abs((x^2+y^2)^3-@a^3*x*(x^2-3*y^2)) elseif @trap=="Kieroid" b=abs(y^2*(x-@a)^2+x^2*(x-@a2)^2-@a3^2*x^2) elseif @trap=="Kiss Curve" b=abs(@a^4*y^2-(@a^2-x^2)^3) elseif @trap=="Klein Quartic" b=abs((x^2+y^2-@a2*@a^2)^2-@a3*@a*(y-@a+sqrt(3)*x)*(y-@a-sqrt(3)*x)*(2*y+@a)) elseif @trap=="Kulp Quartic" b=abs(x^2*y^2-@a^2*(@a^2-y^2)) elseif @trap=="Lemniscate of Bernoulli" b=abs((x^2+y^2)^2-@a^2*(x^2-y^2)) elseif @trap=="Lemniscate of Booth" b=abs((x^2+y^2)^2-(2*@a^2+@a2)*x^2+(2*@a^2-@a2)*y^2) elseif @trap=="Limacon of Pascal" b=abs((x^2+y^2-@a*y)^2-(x^2+y^2)) elseif @trap=="Limacon of Pascal 2" b=abs((x^2+y^2-@a*x)^2-@a2^2*(x^2+y^2)) elseif @trap=="Links Curve" b=abs((x^2+y^2-3*x)^2-4*x^2*(2-x)) elseif @trap=="Lissajous Curve" b=abs(2*(2*x^2-@a^2)^2-@a*(2*y-@a)^2*(y+@a)) elseif @trap=="Lissajous Curve 2" b=abs(x^2*(4*x^2-3*@a^2)+4*@a^2*y^2*(y^2-@a^2)) elseif @trap=="Lissajous Quadratic" b=abs(@a^4*y^4-4*@a^3*@a2*x*y^3+2*@a^2*@a2*y^3+6*@a^2*@a2^2*x^2*y^2 \ -4*@a*@a2^2*x*y^2-2*@a^3*x*y^2-2*@a^2*@a2^2*y^2+@a2^2*y^2+@a^2*y^2 \ -4*@a*@a2^3*x^3*y+2*@a2^3*x^2*y+4*@a^2*@a2*x^2*y+4*@a*@a2^3*x*y \ -2*@a2^3*y-4*@a^2*@a2*y+@a2^4*x^4-2*@a*@a2^2*x^3-2*@a2^4*x^2 \ +@a2^2*x^2+@a^2*x^2+2*@a*@a2^2*x-@a^2-@a2^2+@a2^4) elseif @trap=="Logarithmic Lemniscate" b=abs(y^2-x^2*log(@a^2/x^2)) elseif @trap=="Logarithmic Sinusoid" b=abs(y-log(sqrt(1-x^2))) elseif @trap=="Logistic Growth Curve" b=abs(y-recip(1+@a*e^x)) elseif @trap=="Maltese Cross Curve" b=abs(x*y*(x^2-y^2)-x^2-y^2) elseif @trap =="Neile's Semi-Cubical Parabola" b=abs(y^3-@a*x^2) elseif @trap =="Neile's Semi-Cubical Parabola 2" b=abs((x-0.5)^3-3*y^2) elseif @trap=="Nephroid" b=abs((x^2+y^2-4*@a^2)^3-108*@a^4*x^2) elseif @trap=="Nephroid of Freeth" b=abs((x^2+y^2)*(x*2+y^2-@a^2)^2-4*@a^2*(x^2+y^2-@a*x)^2) elseif @trap=="Newton's Diverging Parabolas" b=abs(@a*y^2-x*(x^2-2*@a2*x+@a3)) elseif @trap=="Newton's Diverging Parabolas 2" b=abs(y^2-x*(x^2+2*@a*x+@a2)) elseif @trap=="Nodal Curve" b=abs(x^2*y^2*(x^2+y^2)-(x^2-y^2)^2) elseif @trap=="Oblique Bifolium" b=abs((x^2+y^2)^2-x^2*(@a*x+@a2*y)) elseif @trap=="Oblique Cappa" b=abs((x^2+y^2)*y^2-@a^2*(x*sin(@a2)+y*cos(@a2))^2) elseif @trap=="Oblique Cissoid" b=abs((x^2+y^2)*(x*cos(@a2)+y*sin(@a2))-2*@a*y^2) elseif @trap=="Oblique Pancappa" b=abs((y-@a)^2*(x^2+y^2)-(@a2*x+@a3*y)^2) elseif @trap=="Oblique Strophoid" b=abs(y*(x^2+y^2)-@a*(x^2-y^2)-2*@a2*x*y) elseif @trap=="Ophiuride" b=abs(x*(x^2+y^2)-@a2*x*y-@a*y^2) elseif @trap=="Parabola" b=abs(4*@a*(x-@a2)-(y-@a3)^2) elseif @trap=="Parabola 2" b=abs(x-@a*(y-@a2)^2-@a3) elseif @trap=="Parabola 3" b=abs(y-@a*x^2-@a2*x-@a3) elseif @trap=="Parabolic Trifolium" b=abs(x^2*(x^2+y^2)-(@a+5)*y*(x^2-y^2)) elseif @trap=="Pear-Shaped Quartic" b=abs(@a2^2*y^2-x^3*(@a-x)) elseif @trap=="Pearls of Sluze" b=abs(y^(@a2+1)-@a3*(@a-x)^@a4*x^@a5) elseif @trap=="Pursuit Curve" b=abs(y-@a*x^2+log(x)) elseif @trap=="Pursuit Curve 2" b=abs(y-@a*x+log(x)) elseif @trap=="Quadratix of Hippias" b=abs(x-y*cotan(y/@a)) elseif @trap=="Quadrifolium" b=abs((x^2+y^2)^3-4*@a^2*x^2*y^2) elseif @trap=="Regular Trifolium" b=abs((x^2+y^2)^2-@a*x*(x^2-3*y^2)) elseif @trap=="Right Strophoid" b=abs(y^2-x^2*(@a-x)/(@a+x)) elseif @trap=="Rose Curve" b=abs(x-@a*sin(@a2*y)) elseif @trap=="Rose Curve 2" b=abs(x-@a*cos(@a2*y)) elseif @trap=="Satchel" b=abs((x^2-@a2*y)^2-@a^2*(x^2-y^2)) elseif @trap=="Scarab" b=abs((x^2+y^2)*(x^2+y^2+@a*x)^2-@a2^2*(x^2-y^2)^2) elseif @trap=="Scyphoid" b=abs(x^4-y^4-4*@a*x*y^2) elseif @trap=="Secantoid" b=abs(y-@a/cos(x/@a2)) elseif @trap=="Seccoid" b=abs(y-@a2/(x*cos(x))) elseif @trap=="Semi-Trident" b=abs(x*y^2-@a*x) elseif @trap=="Serpentine Curve" b=abs(y-@a*@a2*x/(x^2+@a^2)) elseif @trap=="Sincoid" b=abs(y-@a*sin(x)/x) elseif @trap=="Sinus Chain" b=abs(y^2-abs(sin(x)+0.1*sin(2*x))) elseif @trap=="Sinusoid" b=abs(y-@a*sin(x/@a2)) elseif @trap=="Spiric Curve" b=abs((x^2+y^2)^2+(@a-2)*x^2+@a2*y^2+2*@a3*x+@a4) elseif @trap=="Spiric of Perseus" b=abs((x^2+y^2)^2-2*@a*x^2-2*@a2*y^2+@a3) elseif @trap=="Spiric Sections" b=abs((@a3^2-@a^2+@a2^2+x^2+y^2)^2-4*@a3^2*(x^2+@a2^2)) elseif @trap=="Superellipse" b=abs((x/@a)^@a3+(y/@a2)^@a3-1) elseif @trap=="Superellipse 2" b=abs(cabs((x-@a)/@a3)^@a4+cabs((y-@a2)/@a3)^@a4-1) elseif @trap=="Swastika Curve" b=abs(2*x*y-x^4+y^4) elseif @trap=="Syntractrix" b=abs(x+sqrt((@a2+1)^2-y^2)-@a*log(((@a2+1)+sqrt((@a2+1)^2-y^2))/y)) elseif @trap=="Szego Curve" b=abs(x^2+y^2-e^(2*x-2)) elseif @trap=="Tancoid" b=abs(y-@a*tan(x)/x) elseif @trap=="Tangentoid" b=abs(y-@a*tan(x/@a2)) elseif @trap=="Tetracuspid" b=abs(@a^@a2*(cabs(x)^@a2+cabs(y)^@a2)-(x^2+y^2)^@a2) elseif @trap=="Torpedo" b=abs((x^2+y^2)^2-@a*x*(x^2-y^2)) elseif @trap=="Tractrix" b=abs(x-log(((@a+1)-sqrt((@a+1)^2-y^2))/y)-sqrt((@a+1)^2-y^2)) elseif @trap=="Trident" b=abs(y-x^2-@a/x) elseif @trap=="Trident 2" b=abs(x*y+@a*x^3+@a2*x^2+@a3*x-@a4) elseif @trap=="Trifolium" b=abs((x^2+y^2)^2-(x^2+y^2)*(@a*x+@a2*y)-@a3*x*(x^2-3*y^2)) elseif @trap=="Trifolium 2" b=abs((x^2+y^2)^2-(@a*x+@a2*y)*(x^2-y^2)) elseif @trap=="Trisectrix of Delange" b=abs((x^2+y^2-2*@a^2)^2-x^2*(x^2+y^2)) elseif @trap=="Trisectrix of Maclaurin" b=abs(y^2*(@a+x)-x^2*(3*@a-x)) elseif @trap=="Trisectrix of Maclaurin 2" b=abs(2*x^3+2*x*y^2-3*x^2+y^2) elseif @trap=="Trott Curve" b=abs(144*(x^4+y^4)-225*(x^2+y^2)+350*x^2*y^2+81) elseif @trap=="Tschirnhaus' Cubic" b=abs(3*@a*y^2-x*(x-@a)^2) elseif @trap=="Tschirnhaus' Cubic 2" b=abs(27*@a*y^2-(@a-x)*(x+8*@a)^2) elseif @trap=="Visiera" b=abs(x*(x^2+y^2)-@a*(x^2+2*y^2)) elseif @trap=="Viviani's Curve" b=abs(y^2-x^2*(@a^2-x^2)) elseif @trap=="Watt's Curve" b=abs((x^2+y^2)*(x^2+y^2-@a3^2)^2+4*@a^2*y^2*(x^2+y^2-@a2^2)) elseif @trap=="Witch of Agnesi" b=abs(y-8*@a^3/(x^2+4*@a^2)) elseif @trap=="OM1" b=abs((x^2+y^2)^3-@a*x*(x-@a)+y*(y+@a)) elseif @trap=="OM2" b=abs((x^2-y^2)*(x^2+y^2)^2-2*@a*x*y*(x-@a^2)) elseif @trap=="OM3" b=abs(@a*sin(x^2+y^2)+@a2*x*(x^2-y^2)-2*@a*x*y*(@a^2-@a2^2)) elseif @trap=="OM4" b=abs(recip(@a*(x^2-1))*@a2^2*x*tanh(@a*(y^2-1))-@a*@a2*(x*y+1)) elseif @trap=="OM5" b=abs(x+y^2+@a*x^3+@a2*y^4+@a^2*@a2^2*x^5*y^5) elseif @trap=="OM6" b=abs(sin(x)^3+sin(y)^3-@a) elseif @trap=="OM7" b=abs(x^(2/3)+(@a*y)^(2/3)+(@a^2*x*y)^(2/3)-@a^3) elseif @trap=="OM8" b=abs((x^2-@a^2)*(x-@a)+(y^2-@a^2)^2) elseif @trap=="OM9" b=abs((x^2-(@a-0.5)^2)*(x-(@a-0.5))^2+(y^2-(@a-0.5)^2)^3) elseif @trap=="OM10" b=abs((x^2-@a^2)*(x-@a)^3+(y^2-@a2^2)^2) elseif @trap=="OM11" b=abs(((@a*@a2-x)^2+(@a2-y)^2)/@a3^2-1) elseif @trap=="OM12" b=abs((x^2+y^2)^2-@a/(x^2-y^2)) elseif @trap=="OM13" b=abs((x^2+y^2)^4-@a*(x^2+y^2)^3+(x^2+y^2)^2-(x^2+y^2)+y-(1-@a2)) elseif @trap=="OM14" b=abs((2*@a)^@a2*y^2-(@a+x)*(@a-x)^(@a2+1)) elseif @trap=="OM15" b=abs((x^2+y^2)^5+@a*(x^2-y^2)^3-@a^2*y) elseif @trap=="OM16" b=abs(@a*y-@a2/(x*cos(x))+@a3/(x*cos(y))) elseif @trap=="OM17" b=abs((x^2+y^2)*(x^2-y^2)/(2*@a*x*y)+(@a-1)) elseif @trap=="OM18" b=abs(y^2+@a*x^3*tanh(x^2-y^2)-x^2*y*(x^2+y^2)) elseif @trap=="OM19" b=abs(((@a*@a2-x*y)^3+(@a2*@a3-(X^2+y^2)^2))) elseif @trap=="OM20" b=abs(y^2+x^2-((x+(@a3*(x-@a))/sqrt((x-@a)^2+(y-@a2)^2))-(y+(@a3*(y-@a2))/sqrt((x-@a)^2+(y-@a2)^2)))) elseif @trap=="OM21" b=abs(x^2-4*@a*y*(x^2+y^2)+y^3*@a^2*(x^2-y^2)^4) elseif @trap=="OM22" b=abs(y-x*(x^4-@a)*(x^2+y^2)^2) elseif @trap=="OM23" b=abs((x^3-x^2-(3*x+@a)*y^2)*(x^3-x^2+(3*x+@a)*y^2)) endif b2=cabs(z)+@f b=abs(b^(0.01*@pow1)-b2^0.01)^2 a=b/(cabs(z)+1)^@pow2+a endif final: ;#index=1000*a if @solid if @invert if 1000*a<@p7 #index=a else #solid=true endif else if 1000*a>@p7 #index=1000*a else #solid=true endif endif else #index=1000*a endif default: title="Diet Traps" param trap caption="Trapshape" default=0 enum="Alain Curve""Ampersand Curve""Arcs of Samothrace""Astroid""Atriphthaloid""Bean Curve""Bean Curve 2"\ "Beetle""Biaxial Eight Reverse""Bicorn""Bicuspid""Biquartic""Blade's Cubic"\ "Bolza""Bow Curve""Bullet-Nose Curve""Butterfly Curve""Butterfly Knot"\ "Cardioid""Cartesian Oval""Cassinian Ovals""Catenary""Cayley's Sextic""Cayley's Sextic 2""Ceva's Trisectrix"\ "Chasles Cubic""Circle""Circular Cubic""Cissoid of Diocles""Cissoid of Diocles 2""Cissoid of Zahradnik"\ "Clairaut Curve""Clinoid""Cochleoid""Conchoid of a Circle""Conchoid of Nicomedes""Conchoid of de Sluze"\ "Conic Sections""Cornoid""Cornoid 2""Coscoid""Cosecantoid""Cosinusoid""Cotangentoid""Cross Curve""Cubic Joint""Cubic of Apollonius"\ "Curve of Cramer""Curve of Jefabek""Curve of Loriga""Curve of Rosillo""Deltoid""Deltoid 2"\ "Devil's Curve""Devil's Curve 2""Dipole Curve""Double Egg""Double Egg 2""Double Folium"\ "Double U""Dumbbell Curve""Duplicatrix Cubic""Durer's Conchoid""Durer's Conchoid 2""Dwulistne""Egg of Columbus"\ "Egg of Granville""Egg of Granville 2""Egg of Kepler""Eight Curve""Elkies Trinomial Curve""Ellipse"\ "Fish Curve""Focal Conic Conchoid""Folium""Folium of Descartes""Folium of Durer""Frequency Curve"\ "Heart Curve""Heart of Eugene Beutel""Heart of Raphael Laporte""Hippopede""Hippopede of Proclus"\ "Hoerl Curve""Humbert's Cubic""Hyperbola""Hyperbola 2""Hyperbolic Cosecantoid""Hyperbolic Cosinusoid"\ "Hyperbolic Cotangentoid""Hyperbolic Secantoid""Hyperbolic Sinusoid""Hyperbolic Tangentoid"\ "Hyperelliptic Curve""Illumination Curve""Inverse Nephroid""Isoptic Curve""Kampyle of Eudoxus"\ "Kappa Curve""Kepler's Folium""Kiepert Curve""Kieroid""Kiss Curve""Klein Quartic""Kulp Quartic"\ "Lemniscate of Bernoulli""Lemniscate of Booth""Limacon of Pascal""Limacon of Pascal 2"\ "Links Curve""Lissajous Curve""Lissajous Curve 2""Lissajous Quadratic""Logarithmic Lemniscate"\ "Logarithmic Sinusoid""Logistic Growth Curve""Maltese Cross Curve""Neile's Semi-Cubical Parabola""Neile's Semi-Cubical Parabola 2""Nephroid"\ "Nephroid of Freeth""Newton's Diverging Parabolas""Newton's Diverging Parabolas 2""Nodal Curve""Oblique Bifolium""Oblique Cappa"\ "Oblique Cissoid""Oblique Pancappa""Oblique Strophoid""Ophiuride""Parabola""Parabola 2""Parabola 3"\ "Parabolic Trifolium""Pear-Shaped Quartic""Pearls of Sluze""Pursuit Curve""Pursuit Curve 2"\ "Quadratix of Hippias""Quadrifolium""Regular Trifolium""Right Strophoid""Rose Curve""Rose Curve 2""Satchel"\ "Scarab""Scyphoid""Secantoid""Seccoid""Semi-Trident""Serpentine Curve""Sincoid""Sinus Chain""Sinusoid" \ "Spiric Curve""Spiric of Perseus""Spiric Sections""Superellipse"\ "Superellipse 2""Swastika Curve""Syntractrix""Szego Curve""Tancoid""Tangentoid""Tetracuspid""Torpedo""Tractrix"\ "Trident""Trident 2""Trifolium""Trifolium 2""Trisectrix of Delange""Trisectrix of Maclaurin""Trisectrix of Maclaurin 2"\ "Trott Curve""Tschirnhaus' Cubic""Tschirnhaus' Cubic 2""Visiera""Viviani's Curve""Watt's Curve""Witch of Agnesi""OM1"\ "OM2""OM3""OM4""OM5""OM6""OM7""OM8""OM9""OM10""OM11""OM12""OM13""OM14""OM15""OM16""OM17""OM18""OM19""OM20""OM21""OM22""OM23" endparam param Fs caption="Function" enum="sin""sinh""asin""asinh""cos""cosh""acos""acosh""tan""tanh""atan"\ "atanh""cotan""cotanh""sqr""sqrt""log""exp""abs""cabs""conj"\ "flip""ident""recip""versin""aversin""haversin""ahaversin""coversin""acoversin"\ "hacoversin""vercos""avercos""havercos""ahavercos""covercos"\ "acovercos""hacovercos""acotan""acotanh" \ "sec""sech""asec""asech""cosec""cosech""acosec""acosech""exsec""aexsec"\ "excosec""aexcosec""crd""acrd""gd""agd""sinc""sinhc""cosc""coshc"\ "tanc""tanhc""cotanc""cotanhc""secc""sechc""cosecc""cosechc"\ "cube""cuberoot""colog""logit""expit""gauss""softplus"\ "primecount""sqr+""cube+""sin+""cos+""tan+""cotan+""sec+""cosec+""sin*""cos*""tan*""cotan*""sec*"\ "cosec*""loglog""sinsin""coscos""+pixel""-pixel"\ "*pixel""/pixel""ceil""floor""trunc""round" default=22 endparam param a caption="Trapshape Parameter" default=1.0 visible=@trap!="Frequency Curve" \ && @trap!="Arcs of Samothrace" && @trap!="Illumination Curve" \ && @trap!="Logarithmic Sinusoid" \ && @trap!="Elkies Trinomial Curve" && @trap!="Bolza" \ && @trap!="Hyperelliptic Curve" \ && @trap!="Maltese Cross Curve" && @trap!="Ampersand Curve" \ && @trap!="Heart of Eugene Beutel" && @trap!="Heart of Raphael Laporte" \ && @trap!="Butterfly Knot" && @trap!="Trott Curve" && @trap!="Swastika Curve" \ && @trap!="Biquartic" && @trap!="Butterfly Curve" && @trap!="Bean Curve" \ && @trap!="Bean Curve 2" && @trap!="Egg of Columbus" && @trap!="Sinus Chain" \ && @trap!="Szego Curve" && @trap!="Links Curve" && @trap!="Double Egg 2" \ && @trap!="Heart Curve" && @trap!="Cornoid 2" \ && @trap!="Nodal Curve" && @trap!="Trisectrix of Maclaurin 2" \ && @trap!="Neile's Semi-Cubical Parabola 2" endparam param a2 caption="Trapshape Parameter 2" default=1.0 visible=@trap=="Cartesian Oval" || @trap=="Conchoid of de Sluze" \ || @trap=="Ellipse" || @trap=="Folium" || @trap=="Kampyle of Eudoxus" \ || @trap=="Superellipse" || @trap=="Newton's Diverging Parabolas" \ || @trap=="Pearls of Sluze" || @trap=="Spiric Sections" \ || @trap=="Bullet-Nose Curve" \ || @trap=="Dwulistne" || @trap=="Cubic Joint" || @trap=="Syntractrix" \ || @trap=="Oblique Strophoid" || @trap=="Superellipse 2" || @trap=="Oblique Cissoid" \ || @trap=="Hippopede" || @trap=="Oblique Pancappa" || @trap=="Oblique Cappa" \ || @trap=="Oblique Bifolium" || @trap=="Lemniscate of Booth" \ || @trap=="Curve of Jefabek" || @trap=="Curve of Cramer" \ || @trap=="OM3" || @trap=="OM4" || @trap=="OM5" || @trap=="Hippopede of Proclus" \ || @trap=="OM11" || @trap=="Cissoid of Zahradnik" \ || @trap=="Rose Curve" || @trap=="Rose Curve 2" || @trap=="Cassinian Ovals" \ || @trap=="Conchoid of Nicomedes" || @trap=="Devil's Curve" || @trap=="Durer's Conchoid" \ || @trap=="Devil's Curve 2" || @trap=="Durer's Conchoid 2" || @trap=="Hyperbola" \ || @trap=="Parabola" || @trap=="Hyperbola 2" \ || @trap=="Pear-Shaped Quartic" || @trap=="Serpentine Curve" || @trap=="Sinusoid"\ || @trap=="Trident 2" || @trap=="Atriphthaloid" || @trap=="Clairaut Curve" || @trap=="Clinoid" \ || @trap=="Cross Curve" || @trap=="Cubic of Apollonius" || @trap=="Chasles Cubic" || @trap=="Circular Cubic" \ || @trap=="Dumbbell Curve" || @trap=="Kieroid"\ || @trap=="Egg of Granville" || @trap=="Curve of Rosillo" || @trap=="OM13" || @trap=="Ophiuride" \ || @trap=="Klein Quartic" || @trap=="Tangentoid" || @trap=="Beetle" || @trap=="Secantoid" || @trap=="Hyperbolic Secantoid" \ || @trap=="Spiric Curve" || @trap=="Spiric of Perseus" || @trap=="Tetracuspid" || @trap=="Trifolium" \ || @trap=="Trifolium 2" || @trap=="OM14" || @trap=="OM10" || @trap=="Isoptic Curve" || @trap=="Cotangentoid" \ || @trap=="Cosinusoid" || @trap=="Hyperbolic Cosinusoid" || @trap=="Cosecantoid" || @trap=="Hyperbolic Cosecantoid" \ || @trap=="Hyperbolic Sinusoid" || @trap=="Hyperbolic Cotangentoid" || @trap=="OM16" || @trap=="Alain Curve" \ || @trap=="OM19" || @trap=="OM20" || @trap=="Focal Conic Conchoid" || @trap=="Conchoid of a Circle" || @trap=="Satchel" \ || @trap=="Kepler's Folium" || @trap=="Parabola 2" || @trap=="Parabola 3" || @trap=="Scarab" || @trap=="Lissajous Quadratic" \ || @trap=="Watt's Curve" || @trap=="Limacon of Pascal 2" || @trap=="Newton's Diverging Parabolas 2" endparam param a3 caption="Trapshape Parameter 3" default=1.0 visible=@trap=="Cartesian Oval" || @trap=="Superellipse" || @trap=="Newton's Diverging Parabolas" \ || @trap=="Pearls of Sluze" || @trap=="Spiric Sections" || @trap=="Superellipse 2" \ || @trap=="Oblique Pancappa" || @trap=="OM11" || @trap=="Cissoid of Zahradnik" \ || @trap=="Parabola" \ || @trap=="Trident 2" || @trap=="Clinoid" || @trap=="Cubic of Apollonius" || @trap=="Chasles Cubic" \ || @trap=="Circular Cubic" || @trap=="Kieroid" || @trap=="Egg of Granville" || @trap=="Curve of Rosillo" \ || @trap=="Klein Quartic" || @trap=="Beetle" || @trap=="Spiric Curve" || @trap=="Spiric of Perseus" \ || @trap=="Trifolium" || @trap=="OM16" || @trap=="OM19" || @trap=="OM20" || @trap=="Conchoid of a Circle" \ || @trap=="Parabola 2" || @trap=="Parabola 3" || @trap=="Watt's Curve" endparam param a4 caption="Trapshape Parameter 4" default=1.0 visible=@trap=="Pearls of Sluze" || @trap=="Superellipse 2" || @trap=="Cissoid of Zahradnik" \ || @trap=="Trident 2" || @trap=="Cartesian Oval" || @trap=="Chasles Cubic" \ || @trap=="Circular Cubic" || @trap=="Spiric Curve" endparam param a5 caption="Trapshape Parameter 5" default=1.0 visible=@trap=="Pearls of Sluze" || @trap=="Cissoid of Zahradnik" \ || @trap=="Circular Cubic" endparam param p4 caption="Parameter 1" default=1.0 endparam param p5 caption="Parameter 2" default=1.0 endparam param f caption="Parameter 3" default=1.0 endparam param p2 caption="Center" default=(0,0) endparam param p3 caption="Rotation" default=0.0 endparam param pow1 caption="Exponent 1" default=.2 endparam param pow2 caption="Exponent2" default=1.0 endparam param solid caption="Solid Colour" default=false endparam param p7 caption="Solid Colour Adjustment" default=0.5 visible=@solid==true endparam param invert caption="Invert Solid Colour" default=false visible=@solid==true endparam } Alurula { ; This is a modification of Fractional Brownian Motion II by Damien Jones (dmj.ucl) init: float a=0.0 loop: if @F1=="sqr" z=sqr(#z) elseif @F1=="log" z=log(#z) elseif @F1=="conj" z=conj(#z) elseif @F1=="flip" z=flip(#z) elseif @F1=="ident" z=ident(#z) else z=recip(#z) endif if @S==true z=abs(z) else z=z endif x=real(z) y=imag(z) if @V=="I" z=x+@Ap1*sin(@Ap2*y)+flip(y+@Ap3*sin(@Ap4*x)) elseif @V=="II" z=x+@Ap1*cos(@Ap2*y)+flip(y+@Ap3*cos(@Ap4*x)) elseif @V=="III" z=x+@Ap1*tan((@Ap2+(0,1))*y)+flip(y+@Ap3*tan((@Ap4+(0,1))*x)) elseif @V=="IV" z=sin(x)+@Ap1*sin(@Ap2*sin(y))+flip(sin(y)+@Ap3*sin(@Ap4*sin(x))) elseif @V=="V" z=cos(x)+@Ap1*cos(@Ap2*cos(y))+flip(cos(y)+@Ap3*cos(@Ap4*cos(x))) elseif @V=="VI" z=tan(x+(0,1))+@Ap1*tan((@Ap2+(0,1))*tan(y+(0,1)))+flip(tan(y+(0,1))+@Ap3*tan((@Ap4+(0,1))*tan(x))) elseif @V=="VII" z=x+@Ap1*sin(@Ap2*y)+flip(y+@Ap3*cos(@Ap4*x)) elseif @V=="VIII" z=x+@Ap1*cos(@Ap2*y)+flip(y+@Ap3*sin(@Ap4*x)) elseif @V=="IX" z=x+@Ap1*sin(@Ap2*y)+flip(y+@Ap3*tan((@Ap4+(0,1))*x)) elseif @V=="X" z=x+@Ap1*tan((@Ap2+(0,1))*y)+flip(y+@Ap3*sin(@Ap4*x)) elseif @V=="XI" z=x+@Ap1*cos(@Ap2*y)+flip(y+@Ap3*tan((@Ap4+(0,1))*x)) elseif @V=="XII" z=x+@Ap1*tan((@Ap2+(0,1))*y)+flip(y+@Ap3*cos(@Ap4*x)) elseif @V=="XIII" z=sin(x)+@Ap1*sin(@Ap2*sin(y))+flip(sin(y)+@Ap3*cos(@Ap4*sin(x))) elseif @V=="XIV" z=sin(x)+@Ap1*cos(@Ap2*sin(y))+flip(sin(y)+@Ap3*sin(@Ap4*sin(x))) elseif @V=="XV" z=cos(x)+@Ap1*sin(@Ap2*cos(y))+flip(cos(y)+@Ap3*cos(@Ap4*cos(x))) elseif @V=="XVI" z=cos(x)+@Ap1*cos(@Ap2*cos(y))+flip(cos(y)+@Ap3*sin(@Ap4*cos(x))) elseif @V=="XVII" z=sin(x)+@Ap1*sin(@Ap2*sin(y))+flip(sin(y)+@Ap3*tan((@Ap4+(0,1))*sin(x))) elseif @V=="XVIII" z=sin(x)+@Ap1*tan((@Ap2+(0,1))*sin(y))+flip(sin(y)+@Ap3*sin(@Ap4*sin(x))) elseif @V=="XIX" z=tan(x+(0,1))+@Ap1*sin(@Ap2*tan(y+(0,1)))+flip(tan(y+(0,1))+@Ap3*tan((@Ap4+(0,1))*tan(x+(0,1)))) elseif @V=="XX" z=tan(x+(0,1))+@Ap1*tan((@Ap2+(0,1))*tan(y+(0,1)))+flip(tan(y+(0,1))+@Ap3*sin(@Ap4*tan(x+(0,1)))) elseif @V=="XXI" z=cos(x)+@Ap1*cos(@Ap2*cos(y))+flip(cos(y)+@Ap3*tan((@Ap4+(0,1))*cos(x))) elseif @V=="XXII" z=cos(x)+@Ap1*tan((@Ap2+(0,1))*cos(y))+flip(cos(y)+@Ap3*cos(@Ap4*cos(x))) elseif @V=="XXIII" z=tan(x+(0,1))+@Ap1*cos(@Ap2*tan(y+(0,1)))+flip(tan(y+(0,1))+@Ap3*tan((@Ap4+(0,1))*tan(x+(0,1)))) elseif @V=="XXIV" z=tan(x+(0,1))+@Ap1*tan((@Ap2+(0,1))*tan(y+(0,1)))+flip(tan(y+(0,1))+@Ap3*cos(@Ap4*tan(x+(0,1)))) elseif @V=="XXV" z=tan(x+(0,1))+@Ap1*sin(@Ap2*tan(y+(0,1)))+flip(tan(y+(0,1))+@Ap3*cos(@Ap4*tan(x+(0,1)))) elseif @V=="XXVI" z=tan(x+(0,1))+@Ap1*cos(@Ap2*tan(y+(0,1)))+flip(tan(y+(0,1))+@Ap3*sin(@Ap4*tan(x+(0,1)))) elseif @V=="XXVII" z=cos(x)+@Ap1*sin(@Ap2*cos(y))+flip(cos(y)+@Ap3*tan((@Ap4+(0,1))*cos(x))) elseif @V=="XXVIII" z=cos(x)+@Ap1*tan((@Ap2+(0,1))*cos(y))+flip(cos(y)+@Ap3*sin(@Ap4*cos(x))) elseif @V=="XXIX" z=sin(x)+@Ap1*cos(@Ap2*sin(y))+flip(sin(y)+@Ap3*tan((@Ap4+(0,1))*sin(x))) elseif @V=="XXX" z=sin(x)+@Ap1*tan((@Ap2+(0,1))*sin(y))+flip(sin(y)+@Ap3*cos(@Ap4*sin(x))) endif float b=1-cabs(z^@pow1)/16 if b<0 b=0 else b=sqr(b) endif c=z*p2+p3 float d=1.0 int i=p4 while i>0 float x1=floor(real(c))%256 float y1=floor(imag(c))%256 if x1<0 x1=x1+256 endif if y1<0 y1=y1+256 endif float x2=(x1+1)%256 float y2=(y1+1)%256 float x3=real(c)-floor(real(c)) float y3=imag(c)-floor(imag(c)) float x4=x3-1 float y4=y3-1 float f1=(x1^@pow2%65536+y1)^@pow2%65536 float f2=(x2^@pow2%65536+y1)^@pow2%65536 float f3=(x1^@pow2%65536+y2)^@pow2%65536 float f4=(x2^@pow2%65536+y2)^@pow2%65536 float g1=(f1)^@pow2*0.25%512-256 float g2=(f2)^@pow2*0.25%512-256 float g3=(f3)^@pow2*0.25%512-256 float g4=(f4)^@pow2*0.25%512-256 float g5=(f1+1)^@pow2*0.25%512-256 float g6=(f2+1)^@pow2*0.25%512-256 float g7=(f3+1)^@pow2*0.25%512-256 float g8=(f4+1)^@pow2*0.25%512-256 float h=0.0; h=1/sqrt(sqr(g1)+sqr(g5)) g1=g1*h g5=g5*h h=1/sqrt(sqr(g2)+sqr(g6)) g2=g2*h g6=g6*h h=1/sqrt(sqr(g3)+sqr(g7)) g3=g3*h g7=g7*h h=1/sqrt(sqr(g4)+sqr(g8)) g4=g4*h g8=g8*h float j1=x3*g1+y3*g5 float j2=x4*g2+y3*g6 float j3=x3*g3+y4*g7 float j4=x4*g4+y4*g8 float k1=sqr(x3)*(3-x3*2) float k2=sqr(y3)*(3-y3*2) float k3=j1+k1*(j2-j1) float k4=j3+k1*(j4-j3) if @fn=="abs" a=a+real(abs(k3+k2*(k4-k3)))*d*b elseif @fn=="acos ceil" a=a+real(acos(ceil(k3+k2*(k4-k3))))*d*b elseif @fn=="acos recip" a=a+real(acos(recip(k3+k2*(k4-k3))))*d*b elseif @fn=="asin ceil" a=a+real(asin(ceil(k3+k2*(k4-k3))))*d*b elseif @fn=="atanh log" a=a+real(atanh(log(k3+k2*(k4-k3))))*d*b elseif @fn=="cabs sqrt" a=a+real(cabs(sqrt(k3+k2*(k4-k3))))*d*b elseif @fn=="ceil" a=a+real(ceil(k3+k2*(k4-k3)))*d*b elseif @fn=="ceil log" a=a+real(ceil(log(k3+k2*(k4-k3))))*d*b elseif @fn=="cos log" a=a+real(cos(log(k3+k2*(k4-k3))))*d*b elseif @fn=="cotanh sqrt" a=a+real(cotanh(sqrt(k3+k2*(k4-k3))))*d*b elseif @fn=="exp" a=a+real(exp(k3+k2*(k4-k3)))*d*b elseif @fn=="exp acos" a=a+real(exp(acos(k3+k2*(k4-k3))))*d*b elseif @fn=="exp ceil" a=a+real(exp(ceil(k3+k2*(k4-k3))))*d*b elseif @fn=="exp exp" a=a+real(exp(exp(k3+k2*(k4-k3))))*d*b elseif @fn=="flip log" a=a+real(flip(log(k3+k2*(k4-k3))))*d*b elseif @fn=="flip sqrt" a=a+real(flip(sqrt(k3+k2*(k4-k3))))*d*b elseif @fn=="floor" a=a+real(floor(k3+k2*(k4-k3)))*d*b elseif @fn=="floor log" a=a+real(floor(log(k3+k2*(k4-k3))))*d*b elseif @fn=="ident" a=a+real(k3+k2*(k4-k3))*d*b elseif @fn=="log" a=a+real(log(k3+k2*(k4-k3)))*d*b elseif @fn=="log acos" a=a+real(log(acos(k3+k2*(k4-k3))))*d*b elseif @fn=="log log" a=a+real(log(log(k3+k2*(k4-k3))))*d*b elseif @fn=="log sqr" a=a+real(log(sqr(k3+k2*(k4-k3))))*d*b elseif @fn=="log sqrt" a=a+real(log(sqrt(k3+k2*(k4-k3))))*d*b elseif @fn=="recip log" a=a+real(recip(log(k3+k2*(k4-k3))))*d*b elseif @fn=="recip sqrt" a=a+real(recip(sqrt(k3+k2*(k4-k3))))*d*b elseif @fn=="round log" a=a+real(round(log(k3+k2*(k4-k3))))*d*b elseif @fn=="sqr log" a=a+real(sqr(log(k3+k2*(k4-k3))))*d*b elseif @fn=="sqrt" a=a+real(sqrt(k3+k2*(k4-k3)))*d*b elseif @fn=="sqrt acos" a=a+real(sqrt(acos(k3+k2*(k4-k3))))*d*b elseif @fn=="sqrt log" a=a+real(sqrt(log(k3+k2*(k4-k3))))*d*b elseif @fn=="sqrt sqrt" a=a+real(sqrt(sqrt(k3+k2*(k4-k3))))*d*b elseif @fn=="trunc log" a=a+real(trunc(log(k3+k2*(k4-k3))))*d*b endif d=d*0.5 c=c/0.5 i=i-1 endwhile final: ;#index=(log(a)+@p7)*@p8 if @solid if @invert if (log(a)+@p7)*@p8<@p9 #index=(log(a)+@p7)*@p8 else #solid=true endif else if (log(a)+@p7)*@p8>@p9 #index=(log(a)+@p7)*@p8 else #solid=true endif endif else #index=(log(a)+@p7)*@p8 endif default: title="Alurula" param V caption="Variant" enum="I""II""III""IV""V""VI""VII""VIII""IX""X""XI""XII"\ "XIII""XIV""XV""XVI""XVII""XVIII""XIX""XX""XXI""XXII""XXIII""XXIV"\ "XXV""XXVI""XXVII""XXVIII""XXIX""XXX" default=0 endparam param Ap1 caption="Parameter 1" default=(1,0) endparam param Ap2 caption="Parameter 2" default=(1,0) endparam param Ap3 caption="Parameter 3" default=(1,0) endparam param Ap4 caption="Parameter 4" default=(1,0) endparam param F1 caption="Function 1" enum="sqr""log""conj""flip""ident""recip" default=4 endparam param fn caption="Function 2" enum="abs"\ "acos ceil"\ "acos recip"\ "asin ceil""atanh log"\ "cabs sqrt""ceil""ceil log""cos log"\ "cotanh sqrt""exp""exp acos""exp ceil""exp exp"\ "flip log""flip sqrt""floor""floor log"\ "ident""log""log acos"\ "log log"\ "log sqr""log sqrt"\ "recip log""recip sqrt"\ "round log"\ "sqr log"\ "sqrt"\ "sqrt acos"\ "sqrt log"\ "sqrt sqrt"\ "trunc log" default=19 endparam param p2 caption="Parameter A" default=(1,0) endparam param p3 caption="Parameter B" default=(0,0) endparam param p7 caption="Adjustment 1" default=1.0 endparam param p8 caption="Adjustment 2" default=0.5 endparam param pow1 caption="Exponent 1" default=1.0 endparam param pow2 caption="Exponent 2" default=2.0 endparam param p4 caption="Iterations" default=1 min=1 endparam param S caption="Symmetrise" default=false endparam param solid caption="Solid Colour" default=false endparam param p9 caption="Solid Colour Adjustment" default=0.5 visible=@solid==true endparam param invert caption="Invert Solid Colour" default=false visible=@solid==true endparam } FristobensDanxoda { init: float a=1e100 int i=-1 int i2=-1 loop: if @Fs=="ident" z=ident(#z) elseif @Fs=="sin" z=sin(#z) elseif @Fs=="sinh" z=sinh(#z) elseif @Fs=="asin" z=asin(#z) elseif @Fs=="asinh" z=asinh(#z) elseif @Fs=="versin" z=1-cos(#z) elseif @Fs=="aversin" z=acos(1-#z) elseif @Fs=="haversin" z=(1-cos(#z))/2 elseif @Fs=="ahaversin" z=2*asin(sqrt(#z)) elseif @Fs=="coversin" z=1-sin(#z) elseif @Fs=="acoversin" z=asin(1-#z) elseif @Fs=="hacoversin" z=(1-sin(#z))/2 elseif @Fs=="cos" z=cos(#z) elseif @Fs=="cosh" z=cosh(#z) elseif @Fs=="acos" z=acos(#z) elseif @Fs=="acosh" z=acosh(#z) elseif @Fs=="vercos" z=1+cos(#z) elseif @Fs=="avercos" z=acos(1+#z) elseif @Fs=="havercos" z=(1+cos(#z))/2 elseif @Fs=="ahavercos" z=2*acos(sqrt(#z)) elseif @Fs=="covercos" z=1+sin(#z) elseif @Fs=="acovercos" z=asin(1+#z) elseif @Fs=="hacovercos" z=(1+sin(#z))/2 elseif @Fs=="tan" z=tan(#z) elseif @Fs=="tanh" z=tanh(#z) elseif @Fs=="atan" z=atan(#z) elseif @Fs=="atanh" z=atanh(#z) elseif @Fs=="cotan" z=cotan(#z) elseif @Fs=="cotanh" z=cotanh(#z) elseif @Fs=="acotan" z=atan(1/(#z)) elseif @Fs=="acotanh" z=atanh(1/(#z)) elseif @Fs=="sec" z=1/cos(#z) elseif @Fs=="sech" z=1/cosh(#z) elseif @Fs=="asec" z=acos(1/#z) elseif @Fs=="asech" z=acosh(1/#z) elseif @Fs=="cosec" z=1/sin(#z) elseif @Fs=="cosech" z=1/sinh(#z) elseif @Fs=="acosec" z=asin(1/#z) elseif @Fs=="acosech" z=asinh(1/#z) elseif @Fs=="exsec" z=1/cos(#z)-1 elseif @Fs=="aexsec" z= acos(1/(#z+1)) elseif @Fs=="excosec" z=1/sin(#z)-1 elseif @Fs=="aexcosec" z=asin(1/(#z+1)) elseif @Fs=="crd" z=2*sin(#z/2) elseif @Fs=="acrd" z=2*asin(#z/2) elseif @Fs=="gd" z=asin(tanh(#z)) elseif @Fs=="agd" z=asinh(tan(#z)) elseif @Fs=="sinc" z=sin(#z)/(#z) elseif @Fs=="sinhc" z=sinh(#z)/(#z) elseif @Fs=="cosc" z=cos(#z)/(#z) elseif @Fs=="coshc" z=cosh(#z)/(#z) elseif @Fs=="tanc" z=tan(#z)/(#z) elseif @Fs=="tanhc" z=tanh(#z)/(#z) elseif @Fs=="cotanc" z=cotan(#z)/(#z) elseif @Fs=="cotanhc" z=cotanh(#z)/(#z) elseif @Fs=="secc" z=1/(#z*cos(#z)) elseif @Fs=="sechc" z=1/(#z*cosh(#z)) elseif @Fs=="cosecc" z= 1/(#z*sin(#z)) elseif @Fs=="cosechc" z=1/(#z*sinh(#z)) elseif @Fs=="sqr" z=sqr(#z) elseif @Fs=="sqrt" z=sqrt(#z) elseif @Fs=="cube" z=#z^3 elseif @Fs=="cuberoot" z=#z^(1/3) elseif @Fs=="log" z=log(#z) elseif @Fs=="colog" z=-log(#z) elseif @Fs=="exp" z=exp(#z) elseif @Fs=="abs" z=abs(#z) elseif @Fs=="cabs" z=cabs(#z) elseif @Fs=="conj" z=conj(#z) elseif @Fs=="flip" z=flip(#z) elseif @Fs=="recip" z=recip(#z) elseif @Fs=="logit" z= log(#z/(1-#z)) elseif @Fs=="expit" z=1/(1+exp(-#z)) elseif @Fs=="gauss" z=exp(-sqr(#z)) elseif @Fs=="softplus" z=log(1+exp(#z)) elseif @Fs=="primecount" z=#z/log(#z) elseif @Fs=="ceil" z=ceil(#z) elseif @Fs=="floor" z=floor(#z) elseif @Fs=="trunc" z=trunc(#z) else z=round(#z) endif z=abs(z) x=real(z) y=imag(z) i=i+1 float b=|x+p1*y+p2+(p3/(2*pi))*sin(2*pi*x)+flip(p1*y+p2+(p3/(2*pi))*sin(2*pi*x))| if b@p7 #index=@adj*a*i2/28 else #solid=true endif endif else #index=@adj*a*i2/28 endif default: title="Fristobens Danxoda" param p1 default=(1,0) endparam param p2 default=(1,0) endparam param p3 default=(1,0) endparam heading endheading param Fs caption="Function" enum="ident""sin""sinh""asin""asinh""versin""aversin""haversin""ahaversin""coversin""acoversin"\ "hacoversin""cos""cosh""acos""acosh""vercos""avercos""havercos""ahavercos""covercos"\ "acovercos""hacovercos""tan""tanh""atan""atanh""cotan""cotanh""acotan""acotanh" \ "sec""sech""asec""asech""cosec""cosech""acosec""acosech""exsec""aexsec"\ "excosec""aexcosec""crd""acrd""gd""agd""sinc""sinhc""cosc""coshc"\ "tanc""tanhc""cotanc""cotanhc""secc""sechc""cosecc""cosechc""sqr""sqrt"\ "cube""cuberoot""log""colog""exp""abs""cabs""conj""flip""recip"\ "logit""expit""gauss""softplus""primecount""ceil""floor""trunc""round" default=0 endparam heading endheading param adj caption="Parameter 4" default=1.0 endparam param solid caption="Solid Colour" default=false endparam param p7 caption="Solid Colour Adjustment" default=0.04 visible=@solid==true endparam param invert caption="Invert Solid Colour" default=false visible=@solid==true endparam } Lifcol { ;This is a modification of Numberseeker by Edgar Malinovsky (em.ucl) ;Lower values of the Iterations paremeter give smoother colouring. ;Higher values give more detail. ;It will be necessary to increase the value when zooming in. global: int i=@iter if i>=#maxiter i=#maxiter-1 endif init: float a=0.0 float b=0.0 zold=(0,0) int i2=0 loop: if @Fs=="sin" z=sin(#z) elseif @Fs=="sinh" z=sinh(#z) elseif @Fs=="asin" z=asin(#z) elseif @Fs=="asinh" z=asinh(#z) elseif @Fs=="cos" z=cos(#z) elseif @Fs=="cosh" z=cosh(#z) elseif @Fs=="acos" z=acos(#z) elseif @Fs=="acosh" z=acosh(#z) elseif @Fs=="tan" z=tan(#z) elseif @Fs=="tanh" z=tanh(#z) elseif @Fs=="atan" z=atan(#z) elseif @Fs=="atanh" z=atanh(#z) elseif @Fs=="cotan" z=cotan(#z) elseif @Fs=="cotanh" z=cotanh(#z) elseif @Fs=="sqr" z=sqr(#z) elseif @Fs=="sqrt" z=sqrt(#z) elseif @Fs=="log" z=log(#z) elseif @Fs=="exp" z=exp(#z) elseif @Fs=="abs" z=abs(#z) elseif @Fs=="cabs" z=cabs(#z) elseif @Fs=="conj" z=conj(#z) elseif @Fs=="flip" z=flip(#z) elseif @Fs=="ident" z=ident(#z) elseif @Fs=="recip" z=recip(#z) elseif @Fs=="versin" z=1-cos(#z) elseif @Fs=="aversin" z=acos(1-#z) elseif @Fs=="haversin" z=(1-cos(#z))/2 elseif @Fs=="ahaversin" z=2*asin(sqrt(#z)) elseif @Fs=="coversin" z=1-sin(#z) elseif @Fs=="acoversin" z=asin(1-#z) elseif @Fs=="hacoversin" z=(1-sin(#z))/2 elseif @Fs=="vercos" z=1+cos(#z) elseif @Fs=="avercos" z=acos(1+#z) elseif @Fs=="havercos" z=(1+cos(#z))/2 elseif @Fs=="ahavercos" z=2*acos(sqrt(#z)) elseif @Fs=="covercos" z=1+sin(#z) elseif @Fs=="acovercos" z=asin(1+#z) elseif @Fs=="hacovercos" z=(1+sin(#z))/2 elseif @Fs=="acotan" z=atan(1/(#z)) elseif @Fs=="acotanh" z=atanh(1/(#z)) elseif @Fs=="sec" z=1/cos(#z) elseif @Fs=="sech" z=1/cosh(#z) elseif @Fs=="asec" z=acos(1/#z) elseif @Fs=="asech" z=acosh(1/#z) elseif @Fs=="cosec" z=1/sin(#z) elseif @Fs=="cosech" z=1/sinh(#z) elseif @Fs=="acosec" z=asin(1/#z) elseif @Fs=="acosech" z=asinh(1/#z) elseif @Fs=="exsec" z=1/cos(#z)-1 elseif @Fs=="aexsec" z= acos(1/(#z+1)) elseif @Fs=="excosec" z=1/sin(#z)-1 elseif @Fs=="aexcosec" z=asin(1/(#z+1)) elseif @Fs=="crd" z=2*sin(#z/2) elseif @Fs=="acrd" z=2*asin(#z/2) elseif @Fs=="gd" z=asin(tanh(#z)) elseif @Fs=="agd" z=asinh(tan(#z)) elseif @Fs=="sinc" z=sin(#z)/(#z) elseif @Fs=="sinhc" z=sinh(#z)/(#z) elseif @Fs=="cosc" z=cos(#z)/(#z) elseif @Fs=="coshc" z=cosh(#z)/(#z) elseif @Fs=="tanc" z=tan(#z)/(#z) elseif @Fs=="tanhc" z=tanh(#z)/(#z) elseif @Fs=="cotanc" z=cotan(#z)/(#z) elseif @Fs=="cotanhc" z=cotanh(#z)/(#z) elseif @Fs=="secc" z=1/(#z*cos(#z)) elseif @Fs=="sechc" z=1/(#z*cosh(#z)) elseif @Fs=="cosecc" z= 1/(#z*sin(#z)) elseif @Fs=="cosechc" z=1/(#z*sinh(#z)) elseif @Fs=="cube" z=#z^3 elseif @Fs=="cuberoot" z=#z^(1/3) elseif @Fs=="colog" z=-log(#z) elseif @Fs=="logit" z= log(#z/(1-#z)) elseif @Fs=="expit" z=1/(1+exp(-#z)) elseif @Fs=="gauss" z=exp(-sqr(#z)) elseif @Fs=="softplus" z=log(1+exp(#z)) elseif @Fs=="primecount" z=#z/log(#z) elseif @Fs=="sqr+" z=sqr(#z)+#z elseif @Fs=="cube+" z=#z^3+sqr(#z)+#z elseif @Fs=="sin+" z=sin(#z)+#z elseif @Fs=="cos+" z=cos(#z)+#z elseif @Fs=="tan+" z=tan(#z)+#z elseif @Fs=="cotan+" z=cotan(#z)+#z elseif @Fs=="sec+" z=1/cos(#z)+#z elseif @Fs=="cosec+" z=1/sin(#z)+#z elseif @Fs=="sin*" z=sin(#z)*#z elseif @Fs=="cos*" z=cos(#z)*#z elseif @Fs=="tan*" z=tan(#z)*#z elseif @Fs=="cotan*" z=cotan(#z)*#z elseif @Fs=="sec*" z=#z/cos(#z) elseif @Fs=="cosec*" z=#z/sin(#z) elseif @Fs=="loglog" z=log(log(#z)) elseif @Fs=="sinsin" z=sin(sin(#z)) elseif @Fs=="coscos" z=cos(cos(#z)) elseif @Fs=="+pixel" z=#z+pixel elseif @Fs=="-pixel" z=#z-pixel elseif @Fs=="*pixel" z=#z*pixel elseif @Fs=="/pixel" z=#z/pixel elseif @Fs=="ceil" z=ceil(#z) elseif @Fs=="floor" z=floor(#z) elseif @Fs=="trunc" z=trunc(#z) else z=round(#z) endif z=p1*fn2(z)+p2 if @Va=="1" z=z elseif @Va=="2" if cabs(z)<1 z=z/cabs(z) endif elseif @Va=="3" if cabs(z)>1 z=z/cabs(z) endif elseif @Va=="4" x=real(z) y=imag(z) x=x/|z| y=y/|z| z=x+flip(y) elseif @Va=="5" if real(z)imag(z) z=flip(z) endif endif if @v=="1" z=p3*fn3((1+z)*exp(z))+p4 elseif @v=="2" z=p3*fn3((1+3*z+z^2)*exp(z))+p4 elseif @v=="3" z=p3*fn3((1+7*z+6*z^2+z^3)*exp(z))+p4 elseif @v=="4" z=p3*fn3((1+15*z+25*z^2+10*z^3+z^4)*exp(z))+p4 elseif @v=="5" z=p3*fn3((1+31*z+90*z^2+65*z^3+15*z^4+z^5)*exp(z))+p4 endif if i2<=i a=a+exp(-cabs(z+2)) b=b+ exp(-1/cabs(zold-z+2)) zold=#z i2=i2+1 endif final: if |#z-zold|<0.5 if @solid if @invert if b<@p7 #index=b else #solid=true endif else if b>@p7 #index=b else #solid=true endif endif else #index=b endif else if @solid if @invert if a<@p7 #index=a else #solid=true endif else if a>@p7 #index=a else #solid=true endif endif else #index=a endif endif default: title="Lifcol" param V caption="Polynomial" enum="1""2""3""4""5" default=0 endparam param Va caption="Variant" enum="1""2""3""4""5""6" default=0 endparam param iter caption="Iterations" default=10 min=0 endparam param p1 default=(1,0) endparam param p2 default=(0,0) endparam param p3 default=(1,0) endparam param p4 default=(0,0) endparam param Fs caption="Function 1" enum="sin""sinh""asin""asinh""cos""cosh""acos""acosh""tan""tanh""atan"\ "atanh""cotan""cotanh""sqr""sqrt""log""exp""abs""cabs""conj"\ "flip""ident""recip""versin""aversin""haversin""ahaversin""coversin""acoversin"\ "hacoversin""vercos""avercos""havercos""ahavercos""covercos"\ "acovercos""hacovercos""acotan""acotanh" \ "sec""sech""asec""asech""cosec""cosech""acosec""acosech""exsec""aexsec"\ "excosec""aexcosec""crd""acrd""gd""agd""sinc""sinhc""cosc""coshc"\ "tanc""tanhc""cotanc""cotanhc""secc""sechc""cosecc""cosechc"\ "cube""cuberoot""colog""logit""expit""gauss""softplus"\ "primecount""sqr+""cube+""sin+""cos+""tan+""cotan+""sec+""cosec+""sin*""cos*""tan*""cotan*""sec*"\ "cosec*""loglog""sinsin""coscos""+pixel""-pixel"\ "*pixel""/pixel""ceil""floor""trunc""round" default=22 endparam func fn2 default=ident() endfunc func fn3 default=ident() endfunc param solid caption="Solid Colour" default=false endparam param p7 caption="Solid Colour Adjustment" default=0.1 visible=@solid==true endparam param invert caption="Invert Solid Colour" default=false visible=@solid==true endparam } TormSpaw { init: float a=0 float c=0.01 d=0 bool f=true loop: z=p1*fn1(#z)+p2 if @v=="1" d=z+p3*fn2(z)+p4 elseif @v=="2" d=z+p3/fn2(z)+p4 elseif @v=="3" d=z^2*fn2((z-(p3+1))/(1-(p3+1)*z))+p4 elseif @v=="4" d=z^2*fn2((z-4)/(p3+4*z))+p4 elseif @v=="5" d=fn2((z^2+p3-1)/(2*z+p3-2))^2+p4 elseif @v=="6" d=fn2((z^2+p3-1i)/(2*z+p3-2i))^2+p4 elseif @v=="7" d=z^2*fn2((z-(p3+1))/(1i-(p3+1)*z))+p4 elseif @v=="8" d=z+p3*fn2(z)^3+p4 elseif @v=="9" if real(z)1 z=z/|z| endif d=p3*fn2(z)+p4 elseif @v=="12" if real(z)>imag(z) z=flip(z) endif d=p3*fn2(z)+p4 endif a=cabs(d-p5*pixel) if f && 1@p7 #index=c else #solid=true endif endif else #index=c endif default: title="Torm Spaw" param V caption="Variant" enum="1""2""3""4""5""6""7""8""9""10""11""12" default=0 endparam param p1 caption="Z Parameter 1" default=(1,0) endparam param p2 caption="Z Parameter 2" default=(0,0) endparam param p3 caption="Variant Parameter 1" default=(1,0) endparam param p4 caption="Variant Parameter 2" default=(0,0) endparam func fn1 caption="Z Function" default=ident() endfunc func fn2 caption="Variant Function" default=ident() endfunc param p5 default=(0,0) endparam param solid caption="Solid Colour" default=false endparam param p7 caption="Solid Colour Adjustment" default=0.5 visible=@solid==true endparam param invert caption="Invert Solid Colour" default=false visible=@solid==true endparam } Breplumou { init: float a=0 int i=0 float b=0 float b2=0 loop: i=i+1 if i>=0 && i<=1E20 if @S==true z=(abs(fn2(fn1(#z)))-p3)/p5 else z=(fn2(fn1(#z))-p3)/p5 endif if @V=="1" b=log(cabs(fn3(z*(p1-z)+p2))) elseif @V=="2" b=log(cabs(fn3(z*(p1*1i-z)+p2))) elseif @V=="3" b=log(cabs(fn3(z^2*(z-(p1+1))/(1-(p1+1)*z)+p2))) elseif @V=="4" b=log(cabs(fn3(z^2*(z-4)/(p1+4*z)+p2))) elseif @V=="5" b=log(cabs(fn3(((z^2+p1-1)/(2*z+p1-2))^2+(p2-0.5)))) elseif @V=="6" b=log(cabs(fn3(((z^2+p1-1i)/(2*z+p1-2i))^2+p2))) elseif @V=="7" b=log(cabs(fn3(z-p1*(z^3-1)/(3*z^2)+p2))) elseif @V=="8" b=log(cabs(fn3(z-p1*(z^4-1)/(4*z^3)+p2))) elseif @V=="9" b=log(cabs(fn3(z+z^2/(z+p1)+p2))) elseif @V=="10" b=log(cabs(fn3(z+z^2/(z+p1*1i)+p2))) elseif @V=="11" b=log(cabs(fn3((z-p1*1i)/(z+p1*1i)+p2))) elseif @V=="12" b=log(cabs(fn3((z-p1)/(z+p1)+p2))) elseif @V=="13" b=log(cabs(z+p1/fn3(z)+p2)) elseif @V=="14" b=log(cabs(z+p1*1i/fn3(z)+p2)) elseif @V=="15" b=log(cabs(z+p1*fn3(z)+p2)) elseif @V=="16" b=log(cabs(z+p1*1i*fn3(z)+p2)) elseif @V=="17" b=log(cabs(p1*fn3(p1/(z-(p2+1)))+(p2+1))) elseif @V=="18" b=log(cabs(fn3(sqr((z^3+3*(p1-0.5)*z+(p1-0.5)*(p1-1.5))/(3*z^2+3*(p1-1.5)*z+(p1-0.5)*(p1-1.5)+1))+p2))) elseif @V=="19" b=log(cabs(fn3(sqr((z^3+3*(p1-1i)*z+(p1-1i)*(p1-2i))/(3*z^2+3*(p1-2i)*z+(p1-1i)*(p1-2i)+1))+p2))) elseif @V=="20" b=log(cabs(fn3((z^2-p1*1i)/(z^2+p1*1i)+p2))) elseif @V=="21" b=log(cabs(fn3((z^2-p1)/(z^2+p1)+p2))) elseif @V=="22" b=log(cabs(fn3(p1*z^3/(z^2+p2)))) elseif @V=="23" b=log(cabs(fn3(p1*1i*z^3/(z^2-p2)))) endif b2=cabs(z)+1 b=abs(b^0.002-b2^0.01)^2 a=b/(cabs(z)+1)+a endif final: ;#index=1000*a if @solid if @invert if 1000*a<@p7 #index=1000*a else #solid=true endif else if 1000*a>@p7 #index=1000*a else #solid=true endif endif else #index=1000*a endif default: title="Breplumou" param V caption="Variant" enum="1""2""3""4""5""6""7""8""9""10"\ "11""12""13""14""15""16""17""18""19""20"\ "21""22""23" endparam param p5 caption="Z Parameter 1" default=(-2.9,0) endparam param p3 caption="Z Parameter 2" default=(0,0) endparam func fn1 caption="Z Function 1" default=sqr() endfunc func fn2 caption="Z Function 2" default=ident() endfunc param p1 caption="Variant Parameter 1" default=(1,0) endparam param p2 caption="Variant Parameter 2" default=(1,0) endparam func fn3 caption="Variant Function" default=ident() endfunc param S caption="Abs(z)" default=false endparam param solid caption="Solid Colour" default=false endparam param p7 caption="Solid Colour Adjustment" default=0.08 visible=@solid==true endparam param invert caption="Invert Solid Colour" default=false visible=@solid==true endparam } OM-ColPlugDual { ;Combines two plug-in colorings global: import "common.ulb" import "om.ulb" GradientColoring c1=new @coloringClass1(0) GradientColoring c2=new @coloringClass2(0) init: c1.Init(#z,#pixel) c2.Init(#z,#pixel) int i=@v loop: if @alt if i%2==0 c1.Iterate(#z) else c2.Iterate(#z) endif i=i+1 else c1.Iterate(#z) c2.Iterate(#z) endif final: #index=(c1.ResultIndex(#z)+c2.ResultIndex(#z))/2 #solid=c1.IsSolid() || c2.IsSolid() default: title="Col Plug Dual" int param version caption="Version" default=100 visible=@version<100 endparam param alt caption="Alternate" default=false endparam param v caption="Variant" enum="Coloring 1 first""Coloring 2 first" visible=@alt==true endparam GradientColoring param coloringClass1 caption="Coloring Algorithm 1" default=OM_Kalgor endparam GradientColoring param coloringClass2 caption="Coloring Algorithm 2" default=OM_KalgorValmyst endparam } Langmod { ;Modification of code by pauldebrot: ;https://tinyurl.com/wg4ke44 ;Based on https://arxiv.org/pdf/2001.08937.pdf init: float a=0.0 float b=0.0 float c=0.0 float d=0.0 int i=0 loop: z=@zp1*@zf(#z)+@zp2 x=real(z) y=imag(z) if @v2==0 z=(x^2+y^2-(p2+1+1.5i)*p1^2)^2-p3*p1*(y-p1+sqrt(3)*x)*(y-p1-sqrt(3)*x)*(2*y+p1)+x^2*y^2-p4^2*(p4^2-y^2) elseif @v2==1 z=(x^2-y^2)^2-p1^2*x^2+@p2^2*y^2+p3*(y^2-x^2)*(x-1)*(2*x-3)-4*p4*(x^2+y^2-2*x)^2 elseif @v2==2 z=x^2*p1*sin(3*x^2-y^2)^2-p2*y^2*(x^2+y^2)+p3*(x^(2/3))+(y^(2/3))-p4^(2/3) elseif @v2==3 z=x^4*cos(x^2+y^2)-cosh(p2*x^2-p1^3)^2+p3*cos(x^2+y^2)^2-x^3-cos(p4*y^3) elseif @v2==4 z=p2^4*y^2-x^4*(p1^2-x^2)+(p3+1+0.25i)*y^2-x^2*(x-p4) elseif @v2==5 z=sin(p2^2*y^2)-p4*x^2*p3*flip(y^2-x^2)+y^2*(p1^2-x^2)-cosh(x^2+2*p2*y-p1^2)^2 elseif @v2==6 z=(x^2+x*y+p1*x-p2^2)^2-(p2^2-x^2)*(x-y+p1)^2+2*y^2*(x^2+y^2)-2*p4*y^2*(x+y)\ +(p4^2-3*p3^2)*y^2-p3^2*x^2+2*p3^2*p4*(x+y)+p3^2*(p3^2-p4^2) elseif @v2==7 z=flip(x)^3+exp(y)^3-p1+x^(2/3)+(p2*y)^(2/3)+(p3^2*x*y)^(2/3)-p4^3 elseif @v2==8 z=(x^4)-p1*x^2*y+(y^3)+exp(p2^2-x^2)*(p3^2+y^2)-p2^2*p4^2 elseif @v2==9 z=x^2/p1^2-y^2/p2^2-1+p3*x^3-3*p4*x*y^2-p2^3 elseif @v2==10 z=(x^2+y^2-2*(p1-2.25-1.5i)*x)^2-4*(p1-2.25-1.5i)^2*(x^2+y^2)+\ (p2-3.2)*sqrt((x-(p1-2.25-1.5i))^2+y^2)+p3*sqrt((x+p4)^2+y^2)-p4 elseif @v2==11 z=(x^2+y^2)*y^2-(p1-3-3.5i)^2*(x*sin(p2)+y*cos(p2))^2+(x^2+y^2)*(x*cos(p4)+y*sin(p4))-2*p3*y^2 elseif @v2==12 z=4*(x^2+y^2-p1*x)^3-27*p2^2*(x^2+y^2)^2-p3^3*x^3-48*p4*x*(x^2+y^2)^2\ +64*(x^2+y^2)^3-3*p1^2*(x^2+y^2)*(5*x^2+9*y^2) elseif @v2==13 z=(x^2+y^2)^3-((p1+1)*x^2-(p2-1)*y^2)^2+y-p1*log(x^3)-p2*x^2*y-p3*x*y^2-(p4*y^3) elseif @v2==14 z=x^2+y^2-p1^2+x*(x^2+y^2)+p2*x^2+p3*y^2+2*p4*x+2*p1*y+p2 elseif @v2==15 z=(p1-4)*y^2-p2*x*(x+1)*(x-3)*(x+2)*(x-2)+(p3+4.5-2i)*y^2-p4*recip((x^2+1)^3) elseif @v2==16 z=p3*x^2+2*p4*x*y+p1*y^2-2*p1*x-2*p2*y+(x^2+y^2)^2-p4*y^2 elseif @v2==17 z=y-p2*e^(x/p1)-p3*e^(-x/p1)+(x^2+y^2)*atan(y/x)-p4*y elseif @v2==18 z=(x^2+y^2+p3^2-p2^2)^2*(y^2+(x+p1)^2)-4*p4^2*(x*(x+p1)+y^2)^2+(x-@p2)^2*(x^2+y^2)-p3^2*x^2 elseif @v2==19 z=y^4-x^4-(p1+2+0.5i)^2*y^2+p2^2*x^2+p3*(x^2+y^2)^3-p4^4*x^2 elseif @v2==20 z=(x^2+y^2)^3+(p1+2+0.5i)^2*(3*x^4-6*x^2*y^2-5*y^4)+8*p2^4*y^2-4*p3^6+x^6+y^6\ +3*p4*x^4*y^2+3*(p1+2+0.5i)*x^2*y^4+3*x^4-5*p2*y^4+8*y^2-4 elseif @v2==21 z=(x^2+y^2)^3-p1^2*x^4+x^4+2*x^2*p2*y^2+4*y^4-(p3+3+0.75i)*x^3-6*x^2-p4*x*y^2 elseif @v2==22 z=(p2-1.5+0.5i)*(x^2+y^2)^2-4*p1*x*y^2+y^2*(p3^2-x^2)-p4^4 elseif @v2==23 z=p1^2*y^2+p2^2*x^2-x^2*y^2+y^2*x-p3*y^2-p4*x^2 elseif @v2==24 z=(p1^2-4*(x^2+y^2))^3-108*p2^2*x^2*(x^2+y^2)+tan(p3)^2*(x+pi/2)^2-y^2+2*p4*x elseif @v2==25 z=p2^2*(x^2+y^2-p1*x)^2-p3^2*(x^2+y^2)*(x-p4)^2+3*x^2-y^2-p1^2 elseif @v2==26 z=(p1+3-3i)^2*x^4-(p2-0.5i)^4*(x^2+y^2)+p3*y^2*(x^2+y^2)-p4^2*x^2 elseif @v2==27 z=(x^2+y^2)^2+18*p1^2*(x^2+y^2)-27*p2^4-8*p3*x*(x^2-3*y^2)+y^4-x^4+p4*y^2+p1*x^2 elseif @v2==28 z=(x^2+y^2)^2-(p1*x+p2*y)*x^2+y^4+10*p4*y^2*p3*x^2+5*x^4-y elseif @v2==29 z=(x^2+y^2)*(y^2+x*(x+p2))-4*p1*x*y^2+x^3+p3*y^3-3*p4*x*y elseif @v2==30 z=(x^2+y^2)*(2*(x^2+y^2)-p1^2)^2-p2^4*x^2+p3*y-sqrt(2*pi)*p4*exp(-x^2/2) elseif @v2==31 z=p3*y^2-p4*x*(81*x^5+396*x^4+738*x^3+660*x^2+269*x+48)+x^2/p1^2+y^2/p2^2-1 elseif @v2==32 z=(x^2+y^2)^2-p1*x^2-p2*y^2+(x^2+y^2)^2+4*(p4+0.5-0.75i)*((p4+0.5-0.75i)\ -(p3+0.5-0.75i))*(x^2+y^2)-4*(p4+0.5-0.75i)^2*x^2 elseif @v2==33 z=((x-(p2+1))^2+y^2)*(x*(x-(p2+1))+y^2)-4*(p1-3.25+0.25i)*(x-(p2+1))*y^2+p3*(x^2+y^2)^3-p4^3*x*(x^2-3*y^2) elseif @v2==34 z=p2*(x^2+y^2)^3-(p1+2.75)^3*x*(x^2-3*y^2)+(p3-1.5-2i)^4*y^2-(p4^2-x^2)^3 elseif @v2==35 z=x^3+p2*y^3-p1^3+y^2-p3*x^5+p4*x elseif @v2==36 z=p2*(x^2+y^2)^2-(p1+3.5i)^2*(x^2-y^2)+(x^2+y^2)^2-(2*p3^2+(p4-3.25-3i))*x^2+(2*p3^2-(p4-3.25-3i))*y^2 elseif @v2==37 z=(x^2+y^2-(p1+2i)*y)^2-(p2-3.5-2.25i)*(x^2+y^2)+(x^2+y^2-p3*x)^2-p4^2*(x^2+y^2) elseif @v2==38 z=(p1+1-1.25i)*(x^2+y^2-3*x)^2-4*p2*x^2*(2-x)+2*(2*x^2-(p3-2)^2)^2-p4*(2*y-(p3-2))^2*(y+p4) elseif @v2==39 z=x^2*(4*x^2-3*(p1-3+0.5i)^2)+4*(p2-1.5)^2*y^2*(y^2-(p1-3+0.5i)^2) \ +p3^4*y^4-4*p3^3*p4*x*y^3+2*p3^2*p4*y^3+6*p3^2*p4^2*x^2*y^2 \ -4*p3*p4^2*x*y^2-2*p3^3*x*y^2-2*p4^2*p4^2*y^2+p4^2*y^2+p3^2*y^2 \ -4*p3*p4^3*x^3*y+2*p4^3*x^2*y+4*p3^2*p4*x^2*y+4*p3*p4^3*x*y \ -2*p4^3*y-4*p3^2*p4*y+p4^4*x^4-2*p3*p4^2*x^3-2*p4^4*x^2 \ +p4^2*x^2+p3^2*x^2+2*p3*p4^2*x-p3^2-p4^2+p4^4 elseif @v2==40 z=(p2-3i)*y^2-x^2*log(p1^2/x^2)+p3*y-p4*log(sqrt(1-x^2)) elseif @v2==41 z=p2*y^3-(p1-2.25+1.5i)*x^2+p3*(x-0.5)^3-3*(p4+1+0.5i)*y^2 elseif @v2==42 z=flip(x^2+y^2-4*(p1-1.75-0.25i)^2)^3-108*p2^4*x^2+(x^2+y^2)*(x*2+y^2-p3^2)^2-4*p4^2*sqr(x^2+y^2-p3*x)^2 elseif @v2==43 z=p1*flip(y^2)-x*cotan(x^2-2*p2*x+p3)+(y^2)-x*(x^2+2*p4*x+p3) elseif @v2==44 z=p1*x^2*y^2*(x^2+y^2)-p2*acosh(x^2-y^2)^2+(x^2+y^2)^2-x^2*(p3*x+p4*y) elseif @v2==45 z=(y-p1)^2*(x^2+y^2)-log(p2*x+p3*y)^2+y*cosh(x^2+y^2)-p3*(x^2-y^2)-2*p4*x*y elseif @v2==46 z=x*(x^2+y^2)-sqrt(p2*x*y)-(p1+3.5i)*y^2+p3*x^2*(x^2+y^2)-p4*y*(x^2-y^2) elseif @v2==47 z=cotanh(p2^2*y^2)-x^3*flip(p1-x)+(y^(p3+1))-p4*(p3-x)^p3*x^p4 elseif @v2==48 z=y-p1*x^2+(p2-2.5+0.75i)*log(x)+(p3-4-2.5i)*y-p4*x+log(x) elseif @v2==49 z=(p2-4-2.25i)*x-y*cotan(y/p1)+p3*(x^2+y^2)^3-4*(p4+3-3i)^2*x^2*y^2 elseif @v2==50 z=x-(p1-4+3.5i)*sin(p2*y)+x-p3*cos(p4*y) elseif @v2==51 z=(x^2-(p2+1.5)*y)^2-(p1-1.5-0.25i)^2*(x^2-y^2)+(x^2+y^2)*(x^2+y^2+p3*x)^2-p4^2*(x^2-y^2)^2 elseif @v2==52 z=(x^4)-log(p2*y^4)-cotanh(4*(p1+3-1i)*x*y^2)+flip(p4*x*y^2)-p3*x elseif @v2==53 z=y-p1*p2*x/(x^2+p1^2)+p4*y^2-abs(sin(x)+p3*sin(2*x)) elseif @v2==54 z=cosh(x^2+y^2)^2+(p1-2)*x^2+p2*(y^2)+2*p3*x+p4+(x^2+y^2)^2-2*p1*(x^2)-2*p2*y^2+p3 elseif @v2==55 z=cos(p3^2-p1^2+p2^2+x^2+y^2)^2-4*p3^2*(x^2+p2^2)+(2*x*y)-x^4+acos(p4*y^4) elseif @v2==56 z=x+cos(p2^2-y^2)-p1*sqr((p2+(p2^2-y^2))/y)+cotanh(p3*x^2)+p4*y^2-e^(2*x-2) elseif @v2==57 z=(p1-5-0.25i)^p2*(cabs(x)^p2+cabs(y)^p2)-(x^2+y^2)^p2+p3*(x^2+y^2)^2-p4*x*(x^2-y^2) elseif @v2==58 z=x-log(((p1-0.75+0.25i)-sqrt(p2^2-y^2))/y)-sqrt((p1-0.75+0.25i)^2-y^2)+p3*y-x^2-p4/x elseif @v2==59 z=x*y+p1*x^3+p2*x^2+p3*x-p4+flip(x^2+y^2)^2-cos(x^2+y^2)*sqrt(p1*x+p2*y)-p3*x*cos(x^2-3*y^2) elseif @v2==60 z=cosh(x^2+y^2)^2-exp(p1*x+p2*y)*(x^2-y^2)+(x^2+y^2-2*p3^2)^2-x^2*p4*(x^2+y^2) elseif @v2==61 z=y^2*log(p1+x)-x^2*log(3*p2-x)+2*x^3+log(2*p3*x*y^2)-3*x^2+cotan(p4*y^2) elseif @v2==62 z=144*p1*(x^4+y^4)-225*p2*(x^2+y^2)+350*x^2*y^2+81+3*p3*y^2-x*(x-p4)^2 elseif @v2==63 z=27*p1*y^2-(p2-x)*(x+8*(p3-0.75))^2+x*(p3-0.75)*(x^2+y^2)-(p4+4-1i)*(x^2+2*y^2) elseif @v2==64 z=y^2-x^2*((p1+2.5)^2-x^2)+(x^2+y^2)*(x^2+y^2-p4^2)^2+4*(p2+0.25+1i)^2*y^2*(x^2+y^2-p3^2) elseif @v2==65 z=y-8*p1^3/(x^2+4*(p2-1.5-0.25i)^2)+(x^2+y^2)^3-p3*x*(x-(p4-0.75+2.5i))+y*(y+p3) elseif @v2==66 z=y-x*(x^4-(p1+3i))*cotan(x^2+p2*y^2)^2+(x^3-x^2-(3*x+(p3-4+0.75i))*y^2)*acosh(x^3-x^2+(3*x+(p4-4.25+0.25i))*y^2) elseif @v2==67 z=recip(p1*(x^2-1))*p2^2*x*tanh(p1*(y^2-1))-p1*p2*cotanh(x*y+1)+x+cotanh(y^2)+cosh(p3*x^3)+p4*y^4+cotanh(p3^2*p4^2*x^5*y^5) elseif @v2==68 z=(x^2-(p1-0.9-2i)^2)*(x-p2)+(y^2-(p1-0.9-2i)^2)^2+(x^2-(p3-0.4+0.8i)^2)*(x-(p4-1-1.5i))^2+(y^2-(p3-0.4+0.8i)^2)^3 elseif @v2==69 z=(x^2-(p1-2+0.25i))*(x-(p1-2+0.25i))^3+(y^2-p2^2)^2+((p2*p3-x)^2+(p3-y)^2)/p4^2-1 elseif @v2==70 z=(p1-2+0.25i)*(x^2+y^2)^2-p2/(x^2-y^2)+(x^2+y^2)^4-p3*(x^2+y^2)^3+(x^2+y^2)^2-(x^2+y^2)+y-(1-p4) elseif @v2==71 z=(2*p1)^(p2-4-1.5i)*y^2-(p1+x)*(p1-x)^((p2-4-1.5i)+1)+(x^2+y^2)^5+p3*(x^2-y^2)^3-(p4-0.5-2.5i)^2*y elseif @v2==72 z=(p1+0.5+0.25i)*y-(p2-2.25+3.5i)/(x*cos(x))+p3/(x*cos(y))+(x^2+y^2)*(x^2-y^2)/(2*p3*x*y)+(p4-1) elseif @v2==73 z=y^2+p1*x^3*flip(x^2-y^2)-p2*x^2*y*(x^2+y^2)+flip(p2*p3-x*y)^3+(p3*p4-(X^2+y^2)^2) elseif @v2==74 z=y^2+x^2-((x+(p3*(x-p1))/sqrt((x-p1)^2+(y-p2)^2))-flip(y+(p3*(y-p2))/sqrt((x-p1)^2 \ +(y-p2)^2)))+x^2-4*p3*y*log(x^2+y^2)+y^3*p4^2*tan(x^2-y^2)^4 endif float f=|z| float g=1/(f+1) float h=2*real(z)*g float j=2*imag(z)*g float k=(f-1)*g if @v==0 if i>0 a=a+(h-b)^@pow+(j-c)^@pow+(k-d)^@pow endif elseif @v==1 if i>1 a=a+(h-b)^@pow+(j-c)^@pow+(k-d)^@pow endif elseif @v==2 if i>-1 a=a+(h-b)^@pow+(j-c)^@pow+(k-d)^@pow endif elseif @v==3 if i>2 a=a+(h-b)^@pow+(j-c)^@pow+(k-d)^@pow endif endif i=i+1 b=h c=j d=k final: if @solid if @invert if a<=@sca #index=@adj*a/(i-1) else #solid=true endif else if a>@sca #index=@adj*a/(i-1) else #solid=true endif endif else #index=@adj*a/(i-1) endif default: title="Langmod" param v2 caption="Variant 1" 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""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" endparam param v caption="Variant 2" enum="1""2""3""4" endparam param p1 caption="Variant Parameter 1" default=(1,0) endparam param p2 caption="Variant Parameter 2" default=(1,0) endparam param p3 caption="Variant Parameter 3" default=(1,0) endparam param p4 caption="Variant Parameter 4" default=(1,0) endparam func zf caption="Z Function" default=ident() endfunc param zp1 caption="Z Parameter 1" default=(1,0) endparam param zp2 caption="Z Parameter 2" default=(0,0) endparam param pow caption="Exponent" default=0.25 endparam param adj caption="Adjustment" default=1.0 endparam param solid caption="Solid Color" default=false endparam param sca caption="Solid Color Adjustment" default=0.0 visible=@solid==true endparam param invert caption="Invert" default=false visible=@solid==true endparam } Mirethla { init: complex a=(0,0) float b=0.0 float c=0.0 float d=0.0 float k=0.0 loop: z=@p1*fn1(#z)+@p2 float x=real(z) float y=imag(z) if @V==0 a=z-@p3*flip(z^3-1)/(3*z^2)+@p4 elseif @V==1 a=z-@p3*cosh(z^3-1)/sqr(3*z^2)+@p4 elseif @V==2 a=@p3*(exp(x)+flip(exp(y)))+@p4 elseif @V==3 a=z-@p3*sqr(z^3-1)/flip(3*z^2)+@p4 elseif @V==4 a=@p3*(sqr(x)+flip(cos(y)))+@p4 elseif @V==5 a=z+@p3*flip(z)+@p4 elseif @V==6 a=z+@p3*conj(z)+@p4 elseif @V==7 a=z+@p3*cotanh(z)+@p4 elseif @V==8 a=z+@p3*cotan(z)+@p4 elseif @V==9 a=z+@p3/z+@p4 elseif @V==10 a=z+@p3/exp(z)+@p4 elseif @V==11 a=z+@p3/sqr(z)+@p4 elseif @V==12 a=z+@p3/cos(z)+@p4 elseif @v==13 a=z-@p3*conj(z^3-1)/(3*z^2)+@p4 elseif @v==14 a=z-@p3*abs(z^3-1)/(3*z^2)+@p4 elseif @v==15 a=z^2*(cotanh(z)-(@p3-0.5))/(1-(@p3-0.5)*cotanh(z))+@p4 elseif @v==16 a=z-@p3*sqr(z^3-1)/conj(3*z^2)+@p4 elseif @v==17 a=z^2*(cosh(z)-(@p3-0.5))/(1-(@p3-0.5)*cosh(z))+@p4 elseif @v==18 a=z^2*(cos(z)-(@p3-0.5))/(1-(@p3-0.5)*cos(z))+@p4 elseif @V==19 a=((z^2+@p3+1)/(2*z+@p3))^2+@p4 elseif @V==20 a=((exp(z)^2+@p3+1)/(2*exp(z)+@p3))^2+@p4 elseif @V==21 a=((sqr(z)^2+@p3+1)/(2*sqr(z)+@p3))^2+@p4 elseif @V==22 a=((cotanh(z)^2+@p3+1)/(2*cotanh(z)+@p3))^2+@p4 elseif @V==23 a=((cotan(z)^2+@p3+1)/(2*cotan(z)+@p3))^2+@p4 elseif @V==24 a=((tan(z)^2+@p3+1)/(2*tan(z)+@p3))^2+@p4 elseif @V==25 a=((sinh(z)^2+@p3+1)/(2*sinh(z)+@p3))^2+@p4 elseif @V==26 a=((sin(z)^2+@p3+1)/(2*sin(z)+@p3))^2+@p4 elseif @V==27 a=((recip(z)^2+@p3+1)/(2*recip(z)+@p3))^2+@p4 elseif @V==28 a=exp((abs(z)^2+@p3+1)/(2*abs(z)+@p3))^2+@p4 elseif @V==29 a=exp((exp(z)^2+@p3+1)/(2*exp(z)+@p3))^2+@p4 elseif @V==30 a=z-@p3*sqr(z^3-1)/(3*z^2)+@p4 elseif @V==31 a=sqr((z^2+@p3+1)/(2*z+@p3))^2+@p4 elseif @V==32 a=sqr((exp(z)^2+@p3+1)/(2*exp(z)+@p3))^2+@p4 elseif @V==33 a=z-@p3*cosh(z^3-1)/(3*z^2)+@p4 elseif @V==34 a=cosh((abs(z)^2+@p3+1)/(2*abs(z)+@p3))^2+@p4 elseif @V==35 a=cosh((exp(z)^2+@p3+1)/(2*exp(z)+@p3))^2+@p4 elseif @V==36 a=z-@p3*(z^3-1)/tan(3*z^2)+@p4 elseif @V==37 a=z-@p3*sqr(z^3-1)/sin(3*z^2)+@p4 elseif @V==38 a=z-@p3*(z^3-1)/recip(3*z^2)+@p4 elseif @V==39 a=recip((sqr(z)^2+@p3+1)/(2*sqr(z)+@p3))^2+@p4 elseif @V==40 a=sinh((abs(z)^2+@p3+1)/(2*abs(z)+@p3))^2+@p4 elseif @V==41 a=sinh((exp(z)^2+@p3+1)/(2*exp(z)+@p3))^2+@p4 elseif @V==42 a=z-@p3*cosh(z^3-1)/recip(3*z^2)+@p4 elseif @V==43 a=@p3*(x+flip(exp(y)))+@p4 elseif @V==44 a=recip((flip(z)^2+@p3+1)/(2*flip(z)+@p3))^2+@p4 elseif @V==45 a=recip((abs(z)^2+@p3+1)/(2*abs(z)+@p3))^2+@p4 else a=@p3*(z-1i)/exp(z+1i)+@p4 endif b=|a| d=b^2 c=@adj1*d k=k+log(c) final: float s=0.1*@adj2*k/#numiter if @solid if (s<=real(@sca) || s>=imag(@sca)) #solid=true else #index=s endif else #index=s endif default: title = "Mirethla" int param version caption="Version" default=100 visible=@version<100 endparam param v caption="Variant" 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""39""40"\ "41""42""43""44""45""46""47" endparam param p1 default=(1,0) endparam param p2 default=(0,0) endparam param p3 default=(1,0) endparam param p4 default=(0,0) endparam param adj1 caption="Adjustment 1" default=1.0 endparam param adj2 caption="Adjustment 2" default=2.0 endparam func fn1 caption="Function" default=ident() endfunc param solid caption="Solid Color" default=false endparam param p7 caption="Solid Color Adjustment" default=0.6 visible=@solid==true && @version<101 endparam param invert caption="Invert Solid Color" default=false visible=@solid==true && @version<101 endparam param sca caption="Solid Color Adjustment" default=(0,1) visible=@solid==true && @version==101 endparam } Vazae { ;This is a modification/extension of Numberseeker by Edgar Malinovsky (em.ucl) ;Lower values of the Iterations paremeter give smoother colouring. ;Higher values give more detail. ;It may be necessary to increase this value when zooming in. global: int i=@iter if i>=#maxiter i=#maxiter-1 endif init: float a=0.0 float b=0.0 zold=(0,0) int i2=0 loop: zold=#z z=#z if @Fs=="sin" z=sin(z) elseif @Fs=="sinh" z=sinh(z) elseif @Fs=="asin" z=asin(z) elseif @Fs=="asinh" z=asinh(z) elseif @Fs=="cos" z=cos(z) elseif @Fs=="cosh" z=cosh(z) elseif @Fs=="acos" z=acos(z) elseif @Fs=="acosh" z=acosh(z) elseif @Fs=="tan" z=tan(z) elseif @Fs=="tanh" z=tanh(z) elseif @Fs=="atan" z=atan(z) elseif @Fs=="atanh" z=atanh(z) elseif @Fs=="cotan" z=cotan(z) elseif @Fs=="cotanh" z=cotanh(z) elseif @Fs=="sqr" z=sqr(z) elseif @Fs=="sqrt" z=sqrt(z) elseif @Fs=="log" z=log(z) elseif @Fs=="exp" z=exp(z) elseif @Fs=="abs" z=abs(z) elseif @Fs=="cabs" z=cabs(z) elseif @Fs=="conj" z=conj(z) elseif @Fs=="flip" z=flip(z) elseif @Fs=="ident" z=ident(z) elseif @Fs=="recip" z=recip(z) elseif @Fs=="versin" z=1-cos(z) elseif @Fs=="aversin" z=acos(1-z) elseif @Fs=="haversin" z=(1-cos(z))/2 elseif @Fs=="ahaversin" z=2*asin(sqrt(z)) elseif @Fs=="coversin" z=1-sin(z) elseif @Fs=="acoversin" z=asin(1-z) elseif @Fs=="hacoversin" z=(1-sin(z))/2 elseif @Fs=="vercos" z=1+cos(z) elseif @Fs=="avercos" z=acos(1+z) elseif @Fs=="havercos" z=(1+cos(z))/2 elseif @Fs=="ahavercos" z=2*acos(sqrt(z)) elseif @Fs=="covercos" z=1+sin(z) elseif @Fs=="acovercos" z=asin(1+z) elseif @Fs=="hacovercos" z=(1+sin(z))/2 elseif @Fs=="acotan" z=atan(1/(z)) elseif @Fs=="acotanh" z=atanh(1/(z)) elseif @Fs=="sec" z=1/cos(z) elseif @Fs=="sech" z=1/cosh(z) elseif @Fs=="asec" z=acos(1/z) elseif @Fs=="asech" z=acosh(1/z) elseif @Fs=="cosec" z=1/sin(z) elseif @Fs=="cosech" z=1/sinh(z) elseif @Fs=="acosec" z=asin(1/z) elseif @Fs=="acosech" z=asinh(1/z) elseif @Fs=="exsec" z=1/cos(z)-1 elseif @Fs=="aexsec" z= acos(1/(z+1)) elseif @Fs=="excosec" z=1/sin(z)-1 elseif @Fs=="aexcosec" z=asin(1/(z+1)) elseif @Fs=="crd" z=2*sin(z/2) elseif @Fs=="acrd" z=2*asin(z/2) elseif @Fs=="gd" z=asin(tanh(z)) elseif @Fs=="agd" z=asinh(tan(z)) elseif @Fs=="sinc" z=sin(z)/(z) elseif @Fs=="sinhc" z=sinh(z)/(z) elseif @Fs=="cosc" z=cos(z)/(z) elseif @Fs=="coshc" z=cosh(z)/(z) elseif @Fs=="tanc" z=tan(z)/(z) elseif @Fs=="tanhc" z=tanh(z)/(z) elseif @Fs=="cotanc" z=cotan(z)/(z) elseif @Fs=="cotanhc" z=cotanh(z)/(z) elseif @Fs=="secc" z=1/(z*cos(z)) elseif @Fs=="sechc" z=1/(z*cosh(z)) elseif @Fs=="cosecc" z= 1/(z*sin(z)) elseif @Fs=="cosechc" z=1/(z*sinh(z)) elseif @Fs=="cube" z=z^3 elseif @Fs=="cuberoot" z=z^(1/3) elseif @Fs=="colog" z=-log(z) elseif @Fs=="logit" z= log(z/(1-z)) elseif @Fs=="expit" z=1/(1+exp(-z)) elseif @Fs=="gauss" z=exp(-sqr(z)) elseif @Fs=="softplus" z=log(1+exp(z)) elseif @Fs=="primecount" z=z/log(z) elseif @Fs=="sqr+" z=sqr(z)+z elseif @Fs=="cube+" z=z^3+sqr(z)+z elseif @Fs=="sin+" z=sin(z)+z elseif @Fs=="cos+" z=cos(z)+z elseif @Fs=="tan+" z=tan(z)+z elseif @Fs=="cotan+" z=cotan(z)+z elseif @Fs=="sec+" z=1/cos(z)+z elseif @Fs=="cosec+" z=1/sin(z)+z elseif @Fs=="sin*" z=sin(z)*z elseif @Fs=="cos*" z=cos(z)*z elseif @Fs=="tan*" z=tan(z)*z elseif @Fs=="cotan*" z=cotan(z)*z elseif @Fs=="sec*" z=z/cos(z) elseif @Fs=="cosec*" z=z/sin(z) elseif @Fs=="loglog" z=log(log(z)) elseif @Fs=="sinsin" z=sin(sin(z)) elseif @Fs=="coscos" z=cos(cos(z)) elseif @Fs=="+pixel" z=z+pixel elseif @Fs=="-pixel" z=z-pixel elseif @Fs=="*pixel" z=z*pixel elseif @Fs=="/pixel" z=z/pixel elseif @Fs=="ceil" z=ceil(z) elseif @Fs=="floor" z=floor(z) elseif @Fs=="trunc" z=trunc(z) else z=round(z) endif z=@zp1*z+@zp2 if @V==0 z=z elseif @v==1 z=z+z^2 elseif @v==2 z=z+1/z elseif @v==3 z=z-1/z elseif @v==4 z=z-z^2 elseif @v==5 z=z+flip(z) elseif @v==6 z=z+conj(z) elseif @v==7 z=z+cotanh(z) elseif @v==8 z=z+acosh(z) elseif @v==9 z=z-cabs(z) elseif @v==10 z=z-abs(z) elseif @v==11 z=z-exp(z) elseif @v==12 z=z-acosh(z) elseif @v==13 z=z-cos(z) elseif @v==14 z=z-asinh(z) elseif @v==15 if |z|<1 z=z/|z| endif z=z-cos(z) elseif @v==16 z=z+1/log(z) elseif @v==17 z=z+1/sqr(z) elseif @v==18 z=z-1/cosh(z) elseif @v==19 z=z+3/z elseif @v==20 z=z+3/asinh(z) elseif @v==21 z=z+3*cotanh(z) elseif @v==22 z=z-3*flip(z) elseif @v==23 z=z^4*(z+2)/(1+2*z) elseif @v==24 z=z^(-4)*(z+0.75)/(1+0.75*z) elseif @v==25 z=z-(z^(-3)-1)/(-3*z^(-4)) elseif @v==26 z=z-(z^(-6)-1)/(-6*z^(-7)) elseif @v==27 z=z^2*(flip(z)-4)/(2+4*flip(z)) elseif @v==28 z=z^2*(sqr(z)-4)/(2+4*sqr(z)) elseif @v==29 z=z^3*(flip(z)-4)/(3+4*flip(z)) elseif @v==30 z=z^3*(conj(z)-4)/(3+4*conj(z)) elseif @v==31 z=z^3*(atanh(z)-4)/(3+4*atanh(z)) elseif @v==32 z=z^3*(tan(z)-4)/(3+4*tan(z)) elseif @v==33 z=z-trunc((z-2)/(1-2*z)) elseif @v==34 z=z-(z+0.8)/(1+0.8*z) elseif @v==35 z=z-(z+2)/(1+2*z)^(-8) elseif @v==36 z=z-cabs((z+2)/(1+2*z))^(-8) elseif @v==37 z=z-sqr((z+2)/(1+2*z))^(-8) elseif @v==38 z=z-recip((z+2)/(1+2*z))^(-8) elseif @v==39 z=z-cabs((z+2)/(1+2*z))^8 elseif @v==40 if |z|<1 z=z/|z| endif z=z+conj(z) else if |z|<1 z=z/|z| endif z=z-exp(z) endif if i2<=i a=a+exp(-cabs(z+2)) b=b+exp(-1/cabs(zold-z+2)) i2=i2+1 endif final: if |z-zold|<@adj if @solid if @invert if b<@p9 #index=b else #solid=true endif else if b>@p9 #index=b else #solid=true endif endif else #index=b endif else if @solid if @invert if a<@p9 #index=a else #solid=true endif else if a>@p9 #index=a else #solid=true endif endif else #index=a endif endif default: title="Vazae" int param version caption="Version" default=100 visible=@version<100 endparam param v caption="Variant" 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""39""40"\ "41""42" endparam param zp1 caption="Z Parameter 1" default=(1,0) endparam param zp2 caption="Z Parameter 2" default=(0,0) endparam param iter caption="Iterations" default=10 min=0 endparam param Fs caption="Z Function" enum="sin""sinh""asin""asinh""cos""cosh""acos""acosh""tan""tanh""atan"\ "atanh""cotan""cotanh""sqr""sqrt""log""exp""abs""cabs""conj"\ "flip""ident""recip""versin""aversin""haversin""ahaversin""coversin""acoversin"\ "hacoversin""vercos""avercos""havercos""ahavercos""covercos"\ "acovercos""hacovercos""acotan""acotanh" \ "sec""sech""asec""asech""cosec""cosech""acosec""acosech""exsec""aexsec"\ "excosec""aexcosec""crd""acrd""gd""agd""sinc""sinhc""cosc""coshc"\ "tanc""tanhc""cotanc""cotanhc""secc""sechc""cosecc""cosechc"\ "cube""cuberoot""colog""logit""expit""gauss""softplus"\ "primecount""sqr+""cube+""sin+""cos+""tan+""cotan+""sec+""cosec+""sin*""cos*""tan*""cotan*""sec*"\ "cosec*""loglog""sinsin""coscos""+pixel""-pixel"\ "*pixel""/pixel""ceil""floor""trunc""round" default=22 endparam param adj caption="Adjustment" default=0.0 endparam param @solid caption="Solid Colour" default=false endparam param p9 caption="Solid Colour Adjustment" default=0.18 visible=@solid==true endparam param invert caption="Invert Solid Colour" default=false visible=@solid==true endparam } Mirethla2 { init: complex a=(0.0) float b=0.0 float c=0.0 float d=0.0 float k=0.0 loop: z=@zp1*@zf(#z)+@zp2 float x=real(z) float y=imag(z) if @V=="Arcs of Samothrace" a=x^2*(3*x^2-y^2)^2-y^2*(x^2+y^2) elseif @V=="Conchoid of Nicomedes" a=(x-@p2)^2*(x^2+y^2)-@p1^2*x^2 elseif @V=="Coupled Logistic" a=(-@p1)*(@p2+1)*x*(1-x)+(@p1+1)*(@p2+1)*y*(1-y)+flip((-@p1)*(@p2+1)*y*(1-y)+(@p1+1)*(@p2+1)*x*(1-x)) elseif @V=="Cubic of Apollonius" a=(x-2*@p1)*(x^2+y^2)+@p2^2*(cos(2*@p3*x)+sin(2*@p3*y)) elseif @V=="Cycloid" a=x-(@p1+0.25i)*recip(cos(1-y/(@p1+0.25i)))+sqrt(y*(2^(@p1+0.25i)-y)) elseif @V=="de Jong" a=sin((@p1+1)*y)-cos((@p2+1)*x)+flip(sin((@p3+1)*x)-cos((@p4+1)*y)) elseif @V=="Hamilton" a=x+@p1*@p2*sin(2*pi*y)+flip(y-(@p1/@p2)*sin(2*pi*(x+@p1*@p2*sin(2*pi*y)))) elseif @V=="Hamilton Torus" a=-sin(y)*(1-(@p1+0.5))+flip(sin(x)*(1+(@p1+0.5))) elseif @V=="HCA" a=1-@p1*x^2+@p2*(y^2-x^2)+flip(1-@p1*y^2+@p2*(x^2-y^2)) elseif @V=="Kam Torus" a=x*cos(@p1-0.5+2.75i)+(x^2-y)*sin(@p1-0.5+2.75i)+flip(x*sin(@p1-0.5+2.75i)-(x^2-y)*cos(@p1-0.5+2.75i)) elseif @V=="Kampyle of Eudoxus" a=(@p1+1)^2*x^4-(@p2+0.5)^4*(x^2+y^2) elseif @V=="Klein Quartic" a=(x^2+y^2-(@p2+1)*@p1^2)^2-@p3*@p1*(y-@p1+sqrt(3)*x)*(y-@p1-sqrt(3)*x)*(2*y+@p1) elseif @V=="Latoocarfian" a=sin((@p1+1)*y)+(@p2+1)*sin((@p1+1)*x)+flip(sin(@p3*x)+@p4*sin(@p3*y)) elseif @V=="Lemniscate of Bernoulli" a=(x^2+y^2)^2-(@p1+1)^2*(x^2-y^2) elseif @V=="Lissajous Quadratic" a=@p1^4*y^4-4*@p1^3*@p2*x*y^3+2*@p1^2*@p2*y^3+6*@p1^2*@p2^2*x^2*y^2 \ -4*@p1*@p2^2*x*y^2-2*@p1^3*x*y^2-2*@p1^2*@p2^2*y^2+@p2^2*y^2+@p1^2*y^2 \ -4*@p1*@p2^3*x^3*y+2*@p2^3*x^2*y+4*@p1^2*@p2*x^2*y+4*@p1*@p2^3*x*y \ -2*@p2^3*y-4*@p1^2*@p2*y+@p2^4*x^4-2*@p1*@p2^2*x^3-2*@p2^4*x^2 \ +@p2^2*x^2+@p1^2*x^2+2*@p1*@p2^2*x-@p1^2-@p2^2+@p2^4 elseif @V=="Polyharmonic Pendulum" a=y+flip(-@p1*sin(x)-@p2*sin(3*x)+@p3*sin(@p4)) elseif @V=="Popcorn" a=x-@p1*sin(y+tan((@p2+0.2i)*y))+flip(y-@p1*sin(x+tan((@p2+0.2i)*x))) elseif @V=="Svensson" a=(@p1+1)*sin((@p2+1)*x)-sin(@p3*y)+flip(@p4*cos((@p2+1)*x)-cos(@p3*y)) elseif @V=="OM1" a=exp(x)+flip(y-@p1*((@p2*y)-(@p3+1)*(x)^2)) elseif @V=="OM2" a=(@p1+1)^2*y^2-x^2*(y^2-x^2)+(x^2+y^2)^2-2*(@p1+1)^2*(x^2-y^2)+(@p1+1)^4-(@p2+1)^4 elseif @V=="OM3" a=x+@p1*(asin(@p2*y)^2)+flip(y+@p1*(asin(@p2*x)^2)) elseif @V=="OM4" a=x+(@p1+1i)*(tanh((@p2+1i)*y)^2)+flip(y+(@p1+1i)*(cosh((@p2+1i)*x)^2))+x*(x^2+y^2)+((@p1+1i)+1+(@p2+1i))*x^2-((@p1+1i)+1-(@p2+1i))*y^2 elseif @V=="OM5" a=x+@p1*sqr(y+sqr(@p2*y))+flip(y+@p1*sqr(x*sqr(@p2*x))) elseif @V=="OM6" a=x+@p1*asin(y+tan((@p2+1)*y))+flip(y+@p1*asin(x*tan((@p2+1)*x))) elseif @V=="OM7" a=a=x+(@p1-2)*(@p2-0.8)*cos(2*pi*y)+flip(y-((@p1-2)/(@p2-0.8))*sin(2*pi*(x+(@p1-2)*(@p2-0.8)*sin(2*pi*y)))) elseif @V=="OM8" a=(x%(2*pi))+(@p2+1+1i)*(y%(2*pi))+@p1*sin(2*pi*(x%(2*pi)))+(@p2+1+1i)*flip((x%(2*pi))+(y%(2*pi))+@p1*sin(2*pi*(x%(2*pi)))-(x%(2*pi))) elseif @V=="OM9" a=@p1*x+flip(-@p1*y+@p2*sin(2*pi*x)) elseif @V=="OM10" a=x-@p2*y+((@p1-0.5)/2*pi)*sin(2*pi*x)+flip(x-@p2*y-((@p1-0.5)/2*pi)*sin(2*pi*x)+x)+x^3+y^3-(@p1-0.5)^3 elseif @V=="OM11" a=@p1*(cabs(y)-x^4)+flip(x-y+@p2*z) elseif @V=="OM12" a=@p1*flip(y^2-x^2)*@p2*(x-1)*@p3*(2*x-3)-4*@p4*tanh(x^2+y^2-2*x)^2 elseif @V=="OM13" a=@p1*(y^2-x^2)*@p2*(x-1)*@p3*(2*x+3)+4*@p4*(x^2+y^2-2*x) elseif @V=="OM14" a=@p1*(flip(y^2-x^2)*exp(x-1)*flip(2*x+3))+4*@p2*exp(x^2+y^2-2*x) elseif @V=="OM15" a=(x^2+y^2)^3-(@p1+1)^3*x*(x^2-3*y^2)+2*(2*x^2-@p2^2)^2-@p2*(2*y-@p2)^2*(y+@p2) elseif @V=="OM16" a=x^2*(4*x^2-3*(@p1+0.25)^2)+4*(@p1+0.25)^2*y^2*(y^2-(@p1+0.25)^2)+(x^2+y^2)^3+@p2^2*(3*x^4-6*x^2*y^2-5*y^4)+8*@p2^4*y^2-4*@p2^6 elseif @V=="OM17" a=(@p1+1)*x/(1+y^2)+flip(x+(@p2+1)*y)+1-(@p1+1)*sin(x)+(@p2+1)*y+flip(x)+(@p2+2)^2*(x^2+y^2-(@p1+1)*x)^2-(@p1+1)^2*(x^2+y^2)*(x-(@p1+1))^2 elseif @V=="OM18" a=sin((@p1+1)*y)+(@p2+1)*sin((@p1+1)*x)+sin((@p1+1)*y)+(@p2+1)*cos((@p1+1)*x)+flip(sin(@p3*x)+@p4*sin(@p3*y)+sin(@p3*x)+@p4*cos(@p3*y)) elseif @V=="OM19" a=-@p1*x-@p2*x*y+y+flip(-@p3*y-@p4*x^2+@p5*y^2-@p1*x-@p2*x^2+@p3) elseif @V=="OM20" a=(x^2+y^2-2*(@p1-3)*x)^2-4*(@p1-3)^2*sqrt(x^2+y^2)+x^(2/3)+y^(2/3)-@p2 elseif @V=="OM21" a=(x^2+y^2-2*(@p1-3)*x)^2-4*(@p1-3)^2*sin(x^2+y^2)+x^(2/3)+y^(2/3)-@p2 elseif @V=="OM22" a=(@p1+1i)^2*y^2-x^3*((@p1+1i)-x)+y^2-(@p2+2-0.5i)*((@p2+2-0.5i)-x)^3*x^4 endif b=|a| d=b^2 c=@adj1*d k=k+log(c) final: float s=0.1*@adj2*k/#numiter if @solid if (s<=real(@sca) || s>=imag(@sca)) #solid=true else #index=s endif else #index=s endif default: title="Mirethla 2" int param version caption="Version" default=100 visible=@version<100 endparam param V caption="Variant" enum="Arcs of Samothrace""Conchoid of Nicomedes""Coupled Logistic""Cubic of Apollonius""Cycloid""de Jong""Hamilton"\ "Hamilton Torus""HCA""Kam Torus""Kampyle of Eudoxus""Klein Quartic""Latoocarfian""Lemniscate of Bernoulli"\ "Lissajous Quadratic""Polyharmonic Pendulum""Popcorn""Svensson""OM1""OM2""OM3""OM4""OM5""OM6""OM7"\ "OM8""OM9""OM10""OM11""OM12""OM13""OM14""OM15""OM16""OM17""OM18""OM19""OM20""OM21""OM22" default=0 endparam param p1 caption="Variant Parameter" default=(1,0) visible=@V!="Arcs of Samothrace" endparam param p2 caption="Variant Parameter 2" default=(1,0) visible=@V!="Cycloid" && @V!="Hamilton Torus" && @V!="Kam Torus" && @V!="Arcs of Samothrace" && @V!="Lemniscate of Bernoulli" endparam param p3 caption="Variant Parameter 3" default=(1,0) visible=@V=="de Jong" || @V=="Cubic of Apollonius" || @V=="Klein Quartic" || @V=="Latoocarfian" || @V=="Polyharmonic Pendulum" \ || @V=="Svensson" || @V=="OM1" \ || @V=="OM12" || @V=="OM13" || @V=="OM18" || @V=="OM19" endparam param p4 caption="Variant Parameter 4" default=(1,0) visible=@V=="de Jong" || @V=="Latoocarfian" || @V=="Polyharmonic Pendulum" || @V=="Svensson" \ || @V=="OM12" || @V=="OM13" || @V=="OM18" || @V=="OM19" endparam param p5 caption="Variant Parameter 5" default=(1,0) visible=@V=="OM19" endparam param zp1 caption="Z Parameter 1" default=(1,0) endparam param zp2 caption="Z Parameter 2" default=(0,0) endparam func zf caption="Z Function" default=ident() endfunc param adj1 caption="Adjustment 1" default=1.0 endparam param adj2 caption="Adjustment 2" default=2.0 endparam param solid caption="Solid Color" default=false endparam param sca caption="Solid Color Adjustment" default=(0,1) visible=@solid==true endparam } Krommen { init: float a=1e20 loop: z=@p1*fn1(#z)+@p2 if @v2==0 z=z elseif @v2==1 z=z+sqr(z) elseif @v2==2 z=z-sqr(z) elseif @v2==3 z=z+z^3 elseif @v2==4 z=z-z^3 elseif @v2==5 z=z+conj(z) elseif @v2==6 z=z+cabs(z) elseif @v2==7 z=z+exp(z) elseif @v2==8 z=z+log(z) elseif @v2==9 z=z+sqrt(z) elseif @v2==10 z=z+atanh(z) elseif @v2==11 z=z+atan(z) elseif @v2==12 z=z+tanh(z) elseif @v2==13 z=z+tan(z) elseif @v2==14 z=z+cosh(z) elseif @v2==15 z=z+cos(z) elseif @v2==16 z=z+sinh(z) elseif @v2==17 z=z+sin(z) elseif @v2==18 z=z+ceil(z) elseif @v2==19 z=z+floor(z) elseif @v2==20 z=z-conj(z) elseif @v2==21 z=z-cabs(z) elseif @v2==22 z=z-exp(z) elseif @v2==23 z=z-sqrt(z) elseif @v2==24 z=z-cotanh(z) elseif @v2==25 z=z-tan(z) elseif @v2==26 z=z-cos(z) elseif @v2==27 z=z-ceil(z) elseif @v2==28 z=z-round(z) elseif @v2==29 z=z+1/flip(z) elseif @v2==30 z=z+1/cabs(z) elseif @v2==31 z=z+1/abs(z) elseif @v2==32 z=z+1/sqrt(z) elseif @v2==33 z=z+1/sqr(z) elseif @v2==34 z=z+1/acos(z) elseif @v2==35 z=z+1/cosh(z) elseif @v2==36 z=z+1/cos(z) elseif @v2==37 z=z-1/z elseif @v2==38 z=z-1/conj(z) elseif @v2==39 z=z-1/exp(z) elseif @v2==40 z=z-1/cosh(z) elseif @v2==41 z=z-1/cos(z) elseif @v2==42 z=z-1/sin(z) else z=z-1/round(z) endif x=real(z) y=imag(z) if @V=="Alain Curve" z=((x^2-y^2)^2-@a^2*x^2+@a2^2*y^2) elseif @V=="Ampersand Curve" z=((y^2-x^2)*(x-1)*(2*x-3)-4*(x^2+y^2-2*x)^2) elseif @V=="Arcs of Samothrace" z=(x^2*(3*x^2-y^2)^2-y^2*(x^2+y^2)) elseif @V=="Astroid" z=(x^(2/3)+y^(2/3)-@a^(2/3)) elseif @V=="Atriphthaloid" z=(x^4*(x^2+y^2)-(@a2*x^2-@a^3)^2) elseif @V=="Bean Curve" z=((x^2+y^2)^2-x^3-y^3) elseif @V=="Bean Curve 2" z=(x^4+x^2*y^2+y^4-x*(x^2+y^2)) elseif @V=="Beetle" z=((x^2+y^2)*(x^2+y^2-@a*x-@a2*y)-@a3^2*x^2*y^2) elseif @V=="Biaxial Eight Reverse" z=(@a^2*y^2-x^2*(y^2-x^2)) elseif @V=="Bicorn" z=(y^2*(@a^2-x^2)-(x^2+2*@a*y-@a^2)^2) elseif @V=="Bicuspid" z=((x^2-@a^2)*(x-@a)^2+(y^2-@a^2)^2) elseif @V=="Biquartic" z=(x^8+4*x^6*y+y^3*(y-1)+3*x^4*y*(2*y-3)+2*x^2*y^2*(2*y+3)) elseif @V=="Blade's Cubic" z=(x^3+y^3-@a^3) elseif @V=="Bolza" z=(y^2-x^5+x) elseif @V=="Bow Curve" z=(x^4-(@a+1)*x^2*y+y^3) elseif @V=="Bullet-Nose Curve" z=((@a^2-x^2)*(@a2^2+y^2)-@a^2*@a2^2) elseif @V=="Butterfly Curve" z=(x^6+y^6-x^2) elseif @V=="Butterfly Knot" z=((x^2+y^2)*x^4-(x^2-y^2)^2) elseif @V=="Cardioid" z=((x^2+y^2-2*@a*x)^2-4*@a^2*(x^2+y^2)) elseif @V=="Cartesian Oval" z=((@a2-3.2)*sqrt((x-@a)^2+y^2)+@a3*sqrt((x+@a)^2+y^2)-@a4) elseif @V=="Cassinian Ovals" z=((x^2+y^2)^2-2*@a^2*(x^2-y^2)+@a^4-@a2^4) elseif @V=="Catenary" z=(y-@a*cosh(x/@a)) elseif @V=="Cayley's Sextic" z=(4*(x^2+y^2-@a*x)^3-27*@a^2*(x^2+y^2)^2) elseif @V=="Cayley's Sextic 2" z=(-@a^3*x^3-48*@a*x*(x^2+y^2)^2+64*(x^2+y^2)^3-3*@a^2*(x^2+y^2)*(5*x^2+9*y^2)) elseif @V=="Ceva's Trisectrix" z=((x^2+y^2)^3-((@a+1)*x^2-(@a-1)*y^2)^2) elseif @V=="Chasles Cubic" z=(y-@a*x^3-@a2*x^2*y-@a3*x*y^2-@a4*y^3) elseif @V=="Circle" z=(x^2+y^2-@a^2) elseif @V=="Circular Cubic" z=(x*(x^2+y^2)+@a*x^2+@a2*y^2+2*@a3*x+2*@a4*y+@a5) elseif @V=="Cissoid of Diocles" z=(y^2-x^3/(2*@a-x)) elseif @V=="Cissoid of Diocles 2" z=(y^2*(2*@a-x)-x^8) elseif @V=="Cissoid of zahradnik" z=(@a3*x^2+2*@a4*x*y+(@a5+1)*y^2-2*@a*x-2*@a2*y) elseif @V=="Clairaut Curve" z=((x^2+y^2)^((@a2+1)/2)-@a*y^@a2) elseif @V=="Clinoid" z=(y-@a2*e^(x/@a)-@a3*e^(-x/@a)) elseif @V=="Cochleoid" z=((x^2+y^2)*atan(y/x)-@a*y) elseif @V=="Conchoid of a Circle" z=((x^2+y^2+@a3^2-@a2^2)^2*(y^2+(x+@a)^2)-4*@a3^2*(x*(x+@a)+y^2)^2) elseif @V=="Conchoid of Nicomedes" z=((x-@a2)^2*(x^2+y^2)-@a^2*x^2) elseif @V=="Conchoid of de Sluze" z=(@a*(x+@a)*(x^2+y^2)-@a2^2*x^2) elseif @V=="Conic Sections" z=(2*@a^2*x+(1-@a^2)*x^2+y^2-@a^2) elseif @V=="Cornoid" z=((x^2+y^2)^3+@a^2*(3*x^4-6*x^2*y^2-5*y^4)+8*@a^4*y^2-4*@a^6) elseif @V=="Cornoid 2" z=(x^6+y^6+3*x^4*y^2+3*x^2*y^4+3*x^4-5*y^4+8*y^2-4) elseif @V=="Coscoid" z=(y-@a*cos(x)/x) elseif @V=="Cosecantoid" z=(y-@a/sin(x/@a2)) elseif @V=="Cosinusoid" z=(y-@a*cos(x/@a2)) elseif @V=="Cotangentoid" z=(y-@a*cotan(x/@a2)) elseif @V=="Cross Curve" z=(@a^2*y^2+@a2^2*x^2-x^2*y^2) elseif @V=="Cubic Joint" z=(y^2*x-@a*y^2-@a2*x^2) elseif @V=="Cubic of Apollonius" z=((x-2*@a)*(x^2+y^2)+@a2^2*(cos(2*@a3*x)+sin(2*@a3*y))) elseif @V=="Curve of Cramer" z=(x*(x^2+y^2)+(@a+1+@a2)*x^2-(@a+1-@a2)*y^2) elseif @V=="Curve of Jefabek" z=((@a2+1)^2*(x^2+y^2-@a*x)^2-@a^2*(x^2+y^2)*(x-@a)^2) elseif @V=="Curve of Loriga" z=(3*x^2-y^2-@a^2) elseif @V=="Curve of Rosillo" z=(y^2*(@a3-x)^2-(@a2-x)^2*(@a^2-x^2)) elseif @V=="Deltoid" z=((x^2+y^2+12*@a*x+9*@a^2)-4*@a*(2*x+3*@a)^3) elseif @V=="Deltoid 2" z=((x^2+y^2)^2+18*@a^2*(x^2+y^2)-27*@a^4-8*@a*x*(x^2-3*y^2)) elseif @V=="Devil's Curve" z=(y^4-x^4+@a*y^2+@a2*x^2) elseif @V=="Devil's Curve 2" z=(y^4-x^4-@a^2*y^2+@a2^2*x^2) elseif @V=="Dipole Curve" z=((x^2+y^2)^3-@a^4*x^2) elseif @V=="Double Egg" z=((x^2+y^2)^3-@a^2*x^4) elseif @V=="Double Egg 2" z=(x^4+2*x^2*y^2+4*y^4-x^3-6*x^2-x*y^2) elseif @V=="Double Folium" z=((x^2+y^2)^2-4*@a*x*y^2) elseif @V=="Double U" z=(y^2*(@a^2-x^2)-@a^4) elseif @V=="Dumbbell Curve" z=(@a2^4*y^2-x^4*(@a^2-x^2)) elseif @V=="Duplicatrix Cubic" z=(@a*y^2-x^2*(x-@a)) elseif @V=="Durer's Conchoid" z=((x^2+x*y+@a*x-@a2^2)^2-(@a2^2-x^2)*(x-y+@a)^2) elseif @V=="Durer's Conchoid 2" z=(2*y^2*(x^2+y^2)-2*@a2*y^2*(x+y)+(@a2^2-3*@a^2)*y^2-@a^2*x^2+2*@a^2*@a2*(x+y)+@a^2*(@a^2-@a2^2)) elseif @V=="Dwulistne" z=((x^2+y^2)^2-(@a*x+@a2*y)*x^2) elseif @V=="Egg of Columbus" z=(y^4+10*y^2*x^2+5*x^4-y) elseif @V=="Egg of Granville" z=(x^2*y^2-@a^2*(x-(@a2+1-@a3))*(@a2+1+@a3-x)) elseif @V=="Egg of Granville 2" z=(x^2*y^2-(x-(@a+0.5))*(1-x)) elseif @V=="Egg of Kepler" z=((x^2+y^2)^2-@a*x^3) elseif @V=="Eight Curve" z=(x^4-@a^2*(x^2-y^2)) elseif @V=="Elkies Trinomial Curve" z=(y^2-x*(81*x^5+396*x^4+738*x^3+660*x^2+269*x+48)) elseif @V=="Ellipse" z=(x^2/@a^2+y^2/@a2^2-1) elseif @V=="Fish Curve" z=((2*x^2+y^2)^2+2*sqrt(2)*@a*x*(2*x^2-3*y^2)+2*@a^2*(y^2-x^2)) elseif @V=="Focal Conic Conchoid" z=((x^2+y^2-@a*@a2*x)^2-(x^2+y^2)*(@a2*x-(@a+1))^2) elseif @V=="Folium" z=((x^2+y^2)*(y^2+x*(x+@a2))-4*@a*x*y^2) elseif @V=="Folium of Descartes" z=(x^3+y^3-3*@a*x*y) elseif @V=="Folium of Durer" z=((x^2+y^2)*(2*(x^2+y^2)-@a^2)^2-@a^4*x^2) elseif @V=="Frequency Curve" z=(y-sqrt(2*pi)*exp(-x^2/2)) elseif @V=="Heart Curve" z=((x^3+y^2-1)^3-x^2*y^3) elseif @V=="Heart of Eugene Beutel" z=((x^2+y^2-1)^3-x^2*y^3) elseif @V=="Heart of Raphael Laporte" z=(x^8-x^6+27*x^4-27*x^2+12*y*x^6-12*y*x^4+42*y^2*x^4+42*y^2*x^2+2*y^3*x^4+26*y^3*x^2+8*y^3+12*y^4*x^2+12*y^4+6*y^5+y^6) elseif @V=="Hippopede" z=((x^2+y^2)^2-@a*x^2-@a2*y^2) elseif @V=="Hippopede of Proclus" z=((x^2+y^2)^2+4*@a2*(@a2-@a)*(x^2+y^2)-4*@a2^2*x^2) elseif @V=="Hoerl Curve" z=(y-x^@a*e^x) elseif @V=="Humbert's Cubic" z=(x^3-3*x*y^2-@a^3) elseif @V=="Hyperbola" z=(x^2/@a^2-y^2/@a2^2-1) elseif @V=="Hyperbola 2" z=(x^2/@a^2-y^2/@a2^2+1) elseif @V=="Hyperbolic Cosecantoid" z=(y-@a/sinh(x/@a2)) elseif @V=="Hyperbolic Cosinusoid" z=(y-@a*cosh(x/@a2)) elseif @V=="Hyperbolic Cotangentoid" z=(y-@a*cotanh(x/@a2)) elseif @V=="Hyperbolic Secantoid" z=(y-@a/cosh(x/@a2)) elseif @V=="Hyperbolic Sinusoid" z=(y-@a*sinh(x/@a2)) elseif @V=="Hyperbolic Tangentoid" z=(y-tanh(@a*x)) elseif @V=="Hyperelliptic Curve" z=(y^2-x*(x+1)*(x-3)*(x+2)*(x-2)) elseif @V=="Illumination Curve" z=(y^2-recip((x^2+1)^3)) elseif @V=="Inverse Nephroid" z=((@a^2-4*(x^2+y^2))^3-108*@a^2*x^2*(x^2+y^2)) elseif @V=="Isoptic Curve" z=(tan(@a)^2*(x+pi/2)^2-y^2+2*@a2*x) elseif @V=="Kampyle of Eudoxus" z=(@a^2*x^4-@a2^4*(x^2+y^2)) elseif @V=="Kappa Curve" z=(y^2*(x^2+y^2)-@a^2*x^2) elseif @V=="Kepler's Folium" z=(((x-@a2)^2+y^2)*(x*(x-@a2)+y^2)-4*@a*(x-@a2)*y^2) elseif @V=="Kiepert Curve" z=((x^2+y^2)^3-@a^3*x*(x^2-3*y^2)) elseif @V=="Kieroid" z=(y^2*(x-@a)^2+x^2*(x-@a2)^2-@a3^2*x^2) elseif @V=="Kiss Curve" z=(@a^4*y^2-(@a^2-x^2)^3) elseif @V=="Klein Quartic" z=((x^2+y^2-@a2*@a^2)^2-@a3*@a*(y-@a+sqrt(3)*x)*(y-@a-sqrt(3)*x)*(2*y+@a)) elseif @V=="Kulp Quartic" z=(x^2*y^2-@a^2*(@a^2-y^2)) elseif @V=="Lemniscate of Bernoulli" z=((x^2+y^2)^2-@a^2*(x^2-y^2)) elseif @V=="Lemniscate of Booth" z=((x^2+y^2)^2-(2*@a^2+@a2)*x^2+(2*@a^2-@a2)*y^2) elseif @V=="Limacon of Pascal" z=((x^2+y^2-@a*y)^2-(x^2+y^2)) elseif @V=="Limacon of Pascal 2" z=((x^2+y^2-@a*x)^2-@a2^2*(x^2+y^2)) elseif @V=="Links Curve" z=((x^2+y^2-3*x)^2-4*x^2*(2-x)) elseif @V=="Lissajous Curve" z=(2*(2*x^2-@a^2)^2-@a*(2*y-@a)^2*(y+@a)) elseif @V=="Lissajous Curve 2" z=(x^2*(4*x^2-3*@a^2)+4*@a^2*y^2*(y^2-@a^2)) elseif @V=="Lissajous Quadratic" z=(@a^4*y^4-4*@a^3*@a2*x*y^3+2*@a^2*@a2*y^3+6*@a^2*@a2^2*x^2*y^2 \ -4*@a*@a2^2*x*y^2-2*@a^3*x*y^2-2*@a^2*@a2^2*y^2+@a2^2*y^2+@a^2*y^2 \ -4*@a*@a2^3*x^3*y+2*@a2^3*x^2*y+4*@a^2*@a2*x^2*y+4*@a*@a2^3*x*y \ -2*@a2^3*y-4*@a^2*@a2*y+@a2^4*x^4-2*@a*@a2^2*x^3-2*@a2^4*x^2 \ +@a2^2*x^2+@a^2*x^2+2*@a*@a2^2*x-@a^2-@a2^2+@a2^4) elseif @V=="Logarithmic Lemniscate" z=(y^2-x^2*log(@a^2/x^2)) elseif @V=="Logarithmic Sinusoid" z=(y-log(sqrt(1-x^2))) elseif @V=="Logistic Growth Curve" z=(y-recip(1+@a*e^x)) elseif @V=="Maltese Cross Curve" z=(x*y*(x^2-y^2)-x^2-y^2) elseif @V=="Neile's Semi-Cubical Parabola" z=(y^3-@a*x^2) elseif @V=="Neile's Semi-Cubical Parabola 2" z=((x-0.5)^3-3*y^2) elseif @V=="Nephroid" z=((x^2+y^2-4*@a^2)^3-108*@a^4*x^2) elseif @V=="Nephroid of Freeth" z=((x^2+y^2)*(x*2+y^2-@a^2)^2-4*@a^2*(x^2+y^2-@a*x)^2) elseif @V=="Newton's Diverging Parabolas" z=(@a*y^2-x*(x^2-2*@a2*x+@a3)) elseif @V=="Newton's Diverging Parabolas 2" z=(y^2-x*(x^2+2*@a*x+@a2)) elseif @V=="Nodal Curve" z=(x^2*y^2*(x^2+y^2)-(x^2-y^2)^2) elseif @V=="Oblique Bifolium" z=((x^2+y^2)^2-x^2*(@a*x+@a2*y)) elseif @V=="Oblique Cappa" z=((x^2+y^2)*y^2-@a^2*(x*sin(@a2)+y*cos(@a2))^2) elseif @V=="Oblique Cissoid" z=((x^2+y^2)*(x*cos(@a2)+y*sin(@a2))-2*@a*y^2) elseif @V=="Oblique Pancappa" z=((y-@a)^2*(x^2+y^2)-(@a2*x+@a3*y)^2) elseif @V=="Oblique Strophoid" z=(y*(x^2+y^2)-@a*(x^2-y^2)-2*@a2*x*y) elseif @V=="Ophiuride" z=(x*(x^2+y^2)-@a2*x*y-@a*y^2) elseif @V=="Parabola" z=(4*@a*(x-@a2)-(y-@a3)^2) elseif @V=="Parabola 2" z=(x-@a*(y-@a2)^2-@a3) elseif @V=="Parabola 3" z=(y-@a*x^2-@a2*x-@a3) elseif @V=="Parabolic Trifolium" z=(x^2*(x^2+y^2)-(@a+5)*y*(x^2-y^2)) elseif @V=="Pear-Shaped Quartic" z=(@a2^2*y^2-x^3*(@a-x)) elseif @V=="Pearls of Sluze" z=(y^(@a2+1)-@a3*(@a-x)^@a4*x^@a5) elseif @V=="Pursuit Curve" z=(y-@a*x^2+log(x)) elseif @V=="Pursuit Curve 2" z=(y-@a*x+log(x)) elseif @V=="Quadratix of Hippias" z=(x-y*cotan(y/@a)) elseif @V=="Quadrifolium" z=((x^2+y^2)^3-4*@a^2*x^2*y^2) elseif @V=="Regular Trifolium" z=((x^2+y^2)^2-@a*x*(x^2-3*y^2)) elseif @V=="Right Strophoid" z=(y^2-x^2*(@a-x)/(@a+x)) elseif @V=="Rose Curve" z=(x-@a*sin(@a2*y)) elseif @V=="Rose Curve 2" z=(x-@a*cos(@a2*y)) elseif @V=="Satchel" z=((x^2-@a2*y)^2-@a^2*(x^2-y^2)) elseif @V=="Scarab" z=((x^2+y^2)*(x^2+y^2+@a*x)^2-@a2^2*(x^2-y^2)^2) elseif @V=="Scyphoid" z=(x^4-y^4-4*@a*x*y^2) elseif @V=="Secantoid" z=(y-@a/cos(x/@a2)) elseif @V=="Seccoid" z=(y-@a2/(x*cos(x))) elseif @V=="Semi-Trident" z=(x*y^2-@a*x) elseif @V=="Serpentine Curve" z=(y-@a*@a2*x/(x^2+@a^2)) elseif @V=="Sincoid" z=(y-@a*sin(x)/x) elseif @V=="Sinus Chain" z=(y^2-abs(sin(x)+0.1*sin(2*x))) elseif @V=="Sinusoid" z=(y-@a*sin(x/@a2)) elseif @V=="Spiric Curve" z=((x^2+y^2)^2+(@a-2)*x^2+@a2*y^2+2*@a3*x+@a4) elseif @V=="Spiric of Perseus" z=((x^2+y^2)^2-2*@a*x^2-2*@a2*y^2+@a3) elseif @V=="Spiric Sections" z=((@a3^2-@a^2+@a2^2+x^2+y^2)^2-4*@a3^2*(x^2+@a2^2)) elseif @V=="Superellipse" z=((x/@a)^@a3+(y/@a2)^@a3-1) elseif @V=="Superellipse 2" z=(cabs((x-@a)/@a3)^@a4+cabs((y-@a2)/@a3)^@a4-1) elseif @V=="Swastika Curve" z=(2*x*y-x^4+y^4) elseif @V=="Syntractrix" z=(x+sqrt((@a2+1)^2-y^2)-@a*log(((@a2+1)+sqrt((@a2+1)^2-y^2))/y)) elseif @V=="Szego Curve" z=(x^2+y^2-e^(2*x-2)) elseif @V=="Tancoid" z=(y-@a*tan(x)/x) elseif @V=="Tangentoid" z=(y-@a*tan(x/@a2)) elseif @V=="Tetracuspid" z=(@a^@a2*(cabs(x)^@a2+cabs(y)^@a2)-(x^2+y^2)^@a2) elseif @V=="Torpedo" z=((x^2+y^2)^2-@a*x*(x^2-y^2)) elseif @V=="Tractrix" z=(x-log(((@a+1)-sqrt((@a+1)^2-y^2))/y)-sqrt((@a+1)^2-y^2)) elseif @V=="Trident" z=(y-x^2-@a/x) elseif @V=="Trident 2" z=(x*y+@a*x^3+@a2*x^2+@a3*x-@a4) elseif @V=="Trifolium" z=((x^2+y^2)^2-(x^2+y^2)*(@a*x+@a2*y)-@a3*x*(x^2-3*y^2)) elseif @V=="Trifolium 2" z=((x^2+y^2)^2-(@a*x+@a2*y)*(x^2-y^2)) elseif @V=="Trisectrix of Delange" z=((x^2+y^2-2*@a^2)^2-x^2*(x^2+y^2)) elseif @V=="Trisectrix of Maclaurin" z=(y^2*(@a+x)-x^2*(3*@a-x)) elseif @V=="Trisectrix of Maclaurin 2" z=(2*x^3+2*x*y^2-3*x^2+y^2) elseif @V=="Trott Curve" z=(144*(x^4+y^4)-225*(x^2+y^2)+350*x^2*y^2+81) elseif @V=="Tschirnhaus' Cubic" z=(3*@a*y^2-x*(x-@a)^2) elseif @V=="Tschirnhaus' Cubic 2" z=(27*@a*y^2-(@a-x)*(x+8*@a)^2) elseif @V=="Visiera" z=(x*(x^2+y^2)-@a*(x^2+2*y^2)) elseif @V=="Viviani's Curve" z=(y^2-x^2*(@a^2-x^2)) elseif @V=="Watt's Curve" z=((x^2+y^2)*(x^2+y^2-@a3^2)^2+4*@a^2*y^2*(x^2+y^2-@a2^2)) elseif @V=="Witch of Agnesi" z=(y-8*@a^3/(x^2+4*@a^2)) elseif @V=="OM1" z=((x^2+y^2)^3-@a*x*(x-@a)+y*(y+@a)) elseif @V=="OM2" z=((x^2-y^2)*(x^2+y^2)^2-2*@a*x*y*(x-@a^2)) elseif @V=="OM3" z=(@a*sin(x^2+y^2)+@a2*x*(x^2-y^2)-2*@a*x*y*(@a^2-@a2^2)) elseif @V=="OM4" z=(recip(@a*(x^2-1))*@a2^2*x*tanh(@a*(y^2-1))-@a*@a2*(x*y+1)) elseif @V=="OM5" z=(x+y^2+@a*x^3+@a2*y^4+@a^2*@a2^2*x^5*y^5) elseif @V=="OM6" z=(sin(x)^3+sin(y)^3-@a) elseif @V=="OM7" z=(x^(2/3)+(@a*y)^(2/3)+(@a^2*x*y)^(2/3)-@a^3) elseif @V=="OM8" z=((x^2-@a^2)*(x-@a)+(y^2-@a^2)^2) elseif @V=="OM9" z=((x^2-(@a-0.5)^2)*(x-(@a-0.5))^2+(y^2-(@a-0.5)^2)^3) elseif @V=="OM10" z=((x^2-@a^2)*(x-@a)^3+(y^2-@a2^2)^2) elseif @V=="OM11" z=(((@a*@a2-x)^2+(@a2-y)^2)/@a3^2-1) elseif @V=="OM12" z=((x^2+y^2)^2-@a/(x^2-y^2)) elseif @V=="OM13" z=((x^2+y^2)^4-@a*(x^2+y^2)^3+(x^2+y^2)^2-(x^2+y^2)+y-(1-@a2)) elseif @V=="OM14" z=((2*@a)^@a2*y^2-(@a+x)*(@a-x)^(@a2+1)) elseif @V=="OM15" z=((x^2+y^2)^5+@a*(x^2-y^2)^3-@a^2*y) elseif @V=="OM16" z=(@a*y-@a2/(x*cos(x))+@a3/(x*cos(y))) elseif @V=="OM17" z=((x^2+y^2)*(x^2-y^2)/(2*@a*x*y)+(@a-1)) elseif @V=="OM18" z=(y^2+@a*x^3*tanh(x^2-y^2)-x^2*y*(x^2+y^2)) elseif @V=="OM19" z=(((@a*@a2-x*y)^3+(@a2*@a3-(X^2+y^2)^2))) elseif @V=="OM20" z=(y^2+x^2-((x+(@a3*(x-@a))/sqrt((x-@a)^2+(y-@a2)^2))-(y+(@a3*(y-@a2))/sqrt((x-@a)^2+(y-@a2)^2)))) elseif @V=="OM21" z=(x^2-4*@a*y*(x^2+y^2)+y^3*@a^2*(x^2-y^2)^4) elseif @V=="OM22" z=(y-x*(x^4-@a)*(x^2+y^2)^2) elseif @V=="OM23" z=((x^3-x^2-(3*x+@a)*y^2)*(x^3-x^2+(3*x+@a)*y^2)) endif if @v3==0 float b=|z|+cabs(z) elseif @v3==1 float b=|z|+real(z) elseif @v3==2 float b=|z|+sqr(real(exp(z))) elseif @v3==3 float b=|z|+sqr(real(recip(z))) elseif @v3==4 float b=|z|+cabs(log(z)) elseif @v3==5 float b=|z|+sqr(imag(log(z))) elseif @v3==6 float b=|z|+cabs(z)*real(z)+imag(z) elseif @v3==7 float b=cabs(log(z))*cabs(z) elseif @v3==8 float b=|z|*|cotan(z)|+real(z) elseif @v3==9 float b=|z|*real(atanh(z))+real(z) elseif @v3==10 float b=|z|*real(recip(z))+real(z) elseif @v3==11 float b=cabs(log(z))+|imag(z)*real(z)| elseif @v3==12 float b=cabs(sqrt(z))+|imag(z)*real(z)| elseif @v3==13 float b=cabs(cotanh(z))+|imag(z)*real(z)| elseif @v3==14 float b=|cotan(z)|+cabs(z) elseif @v3==15 float b=real(log(z))*real(z) elseif @v3==16 float b=|tanh(z)|+imag(z) else float b=|recip(z)|+imag(z) endif if b=@p7 #index=3^(@adj2*#numiter+@adj1*a) else #solid=true endif endif else #index=3^(@adj2*#numiter+@adj1*a) endif default: title="Krommen" int param version caption="Version" default=100 visible=@version<100 endparam param p1 caption="Z Parameter 1" default=(1,0) endparam param p2 caption="Z Parameter 2" default=(0,0) endparam func fn1 caption="Z Function" default=ident() endfunc param V caption="Curve" default=0 enum="Alain Curve""Ampersand Curve""Arcs of Samothrace""Astroid""Atriphthaloid""Bean Curve""Bean Curve 2"\ "Beetle""Biaxial Eight Reverse""Bicorn""Bicuspid""Biquartic""Blade's Cubic"\ "Bolza""Bow Curve""Bullet-Nose Curve""Butterfly Curve""Butterfly Knot"\ "Cardioid""Cartesian Oval""Cassinian Ovals""Catenary""Cayley's Sextic""Cayley's Sextic 2""Ceva's Trisectrix"\ "Chasles Cubic""Circle""Circular Cubic""Cissoid of Diocles""Cissoid of Diocles 2""Cissoid of Zahradnik"\ "Clairaut Curve""Clinoid""Cochleoid""Conchoid of a Circle""Conchoid of Nicomedes""Conchoid of de Sluze"\ "Conic Sections""Cornoid""Cornoid 2""Coscoid""Cosecantoid""Cosinusoid""Cotangentoid""Cross Curve""Cubic Joint""Cubic of Apollonius"\ "Curve of Cramer""Curve of Jefabek""Curve of Loriga""Curve of Rosillo""Deltoid""Deltoid 2"\ "Devil's Curve""Devil's Curve 2""Dipole Curve""Double Egg""Double Egg 2""Double Folium"\ "Double U""Dumbbell Curve""Duplicatrix Cubic""Durer's Conchoid""Durer's Conchoid 2""Dwulistne""Egg of Columbus"\ "Egg of Granville""Egg of Granville 2""Egg of Kepler""Eight Curve""Elkies Trinomial Curve""Ellipse"\ "Fish Curve""Focal Conic Conchoid""Folium""Folium of Descartes""Folium of Durer""Frequency Curve"\ "Heart Curve""Heart of Eugene Beutel""Heart of Raphael Laporte""Hippopede""Hippopede of Proclus"\ "Hoerl Curve""Humbert's Cubic""Hyperbola""Hyperbola 2""Hyperbolic Cosecantoid""Hyperbolic Cosinusoid"\ "Hyperbolic Cotangentoid""Hyperbolic Secantoid""Hyperbolic Sinusoid""Hyperbolic Tangentoid"\ "Hyperelliptic Curve""Illumination Curve""Inverse Nephroid""Isoptic Curve""Kampyle of Eudoxus"\ "Kappa Curve""Kepler's Folium""Kiepert Curve""Kieroid""Kiss Curve""Klein Quartic""Kulp Quartic"\ "Lemniscate of Bernoulli""Lemniscate of Booth""Limacon of Pascal""Limacon of Pascal 2"\ "Links Curve""Lissajous Curve""Lissajous Curve 2""Lissajous Quadratic""Logarithmic Lemniscate"\ "Logarithmic Sinusoid""Logistic Growth Curve""Maltese Cross Curve""Neile's Semi-Cubical Parabola""Neile's Semi-Cubical Parabola 2""Nephroid"\ "Nephroid of Freeth""Newton's Diverging Parabolas""Newton's Diverging Parabolas 2""Nodal Curve""Oblique Bifolium""Oblique Cappa"\ "Oblique Cissoid""Oblique Pancappa""Oblique Strophoid""Ophiuride""Parabola""Parabola 2""Parabola 3"\ "Parabolic Trifolium""Pear-Shaped Quartic""Pearls of Sluze""Pursuit Curve""Pursuit Curve 2"\ "Quadratix of Hippias""Quadrifolium""Regular Trifolium""Right Strophoid""Rose Curve""Rose Curve 2""Satchel"\ "Scarab""Scyphoid""Secantoid""Seccoid""Semi-Trident""Serpentine Curve""Sincoid""Sinus Chain""Sinusoid" \ "Spiric Curve""Spiric of Perseus""Spiric Sections""Superellipse"\ "Superellipse 2""Swastika Curve""Syntractrix""Szego Curve""Tancoid""Tangentoid""Tetracuspid""Torpedo""Tractrix"\ "Trident""Trident 2""Trifolium""Trifolium 2""Trisectrix of Delange""Trisectrix of Maclaurin""Trisectrix of Maclaurin 2"\ "Trott Curve""Tschirnhaus' Cubic""Tschirnhaus' Cubic 2""Visiera""Viviani's Curve""Watt's Curve""Witch of Agnesi""OM1"\ "OM2""OM3""OM4""OM5""OM6""OM7""OM8""OM9""OM10""OM11""OM12""OM13""OM14""OM15""OM16""OM17""OM18""OM19""OM20""OM21""OM22""OM23" endparam param v2 caption="Variant 1" 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""39""40"\ "41""42""43""44" endparam param v3 caption="Variant 2" enum="1""2""3""4""5""6""7""8""9""10"\ "11""12""13""14""15""16""17""18" endparam param a caption="Curve Parameter" default=(1,0) visible=@V!="Frequency Curve" \ && @V!="Arcs of Samothrace" && @V!="Illumination Curve" \ && @V!="Logarithmic Sinusoid" \ && @V!="Elkies Trinomial Curve" && @V!="Bolza" \ && @V!="Hyperelliptic Curve" \ && @V!="Maltese Cross Curve" && @V!="Ampersand Curve" \ && @V!="Heart of Eugene Beutel" && @V!="Heart of Raphael Laporte" \ && @V!="Butterfly Knot" && @V!="Trott Curve" && @V!="Swastika Curve" \ && @V!="Biquartic" && @V!="Butterfly Curve" && @V!="Bean Curve" \ && @V!="Bean Curve 2" && @V!="Egg of Columbus" && @V!="Sinus Chain" \ && @V!="Szego Curve" && @V!="Links Curve" && @V!="Double Egg 2" \ && @V!="Heart Curve" && @V!="Cornoid 2" \ && @V!="Nodal Curve" && @V!="Trisectrix of Maclaurin 2" \ && @V!="Neile's Semi-Cubical Parabola 2" endparam param a2 caption="Curve Parameter 2" default=(1,0) visible=@V=="Cartesian Oval" || @V=="Conchoid of de Sluze" \ || @V=="Ellipse" || @V=="Folium" || @V=="Kampyle of Eudoxus" \ || @V=="Superellipse" || @V=="Newton's Diverging Parabolas" \ || @V=="Pearls of Sluze" || @V=="Spiric Sections" \ || @V=="Bullet-Nose Curve" \ || @V=="Dwulistne" || @V=="Cubic Joint" || @V=="Syntractrix" \ || @V=="Oblique Strophoid" || @V=="Superellipse 2" || @V=="Oblique Cissoid" \ || @V=="Hippopede" || @V=="Oblique Pancappa" || @V=="Oblique Cappa" \ || @V=="Oblique Bifolium" || @V=="Lemniscate of Booth" \ || @V=="Curve of Jefabek" || @V=="Curve of Cramer" \ || @V=="OM3" || @V=="OM4" || @V=="OM5" || @V=="Hippopede of Proclus" \ || @V=="OM11" || @V=="Cissoid of Zahradnik" \ || @V=="Rose Curve" || @V=="Rose Curve 2" || @V=="Cassinian Ovals" \ || @V=="Conchoid of Nicomedes" || @V=="Devil's Curve" || @V=="Durer's Conchoid" \ || @V=="Devil's Curve 2" || @V=="Durer's Conchoid 2" || @V=="Hyperbola" \ || @V=="Parabola" || @V=="Hyperbola 2" \ || @V=="Pear-Shaped Quartic" || @V=="Serpentine Curve" || @V=="Sinusoid"\ || @V=="Trident 2" || @V=="Atriphthaloid" || @V=="Clairaut Curve" || @V=="Clinoid" \ || @V=="Cross Curve" || @V=="Cubic of Apollonius" || @V=="Chasles Cubic" || @V=="Circular Cubic" \ || @V=="Dumbbell Curve" || @V=="Kieroid"\ || @V=="Egg of Granville" || @V=="Curve of Rosillo" || @V=="OM13" || @V=="Ophiuride" \ || @V=="Klein Quartic" || @V=="Tangentoid" || @V=="Beetle" || @V=="Secantoid" || @V=="Hyperbolic Secantoid" \ || @V=="Spiric Curve" || @V=="Spiric of Perseus" || @V=="Tetracuspid" || @V=="Trifolium" \ || @V=="Trifolium 2" || @V=="OM14" || @V=="OM10" || @V=="Isoptic Curve" || @V=="Cotangentoid" \ || @V=="Cosinusoid" || @V=="Hyperbolic Cosinusoid" || @V=="Cosecantoid" || @V=="Hyperbolic Cosecantoid" \ || @V=="Hyperbolic Sinusoid" || @V=="Hyperbolic Cotangentoid" || @V=="OM16" || @V=="Alain Curve" \ || @V=="OM19" || @V=="OM20" || @V=="Focal Conic Conchoid" || @V=="Conchoid of a Circle" || @V=="Satchel" \ || @V=="Kepler's Folium" || @V=="Parabola 2" || @V=="Parabola 3" || @V=="Scarab" || @V=="Lissajous Quadratic" \ || @V=="Watt's Curve" || @V=="Limacon of Pascal 2" || @V=="Newton's Diverging Parabolas 2" endparam param a3 caption="Curve Parameter 3" default=(1,0) visible=@V=="Cartesian Oval" || @V=="Superellipse" || @V=="Newton's Diverging Parabolas" \ || @V=="Pearls of Sluze" || @V=="Spiric Sections" || @V=="Superellipse 2" \ || @V=="Oblique Pancappa" || @V=="OM11" || @V=="Cissoid of Zahradnik" \ || @V=="Parabola" \ || @V=="Trident 2" || @V=="Clinoid" || @V=="Cubic of Apollonius" || @V=="Chasles Cubic" \ || @V=="Circular Cubic" || @V=="Kieroid" || @V=="Egg of Granville" || @V=="Curve of Rosillo" \ || @V=="Klein Quartic" || @V=="Beetle" || @V=="Spiric Curve" || @V=="Spiric of Perseus" \ || @V=="Trifolium" || @V=="OM16" || @V=="OM19" || @V=="OM20" || @V=="Conchoid of a Circle" \ || @V=="Parabola 2" || @V=="Parabola 3" || @V=="Watt's Curve" endparam param a4 caption="Curve Parameter 4" default=(1,0) visible=@V=="Pearls of Sluze" || @V=="Superellipse 2" || @V=="Cissoid of Zahradnik" \ || @V=="Trident 2" || @V=="Cartesian Oval" || @V=="Chasles Cubic" \ || @V=="Circular Cubic" || @V=="Spiric Curve" endparam param a5 caption="Curve Parameter 5" default=(1,0) visible=@V=="Pearls of Sluze" || @V=="Cissoid of Zahradnik" \ || @V=="Circular Cubic" endparam param adj1 caption="Adjustment 1" default=-0.8 endparam param @adj2 caption="Adjustment 2" default=0.01 endparam param solid caption="Solid Colour" default=false endparam param p7 caption="Solid Colour Adjustment" default=0.035 visible=@solid==true endparam param invert caption="Invert Solid Colour" default=false visible=@solid==true endparam } SmescitResu { ;The basis of this coloring is from http://linas.org/art-gallery/escape/math.html init: float a=0.0 loop: z=@zp1*@zf(#z)+@zp2 if @v==0 z=z elseif @v==1 z=z+cosh(z) elseif @v==2 z=z+1/cabs(z) elseif @v==3 z=z+1/abs(z) elseif @v==4 z=z+1/sqrt(z) elseif @v==5 z=z+pixel elseif @v==6 z=z+flip(pixel) elseif @v==7 z=z-cosh(z) elseif @v==8 z=z-recip(z) elseif @v==9 z=z-1/cabs(z) elseif @v==10 z=z+(z-1i)/(z+1i) elseif @v==11 z=z+recip(z) elseif @v==12 z=z+log((z-1i)/(z+1i)) elseif @v==13 z=z+sqr((z-1i)/(z+1i)) elseif @v==14 z=z-(z-1i)/(z+1i) elseif @v==15 z=z-abs((z-1i)/(z+1i)) elseif @v==16 z=z+flip((z-pixel)/(z+pixel)) elseif @v==17 z=z+conj((z-pixel)/(z+pixel)) elseif @v==18 z=z+abs((z-2)/(1-2*z)) elseif @v==19 z=z+exp((z-2)/(1-2*z)) elseif @v==20 z=z-conj((z-2)/(1-2*z)) elseif @v==21 z=z-cabs((z-2)/(1-2*z)) elseif @v==22 z=z-exp((z-2)/(1-2*z)) elseif @v==23 z=z+((z-(pixel))/(1-(pixel)*z)) elseif @v==24 z=z+((z-recip(pixel))/(1-recip(pixel)*z)) elseif @v==25 z=z-((z-recip(pixel))/(1-recip(pixel)*z)) elseif @v==26 z=z^3+z^2+z+1 elseif @v==27 z=z^3+2*z^2+2*z+2 elseif @v==28 z=0.5*z^3+z-1 elseif @v==29 z=z^3+0.5*z^2-z+0.8 elseif @v==30 z=z^3+z^2+z+pixel elseif @v==31 z=0.5*z^4+0.5*z^3-z^2+0.1*z+1 elseif @v==32 z=-0.5*z^4+z^3-z^2-z+1 elseif @v==33 z=exp(-((z-2)/4)^2)*cos(z*2*pi/4) elseif @v==34 z=1.25*exp(-((z-2)/4)^2)*cos(z*2*pi/8) elseif @v==35 z=-0.25*z^3*exp(-z)-1.3*z elseif @v==36 z=-3.75*z/(1+z^2)+1.5*z elseif @v==37 z=z+1-(0.01/(2*pi))*sin(2*pi*z) elseif @v==38 z=z+1.33-(-0.1/(2*pi))*sin(2*pi*z) elseif @v==39 z=recip(1+exp(1.75*z)) elseif @v==40 z=z-(z^3-1)/(3*z^2) elseif @v==41 z=z-(z^3-2)/(3*z^2)+1 elseif @v==42 z=z-(z^3+2)/(3*z^2) elseif @v==43 z=z-(z^3-pixel)/(3*z^2)-0.6 elseif @v==44 z=z-(z^3-cosh(pixel))/(3*z^2) elseif @v==45 z=z-(z^3-exp(pixel))/(3*z^2) elseif @v==46 z=z-(z^3-1)/(3*z^2)+cabs(pixel) elseif @v==47 z=z-(z^3-1)/(3*z^2)+abs(pixel) elseif @v==48 z=z-0.75*(z^3-2.75)/(3*z^2)+conj(pixel) endif a=a+exp(@adj*log(log(cabs(z)))) final: if @solid if @invert if a<@sca #index=a else #solid=true endif else if a>=@sca #index=a else #solid=true endif endif else #index=a endif default: title="Smescit Resu" int param version caption="Version" default=100 visible=@version<100 endparam param v caption="Variant" 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""39""40"\ "41""42""43""44""45""46""47""48""49" endparam param adj caption="Adjustment" default=-0.05 endparam param zp1 caption="Z Parameter 1" default=(1,0) endparam param zp2 caption="Z Parameter 2" default=(0,0) endparam func zf caption="Z Function" default=ident() endfunc param solid caption="Solid Color" default=false endparam param sca caption="Solid Color Adjustment" default=3.8 visible=@solid==true endparam param invert caption="Invert Solid Color" default=false visible=@solid==true endparam } SmescitResu2 { ;The basis of this coloring is from http://linas.org/art-gallery/escape/math.html init: float a=0.0 loop: z=@zp1*@zf(#z)+@zp2 x=real(z) y=imag(z) if @v=="Alain" z=(x^2-y^2)^2-(@cp1+0.5)^2*x^2+(@cp2+1)^2*y^2 elseif @v=="Astroid" z=x^(2/3)+y^(2/3)-@cp1^(2/3) elseif @v=="Atripthaloid" z=x^4*(x^2+y^2)-((@cp2-0.25+0.75i)*x^2-(@cp1-0.65-0.9i)^3)^2 elseif @v=="Beetle" z=(x^2+y^2)*(x^2+y^2-(@cp1-1.5+0.75i)*x-@cp2*y)-@cp3^2*x^2*y^2 elseif @v=="Besace" z=(y+(@cp1-1.25-0.85i)*x^2)^2-x^2+x^4 elseif @v=="Biaxial Eight Reverse" z=(@cp1+0.25-0.5i)^2*y^2-x^2*(y^2-x^2) elseif @v=="Bicorn" z=y^2*((@cp1-0.3-0.2i)^2-x^2)-(x^2+2*(@cp1-0.3-0.2i)*y-(@cp1-0.3-0.2i)^2)^2 elseif @v=="Bicuspid" z=(x^2-@cp1^2)*(x-@cp1)^2+(y^2-@cp1^2)^2 elseif @v=="Blade's Cubic" z=x^3+y^3-@cp1^3 elseif @v=="Bow" z=x^4-(@cp1+1+1i)*x^2*y+y^3 elseif @v=="Braked Parabola" z=y-exp(x+@cp1*y) elseif @v=="Bullet-Nose" z=(@cp1^2-x^2)*(@cp2^2+y^2)-@cp1^2*@cp2^2 elseif @v=="Cardioid" z=(x^2+y^2-2*(@cp1-1.5)*x)^2-4*(@cp1-1.5)^2*(x^2+y^2) elseif @v=="Cartesian Oval" z=@cp2*sqrt((x-(@cp1-0.5))^2+y^2)+(@cp3-01+0.5i)*sqrt((x+(@cp1-0.5))^2+y^2)-(@cp4-0.5+1i) elseif @v=="Cassinian Ovals" z=(x^2+y^2)^2-2*(@cp1-0.35i)^2*(x^2-y^2)+(@cp1-0.35i)^4-@cp2^4 elseif @v=="Catenary" z=y-@cp1*cosh(x/@cp1) elseif @v=="Chasles Cubic" z=y-@cp1*x^3-@cp2*x^2*y-@cp3*x*y^2-@cp4*y^3 elseif @v=="Circle" z=x^2+y^2-@cp1^2 elseif @v=="Circular Cubic" z=x*(x^2+y^2)+@cp1*x^2+@cp2*y^2+2*@cp3*x+2*@cp4*y+@cp5 elseif @v=="Cissoid of Diocles 1" z=y^2-x^3/(2*(@cp1-0.75)-x) elseif @v=="Cissoid of Diocles 2" z=y^2*(2*(@cp1-1-0.5i)-x)-x^8 elseif @v=="Cissoid of Zahradnik" z=@cp3*x^2+2*@cp4*x*y+(@cp5+1)*y^2-2*@cp1*x-2*@cp2*y elseif @v=="Clairaut" z=(x^2+y^2)^((@cp2+1)/2)-@cp1*y^@cp2 elseif @v=="Clinoid" z=y-(@cp2-2+0.5i)*e^(x/(@cp1+1))-@cp3*e^(-x/(@cp1+1)) elseif @v=="Cochleoid" z=(x^2+y^2)*atan(y/x)-(@cp1+1.5)*y elseif @v=="Conchal" z=((x-(@cp1+0.45))+y^2)*(x+(@cp1+0.45))^2-@cp2^4 elseif @v=="Conchoid of a Circle" z=(x^2+y^2+@cp3^2-(@cp2+0.25-0.25i)^2)^2*(y^2+(x+(@cp1+0.5i))^2)-4*@cp3^2*(x*(x+(@cp1+0.5i))+y^2)^2 elseif @v=="Conchoid of Nicomedes" z=(x-@cp2)^2*(x^2+y^2)-(@cp1+1.25-0.25i)^2*x^2 elseif @v=="Conchoid of de Sluze" z=(@cp1)*(x+@cp1)*(x^2+y^2)-(@cp2-1.15-1i)^2*x^2 elseif @v=="Conic Sections" z=2*(@cp1-1.5+0.25i)^2*x+(1-(@cp1-1.5+0.25i)^2)*x^2+y^2-(@cp1-1.5+0.25i)^2 elseif @v=="Coriolis' Catenary" z=y+@cp1*log(cos(x/@cp1)) elseif @v=="Cornoid" z=(x^2+y^2)^3+(@cp1-0.3-0.45i)^2*(3*x^4-6*x^2*y^2-5*y^4)+8*(@cp1-0.3-0.45i)^4*y^2-4*(@cp1-0.3-0.45i)^6 elseif @v=="Cramer" z=x*(x^2+y^2)+(@cp1+0.15+@cp2)*x^2-(@cp1+0.15-@cp2)*y^2 elseif @v=="Cross" z=@cp1^2*y^2+@cp2^2*x^2-x^2*y^2 elseif @v=="Cubic Joint" z=y^2*x-@cp1*y^2-@cp2*x^2 elseif @v=="Cubic of Apollonius" z=(x-2*(@cp1-0.85-0.25i))*(x^2+y^2)+@cp2^2*(cos(2*@cp3*x)+sin(2*@cp3*y)) elseif @v=="Deltoid 1" z=(x^2+y^2+12*(@cp1-0.4)*x+9*(@cp1-0.4)^2)-4*(@cp1-0.4)*(2*x+3*(@cp1-0.4))^3 elseif @v=="Deltoid 2" z=(x^2+y^2)^2+18*(@cp1-1.385+0.195i)^2*(x^2+y^2)-27*(@cp1-1.385+0.195i)^4-8*(@cp1-1.385+0.195i)*x*(x^2-3*y^2) elseif @v=="Devil 1" z=y^4-x^4+(@cp1-4+1i)*y^2+(@cp2+2-0.4i)*x^2 elseif @v=="Devil 2" z=y^4-x^4-(@cp1-1.35+1.5i)^2*y^2+(@cp2-2.4)^2*x^2 elseif @v=="Dipole" z=(x^2+y^2)^3-(@cp1+0.35)^4*x^2 elseif @v=="Double U" z=y^2*((@cp1-0.5i)^2-x^2)-(@cp1-0.5i)^4 elseif @v=="Dumbbell" z=(@cp2-0.25i)^4*y^2-x^4*((@cp1-2.45)^2-x^2) elseif @v=="Duplicatrix Cubic" z=(@cp1-2.3-0.265i)*y^2-x^2*(x-(@cp1-2.3-0.265i)) elseif @v=="Durer's Conchoid 1" z=(x^2+x*y+@cp1*x-@cp2^2)^2-(@cp2^2-x^2)*(x-y+@cp1)^2 elseif @v=="Durer's Conchoid 2" z=2*y^2*(x^2+y^2)-2*@cp2*y^2*(x+y)+(@cp2^2-3*@cp1^2)*y^2-@cp1^2*x^2+2*@cp1^2*@cp2*(x+y)+@cp1^2*(@cp1^2-@cp2^2) elseif @v=="Dwulistne" z=(x^2+y^2)^2-((@cp1-2.85+0.75i)*x+(@cp2-1.25+2.65i)*y)*x^2 elseif @v=="Egg of Granville 1" z=x^2*y^2-@cp1^2*(x-(@cp2-(@cp3-2.2+0.45i)))*(@cp2+(@cp3-2.2+0.45i)-x) elseif @v=="Egg of Granville 2" z=x^2*y^2-(x-(@cp1-1.55+0.65i))*(1-x) elseif @v=="Egg of Kepler" z=(x^2+y^2)^2-(@cp1-2.5+0.5i)*x^3 elseif @v=="Eight" z=x^4-(@cp1+0.45+0.175i)^2*(x^2-y^2) elseif @v=="Ellipse" z=x^2/(@cp1-0.6+0.65i)^2+y^2/@cp2^2-1 elseif @v=="Elongated Cissoid" z=x*(x^2+y^2)-(@cp1+2*@cp2)*x^2-2*@cp3*x*y-@cp1*y^2 elseif @v=="Fish" z=(2*x^2+y^2)^2+2*sqrt(2)*@cp1*x*(2*x^2-3*y^2)+2*@cp1^2*(y^2-x^2) elseif @v=="Focal Conic Conchoid" z=(x^2+y^2-(@cp1-1-0.3i)*(@cp2-0.55)*x)^2-(x^2+y^2)*((@cp2-0.55)*x-((@cp1-1-0.3i)+1))^2 elseif @v=="Folium" z=(x^2+y^2)*(y^2+x*(x+@cp2))-4*(@cp1-2+0.5i)*x*y^2 elseif @v=="Folium of Descartes" z=x^3+y^3-3*(@cp1-2.9-0.45i)*x*y elseif @v=="Folium of Durer" z=(x^2+y^2)*(2*(x^2+y^2)-(@cp1+0.225)^2)^2-(@cp1+0.225)^4*x^2 elseif @v=="Gompertz" z=y-exp(-exp((@cp1-0.3-1.4i)-@cp2*x)) elseif @v=="Gudermannian" z=tan(y)-exp(x) elseif @v=="Heat Capacity" z=y-x-(@cp1+0.5+0.85i)/x^2 elseif @v=="Hippopede" z=(x^2+y^2)^2-(@cp1+1i)*x^2-(@cp2+1-0.45i)*y^2 elseif @v=="Hippopede of Proclus" z=(x^2+y^2)^2+4*(@cp2-0.35+0.15i)*((@cp2-0.35+0.15i)-@cp1)*(x^2+y^2)-4*(@cp2-0.35+0.15i)^2*x^2 elseif @v=="Hoerl" z=y-x^(@cp1+0.5-0.25i)*e^x elseif @v=="Humbert's Cubic" z=x^3-3*x*y^2-(@cp1+0.2-0.25i)^3 elseif @v=="Hyperbola 1" z=x^2/(@cp1+0.25+0.5i)^2-y^2/(@cp2-1.25-1i)^2-1 elseif @v=="Hyperbola 2" z=x^2/(@cp1-1.5-1.25i)^2-y^2/(@cp2-0.25+0.5i)^2+1 elseif @v=="Hyperbolic" z=x^(@cp1-2-0.5i)*y^@cp2-@cp3 elseif @v=="Hyperbolic Lemniscate" z=(x^2+y^2)^2-(@cp1-2.35+0.3i)^2*x^2+(@cp2-1.5+1.95i)^2*y^2 elseif @v=="Hyperbolic Spiral" z=sqrt(x^2+y^2)*atan(y/x)-(@cp1-3-0.3i) elseif @v=="Inverse Logarithmic Curve" z=y-(@cp2-1.65-1.7i)*exp(@cp1/x) elseif @v=="Isoptic" z=tan(@cp1+5.85+0.125i)^2*(x+pi/2)^2-y^2+2*@cp2*x elseif @v=="Jefabek" z=(@cp2-1.15+0.65i)^2*(x^2+y^2-(@cp1-1.85-0.35i)*x)^2-(@cp1-1.85-0.35i)^2*(x^2+y^2)*(x-(@cp1-1.85-0.35i))^2 elseif @v=="Kampyle of Eudoxus" z=@cp1^2*x^4-(@cp2-0.9-1i)^4*(x^2+y^2) elseif @v=="Kappa" z=y^2*(x^2+y^2)-(@cp1-1.75+0.5i)^2*x^2 elseif @v=="Kepler's Folium" z=((x-(@cp2-1-0.5i))^2+y^2)*(x*(x-(@cp2-1-0.5i))+y^2)-4*@cp1*(x-(@cp2-1-0.5i))*y^2 elseif @v=="Kiepert" z=(x^2+y^2)^3-(@cp1-0.4-1.2i)^3*x*(x^2-3*y^2) elseif @v=="Kieroid" z=y^2*(x-(@cp1+1-0.25i))^2+x^2*(x-(@cp2-1.25+0.25i))^2-(@cp3+0.65-0.25i)^2*x^2 elseif @v=="Kiss" z=(@cp1-0.1-0.4i)^4*y^2-((@cp1-0.1-0.4i)^2-x^2)^3 elseif @v=="Klein Quartic" z=(x^2+y^2-(@cp2+0.5-0.25i)*@cp1^2)^2-@cp3*@cp1*(y-@cp1+sqrt(3)*x)*(y-@cp1-sqrt(3)*x)*(2*y+@cp1) elseif @v=="Kulp Quartic" z=x^2*y^2-(@cp1-0.35-0.6i)^2*((@cp1-0.35-0.6i)^2-y^2) elseif @v=="Lemniscate of Bernoulli" z=(x^2+y^2)^2-(@cp1+0.65)^2*(x^2-y^2) elseif @v=="Lemniscate of Booth" z=(x^2+y^2)^2-(2*@cp1^2+(@cp2-0.25-0.5i))*x^2+(2*@cp1^2-(@cp2-0.25-0.5i))*y^2 elseif @v=="Lemniscate of Montferrier" z=@cp2^2*y^2-x^2*((@cp1-2.55-0.125i)^2-x^2) elseif @v=="Lemniscatrix of Ökinghaus" z=y-log(cos(x)+sqrt(1+cos(x)^2)) elseif @v=="Limacon of Pascal 1" z=(x^2+y^2-@cp1*y)^2-(x^2+y^2) elseif @v=="Limacon of Pascal 2" z=(x^2+y^2-@cp1*x)^2-(@cp2+0.8-0.25i)^2*(x^2+y^2) elseif @v=="Lissajous 1" z=2*(2*x^2-(@cp1-2)^2)^2-(@cp1-2)*(2*y-(@cp1-2))^2*(y+(@cp1-2)) elseif @v=="Lissajous 2" z=x^2*(4*x^2-3*(@cp1-2)^2)+4*(@cp1-2)^2*y^2*(y^2-(@cp1-2)^2) elseif @v=="Lissajous Quadratic" z=(@cp1-0.75-0.4i)^4*y^4-4*(@cp1-0.75-0.4i)^3*@cp2*x*y^3+2*(@cp1-0.75-0.4i)^2*@cp2*y^3 \ +6*(@cp1-0.75-0.4i)^2*@cp2^2*x^2*y^2-4*(@cp1-0.75-0.4i)*@cp2^2*x*y^2-2*(@cp1-0.75-0.4i)^3*x*y^2 \ -2*(@cp1-0.75-0.4i)^2*@cp2^2*y^2+@cp2^2*y^2+(@cp1-0.75-0.4i)^2*y^2 \ -4*(@cp1-0.75-0.4i)*@cp2^3*x^3*y+2*@cp2^3*x^2*y+4*(@cp1-0.75-0.4i)^2*@cp2*x^2*y+4*(@cp1-0.75-0.4i)*@cp2^3*x*y \ -2*@cp2^3*y-4*(@cp1-0.75-0.4i)^2*@cp2*y+@cp2^4*x^4-2*(@cp1-0.75-0.4i)*@cp2^2*x^3-2*@cp2^4*x^2 \ +@cp2^2*x^2+(@cp1-0.75-0.4i)^2*x^2+2*(@cp1-0.75-0.4i)*@cp2^2*x-(@cp1-0.75-0.4i)^2-@cp2^2+@cp2^4 elseif @v=="Logarithmic Lemniscate" z=y^2-x^2*log((@cp1+1.25-0.4i)^2/x^2) elseif @v=="Logarithmic Sinusoid" z=y-log(sqrt(1-x^2)) elseif @v=="Logistic Growth" z=y-recip(1+(@cp1+0.35-0.5i)*e^x) elseif @v=="Loriga" z=3*x^2-y^2-@cp1^2 elseif @v=="Maltese Cross" z=x*y*(x^2-y^2)-x^2-y^2 elseif @v=="Neile's Semi-Cubical Parabola" z=y^3-@cp1*x^2 elseif @v=="Nephroid" z=(x^2+y^2-4*(@cp1-1.3+0.4i)^2)^3-108*(@cp1-1.3+0.4i)^4*x^2 elseif @v=="Nephroid of Freeth" z=(x^2+y^2)*(x*2+y^2-(@cp1-0.85+0.1i)^2)^2-4*(@cp1-0.85+0.1i)^2*(x^2+y^2-(@cp1-0.85+0.1i)*x)^2 elseif @v=="Newton's Diverging Parabolas 1" z=(@cp1-1.5-1.85i)*y^2-x*(x^2-2*@cp2*x+@cp3) elseif @v=="Newton's Diverging Parabolas 2" z=y^2-x*(x^2+2*@cp1*x+@cp2) elseif @v=="Oblique Astroid" z=((x^2+y^2+2*x*y*cos(@cp1)-@cp2^2)^3+27*@cp2^2*x^2*y^2*sin(@cp1)^2)*sin(@cp1)^2\ -@cp2^2*cos(@cp1)*((x^2+y^2+2*x*y*cos(@cp1)-@cp2^2)^2*cos(@cp1)-\ 2*x*y*(9*(x^2+y^2+2*x*y*cos(@cp1)-@cp2^2)*sin(@cp1)^2-8*@cp2^2*cos(@cp1)^2)) elseif @v=="Oblique Bifolium" z=(x^2+y^2)^2-x^2*((@cp1-2.9+0.125i)*x+@cp2*y) elseif @v=="Oblique Cappa" z=(x^2+y^2)*y^2-@cp1^2*(x*sin(@cp2)+y*cos(@cp2))^2 elseif @v=="Oblique Cissoid" z=(x^2+y^2)*(x*cos(@cp2)+y*sin(@cp2))-2*@cp1*y^2 elseif @v=="Oblique Conchoid" z=(x*y*cos(@cp1)-(y^2+@cp2*y-@cp3^2)*sin(@cp1))^2-(x*sin(@cp1)+y*cos(@cp1)+@cp2*cos(@cp1))^2*(@cp3^2-y^2) elseif @v=="Oblique Pancappa" z=(y-(@cp1+0.3-0.2i))^2*(x^2+y^2)-(@cp2*x+@cp3*y)^2 elseif @v=="Oblique Parabolic Bifolium" z=x^3-(@cp1-1.4-0.25i)*(x^2-y^2)-@cp2*x*y elseif @v=="Oblique Strophoid 1" z=y*(x^2+y^2)-(@cp1-3+0.25i)*(x^2-y^2)-2*(@cp2-1.25-1i)*x*y elseif @v=="Oblique Strophoid 2" z=x*(x^2+y^2)-@cp1*((x^2-y^2)*sin(@cp2-1.7+0.15i)+2*x*y*cos(@cp2-1.7+0.15i)) elseif @v=="Oblique Trifolium" z=(x^2+y^2)^2/(2*@cp1)-x*(x^2+y^2)-(x^2-3*y^2)*(x*cos(2*@cp2)+y*sin(@cp2)) elseif @v=="Oblique Versiera" z=(x^2+y^2)*(x*cos(@cp1+0.55-0.29i)+y*sin(@cp1+0.55-0.29i)-4*cos(@cp1+0.55-0.29i)^2)+2*@cp2*y^2 elseif @v=="Ophiuride" z=x*(x^2+y^2)-@cp2*x*y-@cp1*y^2 elseif @v=="Orthoconchoid" z=(y^2+@cp1*y-@cp2^2)^2-x^2*(@cp2^2-y^2) elseif @v=="Oval of Münger" z=(x^2+y^2)^(2*@cp1+1)-2*(@cp2-1.6-2.225i)*x^(2*@cp1+1)*(x^2+y^2)^@cp1+((@cp2-1.6-2.225i)^2-@cp3^2)*x^(4*@cp1)*@cp4\ -2*(@cp2-1.6-2.225i)*@cp4*cos(@cp5)^(2*@cp1+1)+((@cp2-1.6-2.225i)^2-@cp3^2)*cos(@cp5)^(4*@cp1) elseif @v=="Parabola 1" z=4*(@cp1-0.9)*(x-@cp2)-(y-@cp3)^2 elseif @v=="Parabola 2" z=x-@cp1*(y-@cp2)^2-@cp3 elseif @v=="Parabola 3" z=y-@cp1*x^2-@cp2*x-@cp3 elseif @v=="Parabolic Trifolium" z=x^2*(x^2+y^2)-(@cp1-0.75-0.2i)*y*(x^2-y^2) elseif @v=="Pear-Shaped Quartic" z=@cp2^2*y^2-x^3*(@cp1-x) elseif @v=="Pearls of Sluze" z=y^@cp2-@cp3*(@cp1-x)^@cp4*x^(@cp5-0.75+0.25i) elseif @v=="Planck Radiation" z=y-cotanh(1/((@cp1-0.85+1.125i)*x))/x^4 elseif @v=="Power Exponential" z=y-x^(@cp1*x+@cp2) elseif @v=="Pursuit 1" z=y-(@cp1-0.8+0.7i)*x^2+log(x) elseif @v=="Pursuit 2" z=y-(@cp1-2.125-1.6i)*x+log(x) elseif @v=="Quadratix of Hippias" z=x-y*cotan(y/@cp1) elseif @v=="Quadrifolium" z=(x^2+y^2)^3-4*(@cp1-2.75)^2*x^2*y^2 elseif @v=="Regular Trifolium" z=(x^2+y^2)^2-(@cp1-2.75-0.25i)*x*(x^2-3*y^2) elseif @v=="Richards" z=y-1/(1+exp(x))^@cp1 elseif @v=="Right Strophoid" z=y^2-x^2*((@cp1-1.8-0.6i)-x)/((@cp1-1.8-0.6i)+x) elseif @v=="Rose 1" z=x-@cp1*sin(@cp2*y) elseif @v=="Rose 2" z=x-(@cp1-2.5-1.35i)*cos(@cp2*y) elseif @v=="Rosillo" z=y^2*(@cp3-x)^2-((@cp2-1.75)-x)^2*((@cp1-2)^2-x^2) elseif @v=="Satchel" z=(x^2-(@cp2+0.42+0.87i)*y)^2-@cp1^2*(x^2-y^2) elseif @v=="Scarab" z=(x^2+y^2)*(x^2+y^2+(@cp1+1.32-0.225i)*x)^2-@cp2^2*(x^2-y^2)^2 elseif @v=="Scyphoid" z=x^4-y^4-4*(@cp1-2.5+0.25i)*x*y^2 elseif @v=="Semi-Trident" z=x*y^2-@cp1*x elseif @v=="Serpentine" z=y-@cp1*@cp2*x/(x^2+@cp1^2) elseif @v=="Sinus Chain" z=y^2-abs(sin(x)+0.1*sin(2*x)) elseif @v=="Spiric" z=(x^2+y^2)^2+((@cp1-0.5+3i)-2)*x^2+@cp2*y^2+2*@cp3*x+@cp4 elseif @v=="Spiric of Perseus" z=(x^2+y^2)^2-2*@cp1*x^2-2*(@cp2+0.7-0.15i)*y^2+(@cp3+1.125-0.65i) elseif @v=="Spiric Sections" z=(@cp3^2-@cp1^2+(@cp2-1.15-0.95i)^2+x^2+y^2)^2-4*@cp3^2*(x^2+(@cp2-1.15-0.95i)^2) elseif @v=="Superellipse 1" z=(x/@cp1)^@cp3+(y/@cp2)^@cp3-1 elseif @v=="Superellipse 2" z=cabs((x-@cp1)/@cp3)^@cp4+cabs((y-@cp2)/@cp3)^@cp4-1 elseif @v=="Syntractrix" z=x+sqrt((@cp2+0.65i)^2-y^2)-@cp1*log(((@cp2+0.65i)+sqrt((@cp2+0.65i)^2-y^2))/y) elseif @v=="Szego" z=x^2+y^2-e^(2*x-2) elseif @v=="Teardrop" z=y^2-x^@cp1*(1-x) elseif @v=="Tetracuspid" z=(@cp1+0.45-0.4i)^@cp2*(cabs(x)^@cp2+cabs(y)^@cp2)-(x^2+y^2)^@cp2 elseif @v=="Torpedo" z=(x^2+y^2)^2-(@cp1-3.5-0.2i)*x*(x^2-y^2) elseif @v=="Tractrix" z=x-log((@cp1-sqrt(@cp1^2-y^2))/y)-sqrt(@cp1^2-y^2) elseif @v=="Trident 1" z=y-x^2-(@cp1-0.75-1i)/x elseif @v=="Trident 2" z=x*y+@cp1*x^3+@cp2*x^2+@cp3*x-(@cp4+0.16-0.124i) elseif @v=="Trifolium 1" z=(x^2+y^2)^2-(x^2+y^2)*((@cp1-3-0.125i)*x+@cp2*y)-@cp3*x*(x^2-3*y^2) elseif @v=="Trifolium 2" z=(x^2+y^2)^2-((@cp1-3-0.125i)*x+@cp2*y)*(x^2-y^2) elseif @v=="Trisectrix of Delange" z=(x^2+y^2-2*(@cp1-0.15+0.1i)^2)^2-x^2*(x^2+y^2) elseif @v=="Trisectrix of Maclaurin" z=y^2*((@cp1-1.55+0.15i)+x)-x^2*(3*(@cp1-1.55+0.15i)-x) elseif @v=="Tschirnhaus' Cubic" z=3*(@cp1-2.5+0.6i)*y^2-x*(x-(@cp1-2.5+0.6i))^2 elseif @v=="Besace" z=(y+@cp1*x^2)^2-x^2+x^4 elseif @v=="Visiera" z=x*(x^2+y^2)-(@cp1-1.95-0.2i)*(x^2+2*y^2) elseif @v=="Viviani's" z=y^2-x^2*((@cp1-2-0.325i)^2-x^2) elseif @v=="Watt's" z=(x^2+y^2)*(x^2+y^2-@cp3^2)^2+4*(@cp1-0.375-1.95i)^2*y^2*(x^2+y^2-(@cp2-2.325-0.125i)^2) elseif @v=="Weibull" z=y-exp(-(x/(@cp1-0.2+0.58i))^(@cp2+2)) elseif @v=="Witch of Agnesi" z=y-8*@cp1^3/(x^2+4*@cp1^2) endif a=a+exp(@adj*log(log(cabs(z)))) final: if @solid if @invert if a<@sca #index=a else #solid=true endif else if a>=@sca #index=a else #solid=true endif endif else #index=a endif default: title="Smescit Resu 2 (Curves)" int param version caption="Version" default=100 visible=@version<100 endparam param v caption="Curve" enum="Alain""Astroid""Atripthaloid""Beetle""Besace""Biaxial Eight Reverse"\ "Bicorn""Bicuspid""Blade's Cubic""Bow""Braked Parabola""Bullet-Nose"\ "Cardioid""Cartesian Oval""Cassinian Ovals""Catenary""Chasles Cubic"\ "Circle""Circular Cubic""Cissoid of Diocles 1""Cissoid of Diocles 2"\ "Cissoid of Zahradnik""Clairaut""Clinoid""Cochleoid""Conchal""Conchoid of a Circle"\ "Conchoid of Nicomedes""Conchoid of de Sluze""Conic Sections""Coriolis' Catenary" \ "Cornoid""Cramer""Cross""Cubic Joint""Cubic of Apollonius" \ "Deltoid 1""Deltoid 2""Devil 1""Devil 2""Dipole""Double U"\ "Dumbbell""Duplicatrix Cubic""Durer's Conchoid 1""Durer's Conchoid 2" \ "Dwulistne""Egg of Granville 1""Egg of Granville 2""Egg of Kepler" \ "Eight""Ellipse""Elongated Cissoid""Fish""Focal Conic Conchoid""Folium""Folium of Descartes" \ "Folium of Durer""Gompertz""Gudermannian""Heat Capacity""Hippopede""Hippopede of Proclus""Hoerl""Humbert's Cubic" \ "Hyperbola 1""Hyperbola 2""Hyperbolic""Hyperbolic Lemniscate""Hyperbolic Spiral" \ "Inverse Logarithmic Curve""Isoptic""Jefabek""Kampyle of Eudoxus""Kappa""Kepler's Folium" \ "Kiepert""Kieroid""Kiss""Klein Quartic""Kulp Quartic""Lemniscate of Bernoulli" \ "Lemniscate of Booth""Lemniscate of Montferrier""Lemniscatrix of Ökinghaus" \ "Limacon of Pascal 1""Limacon of Pascal 2""Lissajous 1" \ "Lissajous 2""Lissajous Quadratic""Logarithmic Lemniscate""Logarithmic Sinusoid" \ "Logistic Growth""Loriga""Maltese Cross""Neile's Semi-Cubical Parabola""Nephroid" \ "Nephroid of Freeth""Newton's Diverging Parabolas 1""Newton's Diverging Parabolas 2" \ "Oblique Astroid""Oblique Bifolium""Oblique Cappa""Oblique Cissoid" \ "Oblique Conchoid""Oblique Pancappa""Oblique Parabolic Bifolium""Oblique Strophoid 1" \ "Oblique Strophoid 2""Oblique Trifolium""Oblique Versiera""Ophiuride""Orthoconchoid" \ "Oval of Münger""Parabola 1""Parabola 2""Parabola 3""Parabolic Trifolium""Pear-Shaped Quartic" \ "Pearls of Sluze""Planck Radiation""Power Exponential""Pursuit 1""Pursuit 2""Quadratix of Hippias""Quadrifolium" \ "Regular Trifolium""Richards""Right Strophoid""Rose 1""Rose 2""Rosillo""Satchel""Scarab""Scyphoid" \ "Semi-Trident""Serpentine""Sinus Chain""Spiric""Spiric of Perseus""Spiric Sections" \ "Superellipse 1""Superellipse 2""Syntractrix""Szego""Teardrop""Tetracuspid""Torpedo""Tractrix" \ "Trident 1""Trident 2""Trifolium 1""Trifolium 2""Trisectrix of Delange""Trisectrix of Maclaurin" \ "Tschirnhaus' Cubic""Visiera""Viviani's""Watt's""Weibull""Witch of Agnesi" endparam param cp1 caption="Curve Parameter" default=(1,0) visible=@v!="Lemniscatrix of Ökinghaus" && @v!="Logarithmic Sinusoid" && @v!="Maltese Cross" \ && @v!="Sinus Chain" && @v!="Szego" && @v!="Gudermannian" endparam param cp2 caption="Curve Parameter 2" default=(1,0) visible=@v!="Astroid" && @v!="Besace" && @v!="Biaxial Eight Reverse" && @v!="Bicorn" \ && @v!="Bicuspid" && @v!="Blade's Cubic" && @v!="Bow" && @v!="Braked Parabola" && @v!="Cardioid" \ && @v!="Catenary" && @v!="Circle" && @v!="Cissoid of Diocles 1" \ && @v!="Cissoid of Diocles 2" && @v!="Cochleoid" && @v!="Conic Sections" \ && @v!="Coriolis' Catenary" && @v!="Cornoid" && @v!="Deltoid 1" && @v!="Deltoid 2" \ && @v!="Dipole" && @v!="Double U" && @v!="Duplicatrix Cubic" \ && @v!="Egg of Granville 2" && @v!="Egg of Kepler" && @v!="Eight" \ && @v!="Fish" && @v!="Folium of Descartes" && @v!="Folium of Durer" && @v!="Gudermannian" && @v!="Heat Capacity" \ && @v!="Hoerl" && @v!="Humbert's Cubic" && @v!="Hyperbolic Spiral" && @v!="Kappa" && @v!="Kiepert" \ && @v!="Kiss" && @v!="Kulp Quartic" && @v!="Lemniscate of Bernoulli" && @v!="Lemniscatrix of Ökinghaus" \ && @v!="Limacon of Pascal 1" && @v!="Lissajous 1" && @v!="Lissajous 2" \ && @v!="Logarithmic Lemniscate"&& @v!="Logarithmic Sinusoid" \ && @v!="Logistic Growth" && @v!="Loriga" && @v!="Maltese Cross" && @v!="Neile's Semi-Cubical Parabola" \ && @v!="Nephroid" && @v!="Nephroid of Freeth" && @v!="Parabolic Trifolium" && @v!="Planck Radiation" \ && @v!="Pursuit 1" && @v!="Pursuit 2" && @v!="Quadratix of Hippias" && @v!="Quadrifolium" \ && @v!="Regular Trifolium" && @v!="Richards" && @v!="Right Strophoid" && @v!="Scyphoid" && @v!="Semi-Trident" \ && @v!="Sinus Chain" && @v!="Szego" && @v!="Teardrop" && @v!="Torpedo" && @v!="Tractrix" && @v!="Trident 1" \ && @v!="Trisectrix of Delange" && @v!="Trisectrix of Maclaurin" && @v!="Tschirnhaus' Cubic" && @v!="Visiera" \ && @v!="Viviani's" && @v!="Witch of Agnesi" endparam param cp3 caption="Curve Parameter 3" default=(1,0) visible=@v=="Beetle" || @v=="Cartesian Oval" || @v=="Chasles Cubic" \ || @v=="Circular Cubic" || @v=="Cissoid of Zahradnik" || @v=="Clinoid" \ || @v=="Conchoid of a Circle" || @v=="Cubic of Apollonius" \ || @v=="Egg of Granville 1" || @v=="Elongated Cissoid" || @v=="Hyperbolic" || @v=="Kieroid" || @v=="Klein Quartic" \ || @v=="Newton's Diverging Parabolas 1" || @v=="Oblique Pancappa" || @v=="Oblique Conchoid" || @v=="Oval of Münger" \ || @v=="Parabola 1" || @v=="Parabola 2" || @v=="Parabola 3" || @v=="Pearls of Sluze" || @v=="Rosillo" \ || @v=="Spiric" || @v=="Spiric of Perseus" || @v=="Spiric Sections" || @v=="Superellipse 1" || @v=="Superellipse 2" \ || @v=="Trident 2" || @v=="Trifolium 1" || @v=="Watt's" endparam param cp4 caption="Curve Parameter 4" default=(1,0) visible=@v=="Cartesian Oval" || @v=="Chasles Cubic" || @v=="Circular Cubic" \ || @v=="Cissoid of Zahradnik" || @v=="Oval of Münger" || @v=="Pearls of Sluze" \ || @v=="Spiric" || @v=="Superellipse 2" || @v=="Trident 2" endparam param cp5 caption="Curve Parameter 5" default=(1,0) visible=@v=="Circular Cubic" || @v=="Cissoid of Zahradnik" || @v=="Oval of Münger" || @v=="Pearls of Sluze" endparam param adj caption="Adjustment" default=-0.05 endparam param zp1 caption="Z Parameter 1" default=(1,0) endparam param zp2 caption="Z Parameter 2" default=(0,0) endparam func zf caption="Z Function" default=ident() endfunc param solid caption="Solid Color" default=false endparam param sca caption="Solid Color Adjustment" default=3.8 visible=@solid==true endparam param invert caption="Invert Solid Color" default=false visible=@solid==true endparam } SmescitResu3 { ;The basis of this coloring is from http://linas.org/art-gallery/escape/math.html init: float a=0.0 loop: z=@zp1*@zf(#z)+@zp2 x=real(z) y=imag(z) if @V=="Bogdanov" z=flip(y+p1*y+p2*x*(x-1)+p3*x*y)+x+y+p1*y+p2*x*(x-1)+p3*x*y elseif @V=="Bogdanov-Takens" z=y+flip(p1+p2*x+x^2-x*y) elseif @V=="Brusselator" z=(1-(p1+1)*x+y*x^2)/p2+flip((p1*x-y*x^2)/p3) elseif @V=="Buckling Column Model" z=y+flip(-(p1*x^3+p2*x+p3*y)/p4) elseif @V=="Burgers" z=p1*x-y^2+flip(p2*y+x*y) elseif @V=="Cao-Lai" z=p1*x*(1-x)+flip(p2*x*sin(2*pi*y)/(2*pi)) elseif @V=="Cathala 1" z=p1*x+y+flip(p2/2+x^2) elseif @V=="Cathala 2" z=(1-2*p1)*x+y+flip(2*p1*p2*x+p3*y-2*p1*x^3) elseif @V=="Chip" z=y-(x/cabs(x))*cos(sqr(log(abs((p2-1+1i)*x-p3))))*atan(sqr(log(abs(p3*x-(p2-1+1i)))))+flip(p1-x) elseif @V=="Chirikov Mod" z=x+y+((p1-0.65-0.2i)/2*pi)*sin(2*pi*x)+flip(y+((p1-0.65-0.2i)/2*pi)*sin(2*pi*x)) elseif @V=="Coupled Logistic" z=(1-p1)*p2*x*(1-x)+p1*p2*y*(1-y)+flip((1-p1)*p2*y*(1-y)+p1*p2*x*(1-x)) elseif @V=="Cremona" z=x*cos(p1)-(y-x^2)*sin(p1)+flip(x*sin(p1)-(y-x^2)*cos(p1)) elseif @V=="Damped Pendulum" z=y+flip(-p1*sin(x)-p2*y) elseif @V=="de Jong" z=sin(p1*y)-cos(p2*x)+flip(sin(p3*x)-cos(p4*y)) elseif @V=="Duffing 1" z=y+flip(x-x^3-p1*y+p2) elseif @V=="Duffing 2" z=y+flip(-p1*x-p2*x^3+p3) elseif @V=="Duffing 3" z=y+flip(-x-x^3+(p1+p2*x^2+p3*p4*x)*y+p4*p5) elseif @V=="Duffing 4" z=y+flip(-p1*x-(((p2+1i)-p1)/2)*(cabs(x+1)-cabs(x-1))-p3*y+p4) elseif @V=="Duffing 5" z=y+flip(-p1*x-p2*x^3-p3*x^5+(p4-2+1i)) elseif @V=="Duffing 6" z=y+flip(-p2*x+p1*y-y^3) elseif @V=="Garrote-Mira" z=y+p1*(1-0.05*y^2)+p2*x+2*(1-p2)*x^2/(1+x^2)\ +flip(-x+p2*(y+p1*(1-0.05*y^2)+p2*x+2*(1-p2)*x^2/(1+x^2))\ +2*(1-p2)*(y+p1*(1-0.05*y^2)+p2*x+2*(1-p2)*x^2/(1+x^2))\ ^2/(1+(y+p1*(1-0.05*y^2)+p2*x+2*(1-p2)*x^2/(1+x^2))^2)) elseif @V=="Gingerbread" z=1-(p1-2.15-0.25i)*y+p2*cabs(x)+flip(x) elseif @V=="Gumowski-Mira 1" k=x x=y+(p1-0.25+0.25i)*x+2*(1-(p1-0.25+0.25i))*x^2/(1-x^2) y=-k+(p1-0.25+0.25i)*x+2*(1-(p1-0.25+0.25i))*x^2/(1-x^2) z=x+flip(y) elseif @V=="Gumowski-Mira 2" k=x x=y+(p1-0.25+0.25i)*x+2*(1-(p1-0.25+0.25i))*x^2*exp((1-x^2)/4) y=-k+(p1-0.25+0.25i)*x+2*(1-(p1-0.25+0.25i))*x^2*exp((1-x^2)/4) z=x+flip(y) elseif @V=="Gumowski-Mira 3" k=x x=y+(p2+0.25-0.5i)*y*(1-(p2+0.25-0.5i)*y^2)+(p1-0.25+0.25i)*x+2*(1-(p1-0.25+0.25i))*x^2/(1-x^2) y=-k+(p1-0.25+0.25i)*x+2*(1-(p1-0.25+0.25i))*x^2/(1-x^2) z=x+flip(y) elseif @V=="Gumowski-Mira 4" k=x x=y+p2*y*(1-p2*y^2)+(p1-0.25+0.25i)*x+2*(1-(p1-0.25+0.25i))*x^2*exp((1-x^2)/4) y=-k+(p1-0.25+0.25i)*x+2*(1-(p1-0.25+0.25i))*x^2*exp((1-x^2)/4) z=x+flip(y) elseif @V=="Gumowski-Mira 5" z=p1*(x*cos(p2)-y*sin(p2))+x*y+flip(p1*(x*sin(p2)+y*cos(p2))+x^2+y^3) elseif @V=="Gumowski-Mira Mod 1" z=(1-(p1+0.1i))*x+y+flip(y+(p2-0.55-0.35i)*x+2*(1-(p2-0.55-0.35i))*x^2*(1+x^2)^(-2)) elseif @V=="Gumowski-Mira Mod 2" z=p2*y+p1*x+2*(1-p1)*x^2/(1+x^2)\ +flip(-x+p1*(p2*y+p1*x+2*(1-p1)*x^2/(1+x^2))\ +2*(1-p1)*(p2*y+p1*x+2*(1-p1)*x^2/(1+(p2*y\ +p1*x+2*(1-p1)*x^2/(1+x^2))^2))^2/(1+x^2)) elseif @V=="Hamilton" z=x+(p1-1+0.25i)*p2*sin(2*pi*y)+flip(y-((p1-1+0.25i)/p2)*sin(2*pi*(x+(p1-1+0.25i)*p2*sin(2*pi*y)))) elseif @V=="Hamilton Torus" z=-sin(y)*(1-(p1-0.25+1.25i))+flip(sin(x)*(1+(p1-0.25+1.25i))) elseif @V=="HCA" z=1-p1*x^2+p2*(y^2-x^2)+flip(1-p1*y^2+p2*(x^2-y^2)) elseif @V=="Henon 1" z=1-p1*x^2+y+flip(p2*x) elseif @V=="Henon 2" z=-(y-x^2)*sin(2*pi/p1)+x*cos(2*pi/p1)\ +flip((y-x^2)*cos(2*pi/p1)+x*sin(2*pi/p1)) elseif @V=="Henon 3" z=y+flip(p2^(-1)*(1-p1*y^2-p2*x)) elseif @V=="Henon 4" z=exp(-p1*p2/2)*(x*cos(p2*p3)+(1/p3)*(y-(p4+x^2)+p1*x/2)*sin(p2*p3))\ +flip(exp(-p1*p2/2)*(-p3*x*sin(p2*p3)+(y-(p4+x^2)+p1*x/2)*cos(p2*p3))-p1*x/2) elseif @V=="Henon 5" z=y+(p1-1.85-0.85i)*cos(pi*x/2)-1+flip(p2*x) elseif @V=="Henon-Heiles 1" z=-p1*x-p2*x*y+flip(-p3*y-p4*x^2+p5*y^2) elseif @V=="Henon-Heiles 2" z=y+flip(-p1*x-p2*x^2+p3) elseif @V=="Hopalong" z=y-(x/cabs(x))*sqrt(cabs(p2*x-p3))+flip(p1-x) elseif @V=="Horsthemke-Lefever" z=p1*x*(1-x/(p3-1.8-0.45i))-p2*x*y+flip(-p2*x*y+(p4+1.125+0.65i)*(p5-y)) elseif @V=="Ikeda" z=p1+(p2-2.25+0.125i)*(x*cos(p3-p4/(x^2+y^2+1))-y*sin(p3-p4/(x^2+y^2+1))) \ +flip((p2-2.25+0.125i)*(x*sin(p3-p4/(x^2+y^2+1))+y*cos(p3-p4/(x^2+y^2+1)))) elseif @V=="Ilhem-Amel 1" z=x^3+(p1-1.45+0.15i)*x+p2+y+flip(p3*x) elseif @V=="Ilhem-Amel 2" z=(p4-0.5)*x^3+(p1-0.375-2.4i)*x+p2/2+p5*y+flip(p3*x+p6*y) elseif @v=="Jiang" z=y+flip(x+p1*x^2+(p2-0.65+4.7i)*y^2-(p3-0.065-2.75i)*x*y-(p4+1.1+0.2i)) elseif @V=="Kam Torus" z=x*cos(p1-2.1-1.5i)+(x^2-y)*sin(p1-2.1-1.5i)+flip(x*sin(p1-2.1-1.5i)-(x^2-y)*cos(p1-2.1-1.5i)) elseif @V=="Kan" z=p3*sin(y+sin(p1*y))+flip((p4-0.58)*sin(x+sin(p2*x))) elseif @v=="Knot" z=-y+flip(x^4-y) elseif @V=="Kolmogorov-Volterra" z=(x*((p1-1.15+0.75i)-x^2)-p2*x*y)/(1+x^2)+flip((p3*x^2-1)*y/(1+x^2)) elseif @v=="Li" z=(p1-2.575+0.9i)*cos(y)+flip(p2*x*sin(y)) elseif @V=="Lozi" z=1+y-p1*cabs(x)+flip(p2*x) elseif @V=="Marotto-Lorenz" z=(1-(p1-0.5-0.15i)*x-p2*y)*((p1-0.5-0.15i)*x+p2*y)+flip(x) elseif @V=="Martin" z=y+sin(x)+flip(p1-x) elseif @V=="Mira 1" z=p2*y+p1*x+2*(1-p1)*x^2/(1+x^2)\ +flip(-x+p1*(p2*y+p1*x+2*(1-p1)*x^2/(1+x^2))\ +2*(1-p1)*(p2*y+p1*x+2*(1-p1)*x^2/(1+(p2*y\ +p1*x+2*(1-p1)*x^2/(1+x^2))^2))^2/(1+x^2)) elseif @V=="Mira 1" z=x^2-y^2+(p1-0.7)*x+p2+flip(2*x*y-5*(p1-0.7)*y/2+p3) elseif @V=="Mira 2" z=(1-p1)*x+y+flip(p1*p2*x+p3*y-p1*x^3) elseif @V=="Mira 3" z=(p1-1-1.5i)*x+y+flip(p2+x^2) elseif @V=="Modified Lozi" z=1+p1*(cabs(x)-y^2)+y+flip(p2*x) elseif @V=="Nowicki-Swirszcz" z=3*x*((x-y)^2-(p1+3.5-1i))/((3*x-y)^2-p2)+flip(y*(y^2+2*x*y-3*x^2-p3)/((3*x-y)^2-p4)) elseif @V=="Multifold Henon" z=1-p1*sin(x)+p2*y+flip(x) elseif @V=="Oscillating Chemical Reaction" z=((p1-4.9-1.75i)-x-4*x*y)/(1+x^2)+flip((p2-2.2-3.55i)*x*(1-y)/(1+x^2)) elseif @V=="Pendulum" z=y+flip(-sin(x)+p1) elseif @V=="Pendulum Morozov" z=y+flip(-sin(x)+y*(p1+(p2+2.95-1.25i)*cos(p3*x))*(-p4)) elseif @V=="Pharaoh" z=-y+p1*cos(x)*sin(1-real(z)^2-y^2)+p3+flip(x+p2*cos(y)*sin(1-x^2-y^2)+p4) elseif @V=="Pickover 1" z=sin(p1*y)+p2*sin(p1*x)+flip(sin(p3*x)+p4*sin(p3*y)) elseif @V=="Pickover 2" z=sin(p1*y)+sqr(sin(p1*x))+flip(sin(p2*x)+sqr(sin(p2*y))) elseif @V=="Pickover 3" z=sin(p1*y)+(sin(p1*x))^2+(sin(p1*x))^3+flip(sin((p2-4.3-0.9i)*x)+(sin((p2-4.3-0.9i)*y))^2+(sin(p3*y))^3) elseif @V=="Pickover 4" z=abs(sin(p1*y))+(sin(p1*x))^2+flip(abs(sin(p2*x))+(sin(p1*y))^2) elseif @V=="Pickover 5" z=sin(p1*y)+p2*cos(p1*x)+flip(sin((p3+2-1i)*x)+p4*cos((p3+2-1i)*y)) elseif @V=="Pickover 6" z=x-(p1+0.325+0.85i)*sin(y+tan((p2-2+1i)*y))+flip(y-(p1+0.325+0.85i)*sin(x+tan((p2-2+1i)*x))) elseif @V=="Pickover 7" z=p1*sin(y+tan((p2-1+1i)*y))+flip(p1*sin(x+tan((p2-1+1i)*x))) elseif @V=="Polyharmonic Pendulum" z=y+flip(-p1*sin(x)-p2*sin(3*x)+p3*sin(p4)) elseif @V=="Quadruptwo" z=y-(x/cabs(x))*sin(log(abs((p2-1+0.5i)*x-p3)))*atan(sqr(log(abs(p3*x-(p2-1+0.5i)))))+flip(p1-x) elseif @V=="Rayleigh" z=y+flip(-(x+p2*y^3-p1*y)/p3) elseif @V=="Sine" z=y+flip((p1-2.35+1.75i)*sin(x)+(p2-0.65-4.5i)*y) elseif @V=="Sine-Sine" z=sin(x)-sin(2*y)+flip(x) elseif @V=="Sprott" z=(1+(p1-2.325+1i)*p2)*x-p2*x*y+flip((1-p2)*y+p2*x^2) elseif @V=="Sprott-Elhadj" z=(p1-2.325-2.65i)*x/(1+y^2)+flip(x+p2*y) elseif @V=="Standard Map" z=x+p1*sin(y)+flip(y+x+p1*sin(y)) elseif @V=="Strelkova-Anishchenko" z=1-p1*x^2+p2*(y-x)+flip(1-p1*y^2+p2*(x-y)) elseif @V=="Svensson" z=p4*sin((p1+0.5+0.5i)*x)-sin((p2-3.8-0.33i)*y)+flip(p3*cos((p1+0.5+0.5i)*x)+cos((p2-3.8-0.33i)*y)) elseif @V=="Threeply" z=y-(x/cabs(x))*(abs(sin(x)*cos(p2-1+1i)+p3-x*sin((p1-5.3+0.58i)+(p2-1+1i)+p3)))+flip((p1-5.3+0.58i)-x) elseif @V=="Tinkerbell" z=x^2+-y^2+p1*x+p2*y+flip(2*x*y+p3*x+p4*y) elseif @V=="Ushiki" z=((p1-3.7+0.2i)-x-p2*y)*x+flip((p3-y-p4*x)*y) elseif @V=="Van der Pol 1" z=p1*(x-x^3/3-y)+flip(x/p1) elseif @V=="Van der Pol 2" z=y+flip(p1*(1-x^2)*y-x) elseif @V=="Volterra" z=exp(y)-1+p2*(exp(x)-1)*exp(y)/(p2+exp(2*x))+flip(p1*(1-exp(x))-p1*p2*(exp(x)-1)*exp(x)/(p2+exp(2*x))) elseif @V=="Volterra-Lotka 1" z=p1*x-p2*x*y+flip(-p3*y+p4*x*y) elseif @V=="Volterra-Lotka 2" z=p1*x*(1-x-(p2-1.6+0.58i)*y)+flip(p3*y*(1-y-p4*x)) elseif @V=="Zaslavsky" z=(x+p1*sin(y))*cos(2*pi/(p2-2.65+0.32i))+y*sin(2*pi/(p2-2.65+0.32i))+flip(-(x+p1*sin(y))*sin(2*pi/(p2-2.65+0.32i))+y*cos(2*pi/(p2-2.65+0.32i))) elseif @V=="Zito" z=x*y+p1*x-y+flip(x+y) endif a=a+exp(@adj*log(log(cabs(z)))) final: if @solid if @invert if a<@sca #index=a else #solid=true endif else if a>=@sca #index=a else #solid=true endif endif else #index=a endif default: title="Smescit Resu 3 (Attractors)" param v caption="Attractor" enum="Bogdanov""Bogdanov-Takens""Brusselator""Buckling Column Model""Burgers"\ "Cao-Lai""Cathala 1""Cathala 2""Chip""Chirikov Mod""Coupled Logistic""Cremona""Damped Pendulum""de Jong"\ "Duffing 1""Duffing 2""Duffing 3""Duffing 4""Duffing 5""Duffing 6""Garrote-Mira"\ "Gingerbread""Gumowski-Mira 1""Gumowski-Mira 2""Gumowski-Mira 3""Gumowski-Mira 4"\ "Gumowski-Mira 5""Gumowski-Mira Mod 1""Gumowski-Mira Mod 2""Hamilton"\ "Hamilton Torus""HCA""Henon 1""Henon 2""Henon 3"\ "Henon 4""Henon 5""Henon-Heiles 1""Henon-Heiles 2""Hopalong""Horsthemke-Lefever"\ "Ikeda""Ilhem-Amel 1""Ilhem-Amel 2""Jiang""Kam Torus""Kan"\ "Knot""Kolmogorov-Volterra""Li""Lozi""Marotto-Lorenz""Martin""Mira 1""Mira 2""Mira 3""Modified Lozi"\ "Nowicki-Swirszcz""Multifold Henon""Oscillating Chemical Reaction""Pendulum""Pendulum Morozov""Pharaoh""Pickover 1"\ "Pickover 2""Pickover 3""Pickover 4""Pickover 5""Pickover 6""Pickover 7""Polyharmonic Pendulum"\ "Quadruptwo""Rayleigh""Sine""Sine-Sine""Sprott""Sprott-Elhadj""Standard Map""Strelkova-Anishchenko"\ "Svensson""Threeply""Tinkerbell""Ushiki""Van der Pol 1""Van der Pol 2""Volterra"\ "Volterra-Lotka 1""Volterra-Lotka 2""Zaslavsky""Zito" endparam param p1 caption="Attractor Parameter" default=(1,0) visible=@v!="Knot" && @v!="Sine-Sine" endparam param p2 caption="Attractor Parameter 2" default=(1,0) visible=@v!="Chirikov Mod" && @v!="Cremona" && @v!="Gumowski-Mira 1" && @v!="Gumowski-Mira 2" && @v!="Hamilton Torus" && @v!="Henon 2" \ && @v!="Kam Torus" && @v!="Martin" && @v!="Knot" && @v!="Pendulum" && @v!="Sine-Sine" && @v!="Standard Map" \ && @v!="Van der Pol 1" && @v!="Van der Pol 2" && @v!="Zito" endparam param p3 caption="Attractor Parameter 3" default=(1,0) visible=@v=="Bogdanov" || @v=="Brusselator" || @v=="Buckling Column Model" || @v=="Cathala 2" \ || @v=="Chip" || @v=="de Jong" || @v=="Duffing 2" || @v=="Duffing 3" || @v=="Duffing 4" || @v=="Duffing 5" \ || @v=="Henon 4" || @v=="Henon-Heiles 1" || @v=="Henon-Heiles 2" || @v=="Hopalong" \ || @v=="Horsthemke-Lefever" || @v=="Ikeda" || @v=="Ilhem-Amel 1" || @v=="Ilhem-Amel 2" \ || @v=="Kan" || @v=="Kolmogorov-Volterra" || @v=="Mira 1" || @v=="Mira 2" \ || @v=="Nowicki-Swirszcz" || @v=="Pharaoh" || @v=="Pickover 1" || @v=="Pickover 3" \ || @v=="Pickover 5" || @v=="Jiang" || @v=="Pendulum Morozov" || @v=="Polyharmonic Pendulum" || @v=="Quadruptwo" \ || @v=="Rayleigh" || @v=="Svensson" || @v=="Threeply" || @v=="Tinkerbell" || @v=="Ushiki" \ || @v=="Volterra-Lotka 1" || @v=="Volterra-Lotka 2" endparam param p4 caption="Attractor Parameter 4" default=(1,0) visible=@v=="Buckling Column Model" || @v=="de Jong" || @v=="Duffing 3" || @v=="Duffing 4" || @v=="Duffing 5" \ || @v=="Henon-Heiles 1" || @v=="Horsthemke-Lefever" || @v=="Ikeda" || @v=="Kan" \ || @v=="Nowicki-Swirszcz" || @v=="Pharaoh" || @v=="Pickover 1" || @v=="Pickover 5" || @v=="Jiang" \ || @v=="Pendulum Morozov" || @v=="Polyharmonic Pendulum" || @v=="Ilhem-Amel 2" || @v=="Svensson" || @v=="Tinkerbell" \ || @v=="Ushiki" || @v=="Volterra-Lotka 1" || @v=="Volterra-Lotka 2" endparam param p5 caption="Attractor Parameter 5" default=(1,0) visible=@v=="Duffing 3" || @v=="Henon-Heiles 1" || @v=="Horsthemke-Lefever" || @v=="Ilhem-Amel 2" endparam param p6 caption="Attractor Parameter 6" default=(1,0) visible=@v=="Ilhem-Amel 2" endparam param adj caption="Adjustment" default=-0.05 endparam param zp1 caption="Z Parameter 1" default=(1,0) endparam param zp2 caption="Z Parameter 2" default=(0,0) endparam func zf caption="Z Function" default=ident() endfunc param solid caption="Solid Color" default=false endparam param sca caption="Solid Color Adjustment" default=3.8 visible=@solid==true endparam param invert caption="Invert Solid Color" default=false visible=@solid==true endparam } Sailor'sTraps { ;Modification of Spheroid Trap by Paul Carlson / Ken Childress (pwc.ucl). init: float a=real(@adj1) float b=imag(@adj1) float c=(b-1)/@adj2 float d= 0.0 float f= 0.0 int i= 0 float g=253.0 bool h=false j=(0,0) loop: if !h if @S==true z=abs(fn1(#z)) else z=fn1(#z) endif z=@zp1*z+@zp2 x=real(z) y=imag(z) if @V=="Conchoid 1" z=(x^2+y^2+(p3+1)^2-(p2+1i)^2)^2*(y^2+(x+(p1+1i))^2)-4*(p3+1)^2*(x*(x+(p1+1i))+y^2)^2 elseif @V=="Conchoid 2" z=(x-(p2-0.5))^2*(x^2+y^2)-(p1+1)^2*x^2 elseif @V=="Conchoid 3" z=p1*(x+(p1+1))*(x^2+y^2)-(p2-0.5)^2*x^2 elseif @V=="Conchoid 4" z=(x^2+x*y+p1*x-p2^2)^2-(p2^2-x^2)*(x-y+p1)^2 elseif @V=="Conchoid 5" z=2*y^2*(x^2+y^2)-2*p2*y^2*(x+y)+(p2^2-3*p1^2)*y^2-p1^2*x^2+2*p1^2*p2*(x+y)+p1^2*(p1^2-p2^2) elseif @V=="Conchoid 6" z=(x^2+y^2-(p1-0.5)*(p2-1.75)*x)^2-(x^2+y^2)*((p2-1.75)*x-((p1-0.5)+1))^2 elseif @V=="Duffing 1" z=y+flip(x-x^3-p1*y+p2) elseif @V=="Duffing 2" z=y+flip(-p1*x-p2*x^3+p3) elseif @V=="Duffing 3" z=y+flip(-x-x^3+(p1+p2*x^2+p3*p4*x)*y+p4*p5) elseif @V=="Duffing 4" z=y+flip(-p1*x-(((p2+1i)-p1)/2)*(cabs(x+1)-cabs(x-1))-p3*y+p4) elseif @V=="Duffing 5" z=y+flip(-p1*x-p2*x^3-p3*x^5+(p4-2+1i)) elseif @V=="Henon 1" z=1-p1*x^2+y+flip(p2*x) elseif @V=="Henon 2" z=-(y-x^2)*sin(2*pi/(p1-0.5+1i))+x*cos(2*pi/(p1-0.5+1i))\ +flip((y-x^2)*cos(2*pi/(p1-0.5+1i))+x*sin(2*pi/(p1-0.5+1i))) elseif @V=="Henon 3" z=y+flip(p2^(-1)*(1-p1*y^2-p2*x)) elseif @V=="Henon 4" z=exp(-p1*p2/2)*(x*cos(p2*p3)+(1/p3)*(y-(p4+x^2)+p1*x/2)*sin(p2*p3))\ +flip(exp(-p1*p2/2)*(-p3*x*sin(p2*p3)+(y-(p4+x^2)+p1*x/2)*cos(p2*p3))-p1*x/2) elseif @V=="Henon 5" z=y+(p1+1i)*cos(pi*x/2)-1+flip(p2*x) elseif @V=="Ikeda 1" z=p1+(p2+2)*z*e^(1i*(cabs(z)^2+p3)) elseif @V=="Ikeda 2" z=(p1+1i)+p2*z*e^(1i*(p3+2)/(cabs(z)^2+1)+p4) elseif @V=="Ikeda 3" z=p1+(p2+1)*(x*cos(p3-p4/(x^2+y^2+1))-y*sin(p3-p4/(x^2+y^2+1)))+flip((p2+1)*(x*sin(p3-p4/(x^2+y^2+1))+y*cos(p3-p4/(x^2+y^2+1)))) elseif @V=="Lemniscate 1" z=(x^2+y^2)^2-(p1-2.5)^2*(x^2-y^2) elseif @V=="Lemniscate 2" z=(x^2+y^2)^2-(2*(p1-1.2)^2+p2)*x^2+(2*(p1-1.2)^2-p2)*y^2 elseif @V=="Lemniscate 3" z=y^2-x^2*log((p1-2.5)^2/x^2) elseif @V=="Lissajous 1" z=2*(2*x^2-p1^2)^2-p1*(2*y-p1)^2*(y+p1) elseif @V=="Lissajous 2" z=x^2*(4*x^2-3*(p1+0.5)^2)+4*(p1+0.5)^2*y^2*(y^2-(p1+0.5)^2) elseif @V=="Lissajous 3" z=p1^4*y^4-4*p1^3*(p2+1i)*x*y^3+2*p1^2*(p2+1i)*y^3+6*p1^2*(p2+1i)^2*x^2*y^2 \ -4*p1*(p2+1i)^2*x*y^2-2*p1^3*x*y^2-2*p1^2*(p2+1i)^2*y^2+(p2+1i)^2*y^2+p1^2*y^2 \ -4*p1*(p2+1i)^3*x^3*y+2*(p2+1i)^3*x^2*y+4*p1^2*(p2+1i)*x^2*y+4*p1*(p2+1i)^3*x*y \ -2*(p2+1i)^3*y-4*p1^2*(p2+1i)*y+(p2+1i)^4*x^4-2*p1*(p2+1i)^2*x^3-2*(p2+1i)^4*x^2 \ +(p2+1i)^2*x^2+p1^2*x^2+2*p1*(p2+1i)^2*x-p1^2-(p2+1i)^2+(p2+1i)^4 elseif @V=="OM 1" z=sin(p1*x)-tan(p2*y)+flip(tan(p3*x)+sin(p4*y)) elseif @V=="OM 2" z=sin(p1*y)+(sin(p1*x))^2+(sin(p1*y))^3+flip(sin(p2*x)+(sin(p2*y))^2+(sin(p2*x))^3) elseif @V=="OM 3" z=x+y+(p1/2*pi)*sin(2*pi*x)+flip(x+y+(p1/2*pi)*sin(2*pi*x)-x) elseif @V=="OM 4" z=flip(y)+flip(atanh(x)+y*(p1-y^2)) elseif @V=="OM 5" z=tan(p1*y)+(tanh(p1*x))^2+flip(tan(p2*x)+(cosh(p2*y))^2) elseif @V=="OM 6" z=(x^2-y^2)*(x^2+y^2)^2-2*(p1+1)*x*y*(x-(p1+1)^2) elseif @V=="OM 7" z=p1*sin(x^2+y^2)+p2*x*(x^2-y^2)-2*p1*x*y*(p1^2-p2^2) elseif @V=="OM 8" z=recip(p1*(x^2-1))*p2^2*x*tanh(p1*(y^2-1))-p1*p2*(x*y+1) elseif @V=="OM 9" z=(x^2-(p1-1+1.5i)^2)*(x-(p1-1+1.5i))^2+(y^2-(p1-1+1.5i)^2)^3 elseif @V=="OM 10" z=(x^2-p1^2)*(x-p1)^3+(y^2-p2^2)^2 elseif @V=="OM 11" z=((p1*p2-x)^2+(p2-y)^2)/@p3^2-1 elseif @V=="OM 12" z=(x^2+y^2)^2-p1/(x^2-y^2) elseif @V=="OM 13" z=tan(p1*y)+p2*sqr(p1*x)+flip(tan(p3*x)+p4*recip(p3*y)) elseif @V=="OM 14" z=sin(p1*y)+p2*tanh(p1*x)+flip(cosh(p3*x)+p4*tan(p3*y)) elseif @V=="OM 15" z=abs(p1*y)+p2*sin(p1*x)+flip(abs(p3*x)+p4*sin(p3*y)) elseif @V=="OM 16" z=sin(p1*y)+p2*recip(p1*x)+flip(tan(p3*x)+p4*sqr(p3*y)) elseif @V=="OM 17" z=y+flip(p1+p2*x+x^2-x*y)+x^4*(x^2+y^2)-(p2*x^2-p1^3)^2 elseif @V=="OM 18" z=(x^2+y^2-p1*(p2-3.5)*x)^2-(x^2+y^2)*((p2-3.5)*x-(p1+1))^2\ +cos(p1)*(x+(p2-3.5)*sin(y))+sin(p1)*y+flip(-sin(p1)*(x+(p2-3.5)*sin(y))+cos(p1)*y) elseif @V=="OM 19" z=(x^2+y^2-(p1-2.15)*x)^2-p2^2*(x^2+y^2)+y-(p1-2.15)/sin(x/p2) elseif @V=="OM 20" z=y-(p1+0.5i)*cotan(x/(p2+1))+(2*x^2+y^2)^2+2*sqrt(2)*(p1+0.5i)*x*(2*x^2-3*y^2)+2*(p1+0.5i)^2*(y^2-x^2) elseif @V=="Parabola 1" z=4*p1*(x-p2)-(y-p3)^2 elseif @V=="Parabola 2" z=x-(p1-2.5-0.5i)*(y-p2)^2-p3 elseif @V=="Parabola 3" z=y-p1*x^2-p2*x-p3 elseif @V=="Parabola 4" z=x^2*(x^2+y^2)-(p1+5)*y*(x^2-y^2) elseif @V=="Parabola 5" z=p1*y^2-x*(x^2-2*(p2-2)*x+p3) elseif @V=="Parabola 6" z=y^3-p1*x^2 elseif @V=="Pickover 1" z=sin(p1*y)+p2*sin(p1*x)+flip(sin(p3*x)+p4*sin(p3*y)) elseif @V=="Pickover 2" z=sin(p1*y)+sqr(sin(p1*x))+flip(sin(p2*x)+sqr(sin(p2*y))) elseif @V=="Pickover 3" z=sin(p1*y)+(sin(p1*x))^2+(sin(p1*x))^3+flip(sin(p2*x)+(sin(p2*y))^2+(sin(p3*y))^3) elseif @V=="Pickover 4" z=abs(sin(p1*y))+(sin(p1*x))^2+flip(abs(sin(p2*x))+(sin(p1*y))^2) elseif @V=="Pickover 5" z=sin(p1*y)+p2*cos(p1*x)+flip(sin(p3*x)+p4*cos(p3*y)) elseif @V=="Pickover 6" z=x-p1*sin(y+tan((p2+1i)*y))+flip(y-p1*sin(x+tan((p2+1i)*x))) elseif @V=="Pickover 7" z=p1*sin(y+tan((p2+1i)*y))+flip(p1*sin(x+tan((p2+1i)*x))) elseif @V=="Pendulum 1" z=y+flip(-sin(x)+p1) elseif @V=="Pendulum 2" z=y+flip(-p1*sin(x)-p2*y) elseif @V=="Pendulum 3" z=y+flip(-sin(x)+y*(p1+p2*cos((p3+1+2i)*x))*(-p4)) elseif @V=="Pendulum 4" z=y+flip(-p1*sin(x)-p2*sin(3*x)+p3*sin(p4)) endif f=|j|/|z| j=z if f<@adj2 && i> 0 h=true g=c*f+d*b endif i=i+1 d=i%a endif final: float k=((real(g)+1)%256)/256 if @solid if h && g>@sca*40 #index=k else #solid=true endif else #index=k endif default: title="Sailor's Traps" int param version caption="Version" default=100 visible=@version<100 endparam param V caption="Variant" enum="Conchoid 1""Conchoid 2""Conchoid 3""Conchoid 4""Conchoid 5""Conchoid 6"\ "Duffing 1""Duffing 2""Duffing 3""Duffing 4""Duffing 5"\ "Henon 1""Henon 2""Henon 3""Henon 4""Henon 5""Ikeda 1""Ikeda 2""Ikeda 3"\ "Lemniscate 1""Lemniscate 2""Lemniscate 3""Lissajous 1""Lissajous 2""Lissajous 3""OM 1"\ "OM 2""OM 3""OM 4""OM 5""OM 6""OM 7""OM 8""OM 9""OM 10""OM 11"\ "OM 12""OM 13""OM 14""OM 15""OM 16""OM 17""OM 18""OM 19""OM 20""Parabola 1""Parabola 2""Parabola 3"\ "Parabola 4""Parabola 5""Parabola 6""Pickover 1"\ "Pickover 2""Pickover 3""Pickover 4""Pickover 5"\ "Pickover 6""Pickover 7""Pendulum 1""Pendulum 2""Pendulum 3""Pendulum 4" endparam param p1 caption="Variant Parameter" default=(1,0) endparam param p2 caption="Variant Parameter 2" default=(1,0) visible=@V!="Pendulum 1" && @V!="Henon 2" && @V!="Lemniscate 1" \ && @V!="Lemniscate 3" && @V!="Lissajous 1" && @V!="Lissajous 2" \ && @V!="OM 3" && @V!="OM 4" && @V!="OM 6" && @V!="OM 9" \ && @V!="OM 12" && @V!="Parabola 4" && @V!="Parabola 6" endparam param p3 caption="Variant Parameter 3" default=(1,0) visible=@V=="Conchoid 1" || @V=="Duffing 2" || @V=="Duffing 3" || @V=="Duffing 4" || @V=="Duffing 5" || @V=="Henon 4" \ || @V=="Ikeda 1" || @V=="Ikeda 2" || @V=="Ikeda 3" || @V=="OM 1" \ || @V=="OM 11" || @V=="OM 13" || @V=="OM 14" || @V=="OM 15" || @V=="OM 16" \ || @V=="Parabola 1" || @V=="Parabola 2" || @V=="Parabola 3" || @V=="Parabola 5" \ || @V=="Pickover 1" || @V=="Pickover 3" || @V=="Pickover 5" || @V=="Pendulum 3" || @V=="Pendulum 4" endparam param p4 caption="Variant Parameter 4" default=(1,0) visible=@V=="Duffing 3" || @V=="Duffing 4"|| @V=="Duffing 5" || @V=="Henon 4" \ || @V=="Ikeda 2" || @V=="Ikeda 3" || @V=="OM 1" || @V=="OM 13" \ || @V=="OM 14" || @V=="OM 15" || @V=="OM 16" || @V=="Pickover 1" \ || @V=="Pickover 5" || @V=="Pendulum 3" || @V=="Pendulum 4" endparam param p5 caption="Variant Parameter 5" default=(1,0) visible=@V=="Duffing 3" endparam func fn1 caption="Z Function" default=ident() endfunc param zp1 caption="Z Parameter 1" default=(1,0) endparam param zp2 caption="Z Parameter 2" default=(0,0) endparam param adj1 caption="Adjustment 1" default=(8,30) endparam param adj2 caption="Adjustment 2" default=0.188 endparam param S caption="Symmetrize" default=false endparam param solid caption="Solid Color" default=true endparam param sca caption="Solid Color Adjustment" default=0.3 visible=@solid==true endparam } Gribbim { init: float c=0.0 loop: z=#z if @Fs=="sin" z=sin(z) elseif @Fs=="sinh" z=sinh(z) elseif @Fs=="asin" z=asin(z) elseif @Fs=="asinh" z=asinh(z) elseif @Fs=="cos" z=cos(z) elseif @Fs=="cosh" z=cosh(z) elseif @Fs=="acos" z=acos(z) elseif @Fs=="acosh" z=acosh(z) elseif @Fs=="tan" z=tan(z) elseif @Fs=="tanh" z=tanh(z) elseif @Fs=="atan" z=atan(z) elseif @Fs=="atanh" z=atanh(z) elseif @Fs=="cotan" z=cotan(z) elseif @Fs=="cotanh" z=cotanh(z) elseif @Fs=="sqr" z=sqr(z) elseif @Fs=="sqrt" z=sqrt(z) elseif @Fs=="log" z=log(z) elseif @Fs=="exp" z=exp(z) elseif @Fs=="abs" z=abs(z) elseif @Fs=="cabs" z=cabs(z) elseif @Fs=="conj" z=conj(z) elseif @Fs=="flip" z=flip(z) elseif @Fs=="ident" z=ident(z) elseif @Fs=="recip" z=recip(z) elseif @Fs=="versin" z=1-cos(z) elseif @Fs=="aversin" z=acos(1-z) elseif @Fs=="haversin" z=(1-cos(z))/2 elseif @Fs=="ahaversin" z=2*asin(sqrt(z)) elseif @Fs=="coversin" z=1-sin(z) elseif @Fs=="acoversin" z=asin(1-z) elseif @Fs=="hacoversin" z=(1-sin(z))/2 elseif @Fs=="vercos" z=1+cos(z) elseif @Fs=="avercos" z=acos(1+z) elseif @Fs=="havercos" z=(1+cos(z))/2 elseif @Fs=="ahavercos" z=2*acos(sqrt(z)) elseif @Fs=="covercos" z=1+sin(z) elseif @Fs=="acovercos" z=asin(1+z) elseif @Fs=="hacovercos" z=(1+sin(z))/2 elseif @Fs=="acotan" z=atan(1/(z)) elseif @Fs=="acotanh" z=atanh(1/(z)) elseif @Fs=="sec" z=1/cos(z) elseif @Fs=="sech" z=1/cosh(z) elseif @Fs=="asec" z=acos(1/z) elseif @Fs=="asech" z=acosh(1/z) elseif @Fs=="cosec" z=1/sin(z) elseif @Fs=="cosech" z=1/sinh(z) elseif @Fs=="acosec" z=asin(1/z) elseif @Fs=="acosech" z=asinh(1/z) elseif @Fs=="exsec" z=1/cos(z)-1 elseif @Fs=="aexsec" z= acos(1/(z+1)) elseif @Fs=="excosec" z=1/sin(z)-1 elseif @Fs=="aexcosec" z=asin(1/(z+1)) elseif @Fs=="crd" z=2*sin(z/2) elseif @Fs=="acrd" z=2*asin(z/2) elseif @Fs=="gd" z=asin(tanh(z)) elseif @Fs=="agd" z=asinh(tan(z)) elseif @Fs=="sinc" z=sin(z)/(z) elseif @Fs=="sinhc" z=sinh(z)/(z) elseif @Fs=="cosc" z=cos(z)/(z) elseif @Fs=="coshc" z=cosh(z)/(z) elseif @Fs=="tanc" z=tan(z)/(z) elseif @Fs=="tanhc" z=tanh(z)/(z) elseif @Fs=="cotanc" z=cotan(z)/(z) elseif @Fs=="cotanhc" z=cotanh(z)/(z) elseif @Fs=="secc" z=1/(z*cos(z)) elseif @Fs=="sechc" z=1/(z*cosh(z)) elseif @Fs=="cosecc" z= 1/(z*sin(z)) elseif @Fs=="cosechc" z=1/(z*sinh(z)) elseif @Fs=="cube" z=z^3 elseif @Fs=="cuberoot" z=z^(1/3) elseif @Fs=="colog" z=-log(z) elseif @Fs=="logit" z= log(z/(1-z)) elseif @Fs=="expit" z=1/(1+exp(-z)) elseif @Fs=="gauss" z=exp(-sqr(z)) elseif @Fs=="softplus" z=log(1+exp(z)) elseif @Fs=="primecount" z=z/log(z) elseif @Fs=="sqr+" z=sqr(z)+z elseif @Fs=="cube+" z=z^3+sqr(z)+z elseif @Fs=="sin+" z=sin(z)+z elseif @Fs=="cos+" z=cos(z)+z elseif @Fs=="tan+" z=tan(z)+z elseif @Fs=="cotan+" z=cotan(z)+z elseif @Fs=="sec+" z=1/cos(z)+z elseif @Fs=="cosec+" z=1/sin(z)+z elseif @Fs=="sin*" z=sin(z)*z elseif @Fs=="cos*" z=cos(z)*z elseif @Fs=="tan*" z=tan(z)*z elseif @Fs=="cotan*" z=cotan(z)*z elseif @Fs=="sec*" z=z/cos(z) elseif @Fs=="cosec*" z=z/sin(z) elseif @Fs=="loglog" z=log(log(z)) elseif @Fs=="sinsin" z=sin(sin(z)) elseif @Fs=="coscos" z=cos(cos(z)) elseif @Fs=="+pixel" z=z+pixel elseif @Fs=="-pixel" z=z-pixel elseif @Fs=="*pixel" z=z*pixel elseif @Fs=="/pixel" z=z/pixel elseif @Fs=="third" z=z/3 elseif @Fs=="half" z=z/2 elseif @Fs=="double" z=z*2 elseif @Fs=="triple" z=z*3 elseif @Fs=="ceil" z=ceil(z) elseif @Fs=="floor" z=floor(z) elseif @Fs=="trunc" z=trunc(z) else z=round(z) endif z=@p1*z+@p2 if @v==0 x=real(z) y=imag(z) x=cos(x)/|z| y=cos(y)/|z| z=x+flip(y) z=log(2*z) elseif @v==1 x=real(z) y=imag(z) x=cos(x)/|z| y=cos(y)/|z| z=x+flip(y) z=log(z+z^2*cos((z-2)/(1-2*z))) elseif @v==2 if real(z)@p9 #index=(sqrt(c)+1)*0.5 else #solid=true endif endif else #index=(sqrt(c)+1)*0.5 endif default: title="Gribbim" int param version caption="Version" default=100 visible=@version<100 endparam param V caption="Variant" 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""39" endparam param p1 caption="Z Parameter 1" default=(1,0) endparam param p2 caption="Z Parameter 2" default=(0,0) endparam param Fs caption="Z Function" enum="sin""sinh""asin""asinh""cos""cosh""acos""acosh""tan""tanh""atan"\ "atanh""cotan""cotanh""sqr""sqrt""log""exp""abs""cabs""conj"\ "flip""ident""recip""versin""aversin""haversin""ahaversin""coversin""acoversin"\ "hacoversin""vercos""avercos""havercos""ahavercos""covercos"\ "acovercos""hacovercos""acotan""acotanh" \ "sec""sech""asec""asech""cosec""cosech""acosec""acosech""exsec""aexsec"\ "excosec""aexcosec""crd""acrd""gd""agd""sinc""sinhc""cosc""coshc"\ "tanc""tanhc""cotanc""cotanhc""secc""sechc""cosecc""cosechc"\ "cube""cuberoot""colog""logit""expit""gauss""softplus"\ "primecount""sqr+""cube+""sin+""cos+""tan+""cotan+""sec+""cosec+""sin*""cos*""tan*""cotan*""sec*"\ "cosec*""loglog""sinsin""coscos""+pixel""-pixel"\ "*pixel""/pixel""third""half""double""triple"\ "ceil""floor""trunc""round" default=22 endparam param adj caption="Adjustment" default=3.0 endparam param @solid caption="Solid Colour" default=false endparam param p9 caption="Solid Colour Adjustment" default=0.915 visible=@solid==true endparam param invert caption="Invert Solid Colour" default=false visible=@solid==true endparam } Azave { ;This borrows from Numberseeker by Edgar Malinovsky (em.ucl) ;Lower values of the Iterations paremeter give smoother colouring. ;Higher values give more detail. ;It will be necessary to increase the value when zooming in. global: int i=@iter if i>=#maxiter i=#maxiter-1 endif init: float a=0.0 float b=0.0 zold=(0,0) int i2=0 loop: if @vers==1 zold=#z endif if @Fs=="sin" z=sin(#z) elseif @Fs=="sinh" z=sinh(#z) elseif @Fs=="asin" z=asin(#z) elseif @Fs=="asinh" z=asinh(#z) elseif @Fs=="cos" z=cos(#z) elseif @Fs=="cosh" z=cosh(#z) elseif @Fs=="acos" z=acos(#z) elseif @Fs=="acosh" z=acosh(#z) elseif @Fs=="tan" z=tan(#z) elseif @Fs=="tanh" z=tanh(#z) elseif @Fs=="atan" z=atan(#z) elseif @Fs=="atanh" z=atanh(#z) elseif @Fs=="cotan" z=cotan(#z) elseif @Fs=="cotanh" z=cotanh(#z) elseif @Fs=="sqr" z=sqr(#z) elseif @Fs=="sqrt" z=sqrt(#z) elseif @Fs=="log" z=log(#z) elseif @Fs=="exp" z=exp(#z) elseif @Fs=="abs" z=abs(#z) elseif @Fs=="cabs" z=cabs(#z) elseif @Fs=="conj" z=conj(#z) elseif @Fs=="flip" z=flip(#z) elseif @Fs=="ident" z=ident(#z) elseif @Fs=="recip" z=recip(#z) elseif @Fs=="versin" z=1-cos(#z) elseif @Fs=="aversin" z=acos(1-#z) elseif @Fs=="haversin" z=(1-cos(#z))/2 elseif @Fs=="ahaversin" z=2*asin(sqrt(#z)) elseif @Fs=="coversin" z=1-sin(#z) elseif @Fs=="acoversin" z=asin(1-#z) elseif @Fs=="hacoversin" z=(1-sin(#z))/2 elseif @Fs=="vercos" z=1+cos(#z) elseif @Fs=="avercos" z=acos(1+#z) elseif @Fs=="havercos" z=(1+cos(#z))/2 elseif @Fs=="ahavercos" z=2*acos(sqrt(#z)) elseif @Fs=="covercos" z=1+sin(#z) elseif @Fs=="acovercos" z=asin(1+#z) elseif @Fs=="hacovercos" z=(1+sin(#z))/2 elseif @Fs=="acotan" z=atan(1/(#z)) elseif @Fs=="acotanh" z=atanh(1/(#z)) elseif @Fs=="sec" z=1/cos(#z) elseif @Fs=="sech" z=1/cosh(#z) elseif @Fs=="asec" z=acos(1/#z) elseif @Fs=="asech" z=acosh(1/#z) elseif @Fs=="cosec" z=1/sin(#z) elseif @Fs=="cosech" z=1/sinh(#z) elseif @Fs=="acosec" z=asin(1/#z) elseif @Fs=="acosech" z=asinh(1/#z) elseif @Fs=="exsec" z=1/cos(#z)-1 elseif @Fs=="aexsec" z= acos(1/(#z+1)) elseif @Fs=="excosec" z=1/sin(#z)-1 elseif @Fs=="aexcosec" z=asin(1/(#z+1)) elseif @Fs=="crd" z=2*sin(#z/2) elseif @Fs=="acrd" z=2*asin(#z/2) elseif @Fs=="gd" z=asin(tanh(#z)) elseif @Fs=="agd" z=asinh(tan(#z)) elseif @Fs=="sinc" z=sin(#z)/(#z) elseif @Fs=="sinhc" z=sinh(#z)/(#z) elseif @Fs=="cosc" z=cos(#z)/(#z) elseif @Fs=="coshc" z=cosh(#z)/(#z) elseif @Fs=="tanc" z=tan(#z)/(#z) elseif @Fs=="tanhc" z=tanh(#z)/(#z) elseif @Fs=="cotanc" z=cotan(#z)/(#z) elseif @Fs=="cotanhc" z=cotanh(#z)/(#z) elseif @Fs=="secc" z=1/(#z*cos(#z)) elseif @Fs=="sechc" z=1/(#z*cosh(#z)) elseif @Fs=="cosecc" z= 1/(#z*sin(#z)) elseif @Fs=="cosechc" z=1/(#z*sinh(#z)) elseif @Fs=="cube" z=#z^3 elseif @Fs=="cuberoot" z=#z^(1/3) elseif @Fs=="colog" z=-log(#z) elseif @Fs=="logit" z= log(#z/(1-#z)) elseif @Fs=="expit" z=1/(1+exp(-#z)) elseif @Fs=="gauss" z=exp(-sqr(#z)) elseif @Fs=="softplus" z=log(1+exp(#z)) elseif @Fs=="primecount" z=#z/log(#z) elseif @Fs=="sqr+" z=sqr(#z)+#z elseif @Fs=="cube+" z=#z^3+sqr(#z)+#z elseif @Fs=="sin+" z=sin(#z)+#z elseif @Fs=="cos+" z=cos(#z)+#z elseif @Fs=="tan+" z=tan(#z)+#z elseif @Fs=="cotan+" z=cotan(#z)+#z elseif @Fs=="sec+" z=1/cos(#z)+#z elseif @Fs=="cosec+" z=1/sin(#z)+#z elseif @Fs=="sin*" z=sin(#z)*#z elseif @Fs=="cos*" z=cos(#z)*#z elseif @Fs=="tan*" z=tan(#z)*#z elseif @Fs=="cotan*" z=cotan(#z)*#z elseif @Fs=="sec*" z=#z/cos(#z) elseif @Fs=="cosec*" z=#z/sin(#z) elseif @Fs=="loglog" z=log(log(#z)) elseif @Fs=="sinsin" z=sin(sin(#z)) elseif @Fs=="coscos" z=cos(cos(#z)) elseif @Fs=="+pixel" z=#z+pixel elseif @Fs=="-pixel" z=#z-pixel elseif @Fs=="*pixel" z=#z*pixel elseif @Fs=="/pixel" z=#z/pixel elseif @Fs=="ceil" z=ceil(#z) elseif @Fs=="floor" z=floor(#z) elseif @Fs=="trunc" z=trunc(#z) else z=round(#z) endif if @V=="Ampersand Curve" z=(imag(z)^2-real(z)^2)*(real(z)-1)*(2*real(z)-3)-4*(real(z)^2+imag(z)^2-2*real(z))^2 elseif @V=="Atriphthaloid" z=real(z)^4*(real(z)^2+imag(z)^2)-(p2*real(z)^2-p1^3)^2 elseif @V=="Beddington Mod" z=real(z)*exp(p2*(1-0.1*real(z))-p1*imag(z))+flip(real(z)*(1-exp(-p1*imag(z)))) elseif @V=="Beetle" z=(real(z)^2+imag(z)^2)*(real(z)^2+imag(z)^2-(p1+1)*real(z)-p2*imag(z))-p3^2*real(z)^2*imag(z)^2 elseif@V=="Bicorn" z=imag(z)^2*(p1^2-real(z)^2)-(real(z)^2+2*p1*imag(z)-p1^2)^2 elseif @V=="Bicuspid" z=(real(z)^2-p1^2)*(real(z)-p1)^2+(imag(z)^2-p1^2)^2 elseif @V=="Cartesian Oval" z=(p2-6)*sqrt((real(z)-p1)^2+imag(z)^2)+p3*sqrt((real(z)+p1)^2+imag(z)^2)-p4 elseif @V=="Cassinian Ovals" z=(real(z)^2+imag(z)^2)^2-2*p1^2*(real(z)^2-imag(z)^2)+p1^4-(p2+0.3)^4 elseif @V=="Cayley" z=(z-sqrt(-1))/(z+sqrt(-1)) elseif @V=="Ceva's Trisectrix" z=(real(z)^2+imag(z)^2)^3-((p1+1)*real(z)^2-(p1-1)*imag(z)^2)^2 elseif @V=="Chip" z=imag(z)-(real(z)/cabs(real(z)))*cos(sqr(log(abs(p2*real(z)-2*p3))))*atan(sqr(log(abs(2*p3*real(z)-p2))))+flip(p1-real(z)) elseif @v=="Chirikov Mod" z=real(z)+imag(z)+(p1/2*pi)*sin(2*pi*real(z))+flip(real(z)+imag(z)+(p1/2*pi)*sin(2*pi*real(z))-real(z)) elseif @V=="Circle Map" z=z+p1-p2*sin(z) elseif @V=="Cissoid of Zahradnik" z=p3*real(z)^2+2*p4*real(z)*imag(z)+(p5+1)*imag(z)^2-2*p1*real(z)-2*p2*imag(z) elseif @V=="Clifford" z=sin(p1*imag(z))+p2*cos(p1*real(z))+flip(sin(p3*real(z))+p4*cos(p3*imag(z))) elseif @V=="Conchoid of a Circle" z=(real(z)^2+imag(z)^2+p3^2-p2^2)^2*(imag(z)^2+(real(z)+p1)^2)-4*p3^2*(real(z)*(real(z)+p1)+imag(z)^2)^2 elseif @V=="Conchoid of Nicomedes" z=(real(z)-p2)^2*(real(z)^2+imag(z)^2)-p1^2*real(z)^2 elseif @V=="Conchoid of de Sluze" z=p1*(real(z)+p1)*(real(z)^2+imag(z)^2)-p2^2*real(z)^2 elseif @V=="Conic Sections" z=2*p1^2*real(z)+(1-p1^2)*real(z)^2+imag(z)^2-p1^2 elseif @V=="Cornoid" z=(real(z)^2+imag(z)^2)^3+p1^2*(3*real(z)^4-6*real(z)^2*imag(z)^2-5*imag(z)^4)+8*p1^4*imag(z)^2-4*p1^6 elseif @V=="Cosecantoid" z=imag(z)-p1/sin(real(z)/p2) elseif @V=="Cotangentoid" z=imag(z)-p1*cotan(real(z)/p2) elseif @V=="Cubic of Apollonius" z=(real(z)-2*p1)*(real(z)^2+imag(z)^2)+p2^2*(cos(2*p3*real(z))+sin(2*p3*imag(z))) elseif @V=="Curve of Cramer" z=real(z)*(real(z)^2+imag(z)^2)+(p1+1+p2)*real(z)^2-(p1+1-p2)*imag(z)^2 elseif @V=="Curve of Jefabek" z=(p2+1)^2*(real(z)^2+imag(z)^2-p1*real(z))^2-p1^2*(real(z)^2+imag(z)^2)*(real(z)-p1)^2 elseif @V=="Curve of Loriga" z=3*real(z)^2-imag(z)^2-p1^2 elseif @V=="Curve of Rosillo" z=imag(z)^2*(p3-real(z))^2-(p2-real(z))^2*(p1^2-real(z)^2) elseif @V=="de Jong" z=sin(p1*imag(z))-cos(p2*real(z))+flip(sin(p3*real(z))-cos(p4*imag(z))) elseif @V=="Devil's Curve" z=imag(z)^4-real(z)^4-p1^2*imag(z)^2+p2^2*real(z)^2 elseif @V=="Double U" z=imag(z)^2*(p1^2-real(z)^2)-p1^4 elseif @V=="Duffing 1" x=imag(z) y=real(z)-real(z)^3-p1*imag(z)+p2 z=x+flip(y) elseif @V=="Duffing 2" x=imag(z) y=-p1*real(z)-p2*real(z)^3+p3 z=x+flip(y) elseif @V=="Duffing 3" x=imag(z) y=-p1*real(z)-((p2-p1)/2)*(cabs(real(z)+1)-cabs(real(z)-1))-p3*imag(z)+p4 z=x+flip(y) elseif @V=="Duffing Parametric" x=imag(z) y=-real(z)-real(z)^3+(p1+p2*real(z)^2+p3*p4*real(z))*imag(z)+p4*p5 z=x+flip(y) elseif @V=="Duffing Quintic" x=imag(z) y=-p1*real(z)-p2*real(z)^3-p3*real(z)^5+p4 z=x+flip(y) elseif @V=="Egg of Granville" z=real(z)^2*imag(z)^2-(real(z)-p1)*(1-real(z)) elseif @V=="Fish Curve" z=(2*real(z)^2+imag(z)^2)^2+2*sqrt(2)*p1*real(z)*(2*real(z)^2-3*imag(z)^2)+2*p1^2*(imag(z)^2-real(z)^2) elseif @V=="Focal Conic Conchoid" z=(real(z)^2+imag(z)^2-p1*p2*real(z))^2-(real(z)^2+imag(z)^2)*(p2*real(z)-(p1+1))^2 elseif @V=="Hamilton" z=real(z)+p1*p2*sin(2*pi*imag(z))+flip(imag(z)-(p1/p2)*sin(2*pi*(real(z)+p1*p2*sin(2*pi*imag(z))))) elseif @V=="Hamilton Torus" z=-sin(imag(z))*(2-p1)+flip(sin(real(z))*p1) elseif @V=="Heart Curve" z=(real(z)^3+imag(z)^2-1)^3-real(z)^2*imag(z)^3 elseif @V=="Heart of Raphael Laporte" z=real(z)^8-real(z)^6+27*real(z)^4-27*real(z)^2+12*imag(z)*real(z)^6-12*imag(z)*real(z)^4\ +42*imag(z)^2*real(z)^4+42*imag(z)^2*real(z)^2+2*imag(z)^3*real(z)^4+26*imag(z)^3*real(z)^2\ +8*imag(z)^3+12*imag(z)^4*real(z)^2+12*imag(z)^4+6*imag(z)^5+imag(z)^6 elseif @V=="Henon 1" x=1-p1*real(z)^2+imag(z) y=p2*real(z) z=x+flip(y) elseif @V=="Henon 2" x=-(imag(z)-real(z)^2)*sin(2*pi/p1)+real(z)*cos(2*pi/p1) y=(imag(z)-real(z)^2)*cos(2*pi/p1)+real(z)*sin(2*pi/p1) z=x+flip(y) elseif @V=="Henon 3" x=imag(z) y=-p2^(-1)*(1-p1*imag(z)^2-p2*real(z)) z=x+flip(y) elseif @V=="Henon 4" x=exp(-p1*p2/2)*(real(z)*cos(p2*p3)+(1/p3)*(imag(z)-(p4+real(z)^2)+p1*real(z)/2)*sin(p2*p3)) y=exp(-p1*p2/2)*(-p3*real(z)*sin(p2*p3)+(imag(z)-(p4+real(z)^2)+p1*real(z)/2)*cos(p2*p3))-p1*x/2 z=x+flip(y) elseif @V=="Henon 5" x=imag(z)+p1*cos(pi*real(z)/2)-1 y=p2*real(z) z=x+flip(y) elseif @V=="Hippopede of Proclus" z=(real(z)^2+imag(z)^2)^2+4*p2*(p2-p1)*(real(z)^2+imag(z)^2)-4*p2^2*real(z)^2 elseif @V=="Hopalong" x=imag(z)-sqrt(cabs(p2*real(z)-p3))*((real(z))/cabs(real(z))) y=p1-real(z) z=x+flip(y) elseif @V=="Hopalong Mod 1" x=imag(z)+sqrt(cabs(p2*real(z)^2-p3))*real(z)/cabs(real(z)) y=p1-real(z) z=x+flip(y) elseif @V=="Hopalong Mod 2" x=imag(z)-cabs(p2*real(z)-p3)*real(z)/cabs(real(z)) y=p1-real(z) z=x+flip(y) elseif @V=="Hopalong Mod 3" x=imag(z)-cos(cabs(p2*real(z)-p3))*real(z)/cabs(real(z)) y=p1-real(z) z=x+flip(y) elseif @V=="Hopalong Mod 4" x=imag(z)-log(cabs(p2*real(z)-p3))*real(z)/cabs(real(z)) y=p1-real(z) z=x+flip(y) elseif @V=="Hopalong Mod 5" x=imag(z)-1-asinh(sqrt(abs(p2*real(z)-1-p3)))*((real(z)-1)/cabs(real(z)-1)) y=p1-real(z)-1 z=x+flip(y) elseif @V=="Hopalong Mod 6" x=imag(z)-1-asinh(sqrt(abs(p2*real(z)-1-p3)))*((real(z)-1)/cabs(tan(real(z))-1)) y=p1-real(z)-1 z=x+flip(y) elseif @V=="Hopalong Mod 7" x=imag(z)-1-asinh(sqrt(abs(p2*real(z)-1-p3)))*((real(z)-1)/cabs(flip(real(z))-1)) y=p1-real(z)-1 z=x+flip(y) elseif @V=="Hyperbola" z=real(z)^2/p1^2-imag(z)^2/@p2^2-1 elseif @V=="Hyperelliptic Curve" z=imag(z)^2-real(z)*(real(z)+1)*(real(z)-3)*(real(z)+2)*(real(z)-2) elseif @V=="Ikeda 1" z=p1+(p2+2)*z*e^(sqrt(-1)*(cabs(z)^2+p3)) elseif @V=="Ikeda 2" z=p1+p2*z*e^(sqrt(-1)*(p3+2)/(cabs(Z)^2+1)+p4) elseif @V=="Ikeda 3" x=p1+(p2+1)*(real(z)*cos(p3-p4/(real(z)^2+imag(z)^2+1))-imag(z)*sin(p3-p4/(real(z)^2+imag(z)^2+1))) y=(p2+1)*(real(z)*sin(p3-p4/(real(z)^2+imag(z)^2+1))+imag(z)*cos(p3-p4/(real(z)^2+imag(z)^2+1))) z=x+flip(y) elseif @V=="Inkle" z=p1*conj(p1/(z-p2))+p2 elseif @V=="Isoptic Curve" z=tan(p1)^2*(real(z)+pi/2)^2-imag(z)^2+2*p2*real(z) elseif @V=="Kam Torus" z=real(z)*cos(p1)+(real(z)^2-imag(z))*sin(p1)+flip(real(z)*sin(p1)-(real(z)^2-imag(z))*cos(p1)) elseif @V=="Kampyle of Eudoxus" z=p1^2*real(z)^4-p2^4*(real(z)^2+imag(z)^2) elseif @V=="Kan" x=p3*sin(imag(z)+sin(p1*imag(z))) y=p4*sin(real(z)+sin(p2*real(z))) z=x+flip(y) elseif @V=="Kaplan-Yorke" z=real(p1)*real(z)%1+flip(-p2*imag(z)+cos(2*pi*real(z))) elseif @V=="Kieroid" z=imag(z)^2*(real(z)-p1)^2+real(z)^2*(real(z)-p2)^2-p3^2*real(z)^2 elseif @V=="Kiss Curve" z=p1^4*imag(z)^2-(p1^2-real(z)^2)^3 elseif @v=="Klein Quartic" z=(real(z)^2+imag(z)^2-p2*p1^2)^2-p3*p1*(imag(z)-p1+sqrt(3)*real(z))*(imag(z)-p1-sqrt(3)*real(z))*(2*imag(z)+p1) elseif @V=="Latoocarfian" z=sin(p1*imag(z))+p2*sin(p1*real(z))+flip(sin(p3*real(z))+p4*sin(p3*imag(z))) elseif @V=="Lemniscate of Bernoulli" z=(real(z)^2+imag(z)^2)^2-(p1+1)^2*(real(z)^2-imag(z)^2) elseif @V=="Lemniscate of Booth" z=(real(z)^2+imag(z)^2)^2-(2*p1^2+p2)*real(z)^2+(2*p1^2-p2)*imag(z)^2 elseif@V=="Limacon of Pascal" z=(real(z)^2+imag(z)^2-p1*real(z))^2-p2^2*(real(z)^2+imag(z)^2) elseif @V=="Lissajous Curve" z=2*(2*real(z)^2-p1^2)^2-p1*(2*imag(z)-p1)^2*(imag(z)+p1) elseif @V=="Logarithmic Lemniscate" z=imag(z)^2-real(z)^2*log((p1+1)^2/real(z)^2) elseif @V=="Logistic Map" z=p1*z*(1-z) elseif @V=="Magus 1" z=(real(z)^2-imag(z)^2)*(real(z)^2+imag(z)^2)^2-2*p1*real(z)*imag(z)*(real(z)-p1^2) elseif @V=="Magus 2" z=(real(z)^2-p1^2)*(real(z)-p1)+(imag(z)^2-p1^2)^2 elseif @V=="Magus 3" z=(p1*exp(imag(z))-p2)/(p1*real(z)+p2)+flip((p1*exp(real(z))-p2)/(p1*imag(z)+p2)) elseif @v=="Magus 4" z=(p1*cos(imag(z))-p2)/(p1*tan(real(z))+p2)+flip((p1*cos(real(z))-p2)/(p1*tan(imag(z))+p2)) elseif @V=="Magus 5" z=(p1*tan(imag(z))-p2)/(p1*tan(real(z))+p2)+flip((p1*tan(real(z))-p2)/(p1*tan(imag(z))+p2)) elseif @V=="Magus 6" z=p1*sin(real(z))-tan(imag(z))-real(z)+flip(imag(z))+flip(-p2*tan(real(z))+sin(imag(z))+flip(real(z)+flip(imag(z)))) elseif @V=="Magus 7" z=p1*sin(real(z))-tan(imag(z))-abs(real(z)+flip(imag(z)))+flip(-p2*tan(real(z))+sin(imag(z))+abs(real(z)+flip(imag(z)))) elseif @V=="Magus 8" z=real(z)^2-4*p1*imag(z)*(real(z)^2+imag(z)^2)+imag(z)^3*p1^2*(real(z)^2-imag(z)^2)^4 elseif @V=="Magus 9" z=imag(z)^2+real(z)^2-((real(z)+(p3*(real(z)-p1))/sqrt((real(z)-p1)^2+(imag(z)-p2)^2))-(imag(z)+(p3*(imag(z)-p2))/sqrt((real(z)-p1)^2+(imag(z)-p2)^2))) elseif @V=="Magus 10" z=p1*imag(z)-p2/(real(z)*cos(real(z)))+p3/(real(z)*cos(imag(z))) elseif @V=="Magus 11" z=(real(z)^2-p1^2)*(real(z)-p1)^2+(imag(z)^2-p1^2)^3 elseif @V=="Magus 12" z=p1^2*imag(z)^2-p1*real(z)*(real(z)^2-imag(z)^2)+p2*imag(z)*real(z)-p2^2*(real(z)^2+imag(z)^2)*real(z)^2 elseif @V=="Magus 13" z=(real(z)%(2*pi))+(imag(z)%(2*pi))+p1*sin(2*pi*(real(z)%(2*pi)))+flip((real(z)%(2*pi))+(imag(z)%(2*pi))+p1*sin(2*pi*(real(z)%(2*pi)))-(real(z)%(2*pi))) elseif @V=="Magus 14" z=real(z)-imag(z)-cotan(real(z))*(p1*real(z)^2+p2*imag(z)^2)+flip(real(z)+imag(z)-cotan(imag(z))*(p3*real(z)^2+p4*imag(z)^2)) elseif @V=="Magus 15" if imag(z)>0.5 z=cos(2*p1*real(z)+flip(2*p2*imag(z)-2*p3)) elseif real(z)>0.5 z=cos(2*p1*real(z)-2*p3+flip(2*p2*imag(z))) else z=cos(2*p1*real(z)+flip(2*p2*imag(z))) endif elseif @V=="Magus 16" z=p1^2*(real(z)^2-imag(z)^2)^2-p1*sin(real(z)^2+imag(z)^2)^2-real(z)^2*imag(z)^2 elseif @V=="Magus 17" z=p1^2*(real(z)^2-imag(z)^2)^2-p1*tan(real(z)^2+imag(z)^2)^2-real(z)^2*imag(z)^2 elseif @V=="Magus 18" x=p1*sin(real(z)*cos(imag(z)))-p2*cos(real(z)*sin(imag(z))) y=p1*cos(imag(z)*sin(real(z)))+p2*sin(imag(z)*cos(real(z))) z=x+flip(y) elseif @V=="Magus 19" x=real(z)+p1+p2*sin(real(z)^2-imag(z)^2) y=imag(z)+p3+p2*sin(real(z)^2+imag(z)^2) z=x+flip(y) elseif @V=="Magus 20" z=imag(z)^2-4*p1*(real(z)^2+imag(z)^2)^3+p1^2*p2*(real(z)^2-imag(z)^2)^2 elseif @V=="Magus 21" x=tan(sin(p1*imag(z)))+(sin(p1*real(z)))^2 y=tan(sin(p2*real(z)))+(sin(p2*imag(z)))^2 z=x+flip(y) elseif @V=="Munster" z=p1*z^2*(z-p2)/(1-p2*z) elseif @V=="Nephroid" z=(real(z)^2+imag(z)^2-4*(p1-0.5)^2)^3-108*(p1-0.5)^4*real(z)^2 elseif @V=="Nephroid of Freeth" z=(real(z)^2+imag(z)^2)*(real(z)*2+imag(z)^2-p1^2)^2-4*p1^2*(real(z)^2+imag(z)^2-p1*real(z))^2 elseif @V=="Ophiuride" z=real(z)*(real(z)^2+imag(z)^2)-p2*real(z)*imag(z)-p1*imag(z)^2 elseif @V=="Parabola" z=imag(z)-p1*real(z)^2-p2*real(z)-p3 elseif @V=="Pearls of Sluze" z=imag(z)^p2-p3*(p1-real(z))^p4*real(z)^p5 elseif @V=="Pharaoh" x=-imag(z)+p1*cos(real(z))*sin(1-real(z)^2-imag(z)^2)+p3 y=real(z)+p2*cos(imag(z))*sin(1-real(z)^2-imag(z)^2)+p4 z=x+flip(y) elseif @V=="Popcorn" z=real(z)-p1*sin(imag(z)+tan(p2*imag(z)))+flip(imag(z)-p1*sin(real(z)+tan(p2*real(z)))) elseif @V=="Quadratix of Hippias" z=real(z)-imag(z)*cotan(imag(z)/p1) elseif @V=="Quadruptwo" z=imag(z)-(real(z)/cabs(real(z)))*sin(log(abs((p2+0.5)*real(z)-p3)))*atan(sqr(log(abs(p3*real(z)-(p2+0.5)))))+flip(p1-real(z)) elseif @V=="Scarab" z=(real(z)^2+imag(z)^2)*(real(z)^2+imag(z)^2+p1*real(z))^2-p2^2*(real(z)^2-imag(z)^2)^2 elseif @V=="Sinus Chain" z=imag(z)^2-abs(sin(real(z))+p1*sin(2*real(z))) elseif @V=="Spiric of Perseus" z=(real(z)^2+imag(z)^2)^2-2*(p1+1)*real(z)^2-2*p2*imag(z)^2+p3 elseif @V=="Spiric Sections" z=(p3^2-p1^2+p2^2+real(z)^2+imag(z)^2)^2-4*p3^2*(real(z)^2+p2^2) elseif @V=="Standard Map" x=real(z)+p1*imag(z)+p2+(p3/(2*pi))*sin(2*pi*real(z)) y=p1*imag(z)+p2+(p3/(2*pi))*sin(2*pi*real(z)) z=x+flip(y) elseif @V=="Strophoid" z=imag(z)^2-real(z)^2*(p1-real(z))/(p1+real(z)) elseif @V=="Svensson" z=p1*sin(p2*real(z))-sin(p3*imag(z))+flip(p4*cos(p2*real(z))-cos(p3*imag(z))) elseif @V=="Syntractrix" z=real(z)+sqrt(p2^2-imag(z)^2)-p1*log((p2+sqrt(p2^2-imag(z)^2))/imag(z)) elseif @V=="Tetracuspid" z=p1^p2*(cabs(real(z))^p2+cabs(imag(z))^p2)-(real(z)^2+imag(z)^2)^p2 elseif @V=="Thorn 1" x=real(z)/cos(imag(z))+real(p1) y=imag(z)/sin(real(z))+imag(p1) z=x+flip(y) elseif @V=="Thorn 2" x=real(z)/cos(imag(z))*sin(real(z))+real(p1) y=imag(z)/sin(real(z))*cos(imag(z))+imag(p1) z=x+flip(y) elseif @V=="Thorn 3" x=real(z)/cos(imag(z))*sin(imag(z))+real(p1) y=imag(z)/sin(real(z))*cos(real(z))+imag(p1) z=x+flip(y) elseif @V=="Thorn 4" x=real(z)/sin(cos(imag(z))*sin(imag(z)))+real(p1) y=imag(z)/cos(sin(real(z))*cos(real(z)))+imag(p1) z=x+flip(y) elseif @V=="Threeply" z=imag(z)-(real(z)/cabs(real(z)))*(abs(sin(real(z))*cos(p1)+p2-real(z)*sin(p1+p2+p3)))+flip(p3-real(z)) elseif @V=="Tinkerbell" z=real(z)^2-imag(z)^2+p1*real(z)+p2*imag(z)+flip(2*real(z)*imag(z)-p3*real(z)+p4*imag(z)) elseif @V=="Torpedo Curve" z=(real(z)^2+imag(z)^2)^2-(p1+1)*real(z)*(real(z)^2-imag(z)^2) elseif @V=="Tractrix" z=real(z)-log((p1-sqrt(p1^2-imag(z)^2))/imag(z))-sqrt(p1^2-imag(z)^2) elseif @V=="Trisectrix of Delange" z=(real(z)^2+imag(z)^2-2*p1^2)^2-real(z)^2*(real(z)^2+imag(z)^2) elseif @V=="Trisectrix of Maclaurin" z=real(z)^2*(real(z)+3*p1)-imag(z)^2*(p1-real(z)) elseif @V=="Trott Curve" z=(144*(real(z)^4+imag(z)^4)-225*(real(z)^2+imag(z)^2)+350*real(z)^2*imag(z)^2+81) elseif @V=="Van der Pol 1" z=p1*(real(z)-real(z)^3/3-imag(z))+flip(real(z)/p1) elseif @V=="Van der Pol 2" z=imag(z)+flip(p1*(1-real(z)^2)*imag(z)-real(z)) elseif @V=="Van der Pol 3" z=imag(z)-p1*real(z)*(cabs(real(z))-1)+flip(-real(z)) elseif @V=="Van der Pol 4" z=imag(z)-p1*real(z)*(real(z)^4+real(z)^2-1)/10+flip(-real(z)) elseif @V=="Van der Pol 5" z=imag(z)-p1*real(z)*(2*real(z)^2-sin(pi*real(z))^2-2)+flip(-real(z)) elseif @V=="Van der Pol 6" z=imag(z)-p1*(real(z)-cabs(real(z)+1)+cabs(real(z)-1))+flip(-real(z)) elseif @V=="Van der Pol 7" z=imag(z)-p1*(cabs(real(z))*real(z)^3-real(z))+flip(-real(z)) elseif @V=="Viviani's Curve" z=imag(z)^2-real(z)^2*((p1+1)^2-real(z)^2) elseif @V=="Watt's Curve" z=(real(z)^2+imag(z)^2)*(real(z)^2+imag(z)^2-p3^2)^2+4*(p1+1)^2*imag(z)^2*(real(z)^2+imag(z)^2-p2^2) elseif @V=="Zaslavsky Transform" x=cos(p1)*(real(z)+p2*sin(imag(z)))+sin(p1)*imag(z) y=-sin(p1)*(real(z)+p2*sin(imag(z)))+cos(p1)*imag(z) z=x+flip(y) endif if i2<=i a=a+exp(-cabs(z+2)) b=b+ exp(-1/cabs(zold-z+2)) if @vers!=1 zold=#z endif i2=i2+1 endif final: if @vers!=1 if |#z-zold|<0.5 #index=b else #index=a endif else if |z-zold|<0.0 if @solid if @invert if b<@p9 #index=b else #solid=true endif else if b>@p9 #index=b else #solid=true endif endif else #index=b endif else if @solid if @invert if a<@p9 #index=a else #solid=true endif else if a>@p9 #index=a else #solid=true endif endif else #index=a endif endif endif default: title="Azave" param vers caption="Version" enum="V1-For old parameter sets""V2-Improved-For new work" endparam param V caption="Variant" enum="Ampersand Curve""Atriphthaloid""Beddington Mod""Beetle""Bicorn""Bicuspid""Cartesian Oval"\ "Cassinian Ovals""Cayley""Ceva's Trisectrix""Chip""Chirikov Mod""Circle Map""Cissoid of Zahradnik"\ "Clifford""Conchoid of a Circle""Conchoid of Nicomedes"\ "Conchoid of de Sluze""Conic Sections""Cornoid""Cosecantoid""Cotangentoid""Cubic of Apollonius""Curve of Cramer"\ "Curve of Jefabek""Curve of Loriga""Curve of Rosillo""de Jong"\ "Devil's Curve""Double U""Duffing 1""Duffing 2""Duffing 3""Duffing Parametric""Duffing Quintic""Egg of Granville"\ "Fish Curve""Focal Conic Conchoid""Hamilton""Hamilton Torus"\ "Heart Curve""Heart of Raphael Laporte""Henon 1""Henon 2""Henon 3""Henon 4""Henon 5""Hippopede of Proclus""Hopalong"\ "Hopalong Mod 1""Hopalong Mod 2"\ "Hopalong Mod 3""Hopalong Mod 4""Hopalong Mod 5""Hopalong Mod 6""Hopalong Mod 7"\ "Hyperbola""Hyperelliptic Curve""Ikeda 1""Ikeda 2""Ikeda 3""Inkle""Isoptic Curve""Kam Torus""Kampyle of Eudoxus"\ "Kan""Kaplan-Yorke""Kieroid""Kiss Curve""Klein Quartic"\ "Latoocarfian""Lemniscate of Bernoulli""Lemniscate of Booth""Limacon of Pascal""Lissajous Curve"\ "Logarithmic Lemniscate""Logistic Map""Magus 1""Magus 2""Magus 3""Magus 4""Magus 5""Magus 6"\ "Magus 7""Magus 8""Magus 9""Magus 10""Magus 11""Magus 12""Magus 13""Magus 14"\ "Magus 15""Magus 16""Magus 17""Magus 18""Magus 19""Magus 20""Magus 21""Munster""Nephroid""Nephroid of Freeth"\ "Ophiuride""Parabola""Pearls of Sluze""Pharaoh""Popcorn""Quadratix of Hippias""Quadruptwo"\ "Scarab""Sinus Chain""Spiric of Perseus""Spiric Sections""Standard Map""Strophoid""Svensson"\ "Syntractrix""Tetracuspid""Thorn 1""Thorn 2""Thorn 3""Thorn 4""Threeply""Tinkerbell""Torpedo Curve""Tractrix""Trisectrix of Delange"\ "Trisectrix of Maclaurin""Trott Curve""Van der Pol 1""Van der Pol 2""Van der Pol 3""Van der Pol 4""Van der Pol 5""Van der Pol 6"\ "Van der Pol 7""Viviani's Curve""Watt's Curve""Zaslavsky Transform" default=0 endparam param iter caption="Iterations" default=15 min=0 endparam param Fs caption="Function" enum="sin""sinh""asin""asinh""cos""cosh""acos""acosh""tan""tanh""atan"\ "atanh""cotan""cotanh""sqr""sqrt""log""exp""abs""cabs""conj"\ "flip""ident""recip""versin""aversin""haversin""ahaversin""coversin""acoversin"\ "hacoversin""vercos""avercos""havercos""ahavercos""covercos"\ "acovercos""hacovercos""acotan""acotanh" \ "sec""sech""asec""asech""cosec""cosech""acosec""acosech""exsec""aexsec"\ "excosec""aexcosec""crd""acrd""gd""agd""sinc""sinhc""cosc""coshc"\ "tanc""tanhc""cotanc""cotanhc""secc""sechc""cosecc""cosechc"\ "cube""cuberoot""colog""logit""expit""gauss""softplus"\ "primecount""sqr+""cube+""sin+""cos+""tan+""cotan+""sec+""cosec+""sin*""cos*""tan*""cotan*""sec*"\ "cosec*""loglog""sinsin""coscos""+pixel""-pixel"\ "*pixel""/pixel""ceil""floor""trunc""round" default=22 endparam param p1 caption="Parameter" default=(1,0) visible=@V!="Ampersand Curve" && @V!="Heart Curve" && @V!="Heart of Raphael Laporte" && @V!="Sinus Chain" \ && @V!="Trott Curve" && @V!="Hyperelliptic Curve" && @V!="Cayley" endparam param p2 default=(1,0) visible=@V=="Atriphthaloid" || @V=="Beddington Mod" || @V=="Beetle" || @V=="Cartesian Oval" || @V=="Cassinian Ovals" || @V=="Chip" \ || @V=="Circle Map" || @V=="Cissoid of Zahradnik" || @V=="Clifford" || @V=="Conchoid of a Circle" || @V=="Conchoid of Nicomedes" \ || @V=="Conchoid of de Sluze" || @V=="Cosecantoid" || @V=="Cotangentoid" || @V=="Cubic of Apollonius" \ || @V=="Curve of Cramer" || @V=="Curve of Jefabek" \ || @V=="Curve of Rosillo" || @V=="de Jong" || @V=="Devil's Curve" || @V=="Duffing 1" || @V=="Duffing 2" \ || @V=="Duffing 3" || @V=="Duffing Parametric" \ || @V=="Duffing Quintic" || @V=="Focal Conic Conchoid" || @V=="Hamilton" || @V=="Henon 1" || @V=="Henon 3" \ || @V=="Henon 4" || @V=="Henon 5" || @V=="Hippopede of Proclus" || @V=="Hopalong" \ || @V=="Hopalong Mod 1" || @V=="Hopalong Mod 2" \ || @V=="Hopalong Mod 3" || @V=="Hopalong Mod 4" || @V=="Hopalong Mod 5" || @V=="Hopalong Mod 6" \ || @V=="Hopalong Mod 7" || @V=="Hyperbola" || @V=="Ikeda 1" || @V=="Ikeda 2" || @V=="Ikeda 3" || @V=="Inkle" || @V=="Isoptic Curve" || @V=="Kampyle of Eudoxus" \ || @V=="Kan" || @V=="Kaplan-Yorke" || @V=="Kieroid" || @V=="Klein Quartic" || @V=="Latoocarfian" \ || @V=="Lemniscate of Booth" || @V=="Limacon of Pascal" || @V=="Magus 3" \ || @V=="Magus 4"|| @V=="Magus 5" \ || @V=="Magus 6" || @V=="Magus 7" || @V=="Magus 9" || @V=="Magus 10" || @V=="Magus 12" || @V=="Magus 14" \ || @V=="Magus 15" || @V=="Magus 18" || @V=="Magus 19" || @V=="Magus 20" || @V=="Magus 21" || @V=="Munster" || @V=="Ophiuride" || @V=="Parabola" \ || @V=="Pearls of Sluze" || @V=="Pharaoh" || @V=="Popcorn" || @V=="Quadruptwo" \ || @V=="Scarab" || @V=="Spiric of Perseus" || @V=="Spiric Sections" || @V=="Standard Map" || @V=="Svensson" || @V=="Syntractrix" \ || @V=="Tetracuspid" || @V=="Threeply" || @V=="Tinkerbell" || @V=="Watt's Curve" \ || @V=="Zaslavsky Transform" endparam param p3 default=(1,0) visible=@V=="Beetle" || @V=="Cartesian Oval" || @V=="Chip" || @V=="Cissoid of Zahradnik" || @V=="Clifford" \ || @V=="Conchoid of a Circle" || @V=="Cubic of Apollonius" || @V=="Curve of Rosillo" \ || @V=="de Jong" || @V=="Duffing 2" || @V=="Duffing 3" \ || @V=="Duffing Parametric" || @V=="Duffing Quintic" || @V=="Henon 4" || @V=="Hopalong" || @V=="Hopalong Mod 1" || @V=="Hopalong Mod 2" \ || @V=="Hopalong Mod 3" || @V=="Hopalong Mod 4" || @V=="Hopalong Mod 5" || @V=="Hopalong Mod 6" \ || @V=="Hopalong Mod 7" || @V=="Ikeda 1" || @V=="Ikeda 2" || @V=="Ikeda 3" || @V=="Kan" || @V=="Kieroid" \ || @V=="Klein Quartic" || @V=="Latoocarfian" || @V=="Magus 9" || @V=="Magus 10" || @V=="Magus 14" \ || @V=="Magus 15" || @V=="Magus 19" || @V=="Parabola" || @V=="Pearls of Sluze" || @V=="Pharaoh" || @V=="Quadruptwo" \ || @V=="Spiric of Perseus" || @V=="Spiric Sections" || @V=="Standard Map" || @V=="Svensson" || @V=="Threeply" \ || @V=="Tinkerbell" || @V=="Watt's Curve" endparam param p4 default=(1,0) visible=@V=="Cartesian Oval" || @V=="Cissoid of Zahradnik" || @V=="Clifford" || @V=="de Jong" \ || @V=="Duffing 3" || @V=="Duffing Parametric" || @V=="Duffing Quintic" \ || @V=="Henon 4" || @V=="Ikeda 2" || @V=="Ikeda 3" \ || @V=="Kan" || @V=="Latoocarfian" || @V=="Magus 14" \ || @V=="Pearls of Sluze" || @V=="Pharaoh" || @V=="Svensson" || @V=="Tinkerbell" endparam param p5 default=(1,0) visible=@V=="Cissoid of Zahradnik" || @V=="Duffing Parametric" || @V=="Pearls of Sluze" endparam param @solid caption="Solid Color" default=false visible=@vers==1 endparam param p9 caption="Solid Color Adjustment" default=0.05 visible=@solid==true && @vers==1 endparam param invert caption="Invert Solid Color" default=false visible=@solid==true && @vers==1 endparam }