t1{ transform: #pixel = @fn(#pixel^@power)+@seed default: title="t1" param power default=(2,0) endparam func fn caption="function" default=ident() endfunc param seed default=(0,0) endparam } t2{ transform: #pixel = @fn((#pixel+@par)^(#pixel-@par))+@par default: title="t2" param par caption="parameter" default=0.0 endparam param par caption="parameter" default=(0,0) endparam func fn caption="function" default=ident() endfunc } t3{ transform: #pixel = @fn(cotan(#pixel+@seed)*cotan(#pixel-@seed)) default: title="t3" param seed default=(0,0) endparam func fn caption="function" default=ident() endfunc } t4{ transform: #pixel = fn1(flip(cotan(#pixel)+tan(#pixel) +@seed)-@seed) default: title="t4" func fn1 default=ident() endfunc param seed default=(0,0) endparam } t5{ transform: #pixel = @fn((cotan(#pixel)+@seed1)/(log(#pixel)-@seed1))/@seed2 default: title="t5" func fn caption="function" default=ident() endfunc param seed1 caption="seed 1" default=0.0 endparam param seed2 caption="seed 2" default=1.0 endparam } t6{ transform: #pixel = @fn(#random*(#pixel^@par)) default: title="t6" func fn caption="function" default=ident() endfunc param par caption="parameter" default=8.0 endparam } t7{ transform: #pixel = @fn(#pixel+sqrt(#pixel)+sqr(#pixel))^@par default: title="t7" func fn caption="function" default=ident() endfunc param par caption="parameter" default=(1,0) endparam } t8{ transform: #pixel = @fn(#pixel+imag(#pixel))^@par default: title="t8" func fn caption="function" default=ident() endfunc param par caption="parameter" default=1.0 endparam } t9{ transform: #pixel = @fn((#pixel+imag(#pixel))*(#pixel-imag(#pixel)))^@seed default: title="t9" func fn caption="function" default=ident() endfunc param seed default=1.0 endparam } t10{ transform: #pixel = @fn((#pixel^2)+imag(#pixel))^@seed default: title="t10" func fn caption="function" default=ident() endfunc param seed default=1.0 endparam } t11{ transform: #pixel = @fn(#pixel+(#pixel^2)+(#pixel^3))^@seed default: title="t11" func fn caption="function" default=ident() endfunc param seed default=1.0 endparam } t12{ transform: x=sin(#pixel) y=log(#pixel) z=sqrt(#pixel) #pixel = @fn(cotanh(cotanh((z*#pixel)-((x/y)^#pixel))))^@par default: title="t12" func fn caption="function" default=ident() endfunc param par caption="parameter" default=1.0 endparam } t13{ transform: x=cotanh(#pixel) y=sqr(#pixel) z=exp(#pixel) #pixel = @fn(atanh(cotanh((z*#pixel)-((x/y)^#pixel))))^@par default: title="t13" func fn caption="function" default=ident() endfunc param par caption="parameter" default=-1.0 endparam } t14{ transform: x=atanh(#pixel) y=recip(#pixel) z=cos(#pixel) #pixel = @fn(atanh(cotan((z/#pixel)-((y/x)*#pixel))))^@seed default: title="t14" func fn caption="function" default=ident() endfunc param seed default=-1.0 endparam } t15{ transform: #pixel = @fn(recip((#pixel+(#pixel^2)+(#pixel^3)+@seed)/#pixel)) default: title="t15" func fn caption="function" default=ident() endfunc param seed default=(0,0) endparam } t16{ transform: #pixel = @fn(acos(log(#pixel)^log(#pixel)))+@par default: title="t16" func fn caption="function" default=ident() endfunc param par default=(0,0) endparam } t17{ transform: #pixel = @fn(sqrt(cotan(#pixel)^cotan(#pixel)))+@par default: title="t17" func fn caption="function" default=ident() endfunc param par default=(0,0) endparam } t18{ transform: #pixel = @fn(recip(sqrt(sqrt(cotan(#pixel)^cotan(#pixel)))))-1.4222+@par default: title="t18" func fn caption="function" default=ident() endfunc param par default=0.0 endparam } t19{ transform: #pixel = @fn(flip(#pixel+sqr(imag(#pixel))))+@par default: title="t19" func fn caption="function" default=ident() endfunc param par default=0.0 endparam } t20{ transform: #pixel = @fn(sqr(#pixel+sqrt(imag(#pixel))))+@par default: title="t20" func fn caption="function" default=ident() endfunc param par default=(0,0) endparam } t21{ transform: #pixel = @fn(recip(sqrt(#pixel+imag(#pixel))))^@par #pixel=#pixel-0.5 default: title="t21" func fn caption="function" default=ident() endfunc param par default=1.0 endparam } t22{ transform: #pixel = @fn(tan(atan2(#pixel)/(atan(#pixel))))^2^@par default: title="t22" func fn caption="function" default=ident() endfunc param par default=1.0 endparam } t23{ transform: #pixel = @fn(cosh(atan2(#pixel)*(cotan(#pixel))))^@par default: title="t23" func fn caption="function" default=ident() endfunc param par default=1.0 endparam } t24{ transform: #pixel = @fn(cos(#pixel+atan2(#pixel)))^@par default: title="t24" func fn caption="function" default=ident() endfunc param par default=1.0 endparam } t25{ transform: #pixel = (@fn(abs(#pixel^2))*@seed)/(@fn(abs(#pixel))/@seed) default: title="t25" func fn caption="function" default=ident() endfunc param seed default=(1,0) endparam } t26{ transform: #pixel = (@fn(cotan(#pixel^2))*@seed)/(@fn(cotan(#pixel))/@seed) default: title="t26" func fn caption="function" default=ident() endfunc param seed default=(1,0) endparam } t27{ transform: if abs(real(#pixel))>asin(imag(#pixel)) #pixel=fn1(sqr(#pixel))^2+@par else #pixel=fn2(recip(#pixel))^2+@par endif default: title="t27" func fn1 default=ident() endfunc func fn2 default=ident() endfunc param par default=(0,0) endparam } t28{ transform: a=((#pixel^2)-#pixel) #pixel=fn1(flip((a^2)+(a*#pixel)+(#pixel^2)))^@par default: title="t28" func fn1 default=ident() endfunc param par default=1.0 endparam } t29{ transform: a=((#pixel^2)-#pixel) #pixel=fn1(flip((#pixel*a)/(#pixel-a)))^@par default: title="t29" func fn1 default=ident() endfunc param par default=1.0 endparam } t30{ transform: a=flip((#pixel^2)-#pixel) #pixel=fn1(sqr(recip((#pixel^3)+(a*(#pixel^2))+((a^2)*#pixel)+(a^3))))^@par default: title="t30" func fn1 default=ident() endfunc param par default=(1,0) endparam } t31{ transform: a=fn1(conj(flip((#pixel^2)-#pixel))) b=fn2(#pixel-cos(#pixel)) #pixel=fn3((a*b)+(a*(#pixel^2))+(b*(#pixel^2)))^@par default: title="t31" func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc param par default=(1,0) endparam } t32{ transform: a=(1.3,0.2) b=(-1.5,0.7) c=(0.4,1.2) d=(0.9,-1.3) f=(0.1,-0.1) #pixel =fn1(flip(((#pixel-a)/(#pixel+b))+((#pixel-c)/(#pixel+d))))+f+@par default: title="t32" func fn1 default=ident() endfunc param par default=(0,0) endparam } t33{ transform: if imag(sin(#pixel))>real(sqr(#pixel)) #pixel =fn1(sqr(recip(#pixel-imag(#pixel))))+@par else #pixel =fn1(sqr(recip(#pixel+imag(#pixel))))+@par endif default: title="t33" func fn1 default=ident() endfunc param par default=(0,0) endparam } t34{ transform: if |#pixel|>|recip(#pixel)| #pixel =@fn(sqr(#pixel-imag(#pixel)))+@seed else #pixel =@fn(sqr(#pixel+imag(#pixel)))+@seed endif default: title="t34" func fn caption="function" default=ident() endfunc param seed default=(0,0) endparam } t35{ transform: a=#pixel b=real(#pixel) c=imag(#pixel) #pixel=@fn((a^2)+(a*b^2)+(a*b*c^2))+@par default: title="t35" func fn caption="function" default=ident() endfunc param par caption="parameter" default=(0,0) endparam } t36{ transform: #pixel=fn1(flip(#pixel+tanh(imag(#pixel))+sqr(imag(#pixel))))+@par default: title="t36" func fn1 caption="function" default=ident() endfunc param par caption="parameter" default=(0,0) endparam } t37{ transform: #pixel=fn1(atanh(#pixel))+fn2((imag(#pixel))/2)+@par default: title="t37" func fn1 caption="function 1" default=ident() endfunc func fn2 caption="function 2" default=ident() endfunc param par caption="parameter" default=(0,0) endparam } t38{ transform: if @tran==0 #pixel = @fn((#pixel^2)) +@par elseif @tran==1 #pixel = @fn((#pixel^2)+#pixel) +@par elseif @tran==2 #pixel = @fn(#pixel^3) +@par elseif @tran==3 #pixel = @fn((#pixel^3)+(#pixel^2)) +@par elseif @tran==4 #pixel = @fn((#pixel^3)+(#pixel^2)+#pixel) +@par elseif @tran==5 #pixel = @fn(#pixel^4)+@par elseif @tran==6 #pixel = @fn((#pixel^4)+(#pixel^3)) +@par elseif @tran==7 #pixel = @fn((#pixel^4)+(#pixel^3)+(#pixel^2)) +@par elseif @tran==8 #pixel = @fn((#pixel^4)+(#pixel^3)+(#pixel^2)+#pixel) +@par endif default: title="t38" param tran caption = "transformation" enum = "1" "2" "3" "4" "5" "6" "7" "8" "9" default = 0 endparam func fn caption="function" default=ident() endfunc param par caption="seed" default=(0,0) endparam } t39{ transform: if @tran==0 #pixel= @fn(real(#pixel)+sqr(imag(#pixel))) +@par elseif @tran==1 #pixel= @fn(real(#pixel)-sqr(imag(#pixel))) +@par elseif @tran==2 #pixel= @fn(real(#pixel)/sqr(imag(#pixel))) +@par elseif @tran==3 #pixel= @fn(sqr(imag(#pixel))/real(#pixel)) +@par elseif @tran==4 #pixel= @fn(sqr(real(#pixel))+sqr(imag(#pixel))) +@par elseif @tran==5 #pixel= @fn(sqr(real(#pixel))-sqr(imag(#pixel))) +@par elseif @tran==6 #pixel= @fn(sqr(real(#pixel))/sqr(imag(#pixel))) +@par elseif @tran==7 #pixel= @fn(sqr(imag(#pixel))/sqr(real(#pixel))) +@par elseif @tran==8 #pixel= @fn(#pixel+real(#pixel)) +@par elseif @tran==9 #pixel= @fn(#pixel+sqr(imag(#pixel))) +@par elseif @tran==10 #pixel= @fn(#pixel+real(#pixel)+sqr(imag(#pixel))) +@par elseif @tran==11 #pixel= @fn((#pixel^2)+real(#pixel)) +@par elseif @tran==12 #pixel= @fn((#pixel^2)+sqr(imag(#pixel))) +@par elseif @tran==13 #pixel= @fn((#pixel^2)+real(#pixel)+sqr(imag(#pixel))) +@par endif default: title="t39" param tran caption = "transformation" enum = "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14" default = 0 endparam func fn caption="function" default=ident() endfunc param par caption="seed" default=(0,0) endparam } t40{ transform: if @tran==0 #pixel= @fn(cotan(#pixel*2)*cotanh(#pixel*2)) +@par elseif @tran==1 #pixel= @fn(((cotan(#pixel*2))^2)*((cotanh(#pixel*2))^2)) +@par elseif @tran==2 #pixel= @fn(((cotan(#pixel*2))^3)*((cotanh(#pixel*2))^3)) +@par elseif @tran==3 #pixel= @fn(((cotan(#pixel*2))^4)*((cotanh(#pixel*2))^4)) +@par elseif @tran==4 #pixel= @fn(((cotan(#pixel*2))^5)*((cotanh(#pixel*2))^5)) +@par elseif @tran==5 #pixel= @fn(((cotan(#pixel*2))^6)*((cotanh(#pixel*2))^6)) +@par elseif @tran==6 #pixel= @fn(((cotan(#pixel*2))^7)*((cotanh(#pixel*2))^7)) +@par elseif @tran==7 #pixel= @fn(((cotan(#pixel*2))^8)*((cotanh(#pixel*2))^8)) +@par elseif @tran==8 #pixel= @fn(((cotan(#pixel*2))^9)*((cotanh(#pixel*2))^9)) +@par elseif @tran==9 #pixel= @fn(((cotan(#pixel*2))^10)*((cotanh(#pixel*2))^10)) +@par elseif @tran==10 #pixel= @fn(((cotan(#pixel*2))^11)*((cotanh(#pixel*2))^11)) +@par elseif @tran==11 #pixel= @fn(((cotan(#pixel*2))^12)*((cotanh(#pixel*2))^12)) +@par elseif @tran==12 #pixel= @fn(((cotan(#pixel*2))^13)*((cotanh(#pixel*2))^13)) +@par elseif @tran==13 #pixel= @fn(((cotan(#pixel*2))^14)*((cotanh(#pixel*2))^14)) +@par endif default: title="t40" param tran caption = "power" enum = "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14" default = 0 endparam func fn caption="function" default=ident() endfunc param par caption="seed" default=(0,0) endparam } t41{ transform: if @tran==0 #pixel= @fn(atan(atan(#pixel*2)*tan(#pixel*2))) +@par elseif @tran==1 #pixel= @fn(atan(((atan(#pixel*2))^2)*((tan(#pixel*2))^2))) +@par elseif @tran==2 #pixel= @fn(atan(((atan(#pixel*2))^3)*((tan(#pixel*2))^3))) +@par elseif @tran==3 #pixel= @fn(atan(((atan(#pixel*2))^4)*((tan(#pixel*2))^4))) +@par elseif @tran==4 #pixel= @fn(atan(((atan(#pixel*2))^5)*((tan(#pixel*2))^5))) +@par elseif @tran==5 #pixel= @fn(atan(((atan(#pixel*2))^6)*((tan(#pixel*2))^6))) +@par elseif @tran==6 #pixel= @fn(atan(((atan(#pixel*2))^7)*((tan(#pixel*2))^7))) +@par elseif @tran==7 #pixel= @fn(atan(((atan(#pixel*2))^8)*((tan(#pixel*2))^8))) +@par elseif @tran==8 #pixel= @fn(atan(((atan(#pixel*2))^9)*((tan(#pixel*2))^9))) +@par elseif @tran==9 #pixel= @fn(atan(((atan(#pixel*2))^10)*((tan(#pixel*2))^10))) +@par elseif @tran==10 #pixel= @fn(atan(((atan(#pixel*2))^11)*((tan(#pixel*2))^11))) +@par elseif @tran==11 #pixel= @fn(atan(((atan(#pixel*2))^12)*((tan(#pixel*2))^12))) +@par elseif @tran==12 #pixel= @fn(atan(((atan(#pixel*2))^13)*((tan(#pixel*2))^13))) +@par elseif @tran==13 #pixel= @fn(atan(((atan(#pixel*2))^14)*((tan(#pixel*2))^14))) +@par endif default: title="t41" param tran caption = "power" enum = "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14" default = 0 endparam func fn caption="function" default=ident() endfunc param par caption="seed" default=(0,0) endparam } t42{ transform: if @tran==0 #pixel= @fn(atan(cos(#pixel*2)*log(#pixel*2))) +@par elseif @tran==1 #pixel= @fn(atan(((cos(#pixel*2))^2)*((log(#pixel*2))^2))) +@par elseif @tran==2 #pixel= @fn(atan(((cos(#pixel*2))^3)*((log(#pixel*2))^3))) +@par elseif @tran==3 #pixel= @fn(atan(((cos(#pixel*2))^4)*((log(#pixel*2))^4))) +@par elseif @tran==4 #pixel= @fn(atan(((cos(#pixel*2))^5)*((log(#pixel*2))^5))) +@par elseif @tran==5 #pixel= @fn(atan(((cos(#pixel*2))^6)*((log(#pixel*2))^6))) +@par elseif @tran==6 #pixel= @fn(atan(((cos(#pixel*2))^7)*((log(#pixel*2))^7))) +@par elseif @tran==7 #pixel= @fn(atan(((cos(#pixel*2))^8)*((log(#pixel*2))^8))) +@par elseif @tran==8 #pixel= @fn(atan(((cos(#pixel*2))^9)*((log(#pixel*2))^9))) +@par elseif @tran==9 #pixel= @fn(atan(((cos(#pixel*2))^10)*((log(#pixel*2))^10))) +@par elseif @tran==10 #pixel= @fn(atan(((cos(#pixel*2))^11)*((log(#pixel*2))^11))) +@par elseif @tran==11 #pixel= @fn(atan(((cos(#pixel*2))^12)*((log(#pixel*2))^12))) +@par elseif @tran==12 #pixel= @fn(atan(((cos(#pixel*2))^13)*((log(#pixel*2))^13))) +@par elseif @tran==13 #pixel= @fn(atan(((cos(#pixel*2))^14)*((log(#pixel*2))^14))) +@par endif default: title="t42" param tran caption = "power" enum = "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14" default = 0 endparam func fn caption="function" default=ident() endfunc param par caption="seed" default=(0,0) endparam } t43{ transform: a=recip(#pixel) b=tan(#pixel) c=sqrt(#pixel) d=exp(#pixel) f=log(#pixel) if @tran==0 #pixel=@fn(abs((a^5)*(b^4)*(c^3)*(d^2)*f))*@par elseif @tran==1 #pixel=@fn((b^5)*(c^4)*(d^3)*(f^2)*a)*@par elseif @tran==2 #pixel=@fn(abs((c^5)*(d^4)*(f^3)*(a^2)*b))*@par elseif @tran==3 #pixel=@fn(atan((f^4)*(a^3)*(b^2)*c))*@par elseif @tran==4 #pixel=@fn((f^5)*(a^4)*(b^3)*(c^2)*d)*@par endif default: title="t43" param tran caption="transformation" enum="1" "2" "3" "4" "5" default=0 endparam func fn caption="function" default=ident() endfunc param par caption="parameter" default=(1,0) endparam } t44{ transform: a=sin(#pixel) b=cos(#pixel) c=tan(#pixel) d=cotan(#pixel) f=cabs(#pixel) if @tran==0 #pixel=@fn((c^3)*(d^2)*f)+@par elseif @tran==1 #pixel=@fn((b^5)*(c^4)*(d^3)*(f^2)*a)+@par elseif @tran==2 #pixel=@fn((c^5)*(d^4)*(f^3)*(a^2)*b)+@par elseif @tran==3 #pixel=@fn(atan((d^5)*(f^4)*(a^3)*(b^2)*c))+@par elseif @tran==4 #pixel=@fn((f^5)*(a^4)*(b^3)*(c^2)*d)+@par endif default: title="t44" param tran caption="transformation" enum="1" "2" "3" "4" "5" default=0 endparam func fn caption="function" default=ident() endfunc param par caption="parameter" default=(0,0) endparam } t45{ transform: #pixel=fn1(cotan(#pixel^2+#height))*@par default: title="t45" func fn1 caption="function" default=ident() endfunc param par caption="parameter" default=(1,0) endparam } t46{ transform: #pixel = fn1(tan(abs(atanh(sinh(pixel^#pixel^2+log(pixel^(#pixel-1)))))))+1+(0.3,-0.1) +@par1 #pixel = fn2(cabs(abs(asinh(conj(log(pixel^(#pixel-1))^2+(pixel^#pixel))))))-1+(-1,-0.3)+@par2 default: title="t46" func fn1 caption="function 1" default=ident() endfunc func fn2 caption="function 2" default=ident() endfunc param par1 caption="parameter 1" default=(0,0) endparam param par2 caption="parameter 2" default=(0,0) endparam } t47{ transform: #pixel=fn1(abs(atanh(exp(log((#pixel+4/#pixel)/(1/asin(1-#pixel)))))))+0.2 +@par1 #pixel=fn2(abs(cotanh(asinh(#pixel+asin(conj(#pixel))))))-1.8+@par2 default: title="t47" func fn1 caption="function 1" default=ident() endfunc func fn2 caption="function 2" default=ident() endfunc param par1 caption="parameter 1" default=(0,0) endparam param par2 caption="parameter 2" default=(0,0) endparam } t48{ transform: #pixel=fn1(conj(abs(#pixel-imag(#pixel))))+@par1 #pixel=fn2(flip(#pixel+imag(#pixel)))+@par2 default: title="t48" func fn1 caption="function 1" default=ident() endfunc func fn2 caption="function 2" default=ident() endfunc param par1 caption="parameter 1" default=(0,0) endparam param par2 caption="parameter 2" default=(0,0) endparam } t49{ transform: #pixel=fn1(exp(#pixel^3+#pixel^2+#pixel+imag(#pixel)+real(#pixel)))*@par default: title="t49" func fn1 caption="function" default=ident() endfunc param par caption="parameter 1" default=(1,0) endparam } t50{ transform: x=#pixel*6 #pixel=fn1(x-(x^3+3*x^2+6*x+6)/(x^2+2*x+2))*@par default: title="t50" func fn1 caption="function" default=ident() endfunc param par caption="parameter" default=(1,0) endparam } t51 (Möbius) { ;Mobius transformation transform: #pixel=@fn((@par1*#pixel+@par2)/(@par3*#pixel+@par4)) default: title = "Möbius" param par1 caption="parameter 1" default=(1,0) endparam param par2 caption="parameter 2" default=(1,1) endparam param par3 caption="parameter 3" default=(1,2) endparam param par4 caption="parameter 4" default=(3,2) endparam func fn caption="function" default=ident() endfunc } t52{ transform: #pixel=fn1((tanh(#pixel)-sqrt(-1))/(sqr(#pixel)+sqrt(-1))) +@par default: title = "t52" func fn1 caption="function" default=ident() endfunc param par caption="parameter" default=(1,0) endparam } t53{ transform:#pixel=@fn( @par1*((#pixel-@par2)/(#pixel-pi^2*conj(@par2)))) default: title = "t53" func fn caption="function" default=ident() endfunc param par1 caption="parameter 1" default=(4.5,1) endparam param par2 caption="parameter 2" default=(0,0.5) endparam } t54{ transform: #pixel=@fn((#pixel^(-2)*(1+4*#pixel^(-3)+#pixel^(-4)))/((1-#pixel^(-3))^4))+(0.3,0.4)+@par default: title = "t54" func fn caption="function" default=ident() endfunc param par caption="parameter" default=(0,0) endparam } t55{ transform: #pixel=fn1(atanh(@par1+2*@par2*exp(@par1+#pixel*2))) #pixel=fn2(cotan(-@par1-(1/@par2)*exp(@par1-#pixel*2))) default: title = "t55" func fn1 caption="function 1" default=ident() endfunc func fn2 caption="function 2" default=ident() endfunc param par1 caption="parameter 1" default=(0.7,0) endparam param par2 caption="parameter 2" default=(1,0) endparam } t56{ transform: #pixel=((fn1(#pixel)+fn2(-#pixel)/2)-(sqrt(-1)*((fn1(#pixel)-fn2(-#pixel)/2))))*@par default: title = "t56" func fn1 caption="function 1" default=ident() endfunc func fn2 caption="function 2" default=ident() endfunc param par caption="parameter" default=(1,0) endparam } t57{ transform: #pixel=((fn1(flip(#pixel))+fn2(recip(-#pixel))/2)-(sqrt(-1)*((fn1(flip(#pixel))-fn2(recip(-#pixel)/2)))))*@par default: title = "t57" func fn1 caption="function 1" default=ident() endfunc func fn2 caption="function 2" default=ident() endfunc param par caption="parameter" default=(1,0) endparam } t58{ transform: z=#pixel c=#pixel^2/2 #pixel=@fn(flip((c*(@par1*(z-c)-@par2*(z-c^2)))/( 2*(@par1*z^2+@par2*z^2+@par1*c-@par2*c^3)))) default: title = " t58" func fn caption="function" default=ident() endfunc param par1 caption="parameter 1" default=(-0.6,0) endparam param par2 caption="parameter 2" default=(1.3,0) endparam } t59{ transform: #pixel=@fn(((#pixel-#pixel^3)/(#pixel^2-#pixel^3))*((#pixel^2-1)/(#pixel-1)))+@par default: title = "t59" func fn caption="function" default=ident() endfunc param par caption="parameter" default=(0,0) endparam } t60{ transform: z=#pixel y=#pixel^2/2 x=#pixel^3/6 #pixel=fn1((@par1*(y-x))^2/2)+ fn2((@par2*x-y-x*z)^2/2)+fn3((x*y-@par3*z)^2/2) default: title = "t60" func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc param par1 caption="parameter 1" default=(1,0) endparam param par2 caption="parameter 2" default=(1,0) endparam param par3 caption="parameter 3" default=(1,0) endparam } t61{ transform: #pixel=@fn(atan((exp(@par1-4+(@par2-1)*#pixel)+1)/(exp((@par3+1.5)*#pixel)-1))) default: title = "t61" func fn caption="function" default=ident() endfunc param par1 caption="parameter 1" default=(0,0) endparam param par2 caption="parameter 2" default=(0,0) endparam param par3 caption="parameter 3" default=(0,0) endparam } t62{ transform: #pixel=fn1(#pixel+@par*real(#pixel)+1) #pixel=fn2(#pixel+@par*imag(#pixel)-1) default: title = "t62" func fn1 caption="function 1" default=ident() endfunc func fn2 caption="function 2" default=ident() endfunc param par caption="parameter" default=(1,0) endparam } t63{ ;Based on the Taylor series for the exponential function e^z transform: #pixel= @fn(1+#pixel+#pixel^2/2+#pixel^3/6+#pixel^4/24)+@par default: title = "t63" func fn caption="function" default=ident() endfunc param par caption="parameter" default=(0,0) endparam } t64{ transform: #pixel= @fn(1+#pixel+#pixel^2*2+#pixel^3*3+#pixel^4*5+#pixel^5*8+#pixel^6*13)+@par default: title="t64" func fn caption="function" default=ident() endfunc param par caption="parameter" default=(-1,0) endparam } t65 (diagonal tiling){ transform: #pixel=fn1(cos(imag(#pixel*3)*@par2)+@par3*sin(real(#pixel*3)*@par2)) #pixel=fn2(cos(real(#pixel*3)*@par1)+@par4*sin(imag(#pixel*3)*@par1)) default: title="t65 (diagonal tiling)" func fn1 caption="function 1" default=ident() endfunc func fn2 caption="function 2" default=ident() endfunc param par1 caption="parameter 1" default=1.0 endparam param par2 caption="parameter 2" default=1.0 endparam param par3 caption="parameter 3" default=1.0 endparam param par4 caption="parameter 4" default=1.0 endparam } t66{ transform: #pixel=@fn((@par-#pixel)/(#pixel+@par+sqrt(2))) #pixel=@fn((#pixel*sqrt(2))/(#pixel+@par+sqrt(2))) #pixel=@fn((#pixel*cos(cos(@par))+ (1-#pixel^2-#pixel^2)*sin(cos(@par)))/(1+#pixel^2+#pixel^2)^2) #pixel=@fn((#pixel*sin(sin(@par))+ (1-#pixel^2-#pixel^2)*cos(sin(@par)))/(1+#pixel^2+#pixel^2)) #pixel=@fn(@par*(1-|#pixel|^2-|#pixel|^2)*#pixel) default: title="t66" func fn caption="function" default=ident() endfunc param par caption="parameter" default=(1,0) endparam } t67{ transform: #pixel=@fn(e^#pixel*#pixel+@par) default: title = "t67" param par caption="parameter" default=(0.5,0.5) endparam func fn caption="function" default=ident() endfunc } t68 (duffing){ transform: x=imag(#pixel) y=p1*imag(#pixel)-imag(#pixel)^3-p2*real(#pixel) #pixel=@fn(x+flip(y))^@pow default: title = "t68 (duffing)" param p1 default=(1,0) endparam param p2 default=(1,0) endparam param pow caption="Power" default=(1,0) endparam func fn caption="Function" default=ident() endfunc } t69{ transform: #pixel=0.5*fn1((p1*(#pixel+p2)+p2*(#pixel-p1))/(p1*(#pixel+p1)-p2*(#pixel-p2))) default: title = "t69" param p1 default=(1.5,1) endparam param p2 default=(1,1) endparam func fn1 caption="Function" default=abs() endfunc } t70 (burgers){ transform: x=(1-p1)*real(#pixel)-imag(#pixel)^2 y=(1+p2)*imag(#pixel)+real(#pixel)*imag(#pixel) #pixel=@fn(x+flip(y))^@pow default: title = "t70 (burgers)" func fn caption="Function" default=sqr() endfunc param p1 default=(-1.28,-0.94) endparam param p2 default=(0.92,0.92) endparam param pow caption="Power" default=1.62 endparam } t71 (mobius variation 1){ transform: #pixel=fn1((p1*sqr(#pixel)+p2)/(p3*recip(#pixel)+p4)) default: title = "Mobius Variation 1" param p1 default=(1,0) endparam param p2 default=(1,1) endparam param p3 default=(1,2) endparam param p4 default=(3,2) endparam func fn1 caption="Function" default=ident() endfunc } t72 (mobius variation 2){ transform: #pixel=fn1((p1*recip(#pixel)+p2)/(p3*sqr(#pixel)+p4)) default: title = "Mobius Variation 2" param p1 default=(1,0) endparam param p2 default=(1,1) endparam param p3 default=(1,2) endparam param p4 default=(3,2) endparam func fn1 caption="Function" default=ident() endfunc } t73 (mobius variation 3){ transform: #pixel=fn1((p1*tanh(#pixel)+p2)/(p3*sqr(#pixel)+p4)) default: title = "Mobius Variation 3" param p1 default=(1,0) endparam param p2 default=(1,1) endparam param p3 default=(1,2) endparam param p4 default=(3,2) endparam func fn1 caption="Function" default=ident() endfunc } t74 (mobius variation 4){ transform: #pixel=@fn((p1*recip(#pixel)+p2)/(p3*#pixel+p4)) default: title = "Mobius Variation 4" param p1 default=(1,0) endparam param p2 default=(1,1) endparam param p3 default=(1,2) endparam param p4 default=(3,2) endparam func fn caption="Function" default=ident() endfunc } t75 (mobius variation 5){ transform: #pixel=@fn((p1*sqr(#pixel)+p2)/(p3*#pixel+p4)) default: title = "Mobius Variation 5" param p1 default=(1,0) endparam param p2 default=(1,1) endparam param p3 default=(1,2) endparam param p4 default=(3,2) endparam func fn caption="Function" default=ident() endfunc } t76{ transform: #pixel=fn1(recip(recip(#pixel+p1)+recip(#pixel*(#pixel+p1)))) default: title = "t76" param p1 caption="Parameter" default=(0.5,0.5) endparam func fn1 caption="Function" default=ident() endfunc } t77{ transform: #pixel=fn1((p1*#pixel^@pow-p3)/(p2*#pixel^@pow+p1)) default: title = "t77" param p1 default=(1,0) endparam param p2 default=(1,0) endparam param p3 default=(1,0) endparam param pow caption="Power" default=2 endparam func fn1 caption="Function" default=ident() endfunc } t78{ transform: x=fn1(imag(#pixel)/(real(#pixel)^2+imag(#pixel)^2)) y=fn2(real(#pixel)/(real(#pixel)^2+imag(#pixel)^2)) #pixel=fn3(x+flip(y))+p1 default: title = "t78" param p1 caption="Parameter" default=(0,0) endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc } t79 (Affine){ ; Based on affine transformation, as given here: ; http://kartoweb.itc.nl/geometrics/coordinate%20transformations/coordtrans.html transform: x=p1*real(#pixel)*cos(@p7)-p2*imag(#pixel)*sin(@p7)+p3 y=p4*real(#pixel)*sin(@p7)+p5*imag(#pixel)*cos(@p7)+p6 #pixel=fn1(x+flip(y)) default: title = "t79 (Affine)" 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="Parameter 4" default=(1,0) endparam param p5 caption="Parameter 5" default=(1,0) endparam param p6 caption="Parameter 6" default=(1,0) endparam param p7 caption="Parameter 7" default=(1,0) endparam func fn1 caption="Function" default=ident() endfunc } t80 (Kleinian){ ; Kleinian transformation as given here: ; http://mathworld.wolfram.com/KleinianGroup.html ; plus added functions transform: #pixel=(p1*fn1(#pixel)+p2)/(p3*fn2(#pixel)+p4) default: title = "t80" param p1 default=(0.5,0.1) endparam param p2 default=(0.3,0.2) endparam param p3 default=(1,0) endparam param p4 default=(1,0) endparam func fn1 caption="Function 1" default=ident() endfunc func fn2 caption="Function 2" default=ident() endfunc } t81{ transform: #pixel=@fn(p1*real(#pixel)^2+p2*real(#pixel)*imag(#pixel)+p3*imag(#pixel)^2+p4*real(#pixel)+p5*imag(#pixel)+p6) default: title = "t81" func fn caption="Function" default=recip() 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 default=(1,0) endparam param p6 default=(1,0) endparam } t82{ transform: x=@fn(p1*real(#pixel)^2+p2*real(#pixel)*imag(#pixel)+p3*imag(#pixel)^2+p4*real(#pixel)+p5*imag(#pixel)+p6) #pixel=x+flip(x) default: title = "t82" func fn caption="Function" default=recip() 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 default=(1,0) endparam param p6 default=(1,0) endparam } t83{ global: transform: #pixel=recip(@p-#pixel)*@fn(#pixel/(#pixel-@p)) default: title = "t83" func fn caption="Function" default=ident() endfunc param p caption="Parameter" default=(1,0) endparam } t84{ global: transform: #pixel=@fn((#pixel-sqrt(-1))/(#pixel+sqrt(-1))) +@p default: title = "t84" func fn caption="Function" default=ident() endfunc param p caption="Parameter" default=(0,0) endparam } t85 (Spiral){ global: transform: #pixel=(1/|#pixel|^p1)* @fn((p2/|#pixel|^2)*#pixel) default: title = "t85 (Spiral)" func fn caption="Function" default=ident() endfunc param p1 default=(-1.4,-7.5) endparam param p2 default=(-0.5,-0.2) endparam } t86{ transform: #pixel=@fn(0.1*cos(p1*pi*#pixel/2)+5*sin(0.1*pi*#pixel/2)) default: title = "t86" func fn caption="Function" default=ident() endfunc param p1 caption="Parameter" default=(1.8,-0.3) endparam } t87{ global: transform: #pixel=fn1((#pixel^2-#pixel*p1)/(#pixel^2-2*#pixel*p1+1)) default: title = "t87" param p1 caption="Parameter" default=(1,0) endparam func fn1 caption="Function" default=ident() endfunc } t88 (Biexponential){ ;Biexponential function, as given here: http://paulbourke.net/miscellaneous/functions/ transform: #pixel=@fn((p1*p2/(p1-p2))*(e^(-p2*#pixel)-e^(-p1*#pixel))) default: title="t88 (Biexponential)" func fn caption="Function" default=ident() endfunc param p1 default=(-0.4,-0.6) endparam param p2 default=(-1.4,-2.4) endparam } t89{ transform: x=p1*real(#pixel)+p2*imag(#pixel)+p3*real(#pixel)*imag(#pixel)+p4 y=p5*real(#pixel)+p6*imag(#pixel)+@p7*real(#pixel)*imag(#pixel)+@p8 #pixel=fn1(x+flip(y)) default: title = "t89" 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="Parameter 4" default=(1,0) endparam param p5 caption="Parameter 5" default=(1,0) endparam param p6 caption="Parameter 6" default=(1,0) endparam param p7 caption="Parameter 7" default=(1,0) endparam param p8 caption="Parameter 8" default=(1,0) endparam func fn1 caption="Function" default=ident() endfunc } t90{ global: transform: x=(p1-#pixel)*((p2-#pixel^2)*(real(#pixel)^2+imag(#pixel)^2-p3*real(#pixel)+imag(#pixel))-p2*(-p3*real(#pixel)+imag(#pixel))-p2) y=(p1-#pixel)*((p2-#pixel^2)*(real(#pixel)*imag(#pixel)-real(#pixel)-#pixel*imag(#pixel))-p2*(-real(#pixel)-#pixel*imag(#pixel))-p3*#pixel) #pixel=fn1(#pixel^2*(p2-#pixel^2)*(x^2+y^2)) default: title = "t90" param p1 default=(0,0) endparam param p2 default=(1,0) endparam param p3 default=(1,0) endparam func fn1 caption="function" default=ident() endfunc } ThreeKleinTransform{ ; Adapted and modified from Morgan_L_Owens.frm global: transform: a=2*pi/3 c1=p3*fn2(exp((0,0)*a)) c2=p3*fn2(exp((0,1)*a)) c3=p3*fn2(exp((0,2)*a)) r=fn3(sqrt(p4)/2) if |#pixel-c1|<|r| #pixel=p1*fn1(r*conj(r/(#pixel-c1))+c1)^@pow+p2 elseif |#pixel-c2|<|r| #pixel=p1*fn1(r*conj(r/(#pixel-c2))+c2)^@pow+p2 elseif |#pixel-c3|<|r| #pixel=p1*fn1(r*conj(r/(#pixel-c3))+c3)^@pow+p2 else #pixel=p1*fn1(r*conj(r/(#pixel)))^@pow+p2 endif default: title="Three Klein Transform" 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=ident() endfunc param pow caption="Power" default=1.0 endparam } QuackTransform { transform: if imag(#pixel)>0 k=p1*fn1(#pixel) else k=p1*fn1(conj(#pixel)) endif #pixel=p2*fn2(log(k+p3))+p4 default: title = "Quack Transform" 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=(0.894483,-0.31655) endparam param p4 default=(0,0) endparam } FiveKleinTransform { ; Adapted and modified from Morgan_L_Owens.frm global: transform: a=2*pi/5 c1=p3*fn2(exp((0,0)*a)) c2=p3*fn2(exp((0,1)*a)) c3=p3*fn2(exp((0,2)*a)) c4=p3*fn2(exp((0,3)*a)) c5=p3*fn2(exp((0,4)*a)) r=fn3(sqrt(p4)/2) if |#pixel-c1|<|r| #pixel=p1*fn1(r*conj(r/(#pixel-c1))+c1)^@pow+p2 elseif |#pixel-c2|<|r| #pixel=p1*fn1(r*conj(r/(#pixel-c2))+c2)^@pow+p2 elseif |#pixel-c3|<|r| #pixel=p1*fn1(r*conj(r/(#pixel-c3))+c3)^@pow+p2 elseif |#pixel-c4|<|r| #pixel=p1*fn1(r*conj(r/(#pixel-c4))+c4)^@pow+p2 elseif |#pixel-c5|<|r| #pixel=p1*fn1(r*conj(r/(#pixel-c5))+c5)^@pow+p2 else #pixel=p1*fn1(r*conj(r/(#pixel)))^@pow+p2 endif default: title="Five Klein Transform" param p1 default=(1,0) endparam param p2 default=(0,0) endparam param p3 default=(1,0) endparam param p4 caption="Parameter 4" default=1.38 endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc param pow caption="Power" default=1.0 endparam } Morpho { transform: a=fn1(1/(fn2(#pixel)-p1))+p1 #pixel=fn3(1/(fn2(a)-p2))+p2 default: title = "Morpho" param p1 default=(0.5,0.5) endparam param p2 default=(0,0) endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc } fourKleinTransform { ; Adapted and modified from Morgan_L_Owens.frm global: transform: a=2*pi/4 c1=p3*fn2(exp((0,0)*a)) c2=p3*fn2(exp((0,1)*a)) c3=p3*fn2(exp((0,2)*a)) c4=p3*fn2(exp((0,3)*a)) r=fn3(sqrt(p4)/2) if |#pixel-c1|<|r| #pixel=p1*fn1(r*conj(r/(#pixel-c1))+c1)^@pow+p2 elseif |#pixel-c2|<|r| #pixel=p1*fn1(r*conj(r/(#pixel-c2))+c2)^@pow+p2 elseif |#pixel-c3|<|r| #pixel=p1*fn1(r*conj(r/(#pixel-c3))+c3)^@pow+p2 elseif |#pixel-c4|<|r| #pixel=p1*fn1(r*conj(r/(#pixel-c4))+c4)^@pow+p2 else #pixel=p1*fn1(r*conj(r/(#pixel)))^@pow+p2 endif default: title="Four Klein Transform" 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=ident() endfunc param pow caption="Power" default=1.0 endparam } Hypermorph { ;Part of this is based on 'Hyperbolic mapping' by Ron Barnett (reb.uxf) transform: f=(0,0) if @V==0 f=fn2((#pixel)/(sqrt(p1^2-|#pixel|))) elseif @V==1 f=fn2((#pixel)/(sqrt(p1^2+|#pixel|))) elseif @V==2 f=fn2((#pixel)/(ceil(sqrt(p1^2-|#pixel|)))) elseif @V==3 f=fn2((#pixel)/(round(sqrt(p1^2+|#pixel|)))) endif f = f*4/p2 #pixel=p3*fn1((f-sqrt(-1))/(f+sqrt(-1)))^@pow default: title = "Hypermorph" param V caption = "Variant" enum = "1" "2" "3" "4" default=0 endparam param p1 default=(1,0) endparam param p2 default=(1,0) endparam param p3 default=(1,0) endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc param pow caption="Exponent" default=1.0 endparam } Leonirius { global: transform: i=sqrt(-1) k=(#pixel-1)/(#pixel+i) d = (0,0) d = fn1((k)/(sqrt(1+|sqrt(k+p4)|))) d = d*3.5 f=0.5*fn2(d)^@pow a=2*pi/3 c1=p1*fn3(exp((0,0)*a)) c2=p1*fn3(exp((0,1)*a)) c3=p1*fn3(exp((0,2)*a)) r=fn4(sqrt(p2)/2) if |f-c1|<|r| #pixel=p3*@fn5(r*conj(r/(f-c1))+c1)+@p5 elseif |f-c2|<|r| #pixel=p3*@fn5(r*conj(r/(f-c2))+c2)+@p5 elseif |f-c3|<|r| #pixel=p3*@fn5(r*conj(r/(f-c3))+c3)+@p5 else #pixel=p3*@fn5(r*conj(r/(f)))+@p5 endif default: title="Leonirius" param p1 default=(1,0) endparam param p2 caption="Parameter 2" default=3.0 endparam param p3 default=(1,0) endparam param p4 default=(0,0) endparam param p5 default=(0,0) endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc func fn4 default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc param pow caption="Exponent" default=1.0 endparam } Leonirius2 { global: transform: d = (0,0) d = fn1((#pixel)/(sqrt(1+|sqrt(#pixel+p4)|))) d = d*3.5 f=0.5*fn2(d)^@pow a=2*pi/3 c1=p1*fn3(exp((0,0)*a)) c2=p1*fn3(exp((0,1)*a)) c3=p1*fn3(exp((0,2)*a)) r=fn4(sqrt(p2)/2) if |f-c1|<|r| #pixel=p3*@fn5(r*conj(r/(f-c1))+c1)+@p5 elseif |f-c2|<|r| #pixel=p3*@fn5(r*conj(r/(f-c2))+c2)+@p5 elseif |f-c3|<|r| #pixel=p3*@fn5(r*conj(r/(f-c3))+c3)+@p5 else #pixel=p3*@fn5(r*conj(r/(f)))+@p5 endif default: title="Leonirius 2" func fn1 default=ident() endfunc func fn2 default=cotan() endfunc func fn3 default=ident() endfunc func fn4 default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc param p1 default=(1,0) endparam param p2 caption="Parameter 2" default=3.0 endparam param p3 default=(1,0) endparam param p4 default=(0,0) endparam param p5 default=(0,0) endparam param pow caption="Exponent" default=1.0 endparam } Leonirius3 { global: transform: k=(#pixel+p4)/(p4*#pixel+1) a=2*pi/3 c1=p1*fn1(exp((0,0)*a)) c2=p1*fn1(exp((0,1)*a)) c3=p1*fn1(exp((0,2)*a)) r=fn2(sqrt(p2)/2) if |k-c1|<|r| #pixel=p3*fn3(r*conj(r/(k-c1))+c1) elseif |k-c2|<|r| #pixel=p3*fn3(r*conj(r/(k-c2))+c2) elseif |k-c3|<|r| #pixel=p3*fn3(r*conj(r/(k-c3))+c3) else #pixel=p3*fn3(r*conj(r/(k))) endif default: title="Leonirius 3" func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc func fn4 default=ident() endfunc func fn5 caption="Function 5" default=ident() endfunc param p1 default=(1,0) endparam param p2 caption="Parameter 2" default=3.0 endparam param p3 default=(1,0) endparam param p4 default=(0.25159,-0.23773) endparam } AstroCybernom { ; Part of this borrows from 'Hyperbolic mapping' by Ron Barnett (reb.uxf) transform: if @V==0 #pixel=fn3(4*((fn1(p1*#pixel))/(fn2(sqrt(p2 +|#pixel+p3|)))))+p4 elseif @V==1 a=4*((fn1(p1*#pixel))/(fn2(sqrt(p2 +|#pixel+p3|)))) #pixel=fn3(conj(1/(a-p4))+p4) elseif @V==2 a=4*((fn1(p1*#pixel))/(fn2(sqrt(p2 +|#pixel+p3|)))) i=sqrt(-1) #pixel=fn3((a-i)/(a+i))+p4 elseif @V==3 a=4*((fn1(p1*#pixel))/(fn2(sqrt(p2 +|#pixel+p3|)))) #pixel=fn3((p4*a+1)/(p3*a-1)) endif default: title = "Astro Cybernom" param V caption="Variant" enum="1" "2" "3" "4" default=0 endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 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 } Frolix { ; Parts of this borrow from 'Riemann Sphere' by Ron Barnett and '3Klein_Group' by Morgan L. Owens transform: a = (0,0) if (|fn1(#pixel)| <= p1^2) a = fn2((#pixel)/(p1/p2+ sqrt(p1^2 -|fn3(#pixel)+p4|))) else a = fn2((#pixel)/(p1/p2+ sqrt(p1^2 +|fn3(#pixel)+p4|))) endif a = a*4/p2/p3 k = a^@pow b=2*pi/3 c1=(exp((0,0)*b)) c2=(exp((0,1)*b)) c3=(exp((0,2)*b)) if |k-c1|<1 #pixel=p5*fn4(conj(1/(k-c1))+c1) elseif |k-c2|<1 #pixel=p5*fn4(conj(1/(k-c2))+c2) elseif |k-c3|<1 #pixel=p5*fn4(conj(1/(k-c3))+c3) else #pixel=p5*fn4(conj(1/(k))) endif default: title = "Frolix" func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc func fn4 default=ident() endfunc param p1 caption="Parameter 1" default = 1.0 endparam param p2 default = (1,0) endparam param p3 default = (1,0) endparam param p4 default = (0,0) endparam param p5 default = (1,0) endparam param pow caption="Exponent" default=1.0 endparam } SixKleinTransform { ; Modified from '6Klein_Group' by Morgan L. Owens transform: a=pi/3 c1=p3*fn4((0,2))+p4 c2=p3*fn4(2*(sin(a)+flip(cos(a))))+p4 c3=p3*fn4(2*(sin(2*a)+flip(cos(2*a))))+p4 c4=p3*fn4((0,-2))+p4 c5=p3*fn4(2*(sin(4*a)+flip(cos(4*a))))+p4 c6=p3*fn4(2*(sin(5*a)+flip(cos(5*a))))+p4 z=fn1(#pixel) b=fn2(z) if |b-c1|<1 #pixel=p1*fn3(c1+p2*(b-c1)/(|b-c1|))+p5 elseif |b-c2|<1 #pixel=p1*fn3(c2+p2*(b-c2)/(|b-c2|))+p5 elseif |b-c3|<1 #pixel=p1*fn3(c3+p2*(b-c3)/(|b-c3|))+p5 elseif |b-c4|<1 #pixel=p1*fn3(c4+p2*(b-c4)/(|b-c4|))+p5 elseif |b-c5|<1 #pixel=p1*fn3(c5+p2*(b-c5)/(|b-c5|))+p5 elseif |b-c6|<1 #pixel=p1*fn3(c6+p2*(b-c6)/(|b-c6|))+p5 else #pixel=p1*fn3(p2*(b)/(|b|))+p5 endif default: title = "Six Klein Transform" param p1 default=(1,0) endparam param p2 default=(1,0) endparam param p3 default=(1,0) endparam param p4 default=(0,0) endparam param p5 default=(0,0) endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc func fn4 default=ident() endfunc } ThreeKleinTransform2 { ; Adapted and modified from Morgan_L_Owens.frm transform: a=2*pi/3 c1=p3*fn2(exp((0,0)*a)) c2=p3*fn2(exp((0,1)*a)) c3=p3*fn2(exp((0,2)*a)) r=fn3(sqrt(p4)/2) z=fn4(#pixel) if @V==0 if |z-c1|<|r| #pixel=p1*fn1(r*conj((z-c1)/(|z-c1|)))+p2 elseif |z-c2|<|r| #pixel=p1*fn1(r*conj((z-c2)/(|z-c2|)))+p2 elseif |z-c3|<|r| #pixel=p1*fn1(r*conj((z-c3)/(|z-c3|)))+p2 else #pixel=p1*fn1(r*conj(z/(|z|)))+p2 endif else if |z-c1|<|r| #pixel=p1*fn1(c1+r*(z-c1)/(|z-c1|))+p2 elseif |z-c2|<|r| #pixel=p1*fn1(c2+r*(z-c2)/(|z-c2|))+p2 elseif |z-c3|<|r| #pixel=p1*fn1(c3+r*(z-c3)/(|z-c3|))+p2 else #pixel=p1*fn1(r*z/(|z|))+p2 endif endif default: title="Three Klein Transform 2" param V caption="Variant" enum="1" "2" default=0 endparam 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=ident() endfunc func fn4 default=ident() endfunc } SiMigulaKlunjae { ; hybrid of 3klein and julia global: transform: a=2*pi/3 c1=p3*fn2(exp((0,0)*a)) c2=p3*fn2(exp((0,1)*a)) c3=p3*fn2(exp((0,2)*a)) r=fn3(sqrt(p4)/2) if |(#pixel^2+p5)-c1|<|r| #pixel=p1*fn1(r*conj(r/((#pixel^2+p5)-c1))+c1)^@pow+p2 elseif |(#pixel^2+p5)-c2|<|r| #pixel=p1*fn1(r*conj(r/((#pixel^2+p5)-c2))+c2)^@pow+p2 elseif |(#pixel^2+p5)-c3|<|r| #pixel=p1*fn1(r*conj(r/((#pixel^2+p5)-c3))+c3)^@pow+p2 else #pixel=p1*fn1(r*conj(r/(#pixel^2+p5)))^@pow+p2 endif default: title="Si Migula Klunjae" 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 param p5 default=(1,0) endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc param pow caption="Exponent" default=1.0 endparam } NineKleinTransform { global: import "common.ulb" import "reb.ulb" UserTransform t = new @transformClass(0) transform: z=fn1(#pixel) a=2*pi/9 c1=p1*fn2(exp((0,0)*a)) c2=p1*fn2(exp((0,1)*a)) c3=p1*fn2(exp((0,2)*a)) c4=p1*fn2(exp((0,3)*a)) c5=p1*fn2(exp((0,4)*a)) c6=p1*fn2(exp((0,5)*a)) c7=p1*fn2(exp((0,6)*a)) c8=p1*fn2(exp((0,7)*a)) c9=p1*fn2(exp((0,8)*a)) b=fn3(z) if @plugin if |b-c1|<|p2| #pixel= p3*fn4(t.Iterate(p2*conj(p2/(b-c1))+c1))+p4 elseif |b-c2|<|p2| #pixel= p3*fn4(t.Iterate(p2*conj(p2/(b-c2))+c2))+p4 elseif |b-c3|<|p2| #pixel= p3*fn4(t.Iterate(p2*conj(p2/(b-c3))+c3))+p4 elseif |b-c4|<|p2| #pixel= p3*fn4(t.Iterate(p2*conj(p2/(b-c4))+c4))+p4 elseif |b-c5|<|p2| #pixel= p3*fn4(t.Iterate(p2*conj(p2/(b-c5))+c5))+p4 elseif |b-c6|<|p2| #pixel= p3*fn4(t.Iterate(p2*conj(p2/(b-c6))+c6))+p4 elseif |b-c7|<|p2| #pixel= p3*fn4(t.Iterate(p2*conj(p2/(b-c7))+c7))+p4 elseif |b-c8|<|p2| #pixel= p3*fn4(t.Iterate(p2*conj(p2/(b-c8))+c8))+p4 elseif |b-c9|<|p2| #pixel= p3*fn4(t.Iterate(p2*conj(p2/(b-c9))+c9))+p4 else #pixel= p3*fn4(t.Iterate(p2*conj(p2/b)))+p4 endif else if |b-c1|<|p2| #pixel= p3*fn4(p2*conj(p2/(b-c1))+c1)+p4 elseif |b-c2|<|p2| #pixel= p3*fn4(p2*conj(p2/(b-c2))+c2)+p4 elseif |b-c3|<|p2| #pixel= p3*fn4(p2*conj(p2/(b-c3))+c3)+p4 elseif |b-c4|<|p2| #pixel= p3*fn4(p2*conj(p2/(b-c4))+c4)+p4 elseif |b-c5|<|p2| #pixel= p3*fn4(p2*conj(p2/(b-c5))+c5)+p4 elseif |b-c6|<|p2| #pixel= p3*fn4(p2*conj(p2/(b-c6))+c6)+p4 elseif |b-c7|<|p2| #pixel= p3*fn4(p2*conj(p2/(b-c7))+c7)+p4 elseif |b-c8|<|p2| #pixel= p3*fn4(p2*conj(p2/(b-c8))+c8)+p4 elseif |b-c9|<|p2| #pixel= p3*fn4(p2*conj(p2/(b-c9))+c9)+p4 else #pixel= p3*fn4(p2*conj(p2/b))+p4 endif endif default: title = "Nine Klein Transform" func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc func fn4 default=ident() endfunc heading endheading param p1 default=(1,0) endparam param p2 caption="Parameter 2" default=0.3420185 endparam param p3 default=(1,0) endparam param p4 default=(0,0) endparam heading endheading param plugin caption = "Use Plug-In" default = true endparam UserTransform param transformClass caption = "Plug-In" default = TobysMorph endparam } SixKleinTransform2 { ; Modified from '6Klein_Group' by Morgan L. Owens global: import "common.ulb" import "jlb.ulb" UserTransform t = new @transformClass(0) transform: z=fn1(#pixel) a=pi/3 c1=p3*fn4((0,2))+p4 c2=p3*fn4(2*(sin(a)+flip(cos(a))))+p4 c3=p3*fn4(2*(sin(2*a)+flip(cos(2*a))))+p4 c4=p3*fn4((0,-2))+p4 c5=p3*fn4(2*(sin(4*a)+flip(cos(4*a))))+p4 c6=p3*fn4(2*(sin(5*a)+flip(cos(5*a))))+p4 b=fn2(z) if @plugin if |b-c1|<1 #pixel=p1*fn3(t.Iterate(c1+p2*(b-c1)/(|b-c1|)))+p5 elseif |b-c2|<1 #pixel=p1*fn3(t.Iterate(c2+p2*(b-c2)/(|b-c2|)))+p5 elseif |b-c3|<1 #pixel=p1*fn3(t.Iterate(c3+p2*(b-c3)/(|b-c3|)))+p5 elseif |b-c4|<1 #pixel=p1*fn3(t.Iterate(c4+p2*(b-c4)/(|b-c4|)))+p5 elseif |b-c5|<1 #pixel=p1*fn3(t.Iterate(c5+p2*(b-c5)/(|b-c5|)))+p5 elseif |b-c6|<1 #pixel=p1*fn3(t.Iterate(c6+p2*(b-c6)/(|b-c6|)))+p5 else #pixel=p1*fn3(t.Iterate(p2*(b)/(|b|)))+p5 endif else if |b-c1|<1 #pixel=p1*fn3(c1+p2*(b-c1)/(|b-c1|))+p5 elseif |b-c2|<1 #pixel=p1*fn3(c2+p2*(b-c2)/(|b-c2|))+p5 elseif |b-c3|<1 #pixel=p1*fn3(c3+p2*(b-c3)/(|b-c3|))+p5 elseif |b-c4|<1 #pixel=p1*fn3(c4+p2*(b-c4)/(|b-c4|))+p5 elseif |b-c5|<1 #pixel=p1*fn3(c5+p2*(b-c5)/(|b-c5|))+p5 elseif |b-c6|<1 #pixel=p1*fn3(c6+p2*(b-c6)/(|b-c6|))+p5 else #pixel=p1*fn3(p2*(b)/(|b|))+p5 endif endif default: title = "Six Klein Transform 2" param p1 default=(1,0) endparam param p2 default=(1,0) endparam param p3 default=(1,0) endparam param p4 default=(0,0) endparam param p5 default=(0,0) endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc func fn4 default=sqr() endfunc param plugin caption = "Use Plug-In" default = true endparam UserTransform param transformClass caption = "Plug-In" default = JLB_MoebiusUserTransform endparam } QuigPaclunk { global: import "common.ulb" import "mt.ulb" UserTransform t = new @transformClass(0) transform: t.Init(#pixel) if imag(#pixel)>0 k=p1*fn1(#pixel) else k=p1*fn1(conj(#pixel)) endif #pixel=t.Iterate(p2*fn2(log(k+p3))+p4) #solid = t.IsSolid() default: title = "Quig Paclunk" 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=(0,0) endparam UserTransform param transformClass caption = "Transformation" default = MT_BarnsleyTransform endparam } Morpho2 { global: import "common.ulb" import "thm.ulb" UserTransform t = new @transformClass(0) transform: t.Init(#pixel) a=fn1(1/(fn2(#pixel)-p1))+p1 #pixel=t.Iterate(fn3(1/(fn2(a)-p2))+p2) #solid = t.IsSolid() default: title = "Morpho 2" param p1 default=(0.5,0.5) endparam param p2 default=(0,0) endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc UserTransform param transformClass caption = "Transformation" default = THMTalisTransform endparam } Hypermorph2 { ; A modification of "Hyperbolic tilings" by Samuel Monnier (sam.uxf) transform: z=fn1(#pixel) a=0 b=0 float c=sqrt(cos(pi/7)^2/(cos(pi/7)^2-sin(pi/3)^2)) float d=sqrt(c^2-1) float f=0 int i=0 while i<1000 i=i+1 f=atan2(z) f=-round(f/(2*pi)*3)/3*(2*pi) a=fn2(z*exp(1i*f)) if cabs(a-c)>d b=z i=1000 else z=p1*fn3(c+d^2/(a-c)) endif endwhile b = b*p2 #pixel=fn4(b)+p3 default: title="Hypermorph 2" func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc func fn4 default=sqrt() 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=0.0 endparam } MunsterTransform { transform: z=fn1(#pixel) #pixel=p2*z^2*fn2((fn3(z)-p1)/(1-p1*fn3(z)))+p3 default: title="Munster Transform" param p1 default=(2,0) endparam param p2 default=(1,0) endparam param p3 default=(0,0) endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc } BMunsterTransform2 { transform: z=fn1(#pixel) a=fn1(#pixel) a=p4*a/z+p3 #pixel=p2*z^2*fn2((fn3(z)-p1)/(1-p1*fn3(z)))+p4*p2*a^2*fn2((fn3(a)-p1)/(1-p1*fn3(a)))+p3 default: title="Munster Transform 2" param p1 default=(-2,0) endparam param p2 default=(1,0) endparam param p3 default=(0,0) endparam param p4 default=(1,0) endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc func fn3 default=ident() endfunc } NewtonTransform { transform: z=fn1(#pixel) if @M=="None" z=z elseif @M=="1" if |z|>1 z=z/|z| endif elseif @M=="2" if |z|<1 z=z/|z| endif elseif @M=="3" z=z+z^2 elseif @M=="4" z=z+1/z elseif @M=="5" if real(z)imag(z) z=flip(z) endif elseif @M=="7" z=(z-1i)/(z+1i) elseif @M=="8" z=(z^2-1i)/(z^2+1i) elseif @M=="9" z=z+cotanh(z) elseif @M=="10" z=z+cotan(z) elseif @M=="11" z=z-exp(z) elseif @M=="12" z=z+1/sin(z) elseif @M=="13" z=z-cos(z) elseif @M=="14" z=z-1/cosh(z) elseif @M=="15" if |z|>1 z=z/|z| endif z=cotanh(z) elseif @M=="16" if |z|>1 z=z/|z| endif z=-exp(z) elseif @M=="17" if |z|>1 z=z/|z| endif z=-cosh(z) elseif @M=="18" if |z|>1 z=z/|z| endif z=-1.67*cos(z) elseif @M=="19" if |z|>1 z=z/|z| endif z=1.67*sin(z) elseif @M=="20" if |z|>1 z=z/|z| endif z=1.8*tan(z) elseif @M=="21" if |z|<1 z=z/|z| endif z=cotan(z) elseif @M=="22" if |z|<1 z=z/|z| endif z=sin(z) elseif @M=="23" if |z|<1 z=z/|z| endif z=0.7*tan(z) elseif @M=="24" if |z|<1 z=z/|z| endif z=-cos(z) endif if @V=="1" #pixel=z-p1*(z^@pow-1)/(@pow*z^(@pow-1))+p2 elseif @V=="2" #pixel=z-p1*(z^@pow+sin(z)+z^4-1)/(@pow*z^(@pow-1)+cos(z)+4*z^3)+p2 elseif @V=="3" #pixel=z-p1*(z^@pow+cos(z)+z^4-1)/(@pow*z^(@pow-1)-sin(z)+4*z^3)+p2 elseif @V=="4" #pixel=z-p1*(z^@pow+tan(z)-1)/(@pow*z^(@pow-1)+1/cos(z)^2)+p2 elseif @V=="5" #pixel=z-p1*(z^@pow+sin(z)^@pow-1)/(@pow*cos(z)*sin(z)^(@pow-1)+@pow*z^(@pow-1))+p2 elseif @V=="6" #pixel=z-p1*(cos(z)^@pow-1)/(-@pow*sin(z)*cos(z)^(@pow-1))+p2 elseif @V=="7" #pixel=z-p1*(z^@pow+tan(z)^@pow-1)/(@pow*tan(z)^@pow/(sin(z)*cos(z))+@pow*z^(@pow-1))+p2 elseif @V=="8" #pixel=z-p1*(exp(z)^@pow-sin(z)-1)/(@pow*exp(z)^@pow-cos(z))+p2 elseif @V=="9" #pixel=z-p1*(z^3+(sin(z)*cos(z))^@pow-1)/(@pow*(cos(z)^2-sin(z)^2)*(sin(z)*cos(z))^(@pow-1)+3*z^2)+p2 elseif @V=="10" #pixel=z-p1*((sin(z)*tan(z))^@pow-sin(z)-1)/(@pow*(sin(z)*tan(z))^@pow*(cotan(z)+1/(sin(z)*cos(z)))-cos(z))+p2 elseif @V=="11" #pixel=z-p1*((cos(z)*cotan(z))^@pow-1)/(-@pow*(cos(z)*cotan(z))^(@pow-1)*(cos(z)+cotan(z)/sin(z)))+p2 elseif @V=="12" #pixel=z-p1*((cos(z)/sin(z))^@pow-1)/(-@pow*cotan(z)^@pow/(sin(z)*cos(z)))+p2 elseif @V=="13" #pixel=z-p1*((sin(z)/tan(z)*2)^@pow-1)/(-@pow*(cos(z)*cotan(z))^(@pow-1)*(cos(z)+cotan(z)/sin(z)))+p2 elseif @V=="14" #pixel=z-p1*(z^@pow+z^@pow/sin(z)-sin(z)-1)/(z^(@pow-1)*(@pow-z*cotan(z))/sin(z)+@pow*z^(@pow-1)-cos(z))+p2 elseif @V=="15" #pixel=z-p1*(z^3+((z^3-z^2)/(z-1))^@pow-sin(z)-1)/(2*@pow*(z^2)^@pow/z+3*z^2-cos(z))+p2 elseif @V=="16" #pixel=z-p1*(z^@pow+(sin(z)/tan(z)*2)^@pow-1)/(@pow*z^(@pow-1)-@pow*(cos(z)*cotan(z))^(@pow-1)*(cos(z)+cotan(z)/sin(z)))+p2 elseif @V=="17" #pixel=z-p1*(z^@pow+sin(z)*cos(z)*tan(z)+z^4-1)/(@pow*z^(@pow-1)+2*sin(z)*cos(z)+4*z^3)+p2 elseif @V=="18" #pixel=z-p1*(sin(z)*z^@pow-1)/(z^(@pow-1)*(@pow*sin(z)+z*cos(z)))+p2 elseif @V=="19" #pixel=z-p1*(z^@pow/sin(z)-1)/(z^(@pow-1)*(@pow-z*cotan(z))/sin(z))+p2 elseif @V=="20" #pixel=z-p1*(((z-1i)/(z+1i))^@pow-1)/(2i*@pow*((z-1i)/(z+1i))^@pow/(z^2+1))+p2 elseif @V=="21" #pixel=z-p1*(z^@pow*(z-2)/(1-2*z)-1)/(z^(@pow-1)*(@pow*(-2*z^2+5*z-2)-3*z)/(1-2*z)^2)+p2 elseif @V=="22" #pixel=z-p1*(z^@pow*(z-4)/(1i+4*z)-1)/(z^(@pow-1)*(@pow*(4*z^2-(16-1i)*z-4i)+z*(16+1i))/(4*z+1i)^2)+p2 elseif @V=="23" #pixel=z-p1*(exp(z)^@pow/sin(z)-1)/(exp(z)^@pow*(@pow-cotan(z))/sin(z))+p2 elseif @V=="24" #pixel=z-p1*(sin(z)^@pow/exp(z)-1)/(exp(-z)*sin(z)^(@pow-1)*(@pow*cos(z)-sin(z)))+p2 elseif @V=="25" #pixel=z-p1*((z^@pow-1i)/(2*z-2i)-1)/(@pow*z^(@pow-1)/(2*z-2i)-2*(z^@pow-1i)/(2*z-2i)^2)+p2 elseif @V=="26" #pixel=z-p1*((z^@pow-1)/(2*z-2)-1)/(((@pow-1)*z^(@pow+1)-@pow*z^@pow+z)/(2*z*(z-1)^2))+p2 elseif @V=="27" #pixel=z-p1*(z^@pow/(z^2+z+1)-1)/(@pow*z^(@pow-1)/(z^2+z+1)-z^@pow*(2*z+1)/(z^2+z+1)^2)+p2 elseif @V=="28" #pixel=z-p1*(((sin(z)-1i)/(sin(z)+1i))^@pow-1)/((2i*@pow*cos(z)*((sin(z)-1i)/(sin(z)+1i))^@pow)/(sin(z)^2+1))+p2 elseif @V=="29" #pixel=z-p1*(((cos(z)-1i)/(cos(z)+1i))^@pow-1)/(-(2i*@pow*sin(z)*((cos(z)-1i)/(cos(z)+1i))^@pow)/(cos(z)^2+1))+p2 elseif @V=="30" #pixel=z-p1*(((sin(z)-1i)/(sin(z)+1i))^@pow-sin(z)-1)/((2i*@pow*cos(z)*((sin(z)-1i)/(sin(z)+1i))^@pow)/(sin(z)^2+1)-cos(z))+p2 elseif @V=="31" #pixel=z-p1*(((cos(z)-1i)/(cos(z)+1i))^@pow+cos(z)-1)/(-(2i*@pow*sin(z)*((cos(z)-1i)/(cos(z)+1i))^@pow)/(cos(z)^2+1)-sin(z))+p2 elseif @V=="32" #pixel=z-p1*((z^@pow-z)/(z^@pow+z)+cos(z)-sin(z)-1)/(2*(@pow-1)*z^@pow/(z^@pow+z)^2-sin(z)-cos(z))+p2 elseif @V=="33" #pixel=z-p1*(z^@pow+(z^@pow+z-1i)/(z^@pow-z+1i)+cos(z)-1)/(z^(@pow-1)*(2*z-2*@pow*(z-1i))/(z^@pow-z+1i)^2-sin(z)+@pow*z^(@pow-1))+p2 elseif @V=="34" #pixel=z-p1*((z^@pow+z-1i)/(z^@pow-z+1i)+cos(z)-sin(z)-1)/(z^(@pow-1)*(2*z-2*@pow*(z-1i))/(z^@pow-z+1i)^2-sin(z)-cos(z))+p2 elseif @V=="35" #pixel=z-p1*(((z-1)*(z+1)*(z+2))^@pow-1)/(@pow*(3*z^2+4*z-1)*((z-1)*(z+1)*(z+2))^(@pow-1))+p2 elseif @V=="36" #pixel=z-p1*(z^@pow+1/z^@pow-sin(z)-1)/(@pow*z^(-@pow-1)*(z^(2*@pow)-1)-cos(z))+p2 elseif @V=="37" #pixel=z-p1*(((cotan(z)-cotanh(z))/(tan(z)-tanh(z)))^@pow-z-1)/(@pow*((cotan(z)-cotanh(z))/(tan(z)-tanh(z)))^(@pow-1)*\ ((1/sinh(z)^2-1/sin(z)^2)/(tan(z)-tanh(z))-((cotan(z)-cotanh(z))*(1/cos(z)^2-1/cosh(z)^2))/(tan(z)-tanh(z))^2)-1)+p2 elseif @V=="38" #pixel=z-p1*((z^2+z+cos(z))^@pow-sin(z)-1)/(@pow*(2*z-sin(z)+1)*(z^2+z+cos(z))^(@pow-1)-cos(z))+p2 elseif @V=="39" #pixel=z-p1*(z^@pow+sin(z)^@pow-cos(z)^@pow+tan(z)^@pow-sin(z)-1)/(@pow*z^(@pow-1)+@pow*sin(z)*cos(z)^(@pow-1)\ +@pow*cos(z)*sin(z)^(@pow-1)+@pow*tan(z)^(@pow-1)/cos(z)^2-cos(z))+p2 elseif @V=="40" #pixel=z-p1*(z^@pow*(z-3i)/(1+3i*z)-1)/(z^(@pow-1)*(8*z+@pow*(-3i*z^2-10*z+3i))/(-3*z+1i)^2)+p2 elseif @V=="41" #pixel=z-p1*(z^@pow*(z-2i)/(1i+2i*z))/(z^(@pow-1)*(@pow*(-2i*z^2-(4+1i)*z-2)+(4-1i)*z)/(2*z+1)^2)+p2 endif default: title="Newton Transform" 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" default=4 endparam param p1 default=(1,0) endparam param p2 default=(0,0) endparam func fn1 caption="Function" default=ident() endfunc param pow caption="Exponent" default=3 endparam param M caption="Modification" enum="None""1""2""3""4""5""6""7""8""9""10"\ "11""12""13""14""15""16""17""18""19""20"\ "21""22""23""24" endparam } ModifiedMagnetTransform { transform: z=3*fn1(#pixel) if @M=="None" z=z elseif @M=="1" if |z|>1 z=z/|z| endif z=cotanh(z) elseif @M=="2" if |z|<1 z=z/|z| endif elseif @M=="3" if |z|<1 z=z/|z| endif z=cos(z) elseif @M=="4" if |z|<1 z=z/|z| endif z=sinh(z) elseif @M=="5" if |z|>1 z=z/|z| endif z=cotan(z) elseif @M=="6" if |z|>1 z=z/|z| endif z=2*exp(z) elseif @M=="7" if |z|<1 z=z/|z| endif z=sin(z) elseif @M=="8" if |z|<1 z=z/|z| endif z=recip(z) elseif @M=="9" if |z|>1 z=z/|z| endif z=2.28*abs(z) elseif @M=="10" if |z|>1 z=z/|z| endif z=5.685*conj(z) elseif @M=="11" if |z|<1 z=z/|z| endif z=-exp(z) elseif @M=="12" if |z|<1 z=z/|z| endif z=-cos(z) elseif @M=="13" if |z|<1 z=z/|z| endif z=sin(z) elseif @M=="14" if |z|<1 z=z/|z| endif z=0.25*sqr(z) endif if @V=="1" #pixel=fn2((z^2+p1-1i)/(2*z+p1-2i))^2+p2 elseif @V=="2" #pixel=fn2((z^3+3*(p1-1i)*z+(p1-1i)*(p1-2i))/(3*z^2+3*(p1-2i)*z+(p1-1i)*(p1-2i)+1))^2+p2 elseif @V=="3" #pixel=fn2((z^3+3*(p1-1)*z+(p1-1)*(p1-2))/(3*z^2+3*(p1-2)*z+(p1-1)*(p1-2)+1i))^2+p2 elseif @V=="4" #pixel=fn2((z^2+p1-1)/(2*z+p1-2i))^2+p2 elseif @V=="5" #pixel=fn2((z^2+p1-1i)/(2*z+p1-2))^2+p2 elseif @V=="6" #pixel=fn2((z^3+3*(p1-1i)*z+(p1-1)*(p1-2))/(3*z^2+3*(p1-2)*z+(p1-1)*(p1-2)+1i))^2+p2 elseif @V=="7" #pixel=fn2((z^3+3*(p1-1i)*z+(p1-1)*(p1-2))/(3*z^2+3*(p1-2i)*z+(p1-1i)*(p1-2i)+1))^2+p2 elseif @V=="8" #pixel=fn2((z^3+3*(p1-1i)*z+(p1-1i)*(p1-2i))/(3*z^2+3*(p1-2)*z+(p1-1)*(p1-2)+1))^2+p2 elseif @V=="9" #pixel=fn2((z^3+3*(p1-1)*z+(p1-1)*(p1-2))/(3*z^2+3*(p1-2i)*z+(p1-1i)*(p1-2i)+1))^2+p2 elseif @V=="10" #pixel=fn2((z^3+3*(p1-1i)*z+(p1-1)*(p1-2))/(3*z^2+3*(p1-2i)*z+(p1-1i)*(p1-2i)+1i))^2+p2 elseif @V=="11" #pixel=fn2((z^3+3*(p1-1)*z+(p1-1)*(p1-2i))/(3*z^2+3*(p1-2i)*z+(p1-1)*(p1-2i)+1))^2+p2 elseif @V=="12" #pixel=fn2((z^3+3*(p1-1i)*z+(p1-1i)*(p1-2i))/(3*z^2+3*(p1-2i)*z+(p1-1i)*(p1-2i)+1i))^2+p2 elseif @V=="13" #pixel=fn2((z^3+3*(p1-1)*z+(p1-1)*(p1-2))/(3*z^2+3*(p1-2)*z+(p1-1i)*(p1-2)+1i))^2+p2 elseif @V=="14" #pixel=fn2((z^3+3*(p1-1)*z+(p1-1i)*(p1-2))/(3*z^2+3*(p1-2)*z+(p1-1i)*(p1-2)-1))^2+p2 elseif @V=="15" #pixel=fn2((z^3+3*(p1-1)*z+(p1-1)*(p1-2i))/(3*z^2+3*(p1-2i)*z+(p1-1)*(p1-2)-1))^2+p2 elseif @V=="16" #pixel=fn2((z^3+3*(p1-1)*z+(p1-1)*(p1-2))/(3*z^2+3*(p1-2)*z+(p1-1)*(p1-2)-1))^2+p2 endif default: title="Modified Magnet Transform" param V caption="Variant" enum="1""2""3""4""5""6""7""8""9""10"\ "11""12""13""14""15""16" endparam param M caption="Modification" enum="None""1""2""3""4""5""6""7""8""9""10"\ "11""12""13""14" endparam param p1 default=(0,0) endparam param p2 default=(0,0) endparam func fn1 default=ident() endfunc func fn2 default=ident() endfunc } LabsCayleyTransform { transform: z=fn1(#pixel) if @M=="None" z=z elseif @M=="1" if |z|<1 z=z/|z| endif z=0.5*z elseif @M=="2" if |z|<1 z=z/|z| endif z=0.5*abs(z) elseif @M=="3" if |z|<1 z=z/|z| endif z=-0.5*abs(z) elseif @M=="4" if |z|<1 z=z/|z| endif z=0.3*exp(z) elseif @M=="5" if |z|<1 z=z/|z| endif z=0.5*sqr(z) elseif @M=="6" if |z|<1 z=z/|z| endif z=3*cotan(z) elseif @M=="7" if |z|<1 z=z/|z| endif z=0.5*cosh(z) elseif @M=="8" if |z|<1 z=z/|z| endif z=0.5*sinh(z) elseif @M=="9" if |z|<1 z=z/|z| endif z=0.5*sin(z) elseif @M=="10" if |z|<1 z=z/|z| endif z=0.75*sin(z) elseif @M=="11" if |z|>1 z=z/|z| endif z=0.75*exp(z) elseif @M=="12" if |z|>1 z=z/|z| endif z=0.75*cotanh(z) elseif @M=="13" if |z|>1 z=z/|z| endif z=0.75*cotan(z) elseif @M=="14" if |z|>1 z=z/|z| endif z=cosh(z) elseif @M=="15" if |z|>1 z=z/|z| endif z=sinh(z) elseif @M=="16" z=z-exp(z) elseif @M=="17" z=z-0.5*exp(z) elseif @M=="18" z=z+sqr(z) elseif @M=="19" z=z+0.5*sqr(z) elseif @M=="20" z=z+0.3*cotanh(z) elseif @M=="21" z=z-0.5*cotanh(z) elseif @M=="22" z=z-1.5*tanh(z) elseif @M=="23" z=z-2.5*tanh(z) elseif @M=="24" z=z-0.5*tanh(z) elseif @M=="25" z=z-1.5*tan(z) elseif @M=="26" z=z-2.5*tan(z) elseif @M=="27" z=z-0.5*tan(z) elseif @M=="28" z=z-0.5*cosh(z) elseif @M=="29" z=z-1.5*cosh(z) elseif @M=="30" z=z-2*sinh(z) elseif @M=="31" z=z-sinh(z) elseif @M=="32" z=z-2.25/sin(z) elseif @M=="33" z=z+0.75/exp(z) elseif @M=="34" z=z-0.3/sqr(z) elseif @M=="35" z=z+0.3/cos(z) elseif @M=="36" z=z+1/cos(z) elseif @M=="37" z=z+0.75/cosh(z) elseif @M=="38" z=z+0.3/cosh(z) elseif @M=="39" z=z-1.5/sinh(z) endif z=p1*fn2((z-1i)/(z+1i))+p2 z=p3*fn3(log(abs(z)))+p4 #pixel=p5*z+p6 default: title="Labs Cayley Transform" param p1 caption="Cayley Parameter 1" default=(1,0) endparam param p2 caption="Cayley Parameter 2" default=(0,0) endparam param M caption="Modification" enum="None""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 p3 caption="Labs Parameter 1" default=(1,0) endparam param p4 caption="Labs Parameter 2" default=(0,0) endparam param p5 caption="Pixel Parameter 1" default=(0.5,0) endparam param p6 caption="Pixel Parameter 2" default=(0,0) endparam func fn1 caption="Z Function" default=ident() endfunc func fn2 caption="Cayley Function" default=ident() endfunc func fn3 caption="Labs Function" default=ident() endfunc }