drandom1 { ; Version 2.0 5-25-04 Added multiplier and c, also ; added func1 to c for greater flexibility ; Seed function does not show unless p3 <> 0. ; Randomly Generated Fractal Formula ; Try Function 1 = exp and 2 = atan ; Parameter 1 (Re) = 1,Parameter 1 (Im) = 1 ; Parameter 2 (Re) = 0,Parameter 2 (Im) = 1.1 ; Parameter 4 (Re) = 1.1,Parameter 4 (Im) = 0 ; fn1 = recip, fn2 = trunc, p1 = 0.1,6 p2 = 0.2,0 p4 = 2,0.7 init: z = #pixel c = @seed loop: If @version < 3.0 z = (1 * 3 - (p4 )^ ((fn1 ( 3 * z * p2 )- ((fn2 ( 4 ^ \ (fn1 ( 3 - (3 - (z / p1 )+ #random ))))))))) + (p3)*fn1(c) else float x = Real(z) float y = Imag(z) float g = real(@seed) z = (1 * 3 - (p4 )^ ((fn1 ( 3 * z * p2 )- ((fn2 ( 4 ^ \ (fn1 ( 3 - (3 - (z / p1 )+ #random ))))))))) + (p3)*fn1(c) if @style == "z" z = fn3((z-p5)*p6) elseif @style == "fn(z^(2+power))" z = fn3((z-p5)*p6)^@fn4(2+ @p7) + fn4(c) elseif @style == "fn(x-y)" z = fn3((z-p5)*p6)^@fn4(2+ @p7) + fn3(x-y) + fn4(c) elseif @style == "(fn(y-x))" z = fn3((z-p5)*p6)^@fn4(2+ @p7+ fn3(y-x)) + fn4(c) elseif @style =="(fn(x^2-y^2))" z = fn3((z-p5)*p6)^@fn4(2+ @p7+ fn3(y^2-x^2)) + fn4(c) elseif @style =="fn(x^2-y^2)" z = fn3((z-p5)*p6)^@fn4(2+ @p7)+ fn3(y^2-x^2) + fn4(c) elseif @style =="fn(x^e)" z = fn3(x)^@fn4(e) + fn4(c) elseif @style =="fn(y^e)" z = fn3(y)^@fn4(e) + fn4(c) elseif @style =="fn(x^pi)" z = fn3(x)^@fn4(#pi)+fn4(c) elseif @style =="fn(y^pi)" z = fn3(y)^@fn4(#pi) +fn4(c) elseif @style =="fn(z-x)^fn(z-y)" z = fn3(z-x)^@fn4(z-y)+fn4(c) elseif @style =="fn(z+x)^fn(z+y)" z = fn3(z+x)^@fn4(z+y)+fn4(c) endif if @ztweaker == "z=orig" z = fn3(z) elseif @ztweaker == "z=z+c" z = fn3(z) + fn4(c) elseif @ztweaker == "z=z+x" z = fn3(z) + fn4(x) elseif @ztweaker == "z=z+y" z = fn3(z) + fn4(y) elseif @ztweaker == "z=z+g" z = fn3(z) + fn4(g) elseif @ztweaker == "z=z*c" z = fn3(z) * fn4(c) elseif @ztweaker == "z=z*x" z = fn3(z) * fn4(x) elseif @ztweaker == "z=z*y" z = fn3(z) * fn4(y) elseif @ztweaker == "z=z*g" z = fn3(z) * fn4(g) elseif @ztweaker == "z=z/c" z = fn3(z) / fn4(c) elseif @ztweaker == "z=z/x" z = fn3(z) / fn4(x) elseif @ztweaker == "z=z/g" z = fn3(z) / fn4(g) elseif @ztweaker == "z=z/c+z" z = fn3(z) / fn4(c) + fn4(z) elseif @ztweaker == "z=z/x+z" z = fn3(z) / fn4(x) + fn4(z) elseif @ztweaker == "z=z/c+c" z = fn3(z) / fn4(c) + fn4(c) elseif @ztweaker == "z=z/x+c" z = fn3(z) / fn4(x) + fn4(c) elseif @ztweaker == "z=z/g+c" z = fn3(z) / fn4(g) + fn4(c) elseif @ztweaker == "z=z-c" z = fn3(z) - fn4(c) elseif @ztweaker == "z=z-x" z = fn3(z) - fn4(x) elseif @ztweaker == "z=z-g" z = fn3(z) - fn4(g) elseif @ztweaker == "z=c-z" z = fn3(c) - fn4(z) elseif @ztweaker == "z=x-z" z = fn3(x) - fn4(z) elseif @ztweaker == "z=g-z" z = fn3(g) - fn4(z) elseif @ztweaker == "z=z/c-z" z = fn3(z) / fn4(c) - fn4(z) elseif @ztweaker == "z=z/x-z" z = fn3(z) / fn4(x) - fn4(z) elseif @ztweaker == "z=z/g-z" z = fn3(z) / fn4(g) - fn4(z) elseif @ztweaker == "z=z/c-c" z = fn3(z) / fn4(c) - fn4(c) elseif @ztweaker == "z=z/x-c" z = fn3(z) / fn4(x) - fn4(c) elseif @ztweaker == "z=z/g-c" z = fn3(z) / fn4(g) - fn4(c) elseif @ztweaker == "z=z-z/c" z = fn3(z) - fn4(z) / fn4(c) elseif @ztweaker == "z=z-z/x" z = fn3(z) - fn4(z) / fn4(x) elseif @ztweaker == "z=z-z/g" z = fn3(z) - fn4(z) / fn4(g) elseif @ztweaker == "z=c-z/c" z = fn3(c) - fn4(z) / fn4(c) elseif @ztweaker == "z=c-z/g" z = fn3(c) - fn4(z) / fn4(g) elseif @ztweaker == "z=c-z/x" z = fn3(c) - fn4(z) / fn4(x) elseif @ztweaker == "z=c/z" z = fn3(c) / fn4(z) elseif @ztweaker == "z=x/z" z = fn3(x) / fn4(z) elseif @ztweaker == "z*z+c" z = fn3(z) * fn4(z) + fn4(c) elseif @ztweaker == "z*c+z" z = fn3(z) * fn4(c) + fn4(z) elseif @ztweaker == "z=g/z" z = fn3(g) / fn4(z) elseif @ztweaker == "ezz" z = e^fn3(z)* fn4(z) elseif @ztweaker == "ez/z" z = e^fn3(z)/ fn4(z) elseif @ztweaker == "ex/z" z = e^fn3(x)/ fn4(z) elseif @ztweaker == "exz" z = e^fn3(x)* fn4(z) elseif @ztweaker == "ey/z" z = e^fn3(y)/ fn4(z) elseif @ztweaker == "eyz" z = e^fn3(y)* fn4(z) elseif @ztweaker == "z/1-z" z = fn3(z)/(1- fn4(z)) elseif @ztweaker == "z/1-x" z = fn3(z)/(1-fn4(x)) elseif @ztweaker == "z/1-y" z = fn3(z)/(1-fn4(y)) elseif @ztweaker == "zpi" z = fn3(z) ^ #pi elseif @ztweaker == "zpi/z" z = fn3(z) ^ #pi / fn4(z)^2 elseif @ztweaker == "z^pi/z^z" z = fn3(z) ^ #pi / fn4(z^z) elseif @ztweaker == "z/pixel" z = fn4(fn3(z) / #pixel) elseif @ztweaker == "zpixel" z = fn4(fn3(z) * #pixel) elseif @ztweaker == "z^pixel/z+pixel" z = fn3(z) ^ #pixel /fn4(z) + pixel elseif @ztweaker == "ez/zpixel" z = e^fn3(z) /(fn4(z)+ #pixel) elseif @ztweaker == "ez/pixel" z = fn4(e^fn3(z) /#pixel) elseif @ztweaker == "piz/pixel" z = fn4(fn3(z)^#pi / #pixel) elseif @ztweaker == "piz/zpixel" z = fn3(z)^#pi /(fn4(z) + #pixel) elseif @ztweaker == "z+zpixel" z = fn4(fn3(z) + #pixel) elseif @ztweaker == "z-zpixel" z = fn4(fn3(z) - #pixel) elseif @ztweaker == "z/zpixel" z = fn3(z) /(fn4(z) + #pixel) elseif @ztweaker == "z/pixelz" z = fn3(z) /#pixel^fn4(z) elseif @ztweaker == "ez/pixel" z = fn4(e^fn3(z)/#pixel) elseif @ztweaker == "c/ez" z = fn3(c / (#e * fn4(z))) elseif @ztweaker == "z+c/g" z = fn3(fn4(z) + c / g ) elseif @ztweaker == "x+z/y+c" z = (fn3(x) + z) / (fn4(y) + c) elseif @ztweaker == "g^z-c" z = fn4(g ^ (fn3(z) )) - c elseif @ztweaker == "z-x+y/x-y" z = fn3(z) - p2 + fn4((x+y)/(x-y)) elseif @ztweaker == "g/c-z" z = fn3(( g )/ (c - fn4(z))) elseif @ztweaker == "y+c/g" z = fn3(fn4(y) + c / g ) elseif @ztweaker == "x+y/y+c" z = (fn3(x) + y) / (fn4(y) + c) elseif @ztweaker == "g^y-c" z = fn4(g ^ (fn3(y) )) - c elseif @ztweaker == "y-x+y/x-y" z = fn3(y) - p2 + fn4((x+y)/(x-y)) elseif @ztweaker == "g/c-y" z = fn3(( g )/ (c - fn4(y))) elseif @ztweaker == "c/ex" z = fn3(c / (#e * fn4(x))) elseif @ztweaker == "x+c/g" z = fn3(fn4(x) + c / g ) elseif @ztweaker == "g^x-c" z = fn4(g ^(fn3(x))) - c endif if @inv == true z = 1/z else z = z endif if @zpix == true z = ((pixel-p5)*p6)^(2+ @p7) else z = z endif if @xplus == true z = ((z-p5)*p6)^(2+ @p7) + x else z = z endif if @yplus == true z = ((z-p5)*p6)^(2+ @p7) + y else z = z endif if @zpower == true z = ((z-p5)*p6)^(2+ @p7) ^ z else z = z endif if @xpower == true z = ((z-p5)*p6)^(2+ @p7)^x else z = z endif if @ypower == true z = ((z-p5)*p6)^(2+ @p7)^y else z = z endif if @gpower == true ; hpower showed no effect z = ((z-p5)*p6)^(2+ @p7)^g else z = z endif if @gplus == true ; hplus showed no effect z = ((z-p5)*p6)^(2+ @p7) + g else z = z endif if @func1 == true z = fn3((z-p5)*p6) else z = z endif if @func2 == true z = @fn4(fn3((z-p5)*p6)) else z = z endif if @func3 == true z = @fn2(@fn4(fn3((z-p5)*p6))) else z = z endif if @funcpowerz == true z = ((z-p5)*p6)^fn3(z) else z = z endif if @funcpowerx == true z = ((z-p5)*p6)^fn3(x) else z = z endif if @funcpowery == true z = ((z-p5)*p6)^fn3(y) else z = z endif if @funcpowerg == true ; funcpowerh no effect z = ((z-p5)*p6)^fn3(g) else z = z endif if @ez == true z = e^z else z = z endif if @zpi == true z = z^#pi else z = z endif if @ztopidivzpi == true z = z^#pi/(z*#pi) else z = z endif if @zpidivztopi == true z = z*#pi/(z^#pi) else z = z endif if @flavor == "z" z = fn3((z-p5)*p6) elseif @flavor == "z^2 + c" z = fn3((z-p5)*p6)^@fn4(2+ @p7) + @fn4(c) elseif @flavor == "z^(z/c)" z = fn3((z-p5)*p6)^@fn4((z-p5)*p6) + @fn4(@p7/c) elseif @flavor == "z/(z-1)" z = fn3((z-p5)*p6)/@fn4(((z-p5)*p6) -1) + @fn4(@p7*c) elseif @flavor == "z^2/(z-1)" z = fn3((z-p5)*p6)^(2+ @p7)/@fn4(((z-p5)*p6) -1) + @fn4(@p7*c) elseif @flavor == "z^3/(z^2-1)" z = fn3((z-p5)*p6)^(3+ @p7)/@fn4(((z-p5)*p6)^(2+ @p7) -1)\ +@fn4(@p7*c) elseif @flavor == "z^3*c/(z^2-c)" z = fn3((z-p5)*p6)^(3+ @p7)*c/@fn4(((z-p5)*p6)^(2+@p7) - c)\ - @fn4(@p7*c) elseif @flavor == "z^3+z^2+z+c" z = fn3((z-p5)*p6)^(3+ @p7)+((z-p5)*p6)^(2+ @p7)+@fn4((z-p5)*p6)\ ^(2+ @p7)+ @fn4(@p7*c) elseif @flavor == "fnzfnzfnz" z = fn3((z-p5)*p6)*@fn4((z-p5)*p6)*@fn4((z-p5)*p6) + @p7*c elseif @flavor == "fnzpfnzpfnzp" z = fn3((z-p5)*p6)^(2+ @p7)*@fn4((z-p5)*p6)^(2+ @p7)*@fn4((z-p5)\ ^(2+ @p7)*p6) + @p7*c elseif @flavor == "fnzfnz/fnz" z = fn3((z-p5)*p6)*@fn4((z-p5)*p6)/@fn4((z-p5)*p6) + @p7*c elseif @flavor == "fnzpfnzp/fnzp" z = fn3((z-p5)*p6)^(2+ @p7)*@fn4((z-p5)*p6)^(2+ @p7)/@fn4((z-p5)\ ^(2+ @p7)*p6) + @p7*c elseif @flavor == "zzz" z = fn3((z-p5)*p6)*@fn4((z-p5)*p6)*@fn4((z-p5)*p6) + @p7*c elseif @flavor == "z^pz^pz^p" z = fn3((z-p5)*p6)^(2+ @p7)*@fn4((z-p5)*p6)^(2+ @p7)*@fn4((z-p5)\ ^(2+ @p7)*p6) + @p7*c elseif @flavor == "zz/z" z = fn3((z-p5)*p6)*@fn4((z-p5)*p6)/@fn4(z-p5)+ @p7*c elseif @flavor == "z^pz^p/z^p" z = fn3((z-p5)*p6)^(2+ @p7)*@fn4((z-p5)*p6)^(2+ @p7)/@fn4((z-p5)\ ^(2+ @p7)*p6) + @p7*c elseif @flavor == "z^3-z^2+c" z = fn3((z-p5)*p6)^(3+ @p7)-@fn4((z-p5)*p6)^(2+ @p7)+ @fn4(@p7*c) endif endif bailout: |z| <= @bailout default: title = "drandom1 " periodicity = 0 complex param p1 caption = "Param 1" default = (0.1,6) endparam complex param p2 caption = "Param 2" default = (0.2,0) endparam param p3 caption = "C Multiplier" default = 0 endparam complex param p4 caption = "Param 4" default = (2,0) endparam param p5 caption = "Subtracter" default = (0,0) endparam param p6 caption = "Mulitplier" default = (1,0) endparam param p7 caption = "Power" default = (0,0) endparam param seed caption = "Seed" default = (-1.25,0) visible = @p3 < 0 || @p3 > 0 endparam heading caption = "Affecters of Z" endheading bool param inv caption = "Invert Z" default = false endparam bool param zpix caption = "Z=Pixel" default = false endparam bool param xplus caption = "Add X" default = false endparam bool param yplus caption = "Add Y" default = false endparam bool param Zpower caption = "Z^Z" default = false endparam bool param Xpower caption = "Z^X" default = false endparam bool param Ypower caption = "Z^Y" default = false endparam bool param Gpower caption = "Z^G" default = false endparam bool param Gplus caption = "Z+G" default = false endparam bool param func1 caption = "Fn(Z)" default = false endparam bool param func2 caption = "@fn4(fn3(Z))" default = false endparam bool param func3 caption = "@fn4(@fn4(fn3(Z)))" default = false endparam bool param funcpowerz caption = "Function Power" default = false endparam bool param funcpowerx caption = "Function Power of X" default = false endparam bool param funcpowery caption = "Function Power of Y" default = false endparam bool param funcpowerg caption = "Function Power of G" default = false endparam bool param ez caption = "Euler times Z" default = false endparam bool param zpi caption = "Pi times Z" default = false endparam bool param ztopidivzpi caption = "Z^Pi/Z*Pi" default = false endparam bool param zpidivztopi caption = "Z*Pi/Z^Pi" default = false endparam param ztweaker caption = "Z Tweaker" enum = "z=orig""z=z+c""z=z+x""z=z+y""z=z+g"\ "z=z*c""z=z*x""z=z*y""z=z*g""z=z/c""z=z/x""z=z/g"\ "z=z/c+z""z=z/x+z""z=z/c+c""z=z/x+c"\ "z=z/g+c""z=z-c""z=z-x""z=z-g""z=c-z""z=x-z"\ "z=g-z""z=z/c-z""z=z/x-z""z=z/g-z""z=z/c-c""z=z/x-c"\ "z=z/g-c""z=z-z/c""z=z-z/x""z=z-z/g""z=c-z/c"\ "z=c-z/x""z=c-z/g""z=c/z""z=x/z""z=g/z""z*z+c""z*c+z"\ "ezz""ez/z""exz""ex/z""eyz""ey/z""z/1-z""z/1-x""z/1-y"\ "zpi""zpi/z""z^pi/z^z""zpixel""z/pixelz"\ "z/zpixel""z^pixel/z+pixel""ez/zpixel""z/pixel""piz/pixel"\ "piz/zpixel""z-zpixel""ez/pixel""z+zpixel"\ "c/ez""z+c/g""x+z/y+c""g^z-c""z-x+y/x-y""g/c-z"\ "y+c/g""x+y/y+c""g^y-c""y-x+y/x-y""g/c-y"\ "g/c-x""g^x-c""x+c/g""c/ex" default = 0 endparam param style caption = "Variation in Style" enum = "z""fn(z^(2+power))""fn(x-y)""fn(y-x)"\ "fn(x^2-y^2)""(fn(y-x))" "(fn(x^2-y^2))"\ "fn(x^e)""fn(y^e)""fn(x^pi)""fn(y^pi)"\ "fn(z-x)^fn(z-y)""fn(z+x)^fn(z+y)" default = 0 endparam param flavor caption = "Formula Flavor" enum = "z""z^2 + c""z^(z/c)""z/(z-1)""z^2/(z-1)""z^3/(z^2-1)"\ "z^3*c/(z^2-c)""z^3+z^2+z+c""fnzfnzfnz""fnzpfnzpfnzp"\ "fnzfnz/fnz""fnzpfnzp/fnzp""zzz""z^pz^pz^p"\ "zz/z""z^pz^p/z^p""z^3-z^2+c" default = 0 endparam func fn1 caption = "Function 1" default = recip() endfunc func fn2 caption = "Function 2" default = trunc() endfunc func fn3 caption = "Function(3) of Z" default = ident() visible = @ztweaker != "z=orig" endfunc func fn4 caption = "Functions(4) of z" default = ident() visible = @ztweaker != "z=orig" endfunc float param bailout caption = "Bail-out value" hint = "This is the bail-out value" default = 8.9999999999999 endparam param version caption = "Version" default = 3.0 endparam } ========================================================== drandom2 { ; A Randomly Generated Fractal Formula ; Version 3.0 Added tweakers etc. 6-5-04 ; Version 2.0 5-25-04 Added multiplier and c, also ; added func1 to p3 and fn2 to c fro greater flexibility ; Seed function does not show unless p3 <> 0. init: z = #pixel c = @seed loop: If @version < 3.0 z = z ^ z + fn1 ( p3 / (z ^ fn2 ( 3 + (z - p5 )+ \ (p6 )+ p4 )+ 3 ^ 4 )) + fn1(p2) * fn2(c) else float x = Real(z) float y = Imag(z) float g = real(@seed) z = z ^ z + fn1 ( p3 / (z ^ fn2 ( 3 + (z - p5 )+ \ (p6 )+ p4 )+ 3 ^ 4 )) + fn1(p2) * fn2(c) if @style == "z" z = fn3((z-p5)*p6) elseif @style == "fn(z^(2+power))" z = fn3((z-p5)*p6)^@fn4(2+ @p7) + fn4(c) elseif @style == "fn(x-y)" z = fn3((z-p5)*p6)^@fn4(2+ @p7) + fn3(x-y) + fn4(c) elseif @style == "(fn(y-x))" z = fn3((z-p5)*p6)^@fn4(2+ @p7+ fn3(y-x)) + fn4(c) elseif @style =="(fn(x^2-y^2))" z = fn3((z-p5)*p6)^@fn4(2+ @p7+ fn3(y^2-x^2)) + fn4(c) elseif @style =="fn(x^2-y^2)" z = fn3((z-p5)*p6)^@fn4(2+ @p7)+ fn3(y^2-x^2) + fn4(c) elseif @style =="fn(x^e)" z = fn3(x)^@fn4(e) + fn4(c) elseif @style =="fn(y^e)" z = fn3(y)^@fn4(e) + fn4(c) elseif @style =="fn(x^pi)" z = fn3(x)^@fn4(#pi)+fn4(c) elseif @style =="fn(y^pi)" z = fn3(y)^@fn4(#pi) +fn4(c) elseif @style =="fn(z-x)^fn(z-y)" z = fn3(z-x)^@fn4(z-y)+fn4(c) elseif @style =="fn(z+x)^fn(z+y)" z = fn3(z+x)^@fn4(z+y)+fn4(c) endif if @ztweaker == "z=orig" z = fn3(z) elseif @ztweaker == "z=z+c" z = fn3(z) + fn4(c) elseif @ztweaker == "z=z+x" z = fn3(z) + fn4(x) elseif @ztweaker == "z=z+y" z = fn3(z) + fn4(y) elseif @ztweaker == "z=z+g" z = fn3(z) + fn4(g) elseif @ztweaker == "z=z*c" z = fn3(z) * fn4(c) elseif @ztweaker == "z=z*x" z = fn3(z) * fn4(x) elseif @ztweaker == "z=z*y" z = fn3(z) * fn4(y) elseif @ztweaker == "z=z*g" z = fn3(z) * fn4(g) elseif @ztweaker == "z=z/c" z = fn3(z) / fn4(c) elseif @ztweaker == "z=z/x" z = fn3(z) / fn4(x) elseif @ztweaker == "z=z/g" z = fn3(z) / fn4(g) elseif @ztweaker == "z=z/c+z" z = fn3(z) / fn4(c) + fn4(z) elseif @ztweaker == "z=z/x+z" z = fn3(z) / fn4(x) + fn4(z) elseif @ztweaker == "z=z/c+c" z = fn3(z) / fn4(c) + fn4(c) elseif @ztweaker == "z=z/x+c" z = fn3(z) / fn4(x) + fn4(c) elseif @ztweaker == "z=z/g+c" z = fn3(z) / fn4(g) + fn4(c) elseif @ztweaker == "z=z-c" z = fn3(z) - fn4(c) elseif @ztweaker == "z=z-x" z = fn3(z) - fn4(x) elseif @ztweaker == "z=z-g" z = fn3(z) - fn4(g) elseif @ztweaker == "z=c-z" z = fn3(c) - fn4(z) elseif @ztweaker == "z=x-z" z = fn3(x) - fn4(z) elseif @ztweaker == "z=g-z" z = fn3(g) - fn4(z) elseif @ztweaker == "z=z/c-z" z = fn3(z) / fn4(c) - fn4(z) elseif @ztweaker == "z=z/x-z" z = fn3(z) / fn4(x) - fn4(z) elseif @ztweaker == "z=z/g-z" z = fn3(z) / fn4(g) - fn4(z) elseif @ztweaker == "z=z/c-c" z = fn3(z) / fn4(c) - fn4(c) elseif @ztweaker == "z=z/x-c" z = fn3(z) / fn4(x) - fn4(c) elseif @ztweaker == "z=z/g-c" z = fn3(z) / fn4(g) - fn4(c) elseif @ztweaker == "z=z-z/c" z = fn3(z) - fn4(z) / fn4(c) elseif @ztweaker == "z=z-z/x" z = fn3(z) - fn4(z) / fn4(x) elseif @ztweaker == "z=z-z/g" z = fn3(z) - fn4(z) / fn4(g) elseif @ztweaker == "z=c-z/c" z = fn3(c) - fn4(z) / fn4(c) elseif @ztweaker == "z=c-z/g" z = fn3(c) - fn4(z) / fn4(g) elseif @ztweaker == "z=c-z/x" z = fn3(c) - fn4(z) / fn4(x) elseif @ztweaker == "z=c/z" z = fn3(c) / fn4(z) elseif @ztweaker == "z=x/z" z = fn3(x) / fn4(z) elseif @ztweaker == "z*z+c" z = fn3(z) * fn4(z) + fn4(c) elseif @ztweaker == "z*c+z" z = fn3(z) * fn4(c) + fn4(z) elseif @ztweaker == "z=g/z" z = fn3(g) / fn4(z) elseif @ztweaker == "ezz" z = e^fn3(z)* fn4(z) elseif @ztweaker == "ez/z" z = e^fn3(z)/ fn4(z) elseif @ztweaker == "ex/z" z = e^fn3(x)/ fn4(z) elseif @ztweaker == "exz" z = e^fn3(x)* fn4(z) elseif @ztweaker == "ey/z" z = e^fn3(y)/ fn4(z) elseif @ztweaker == "eyz" z = e^fn3(y)* fn4(z) elseif @ztweaker == "z/1-z" z = fn3(z)/(1- fn4(z)) elseif @ztweaker == "z/1-x" z = fn3(z)/(1-fn4(x)) elseif @ztweaker == "z/1-y" z = fn3(z)/(1-fn4(y)) elseif @ztweaker == "zpi" z = fn3(z) ^ #pi elseif @ztweaker == "zpi/z" z = fn3(z) ^ #pi / fn4(z)^2 elseif @ztweaker == "z^pi/z^z" z = fn3(z) ^ #pi / fn4(z^z) elseif @ztweaker == "z/pixel" z = fn4(fn3(z) / #pixel) elseif @ztweaker == "zpixel" z = fn4(fn3(z) * #pixel) elseif @ztweaker == "z^pixel/z+pixel" z = fn3(z) ^ #pixel /fn4(z) + pixel elseif @ztweaker == "ez/zpixel" z = e^fn3(z) /(fn4(z)+ #pixel) elseif @ztweaker == "ez/pixel" z = fn4(e^fn3(z) /#pixel) elseif @ztweaker == "piz/pixel" z = fn4(fn3(z)^#pi / #pixel) elseif @ztweaker == "piz/zpixel" z = fn3(z)^#pi /(fn4(z) + #pixel) elseif @ztweaker == "z+zpixel" z = fn4(fn3(z) + #pixel) elseif @ztweaker == "z-zpixel" z = fn4(fn3(z) - #pixel) elseif @ztweaker == "z/zpixel" z = fn3(z) /(fn4(z) + #pixel) elseif @ztweaker == "z/pixelz" z = fn3(z) /#pixel^fn4(z) elseif @ztweaker == "ez/pixel" z = fn4(e^fn3(z)/#pixel) elseif @ztweaker == "c/ez" z = fn3(c / (#e * fn4(z))) elseif @ztweaker == "z+c/g" z = fn3(fn4(z) + c / g ) elseif @ztweaker == "x+z/y+c" z = (fn3(x) + z) / (fn4(y) + c) elseif @ztweaker == "g^z-c" z = fn4(g ^ (fn3(z) )) - c elseif @ztweaker == "z-x+y/x-y" z = fn3(z) - @p8 + fn4((x+y)/(x-y)) elseif @ztweaker == "g/c-z" z = fn3(( g )/ (c - fn4(z))) elseif @ztweaker == "y+c/g" z = fn3(fn4(y) + c / g ) elseif @ztweaker == "x+y/y+c" z = (fn3(x) + y) / (fn4(y) + c) elseif @ztweaker == "g^y-c" z = fn4(g ^ (fn3(y) )) - c elseif @ztweaker == "y-x+y/x-y" z = fn3(y) - @p8 + fn4((x+y)/(x-y)) elseif @ztweaker == "g/c-y" z = fn3(( g )/ (c - fn4(y))) elseif @ztweaker == "c/ex" z = fn3(c / (#e * fn4(x))) elseif @ztweaker == "x+c/g" z = fn3(fn4(x) + c / g ) elseif @ztweaker == "g^x-c" z = fn4(g ^(fn3(x))) - c endif if @inv == true z = 1/z else z = z endif if @zpix == true z = ((pixel-p5)*p6)^(2+ @p7) else z = z endif if @xplus == true z = ((z-p5)*p6)^(2+ @p7) + x else z = z endif if @yplus == true z = ((z-p5)*p6)^(2+ @p7) + y else z = z endif if @zpower == true z = ((z-p5)*p6)^(2+ @p7) ^ z else z = z endif if @xpower == true z = ((z-p5)*p6)^(2+ @p7)^x else z = z endif if @ypower == true z = ((z-p5)*p6)^(2+ @p7)^y else z = z endif if @gpower == true ; hpower showed no effect z = ((z-p5)*p6)^(2+ @p7)^g else z = z endif if @gplus == true ; hplus showed no effect z = ((z-p5)*p6)^(2+ @p7) + g else z = z endif if @func1 == true z = fn3((z-p5)*p6) else z = z endif if @func2 == true z = @fn4(fn3((z-p5)*p6)) else z = z endif if @func3 == true z = @fn2(@fn4(fn3((z-p5)*p6))) else z = z endif if @funcpowerz == true z = ((z-p5)*p6)^fn3(z) else z = z endif if @funcpowerx == true z = ((z-p5)*p6)^fn3(x) else z = z endif if @funcpowery == true z = ((z-p5)*p6)^fn3(y) else z = z endif if @funcpowerg == true ; funcpowerh no effect z = ((z-p5)*p6)^fn3(g) else z = z endif if @ez == true z = e^z else z = z endif if @zpi == true z = z^#pi else z = z endif if @ztopidivzpi == true z = z^#pi/(z*#pi) else z = z endif if @zpidivztopi == true z = z*#pi/(z^#pi) else z = z endif if @flavor == "z" z = fn3((z-p5)*p6) elseif @flavor == "z^2 + c" z = fn3((z-p5)*p6)^@fn4(2+ @p7) + @fn4(c) elseif @flavor == "z^(z/c)" z = fn3((z-p5)*p6)^@fn4((z-p5)*p6) + @fn4(@p7/c) elseif @flavor == "z/(z-1)" z = fn3((z-p5)*p6)/@fn4(((z-p5)*p6) -1) + @fn4(@p7*c) elseif @flavor == "z^2/(z-1)" z = fn3((z-p5)*p6)^(2+ @p7)/@fn4(((z-p5)*p6) -1) + @fn4(@p7*c) elseif @flavor == "z^3/(z^2-1)" z = fn3((z-p5)*p6)^(3+ @p7)/@fn4(((z-p5)*p6)^(2+ @p7) -1)\ +@fn4(@p7*c) elseif @flavor == "z^3*c/(z^2-c)" z = fn3((z-p5)*p6)^(3+ @p7)*c/@fn4(((z-p5)*p6)^(2+@p7) - c)\ - @fn4(@p7*c) elseif @flavor == "z^3+z^2+z+c" z = fn3((z-p5)*p6)^(3+ @p7)+((z-p5)*p6)^(2+ @p7)+@fn4((z-p5)*p6)\ ^(2+ @p7)+ @fn4(@p7*c) elseif @flavor == "fnzfnzfnz" z = fn3((z-p5)*p6)*@fn4((z-p5)*p6)*@fn4((z-p5)*p6) + @p7*c elseif @flavor == "fnzpfnzpfnzp" z = fn3((z-p5)*p6)^(2+ @p7)*@fn4((z-p5)*p6)^(2+ @p7)*@fn4((z-p5)\ ^(2+ @p7)*p6) + @p7*c elseif @flavor == "fnzfnz/fnz" z = fn3((z-p5)*p6)*@fn4((z-p5)*p6)/@fn4((z-p5)*p6) + @p7*c elseif @flavor == "fnzpfnzp/fnzp" z = fn3((z-p5)*p6)^(2+ @p7)*@fn4((z-p5)*p6)^(2+ @p7)/@fn4((z-p5)\ ^(2+ @p7)*p6) + @p7*c elseif @flavor == "zzz" z = fn3((z-p5)*p6)*@fn4((z-p5)*p6)*@fn4((z-p5)*p6) + @p7*c elseif @flavor == "z^pz^pz^p" z = fn3((z-p5)*p6)^(2+ @p7)*@fn4((z-p5)*p6)^(2+ @p7)*@fn4((z-p5)\ ^(2+ @p7)*p6) + @p7*c elseif @flavor == "zz/z" z = fn3((z-p5)*p6)*@fn4((z-p5)*p6)/@fn4(z-p5)+ @p7*c elseif @flavor == "z^pz^p/z^p" z = fn3((z-p5)*p6)^(2+ @p7)*@fn4((z-p5)*p6)^(2+ @p7)/@fn4((z-p5)\ ^(2+ @p7)*p6) + @p7*c elseif @flavor == "z^3-z^2+c" z = fn3((z-p5)*p6)^(3+ @p7)-@fn4((z-p5)*p6)^(2+ @p7)+ @fn4(@p7*c) endif endif bailout: |z| <= @bailout default: title = "drandom2" periodicity = 0 complex param p1 caption = "Param 1" default = (0.1,6) endparam param p2 caption = "C Multiplier P2" default = 0 endparam complex param p3 caption = "Param 3" default = (4,0) endparam complex param p4 caption = "Param 4" default = (1,0) endparam complex param p5 caption = "Param 5" default = (0,0) endparam complex param p6 caption = "Param 6" default = (1,0) endparam param p7 caption = "Power P7" default = (0,0) endparam complex param @p8 caption = "Param " default = (1,0) endparam param seed caption = "Seed" default = (-1.25,0) visible = @p2 < 0 || @p2 > 0 endparam heading caption = "Affecters of Z" endheading bool param inv caption = "Invert Z" default = false endparam bool param zpix caption = "Z=Pixel" default = false endparam bool param xplus caption = "Add X" default = false endparam bool param yplus caption = "Add Y" default = false endparam bool param Zpower caption = "Z^Z" default = false endparam bool param Xpower caption = "Z^X" default = false endparam bool param Ypower caption = "Z^Y" default = false endparam bool param Gpower caption = "Z^G" default = false endparam bool param Gplus caption = "Z+G" default = false endparam bool param func1 caption = "Fn(Z)" default = false endparam bool param func2 caption = "@fn4(fn3(Z))" default = false endparam bool param func3 caption = "@fn4(@fn4(fn3(Z)))" default = false endparam bool param funcpowerz caption = "Function Power" default = false endparam bool param funcpowerx caption = "Function Power of X" default = false endparam bool param funcpowery caption = "Function Power of Y" default = false endparam bool param funcpowerg caption = "Function Power of G" default = false endparam bool param ez caption = "Euler times Z" default = false endparam bool param zpi caption = "Pi times Z" default = false endparam bool param ztopidivzpi caption = "Z^Pi/Z*Pi" default = false endparam bool param zpidivztopi caption = "Z*Pi/Z^Pi" default = false endparam param ztweaker caption = "Z Tweaker" enum = "z=orig""z=z+c""z=z+x""z=z+y""z=z+g"\ "z=z*c""z=z*x""z=z*y""z=z*g""z=z/c""z=z/x""z=z/g"\ "z=z/c+z""z=z/x+z""z=z/c+c""z=z/x+c"\ "z=z/g+c""z=z-c""z=z-x""z=z-g""z=c-z""z=x-z"\ "z=g-z""z=z/c-z""z=z/x-z""z=z/g-z""z=z/c-c""z=z/x-c"\ "z=z/g-c""z=z-z/c""z=z-z/x""z=z-z/g""z=c-z/c"\ "z=c-z/x""z=c-z/g""z=c/z""z=x/z""z=g/z""z*z+c""z*c+z"\ "ezz""ez/z""exz""ex/z""eyz""ey/z""z/1-z""z/1-x""z/1-y"\ "zpi""zpi/z""z^pi/z^z""zpixel""z/pixelz"\ "z/zpixel""z^pixel/z+pixel""ez/zpixel""z/pixel""piz/pixel"\ "piz/zpixel""z-zpixel""ez/pixel""z+zpixel"\ "c/ez""z+c/g""x+z/y+c""g^z-c""z-x+y/x-y""g/c-z"\ "y+c/g""x+y/y+c""g^y-c""y-x+y/x-y""g/c-y"\ "g/c-x""g^x-c""x+c/g""c/ex" default = 0 endparam param style caption = "Variation in Style" enum = "z""fn(z^(2+power))""fn(x-y)""fn(y-x)"\ "fn(x^2-y^2)""(fn(y-x))" "(fn(x^2-y^2))"\ "fn(x^e)""fn(y^e)""fn(x^pi)""fn(y^pi)"\ "fn(z-x)^fn(z-y)""fn(z+x)^fn(z+y)" default = 0 endparam param flavor caption = "Formula Flavor" enum = "z""z^2 + c""z^(z/c)""z/(z-1)""z^2/(z-1)""z^3/(z^2-1)"\ "z^3*c/(z^2-c)""z^3+z^2+z+c""fnzfnzfnz""fnzpfnzpfnzp"\ "fnzfnz/fnz""fnzpfnzp/fnzp""zzz""z^pz^pz^p"\ "zz/z""z^pz^p/z^p""z^3-z^2+c" default = 0 endparam heading caption = "Functions" endheading func fn1 caption = "Function 1" default = ident() endfunc func fn2 caption = "Function 2" default = ident() endfunc func fn3 caption = "Function(3) of Z" default = ident() visible = @ztweaker != "z=orig" endfunc func fn4 caption = "Functions(4) of z" default = ident() visible = @ztweaker != "z=orig" endfunc float param bailout caption = "Bail-out value" hint = "This is the bail-out value" default = 4.0 endparam param version caption = "Version" default = 3.0 endparam } =============================================================== JosephJulia{ ; Ver 2.0 Sean Pratz bailout system has been modified for bailchoice. ; By Dolf De Rovira 2-18-04 - Based off of Jayce Cruel's Random Generator and ; the standard Julia Formulation in Ultra Fractal (R) Standard Formula. ; With considerable help from Toby Marshall. ; Parameter 3 1,0 and 1,1 yield interesting results with Function 1 = asin and ; Function 4 =sqr. ; Also, Leaving Parameter 3 as 1,1, Parameter 4 as 1,0 and 1,1 also yield very ; interesting results. ; As well as Parameter 3 1,1, Parameter 4 1,1 and Parameter 6 = 1,0 init: z = pixel c = @seed loop: float x = Real(z) float y = Imag(z) float g = real(@seed) if @version > 2.0 if @style == "z" z = fn4((z-p4)*@p5) elseif @style == "fn(z^(2+power))" z = fn4((z-p4)*@p5)^@fn5(2+ @p6) + @fn6(c) elseif @style == "fn(x-y)" z = fn4((z-p4)*@p5)^@fn5(2+ @p6) + fn4(x-y) + @fn6(c) elseif @style == "(fn(y-x))" z = fn4((z-p4)*@p5)^@fn5(2+ @p6+ fn4(y-x)) + @fn6(c) elseif @style =="(fn(x^2-y^2))" z = fn4((z-p4)*@p5)^@fn5(2+ @p6+ fn4(y^2-x^2)) + @fn6(c) elseif @style =="fn(x^2-y^2)" z = fn4((z-p4)*@p5)^@fn5(2+ @p6)+ fn4(y^2-x^2) + @fn6(c) elseif @style =="fn(x^e)" z = fn4(x)^@fn5(e) + @fn6(c) elseif @style =="fn(y^e)" z = fn4(y)^@fn5(e) + @fn6(c) elseif @style =="fn(x^pi)" z = fn4(x)^@fn5(#pi)+@fn6(c) elseif @style =="fn(y^pi)" z = fn4(y)^@fn5(#pi) +@fn6(c) elseif @style =="fn(z-x)^fn(z-y)" z = fn4(z-x)^@fn5(z-y)+@fn6(c) elseif @style =="fn(z+x)^fn(z+y)" z = fn4(z+x)^@fn5(z+y)+@fn6(c) endif if @ztweaker == "z=orig" z = fn4(z) elseif @ztweaker == "z=z+c" z = fn4(z) + @fn5(c) elseif @ztweaker == "z=z+x" z = fn4(z) + @fn5(x) elseif @ztweaker == "z=z+y" z = fn4(z) + @fn5(y) elseif @ztweaker == "z=z+g" z = fn4(z) + @fn5(g) elseif @ztweaker == "z=z*c" z = fn4(z) * @fn5(c) elseif @ztweaker == "z=z*x" z = fn4(z) * @fn5(x) elseif @ztweaker == "z=z*y" z = fn4(z) * @fn5(y) elseif @ztweaker == "z=z*g" z = fn4(z) * @fn5(g) elseif @ztweaker == "z=z/c" z = fn4(z) / @fn5(c) elseif @ztweaker == "z=z/x" z = fn4(z) / @fn5(x) elseif @ztweaker == "z=z/g" z = fn4(z) / @fn5(g) elseif @ztweaker == "z=z/c+z" z = fn4(z) / @fn5(c) + @fn6(z) elseif @ztweaker == "z=z/x+z" z = fn4(z) / @fn5(x) + @fn6(z) elseif @ztweaker == "z=z/c+c" z = fn4(z) / @fn5(c) + @fn6(c) elseif @ztweaker == "z=z/x+c" z = fn4(z) / @fn5(x) + @fn6(c) elseif @ztweaker == "z=z/g+c" z = fn4(z) / @fn5(g) + @fn6(c) elseif @ztweaker == "z=z-c" z = fn4(z) - @fn5(c) elseif @ztweaker == "z=z-x" z = fn4(z) - @fn5(x) elseif @ztweaker == "z=z-g" z = fn4(z) - @fn5(g) elseif @ztweaker == "z=c-z" z = fn4(c) - @fn5(z) elseif @ztweaker == "z=x-z" z = fn4(x) - @fn5(z) elseif @ztweaker == "z=g-z" z = fn4(g) - @fn5(z) elseif @ztweaker == "z=z/c-z" z = fn4(z) / @fn5(c) - @fn6(z) elseif @ztweaker == "z=z/x-z" z = fn4(z) / @fn5(x) - @fn6(z) elseif @ztweaker == "z=z/g-z" z = fn4(z) / @fn5(g) - @fn6(z) elseif @ztweaker == "z=z/c-c" z = fn4(z) / @fn5(c) - @fn6(c) elseif @ztweaker == "z=z/x-c" z = fn4(z) / @fn5(x) - @fn6(c) elseif @ztweaker == "z=z/g-c" z = fn4(z) / @fn5(g) - @fn6(c) elseif @ztweaker == "z=z-z/c" z = fn4(z) - @fn5(z) / @fn6(c) elseif @ztweaker == "z=z-z/x" z = fn4(z) - @fn5(z) / @fn6(x) elseif @ztweaker == "z=z-z/g" z = fn4(z) - @fn5(z) / @fn6(g) elseif @ztweaker == "z=c-z/c" z = fn4(c) - @fn5(z) / @fn6(c) elseif @ztweaker == "z=c-z/g" z = fn4(c) - @fn5(z) / @fn6(g) elseif @ztweaker == "z=c-z/x" z = fn4(c) - @fn5(z) / @fn6(x) elseif @ztweaker == "z=c/z" z = fn4(c) / @fn5(z) elseif @ztweaker == "z=x/z" z = fn4(x) / @fn5(z) elseif @ztweaker == "z*z+c" z = fn4(z) * @fn5(z) + @fn6(c) elseif @ztweaker == "z*c+z" z = fn4(z) * @fn5(c) + @fn6(z) elseif @ztweaker == "z=g/z" z = fn4(g) / @fn5(z) elseif @ztweaker == "ezz" z = e^fn4(z)* @fn5(z) elseif @ztweaker == "ez/z" z = e^fn4(z)/ @fn5(z) elseif @ztweaker == "ex/z" z = e^fn4(x)/ @fn5(z) elseif @ztweaker == "exz" z = e^fn4(x)* @fn5(z) elseif @ztweaker == "ey/z" z = e^fn4(y)/ @fn5(z) elseif @ztweaker == "eyz" z = e^fn4(y)* @fn5(z) elseif @ztweaker == "z/1-z" z = fn4(z)/(1- @fn5(z)) elseif @ztweaker == "z/1-x" z = fn4(z)/(1-@fn5(x)) elseif @ztweaker == "z/1-y" z = fn4(z)/(1-@fn5(y)) elseif @ztweaker == "zpi" z = fn4(z) ^ #pi elseif @ztweaker == "zpi/z" z = fn4(z) ^ #pi / @fn5(z)^2 elseif @ztweaker == "z^pi/z^z" z = fn4(z) ^ #pi / @fn5(z^z) elseif @ztweaker == "z/pixel" z = @fn5(fn4(z) / #pixel) elseif @ztweaker == "zpixel" z = @fn5(fn4(z) * #pixel) elseif @ztweaker == "z^pixel/z+pixel" z = fn4(z) ^ #pixel /@fn5(z) + pixel elseif @ztweaker == "ez/zpixel" z = e^fn4(z) /(@fn5(z)+ #pixel) elseif @ztweaker == "ez/pixel" z = @fn5(e^fn4(z) /#pixel) elseif @ztweaker == "piz/pixel" z = @fn5(fn4(z)^#pi / #pixel) elseif @ztweaker == "piz/zpixel" z = fn4(z)^#pi /(@fn5(z) + #pixel) elseif @ztweaker == "z+zpixel" z = @fn5(fn4(z) + #pixel) elseif @ztweaker == "z-zpixel" z = @fn5(fn4(z) - #pixel) elseif @ztweaker == "z/zpixel" z = fn4(z) /(@fn5(z) + #pixel) elseif @ztweaker == "z/pixelz" z = fn4(z) /#pixel^@fn5(z) elseif @ztweaker == "ez/pixel" z = @fn5(e^fn4(z)/#pixel) elseif @ztweaker == "c/ez" z = fn4(c / (#e * @fn5(z))) elseif @ztweaker == "z+c/g" z = fn4(@fn5(z) + c / g ) elseif @ztweaker == "x+z/y+c" z = (fn4(x) + z) / (@fn5(y) + c) elseif @ztweaker == "g^z-c" z = @fn5(g ^ (fn4(z) )) - c elseif @ztweaker == "z-x+y/x-y" z = fn4(z) - @p5 + @fn5((x+y)/(x-y)) elseif @ztweaker == "g/c-z" z = fn4(( g )/ (c - @fn5(z))) elseif @ztweaker == "y+c/g" z = fn4(@fn5(y) + c / g ) elseif @ztweaker == "x+y/y+c" z = (fn4(x) + y) / (@fn5(y) + c) elseif @ztweaker == "g^y-c" z = @fn5(g ^ (fn4(y) )) - c elseif @ztweaker == "y-x+y/x-y" z = fn4(y) - @p5 + @fn5((x+y)/(x-y)) elseif @ztweaker == "g/c-y" z = fn4(( g )/ (c - @fn5(y))) elseif @ztweaker == "c/ex" z = fn4(c / (#e * @fn5(x))) elseif @ztweaker == "x+c/g" z = fn4(@fn5(x) + c / g ) elseif @ztweaker == "g^x-c" z = @fn5(g ^(fn4(x))) - c endif if @inv == true z = 1/z else z = z endif if @zpix == true z = ((pixel-p4)*@p5)^(2+ @p6) else z = z endif if @xplus == true z = ((z-p4)*@p5)^(2+ @p6) + x else z = z endif if @yplus == true z = ((z-p4)*@p5)^(2+ @p6) + y else z = z endif if @zpower == true z = ((z-p4)*@p5)^(2+ @p6) ^ z else z = z endif if @xpower == true z = ((z-p4)*@p5)^(2+ @p6)^x else z = z endif if @ypower == true z = ((z-p4)*@p5)^(2+ @p6)^y else z = z endif if @gpower == true ; hpower showed no effect z = ((z-p4)*@p5)^(2+ @p6)^g else z = z endif if @gplus == true ; hplus showed no effect z = ((z-p4)*@p5)^(2+ @p6) + g else z = z endif if @func1 == true z = fn4((z-p4)*@p5) else z = z endif if @func2 == true z = @fn5(fn4((z-p4)*@p5)) else z = z endif if @func3 == true z = @fn6(@fn5(fn4((z-p4)*@p5))) else z = z endif if @funcpowerz == true z = ((z-p4)*@p5)^fn4(z) else z = z endif if @funcpowerx == true z = ((z-p4)*@p5)^fn4(x) else z = z endif if @funcpowery == true z = ((z-p4)*@p5)^fn4(y) else z = z endif if @funcpowerg == true ; funcpowerh no effect z = ((z-p4)*@p5)^fn4(g) else z = z endif if @ez == true z = e^z else z = z endif if @zpi == true z = z^#pi else z = z endif if @ztopidivzpi == true z = z^#pi/(z*#pi) else z = z endif if @zpidivztopi == true z = z*#pi/(z^#pi) else z = z endif if @flavor == "z" z = fn4((z-p4)*@p5) elseif @flavor == "z^2 + c" z = fn4((z-p4)*@p5)^@fn6(2+ @p6) + @fn6(c) elseif @flavor == "z^(z/c)" z = fn4((z-p4)*@p5)^@fn5((z-p4)*@p5) + @fn6(@p6/c) elseif @flavor == "z/(z-1)" z = fn4((z-p4)*@p5)/@fn5(((z-p4)*@p5) -1) + @fn6(@p6*c) elseif @flavor == "z^2/(z-1)" z = fn4((z-p4)*@p5)^(2+ @p6)/@fn5(((z-p4)*@p5) -1) + @fn6(@p6*c) elseif @flavor == "z^3/(z^2-1)" z = fn4((z-p4)*@p5)^(3+ @p6)/@fn5(((z-p4)*@p5)^(2+ @p6) -1)\ +@fn6(@p6*c) elseif @flavor == "z^3*c/(z^2-c)" z = fn4((z-p4)*@p5)^(3+ @p6)*c/@fn5(((z-p4)*@p5)^(2+@p6) - c)\ - @fn6(@p6*c) elseif @flavor == "z^3+z^2+z+c" z = fn4((z-p4)*@p5)^(3+ @p6)+((z-p4)*@p5)^(2+ @p6)+@fn5((z-p4)*@p5)\ ^(2+ @p6)+ @fn6(@p6*c) elseif @flavor == "fnzfnzfnz" z = fn4((z-p4)*@p5)*@fn5((z-p4)*@p5)*@fn6((z-p4)*@p5) + @p6*c elseif @flavor == "fnzpfnzpfnzp" z = fn4((z-p4)*@p5)^(2+ @p6)*@fn5((z-p4)*@p5)^(2+ @p6)*@fn6((z-p4)\ ^(2+ @p6)*@p5) + @p6*c elseif @flavor == "fnzfnz/fnz" z = fn4((z-p4)*@p5)*@fn5((z-p4)*@p5)/@fn6((z-p4)*@p5) + @p6*c elseif @flavor == "fnzpfnzp/fnzp" z = fn4((z-p4)*@p5)^(2+ @p6)*@fn5((z-p4)*@p5)^(2+ @p6)/@fn6((z-p4)\ ^(2+ @p6)*@p5) + @p6*c elseif @flavor == "zzz" z = fn4((z-p4)*@p5)*@fn5((z-p4)*@p5)*@fn6((z-p4)*@p5) + @p6*c elseif @flavor == "z^pz^pz^p" z = fn4((z-p4)*@p5)^(2+ @p6)*@fn5((z-p4)*@p5)^(2+ @p6)*@fn6((z-p4)\ ^(2+ @p6)*@p5) + @p6*c elseif @flavor == "zz/z" z = fn4((z-p4)*@p5)*@fn5((z-p4)*@p5)/@fn6(z-p4)+ @p6*c elseif @flavor == "z^pz^p/z^p" z = fn4((z-p4)*@p5)^(2+ @p6)*@fn5((z-p4)*@p5)^(2+ @p6)/@fn6((z-p4)\ ^(2+ @p6)*@p5) + @p6*c elseif @flavor == "z^3-z^2+c" z = fn4((z-p4)*@p5)^(3+ @p6)-@fn5((z-p4)*@p5)^(2+ @p6)+ @fn6(@p6*c) endif if @cchange == "Orig" c = c^@expC elseif @cchange == "Real" c = real(c)^@expC elseif @cchange == "Imag" c = imag(c)^@expC elseif @cchange == "Sign" c = -c^@expC elseif @cchange == "Squared" c = c^2+@expC elseif @cchange == "Exponent" c = e^c^@expC elseif @cchange == "Inverse" c = 1 / c^@expC elseif @cchange == "Inv/Exp" c = 1 / e^c^@expC elseif @cchange == "C/Exp" c = c^@expC / e^c^@expC elseif @cchange == "SQRPixel" c = sqr(pixel)/3 elseif @cchange == "CPower" c = c^c elseif @cchange == "EPower" c = c^(e+c) elseif @cchange == "ZPower" c = c^z elseif @cchange == "CPower3" c = c^c^c elseif @cchange == "CFunction" c = c^((z-@p4)*@p5)^@fnc(2 + @p6) elseif @cchange == "Function" c = @fnc(c^@expC) endif endif if @op == "+" z = 3 / (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 )))))))))) + c elseif @op == "-" z = 3 / (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )- ((@fn2 ( z + p2 )- (p2)-\ (4 ^ z ^ (sqrt (p1 )))))))))) + c elseif @op == "*" z = 3 / (fn1 ( fn1 ( z - @fn2 ( z * (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 )))))))))) + c elseif @op == "/" z = 3 / (fn1 ( fn1 ( z - @fn2 ( z / (fn1 ( z ^ p1 )/ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 )))))))))) + c elseif @op == "^" z = 3 / (fn1 ( fn1 ( z - @fn2 ( z ^ (fn1 ( z ^ p1 )^ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 )))))))))) + c elseif @op == "sin" z = sin(3 /sin (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "sinh" z = sinh(3 / sinh(fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "asin" z = asin(3 / asin(fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "asinh" z = asinh(3 / asinh(fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "cos" z = cos(3 /cos (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "cosh" z = cosh(3 / cosh(fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "acos" z = acos(3 /acos (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "acosh" z = acosh(3 / acosh(fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "tan" z = tan( 3 / tan(fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "atan" z = atan(3 /atan (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "tanh" z = tanh( 3 /tanh (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "atanh" z = atanh(3 /atanh (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "cotan" z = cotan(3 / cotan(fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "cotanh" z = cotanh(3 /cotanh (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "sqr" z = sqr(3 /sqr (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "sqrt" z = sqrt(3 /sqrt (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "log" z = log(3 /log (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "exp" z = exp(3 /exp (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "abs" z = abs(3 /abs (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "cabs" z = cabs(3 / cabs(fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "conj" z = conj(3 / conj(fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "flip" z = flip(3 /flip (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "ident" z = ident(3 / ident(fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "zero" z = zero(3 /zero (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "recip" z = recip(3 / recip(fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "ceil" z = ceil(3 /ceil (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "floor" z = floor(3 / floor(fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "trunc" z = trunc(3 /trunc (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "round" z = round(3 /round (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c endif bailout: (@bailchoice == 0 && |z| <= @bailout) || \ (@bailchoice == 1 && real(sqr(z)) <= @bailout) || \ (@bailchoice == 2 && imag(sqr(z)) <= @bailout) || \ (@bailchoice == 3 && sqr(real(z)) <= @bailout) || \ (@bailchoice == 4 && sqr(imag(z)) <= @bailout) || \ (@bailchoice == 5 && (sqr(real(z)) <= @bailout && sqr(imag(z)) < @bailout)) || \ (@bailchoice == 6 && (sqr(real(z)) <= @bailout || sqr(imag(z)) < @bailout)) || \ (@bailchoice == 7 && (sqr(abs(real(z)) + abs(imag(z))) <= @bailout)) || \ (@bailchoice == 8 && (sqr(real(z) + imag(z)) <= @bailout)) default: title = "JosephJulia" periodicity = 0 angle = 0.01 heading caption = "Parameters" endheading int param bailout caption = "Bailout value" default = 122 min = 1 endparam param bailchoice caption = "Bailout Choice" default = 0 enum = "|z|" "Real(Z^2)""Imag(Z^2)""Real(Z)^2""Imag(Z)^2"\ "Real & Imag""Real or Imag""Sqr(Abs(Real&Imag)" "Sqr(Real&Imag)" endparam param op caption = "Operator" enum = "+""-""*""/""^""sin""sinh""asin""asinh"\ "cos""cosh""acos""acosh""tan""tanh""atan""atanh"\ "cotan""cotanh""sqr""sqrt""log""exp"\ "abs""cabs""conj""flip""ident""zero""recip" \ "ceil""floor""trunc" "round" default = 0 endparam complex param p1 caption = "Param 1" default = (0,0) endparam complex param p2 caption = "Param 2" default = (0,0) endparam complex param p3 caption = "Param 3" default = (0,0) endparam param p4 caption = "Subtracter" default = (0,0) endparam param @p5 caption = "Mulitplier" default = (1,0) endparam param @p6 caption = "Power" default = (0,0) endparam param seed caption= "Julia seed" default = (0,0) endparam heading caption = "Affecters of Z" endheading bool param inv caption = "Invert Z" default = false endparam bool param zpix caption = "Z=Pixel" default = false endparam bool param xplus caption = "Add X" default = false endparam bool param yplus caption = "Add Y" default = false endparam bool param Zpower caption = "Z^Z" default = false endparam bool param Xpower caption = "Z^X" default = false endparam bool param Ypower caption = "Z^Y" default = false endparam bool param Gpower caption = "Z^G" default = false endparam bool param Gplus caption = "Z+G" default = false endparam bool param func1 caption = "Fn(Z)" default = false endparam bool param func2 caption = "@fn5(fn4(Z))" default = false endparam bool param func3 caption = "@fn6(@fn5(fn4(Z)))" default = false endparam bool param funcpowerz caption = "Function Power" default = false endparam bool param funcpowerx caption = "Function Power of X" default = false endparam bool param funcpowery caption = "Function Power of Y" default = false endparam bool param funcpowerg caption = "Function Power of G" default = false endparam bool param ez caption = "Euler times Z" default = false endparam bool param zpi caption = "Pi times Z" default = false endparam bool param ztopidivzpi caption = "Z^Pi/Z*Pi" default = false endparam bool param zpidivztopi caption = "Z*Pi/Z^Pi" default = false endparam param cchange caption = "Nuance of C" enum = "Orig""Real""Imag""Sign""Squared"\ "Exponent""Inverse""Inv/Exp""C/Exp"\ "SQRPixel""CPower""EPower""ZPower"\ "CPower3""CFunction""Function" default = 0 endparam func fnc caption = "C Function" default = sqr() visible = @cchange == "Function" ||\ @cchange == "CFunction" endfunc float param expC caption = "Power of C" default = 1.0 endparam param ztweaker caption = "Z Tweaker" enum = "z=orig""z=z+c""z=z+x""z=z+y""z=z+g"\ "z=z*c""z=z*x""z=z*y""z=z*g""z=z/c""z=z/x""z=z/g"\ "z=z/c+z""z=z/x+z""z=z/c+c""z=z/x+c"\ "z=z/g+c""z=z-c""z=z-x""z=z-g""z=c-z""z=x-z"\ "z=g-z""z=z/c-z""z=z/x-z""z=z/g-z""z=z/c-c""z=z/x-c"\ "z=z/g-c""z=z-z/c""z=z-z/x""z=z-z/g""z=c-z/c"\ "z=c-z/x""z=c-z/g""z=c/z""z=x/z""z=g/z""z*z+c""z*c+z"\ "ezz""ez/z""exz""ex/z""eyz""ey/z""z/1-z""z/1-x""z/1-y"\ "zpi""zpi/z""z^pi/z^z""zpixel""z/pixelz"\ "z/zpixel""z^pixel/z+pixel""ez/zpixel""z/pixel""piz/pixel"\ "piz/zpixel""z-zpixel""ez/pixel""z+zpixel"\ "c/ez""z+c/g""x+z/y+c""g^z-c""z-x+y/x-y""g/c-z"\ "y+c/g""x+y/y+c""g^y-c""y-x+y/x-y""g/c-y"\ "g/c-x""g^x-c""x+c/g""c/ex" default = 0 endparam param flavor caption = "Formula Flavor" enum = "z""z^2 + c""z^(z/c)""z/(z-1)""z^2/(z-1)""z^3/(z^2-1)"\ "z^3*c/(z^2-c)""z^3+z^2+z+c""fnzfnzfnz""fnzpfnzpfnzp"\ "fnzfnz/fnz""fnzpfnzp/fnzp""zzz""z^pz^pz^p"\ "zz/z""z^pz^p/z^p""z^3-z^2+c" default = 0 endparam param style caption = "Variation in Style" enum = "z""fn(z^(2+power))""fn(x-y)""fn(y-x)"\ "fn(x^2-y^2)""(fn(y-x))" "(fn(x^2-y^2))"\ "fn(x^e)""fn(y^e)""fn(x^pi)""fn(y^pi)"\ "fn(z-x)^fn(z-y)""fn(z+x)^fn(z+y)" default = 0 endparam heading caption = "Functions" endheading func fn1 caption = "Function 1" default = sqr() endfunc func fn2 caption = "Function 2" default = round() endfunc func fn3 caption = "Function 3" default = sin() endfunc func fn4 caption = "Function(1) of Z" default = ident() endfunc func @fn5 caption = "Functions(2) of z" default = ident() endfunc func @fn6 caption = "Functions(3) of z" default = ident() endfunc param version caption = "Version" default = 3.0 endparam switch: type = "JosephMandelbrot" p1 = #pixel bailout = @bailout inv = @inv fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 fn4 = @fn4 @fn5 = @fn5 @fn6 = @fn6 xpower = @xpower ypower = @ypower zpower = @zpower gpower = @gpower x = @x y = @y g = @g gplus = @gplus xplus = @xplus yplus = @yplus func1 = @func1 func2 = @func2 func3 = @func3 ;p1 = @p1 p2 = @p2 p3 = @p3 p4 = @p4 @p5 = @p5 @p6 = @p6 funcpowerx = @funcpowerx funcpowery = @funcpowery funcpowerz = @funcpowerz funcpowerg = @funcpowerg fnc = @fnc expC = @expC style = @style ztweaker = @ztweaker bailchoice = @bailchoice cchange = @cchange flavor = @flavor zpix = @zpix inv = @inv ez = @ez zpi = @zpi ztopidivzpi = ztopidivzpi zpidivztopi = @zpidivztopi } JosephMandelbrot{ ; Ver 3.0 6-7-04 fixed switch errors. Also added style, etc. ; Ver 2.0 Sean Pratz bailout system has been modified for bailchoice. ; By Dolf De Rovira 2-18-04 - Based off of Jayce Cruel's Random Generator and ; the standard Julia Formulation in Ultra Fractal (R) Standard Formula. ; Parameter 3 1,0 and 1,1 yield interesting results with Function 1 = asin and ; Function 4 =sqr. ; Also, Leaving Parameter 3 as 1,1, Parameter 4 as 1,0 and 1,1 also yield very ; interesting results. ; As well as Parameter 3 1,1, Parameter 4 1,1 and Parameter 6 = 1,0 init: z = @start c = #pixel loop: float x = Real(z) float y = Imag(z) float g = real(#pixel) if @version > 2.0 if @style == "z" z = fn4((z-p4)*@p5) elseif @style == "fn(z^(2+power))" z = fn4((z-p4)*@p5)^@fn5(2+ @p6) + @fn6(c) elseif @style == "fn(x-y)" z = fn4((z-p4)*@p5)^@fn5(2+ @p6) + fn4(x-y) + @fn6(c) elseif @style == "(fn(y-x))" z = fn4((z-p4)*@p5)^@fn5(2+ @p6+ fn4(y-x)) + @fn6(c) elseif @style =="(fn(x^2-y^2))" z = fn4((z-p4)*@p5)^@fn5(2+ @p6+ fn4(y^2-x^2)) + @fn6(c) elseif @style =="fn(x^2-y^2)" z = fn4((z-p4)*@p5)^@fn5(2+ @p6)+ fn4(y^2-x^2) + @fn6(c) elseif @style =="fn(x^e)" z = fn4(x)^@fn5(e) + @fn6(c) elseif @style =="fn(y^e)" z = fn4(y)^@fn5(e) + @fn6(c) elseif @style =="fn(x^pi)" z = fn4(x)^@fn5(#pi)+@fn6(c) elseif @style =="fn(y^pi)" z = fn4(y)^@fn5(#pi) +@fn6(c) elseif @style =="fn(z-x)^fn(z-y)" z = fn4(z-x)^@fn5(z-y)+@fn6(c) elseif @style =="fn(z+x)^fn(z+y)" z = fn4(z+x)^@fn5(z+y)+@fn6(c) endif if @ztweaker == "z=orig" z = fn4(z) elseif @ztweaker == "z=z+c" z = fn4(z) + @fn5(c) elseif @ztweaker == "z=z+x" z = fn4(z) + @fn5(x) elseif @ztweaker == "z=z+y" z = fn4(z) + @fn5(y) elseif @ztweaker == "z=z+g" z = fn4(z) + @fn5(g) elseif @ztweaker == "z=z*c" z = fn4(z) * @fn5(c) elseif @ztweaker == "z=z*x" z = fn4(z) * @fn5(x) elseif @ztweaker == "z=z*y" z = fn4(z) * @fn5(y) elseif @ztweaker == "z=z*g" z = fn4(z) * @fn5(g) elseif @ztweaker == "z=z/c" z = fn4(z) / @fn5(c) elseif @ztweaker == "z=z/x" z = fn4(z) / @fn5(x) elseif @ztweaker == "z=z/g" z = fn4(z) / @fn5(g) elseif @ztweaker == "z=z/c+z" z = fn4(z) / @fn5(c) + @fn6(z) elseif @ztweaker == "z=z/x+z" z = fn4(z) / @fn5(x) + @fn6(z) elseif @ztweaker == "z=z/c+c" z = fn4(z) / @fn5(c) + @fn6(c) elseif @ztweaker == "z=z/x+c" z = fn4(z) / @fn5(x) + @fn6(c) elseif @ztweaker == "z=z/g+c" z = fn4(z) / @fn5(g) + @fn6(c) elseif @ztweaker == "z=z-c" z = fn4(z) - @fn5(c) elseif @ztweaker == "z=z-x" z = fn4(z) - @fn5(x) elseif @ztweaker == "z=z-g" z = fn4(z) - @fn5(g) elseif @ztweaker == "z=c-z" z = fn4(c) - @fn5(z) elseif @ztweaker == "z=x-z" z = fn4(x) - @fn5(z) elseif @ztweaker == "z=g-z" z = fn4(g) - @fn5(z) elseif @ztweaker == "z=z/c-z" z = fn4(z) / @fn5(c) - @fn6(z) elseif @ztweaker == "z=z/x-z" z = fn4(z) / @fn5(x) - @fn6(z) elseif @ztweaker == "z=z/g-z" z = fn4(z) / @fn5(g) - @fn6(z) elseif @ztweaker == "z=z/c-c" z = fn4(z) / @fn5(c) - @fn6(c) elseif @ztweaker == "z=z/x-c" z = fn4(z) / @fn5(x) - @fn6(c) elseif @ztweaker == "z=z/g-c" z = fn4(z) / @fn5(g) - @fn6(c) elseif @ztweaker == "z=z-z/c" z = fn4(z) - @fn5(z) / @fn6(c) elseif @ztweaker == "z=z-z/x" z = fn4(z) - @fn5(z) / @fn6(x) elseif @ztweaker == "z=z-z/g" z = fn4(z) - @fn5(z) / @fn6(g) elseif @ztweaker == "z=c-z/c" z = fn4(c) - @fn5(z) / @fn6(c) elseif @ztweaker == "z=c-z/g" z = fn4(c) - @fn5(z) / @fn6(g) elseif @ztweaker == "z=c-z/x" z = fn4(c) - @fn5(z) / @fn6(x) elseif @ztweaker == "z=c/z" z = fn4(c) / @fn5(z) elseif @ztweaker == "z=x/z" z = fn4(x) / @fn5(z) elseif @ztweaker == "z*z+c" z = fn4(z) * @fn5(z) + @fn6(c) elseif @ztweaker == "z*c+z" z = fn4(z) * @fn5(c) + @fn6(z) elseif @ztweaker == "z=g/z" z = fn4(g) / @fn5(z) elseif @ztweaker == "ezz" z = e^fn4(z)* @fn5(z) elseif @ztweaker == "ez/z" z = e^fn4(z)/ @fn5(z) elseif @ztweaker == "ex/z" z = e^fn4(x)/ @fn5(z) elseif @ztweaker == "exz" z = e^fn4(x)* @fn5(z) elseif @ztweaker == "ey/z" z = e^fn4(y)/ @fn5(z) elseif @ztweaker == "eyz" z = e^fn4(y)* @fn5(z) elseif @ztweaker == "z/1-z" z = fn4(z)/(1- @fn5(z)) elseif @ztweaker == "z/1-x" z = fn4(z)/(1-@fn5(x)) elseif @ztweaker == "z/1-y" z = fn4(z)/(1-@fn5(y)) elseif @ztweaker == "zpi" z = fn4(z) ^ #pi elseif @ztweaker == "zpi/z" z = fn4(z) ^ #pi / @fn5(z)^2 elseif @ztweaker == "z^pi/z^z" z = fn4(z) ^ #pi / @fn5(z^z) elseif @ztweaker == "z/pixel" z = @fn5(fn4(z) / #pixel) elseif @ztweaker == "zpixel" z = @fn5(fn4(z) * #pixel) elseif @ztweaker == "z^pixel/z+pixel" z = fn4(z) ^ #pixel /@fn5(z) + pixel elseif @ztweaker == "ez/zpixel" z = e^fn4(z) /(@fn5(z)+ #pixel) elseif @ztweaker == "ez/pixel" z = @fn5(e^fn4(z) /#pixel) elseif @ztweaker == "piz/pixel" z = @fn5(fn4(z)^#pi / #pixel) elseif @ztweaker == "piz/zpixel" z = fn4(z)^#pi /(@fn5(z) + #pixel) elseif @ztweaker == "z+zpixel" z = @fn5(fn4(z) + #pixel) elseif @ztweaker == "z-zpixel" z = @fn5(fn4(z) - #pixel) elseif @ztweaker == "z/zpixel" z = fn4(z) /(@fn5(z) + #pixel) elseif @ztweaker == "z/pixelz" z = fn4(z) /#pixel^@fn5(z) elseif @ztweaker == "ez/pixel" z = @fn5(e^fn4(z)/#pixel) elseif @ztweaker == "c/ez" z = fn4(c / (#e * @fn5(z))) elseif @ztweaker == "z+c/g" z = fn4(@fn5(z) + c / g ) elseif @ztweaker == "x+z/y+c" z = (fn4(x) + z) / (@fn5(y) + c) elseif @ztweaker == "g^z-c" z = @fn5(g ^ (fn4(z) )) - c elseif @ztweaker == "z-x+y/x-y" z = fn4(z) - @p5 + @fn5((x+y)/(x-y)) elseif @ztweaker == "g/c-z" z = fn4(( g )/ (c - @fn5(z))) elseif @ztweaker == "y+c/g" z = fn4(@fn5(y) + c / g ) elseif @ztweaker == "x+y/y+c" z = (fn4(x) + y) / (@fn5(y) + c) elseif @ztweaker == "g^y-c" z = @fn5(g ^ (fn4(y) )) - c elseif @ztweaker == "y-x+y/x-y" z = fn4(y) - @p5 + @fn5((x+y)/(x-y)) elseif @ztweaker == "g/c-y" z = fn4(( g )/ (c - @fn5(y))) elseif @ztweaker == "c/ex" z = fn4(c / (#e * @fn5(x))) elseif @ztweaker == "x+c/g" z = fn4(@fn5(x) + c / g ) elseif @ztweaker == "g^x-c" z = @fn5(g ^(fn4(x))) - c endif if @inv == true z = 1/z else z = z endif if @zpix == true z = ((pixel-p4)*@p5)^(2+ @p6) else z = z endif if @xplus == true z = ((z-p4)*@p5)^(2+ @p6) + x else z = z endif if @yplus == true z = ((z-p4)*@p5)^(2+ @p6) + y else z = z endif if @zpower == true z = ((z-p4)*@p5)^(2+ @p6) ^ z else z = z endif if @xpower == true z = ((z-p4)*@p5)^(2+ @p6)^x else z = z endif if @ypower == true z = ((z-p4)*@p5)^(2+ @p6)^y else z = z endif if @gpower == true ; hpower showed no effect z = ((z-p4)*@p5)^(2+ @p6)^g else z = z endif if @gplus == true ; hplus showed no effect z = ((z-p4)*@p5)^(2+ @p6) + g else z = z endif if @func1 == true z = fn4((z-p4)*@p5) else z = z endif if @func2 == true z = @fn5(fn4((z-p4)*@p5)) else z = z endif if @func3 == true z = @fn6(@fn5(fn4((z-p4)*@p5))) else z = z endif if @funcpowerz == true z = ((z-p4)*@p5)^fn4(z) else z = z endif if @funcpowerx == true z = ((z-p4)*@p5)^fn4(x) else z = z endif if @funcpowery == true z = ((z-p4)*@p5)^fn4(y) else z = z endif if @funcpowerg == true ; funcpowerh no effect z = ((z-p4)*@p5)^fn4(g) else z = z endif if @ez == true z = e^z else z = z endif if @zpi == true z = z^#pi else z = z endif if @ztopidivzpi == true z = z^#pi/(z*#pi) else z = z endif if @zpidivztopi == true z = z*#pi/(z^#pi) else z = z endif if @flavor == "z" z = fn4((z-p4)*@p5) elseif @flavor == "z^2 + c" z = fn4((z-p4)*@p5)^@fn6(2+ @p6) + @fn6(c) elseif @flavor == "z^(z/c)" z = fn4((z-p4)*@p5)^@fn5((z-p4)*@p5) + @fn6(@p6/c) elseif @flavor == "z/(z-1)" z = fn4((z-p4)*@p5)/@fn5(((z-p4)*@p5) -1) + @fn6(@p6*c) elseif @flavor == "z^2/(z-1)" z = fn4((z-p4)*@p5)^(2+ @p6)/@fn5(((z-p4)*@p5) -1) + @fn6(@p6*c) elseif @flavor == "z^3/(z^2-1)" z = fn4((z-p4)*@p5)^(3+ @p6)/@fn5(((z-p4)*@p5)^(2+ @p6) -1)\ +@fn6(@p6*c) elseif @flavor == "z^3*c/(z^2-c)" z = fn4((z-p4)*@p5)^(3+ @p6)*c/@fn5(((z-p4)*@p5)^(2+@p6) - c)\ - @fn6(@p6*c) elseif @flavor == "z^3+z^2+z+c" z = fn4((z-p4)*@p5)^(3+ @p6)+((z-p4)*@p5)^(2+ @p6)+@fn5((z-p4)*@p5)\ ^(2+ @p6)+ @fn6(@p6*c) elseif @flavor == "fnzfnzfnz" z = fn4((z-p4)*@p5)*@fn5((z-p4)*@p5)*@fn6((z-p4)*@p5) + @p6*c elseif @flavor == "fnzpfnzpfnzp" z = fn4((z-p4)*@p5)^(2+ @p6)*@fn5((z-p4)*@p5)^(2+ @p6)*@fn6((z-p4)\ ^(2+ @p6)*@p5) + @p6*c elseif @flavor == "fnzfnz/fnz" z = fn4((z-p4)*@p5)*@fn5((z-p4)*@p5)/@fn6((z-p4)*@p5) + @p6*c elseif @flavor == "fnzpfnzp/fnzp" z = fn4((z-p4)*@p5)^(2+ @p6)*@fn5((z-p4)*@p5)^(2+ @p6)/@fn6((z-p4)\ ^(2+ @p6)*@p5) + @p6*c elseif @flavor == "zzz" z = fn4((z-p4)*@p5)*@fn5((z-p4)*@p5)*@fn6((z-p4)*@p5) + @p6*c elseif @flavor == "z^pz^pz^p" z = fn4((z-p4)*@p5)^(2+ @p6)*@fn5((z-p4)*@p5)^(2+ @p6)*@fn6((z-p4)\ ^(2+ @p6)*@p5) + @p6*c elseif @flavor == "zz/z" z = fn4((z-p4)*@p5)*@fn5((z-p4)*@p5)/@fn6(z-p4)+ @p6*c elseif @flavor == "z^pz^p/z^p" z = fn4((z-p4)*@p5)^(2+ @p6)*@fn5((z-p4)*@p5)^(2+ @p6)/@fn6((z-p4)\ ^(2+ @p6)*@p5) + @p6*c elseif @flavor == "z^3-z^2+c" z = fn4((z-p4)*@p5)^(3+ @p6)-@fn5((z-p4)*@p5)^(2+ @p6)+ @fn6(@p6*c) endif if @cchange == "Orig" c = c^@expC elseif @cchange == "Real" c = real(c)^@expC elseif @cchange == "Imag" c = imag(c)^@expC elseif @cchange == "Sign" c = -c^@expC elseif @cchange == "Squared" c = c^2+@expC elseif @cchange == "Exponent" c = e^c^@expC elseif @cchange == "Inverse" c = 1 / c^@expC elseif @cchange == "Inv/Exp" c = 1 / e^c^@expC elseif @cchange == "C/Exp" c = c^@expC / e^c^@expC elseif @cchange == "SQRPixel" c = sqr(pixel)/3 elseif @cchange == "CPower" c = c^c elseif @cchange == "EPower" c = c^(e+c) elseif @cchange == "ZPower" c = c^z elseif @cchange == "CPower3" c = c^c^c elseif @cchange == "CFunction" c = c^((z-@p4)*@p5)^@fnc(2 + @p6) elseif @cchange == "Function" c = @fnc(c^@expC) endif endif if @op == "+" z = 3 / (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 )))))))))) + c elseif @op == "-" z = 3 / (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )- ((@fn2 ( z + p2 )- (p2)-\ (4 ^ z ^ (sqrt (p1 )))))))))) + c elseif @op == "*" z = 3 / (fn1 ( fn1 ( z - @fn2 ( z * (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 )))))))))) + c elseif @op == "/" z = 3 / (fn1 ( fn1 ( z - @fn2 ( z / (fn1 ( z ^ p1 )/ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 )))))))))) + c elseif @op == "^" z = 3 / (fn1 ( fn1 ( z - @fn2 ( z ^ (fn1 ( z ^ p1 )^ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 )))))))))) + c elseif @op == "sin" z = sin(3 /sin (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "sinh" z = sinh(3 / sinh(fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "asin" z = asin(3 / asin(fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "asinh" z = asinh(3 / asinh(fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "cos" z = cos(3 /cos (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "cosh" z = cosh(3 / cosh(fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "acos" z = acos(3 /acos (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "acosh" z = acosh(3 / acosh(fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "tan" z = tan( 3 / tan(fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "atan" z = atan(3 /atan (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "tanh" z = tanh( 3 /tanh (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "atanh" z = atanh(3 /atanh (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "cotan" z = cotan(3 / cotan(fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "cotanh" z = cotanh(3 /cotanh (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "sqr" z = sqr(3 /sqr (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "sqrt" z = sqrt(3 /sqrt (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "log" z = log(3 /log (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "exp" z = exp(3 /exp (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "abs" z = abs(3 /abs (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "cabs" z = cabs(3 / cabs(fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "conj" z = conj(3 / conj(fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "flip" z = flip(3 /flip (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "ident" z = ident(3 / ident(fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "zero" z = zero(3 /zero (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "recip" z = recip(3 / recip(fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "ceil" z = ceil(3 /ceil (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "floor" z = floor(3 / floor(fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "trunc" z = trunc(3 /trunc (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c elseif @op == "round" z = round(3 /round (fn1 ( fn1 ( z - @fn2 ( z + (fn1 ( z ^ p1 )+ ((@fn2 ( z - p2 )+ (p2)-\ (4 ^ z ^ (sqrt (p1 ))))))))))) + c endif bailout: (@bailchoice == 0 && |z| <= @bailout) || \ (@bailchoice == 1 && real(sqr(z)) <= @bailout) || \ (@bailchoice == 2 && imag(sqr(z)) <= @bailout) || \ (@bailchoice == 3 && sqr(real(z)) <= @bailout) || \ (@bailchoice == 4 && sqr(imag(z)) <= @bailout) || \ (@bailchoice == 5 && (sqr(real(z)) <= @bailout && sqr(imag(z)) < @bailout)) || \ (@bailchoice == 6 && (sqr(real(z)) <= @bailout || sqr(imag(z)) < @bailout)) || \ (@bailchoice == 7 && (sqr(abs(real(z)) + abs(imag(z))) <= @bailout)) || \ (@bailchoice == 8 && (sqr(real(z) + imag(z)) <= @bailout)) default: title = "JosephMandelbrot" periodicity = 0 angle = 0.01 heading caption = "Parameters" endheading param start caption = "Start Parameter" default = (0,0) endparam int param bailout caption = "Bailout value" default = 16 max = 122 min = 1 endparam param bailchoice caption = "Bailout Choice" default = 0 enum = "|z|" "Real(Z^2)""Imag(Z^2)""Real(Z)^2""Imag(Z)^2"\ "Real & Imag""Real or Imag""Sqr(Abs(Real&Imag)" "Sqr(Real&Imag)" endparam param op caption = "Operator" enum = "+""-""*""/""^""sin""sinh""asin""asinh"\ "cos""cosh""acos""acosh""tan""tanh""atan""atanh"\ "cotan""cotanh""sqr""sqrt""log""exp"\ "abs""cabs""conj""flip""ident""zero""recip" \ "ceil""floor""trunc" "round" default = 0 endparam complex param p1 caption = "Param 1" default = (0,0) endparam complex param p2 caption = "Param 2" default = (0,0) endparam complex param p3 caption = "Param 3" default = (0,0) endparam param p4 caption = "Subtracter" default = (0,0) endparam param @p5 caption = "Mulitplier" default = (1,0) endparam param @p6 caption = "Power" default = (0,0) endparam heading caption = "Affecters of Z" endheading bool param inv caption = "Invert Z" default = false endparam bool param zpix caption = "Z=Pixel" default = false endparam bool param xplus caption = "Add X" default = false endparam bool param yplus caption = "Add Y" default = false endparam bool param Zpower caption = "Z^Z" default = false endparam bool param Xpower caption = "Z^X" default = false endparam bool param Ypower caption = "Z^Y" default = false endparam bool param Gpower caption = "Z^G" default = false endparam bool param Gplus caption = "Z+G" default = false endparam bool param func1 caption = "Fn(Z)" default = false endparam bool param func2 caption = "@fn5(fn4(Z))" default = false endparam bool param func3 caption = "@fn6(@fn5(fn4(Z)))" default = false endparam bool param funcpowerz caption = "Function Power" default = false endparam bool param funcpowerx caption = "Function Power of X" default = false endparam bool param funcpowery caption = "Function Power of Y" default = false endparam bool param funcpowerg caption = "Function Power of G" default = false endparam bool param ez caption = "Euler times Z" default = false endparam bool param zpi caption = "Pi times Z" default = false endparam bool param ztopidivzpi caption = "Z^Pi/Z*Pi" default = false endparam bool param zpidivztopi caption = "Z*Pi/Z^Pi" default = false endparam param cchange caption = "Nuance of C" enum = "Orig""Real""Imag""Sign""Squared"\ "Exponent""Inverse""Inv/Exp""C/Exp"\ "SQRPixel""CPower""EPower""ZPower"\ "CPower3""CFunction""Function" default = 0 endparam func fnc caption = "C Function" default = sqr() visible = @cchange == "Function" ||\ @cchange == "CFunction" endfunc float param expC caption = "Power of C" default = 1.0 endparam param ztweaker caption = "Z Tweaker" enum = "z=orig""z=z+c""z=z+x""z=z+y""z=z+g"\ "z=z*c""z=z*x""z=z*y""z=z*g""z=z/c""z=z/x""z=z/g"\ "z=z/c+z""z=z/x+z""z=z/c+c""z=z/x+c"\ "z=z/g+c""z=z-c""z=z-x""z=z-g""z=c-z""z=x-z"\ "z=g-z""z=z/c-z""z=z/x-z""z=z/g-z""z=z/c-c""z=z/x-c"\ "z=z/g-c""z=z-z/c""z=z-z/x""z=z-z/g""z=c-z/c"\ "z=c-z/x""z=c-z/g""z=c/z""z=x/z""z=g/z""z*z+c""z*c+z"\ "ezz""ez/z""exz""ex/z""eyz""ey/z""z/1-z""z/1-x""z/1-y"\ "zpi""zpi/z""z^pi/z^z""zpixel""z/pixelz"\ "z/zpixel""z^pixel/z+pixel""ez/zpixel""z/pixel""piz/pixel"\ "piz/zpixel""z-zpixel""ez/pixel""z+zpixel"\ "c/ez""z+c/g""x+z/y+c""g^z-c""z-x+y/x-y""g/c-z"\ "y+c/g""x+y/y+c""g^y-c""y-x+y/x-y""g/c-y"\ "g/c-x""g^x-c""x+c/g""c/ex" default = 0 endparam param flavor caption = "Formula Flavor" enum = "z""z^2 + c""z^(z/c)""z/(z-1)""z^2/(z-1)""z^3/(z^2-1)"\ "z^3*c/(z^2-c)""z^3+z^2+z+c""fnzfnzfnz""fnzpfnzpfnzp"\ "fnzfnz/fnz""fnzpfnzp/fnzp""zzz""z^pz^pz^p"\ "zz/z""z^pz^p/z^p""z^3-z^2+c" default = 0 endparam param style caption = "Variation in Style" enum = "z""fn(z^(2+power))""fn(x-y)""fn(y-x)"\ "fn(x^2-y^2)""(fn(y-x))" "(fn(x^2-y^2))"\ "fn(x^e)""fn(y^e)""fn(x^pi)""fn(y^pi)"\ "fn(z-x)^fn(z-y)""fn(z+x)^fn(z+y)" default = 0 endparam heading caption = "Functions" endheading func fn1 caption = "Function 1" default = exp() endfunc func fn2 caption = "Function 2" default = tanh() endfunc func fn3 caption = "Function 3" default = sin() endfunc func fn4 caption = "Function(1) of Z" default = ident() endfunc func @fn5 caption = "Functions(2) of z" default = ident() endfunc func @fn6 caption = "Functions(3) of z" default = ident() endfunc param version caption = "Version" default = 3.0 endparam switch: type = "JosephJulia" seed = #pixel bailout = @bailout inv = @inv fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 fn4 = @fn4 @fn5 = @fn5 @fn6 = @fn6 xpower = @xpower ypower = @ypower zpower = @zpower gpower = @gpower x = @x y = @y g = @g gplus = @gplus xplus = @xplus yplus = @yplus func1 = @func1 func2 = @func2 func3 = @func3 p1 = @p1 p2 = @p2 p3 = @p3 p4 = @p4 @p5 = @p5 @p6 = @p6 funcpowerx = @funcpowerx funcpowery = @funcpowery funcpowerz = @funcpowerz funcpowerg = @funcpowerg fnc = @fnc expC = @expC style = @style ztweaker = @ztweaker bailchoice = @bailchoice cchange = @cchange flavor = @flavor zpix = @zpix inv = @inv ez = @ez zpi = @zpi ztopidivzpi = ztopidivzpi zpidivztopi = @zpidivztopi } ============================================================== JuliaPlus4 { ; Version 2.0 Added ztweaker cchange, style, flavor etc. ; By Dolf De Rovira With help from Toby Marshall and Bob Margolis ; Interesting spirals with Bailout of 4, ; and functions of ident, conj, log, acosh and asinh. ; Cabs, abs, cotanh, tan, asinh and cosh also yield very ; interesting results. Increased bailout values yield complex ; images try 8, 16 as alternate bailout values. init: z = pixel c = @seed loop: float x = Real(z) float y = Imag(z) float g = real(@seed) if @ztweaker == "z=orig" z = z elseif @ztweaker == "z=z+c" z = fn1(z) + fn2(c) elseif @ztweaker == "z=z+x" z = fn1(z) + fn2(x) elseif @ztweaker == "z=z+y" z = fn1(z) + fn2(y) elseif @ztweaker == "z=z+g" z = fn1(z) + fn2(g) elseif @ztweaker == "z=z*c" z = fn1(z) * fn2(c) elseif @ztweaker == "z=z*x" z = fn1(z) * fn2(x) elseif @ztweaker == "z=z*g" z = fn1(z) * fn2(g) elseif @ztweaker == "z=z/c" z = fn1(z) / fn2(c) elseif @ztweaker == "z=z/g" z = fn1(z) / fn2(g) elseif @ztweaker == "z=z/x+z" z = fn1(z) / fn2(x) + fn3(z) elseif @ztweaker == "z=z/c+c" z = fn1(z) / fn2(c) + fn3(c) elseif @ztweaker == "z=z/g+c" z = fn1(z) / fn2(g) + fn3(c) elseif @ztweaker == "z=z-c" z = fn1(z) - fn2(c) elseif @ztweaker == "z=z-g" z = fn1(z) - fn2(g) elseif @ztweaker == "z=c-z" z = fn1(c) - fn2(z) elseif @ztweaker == "z=g-z" z = fn1(g) - fn2(z) elseif @ztweaker == "z=z/c-z" z = fn1(z) / fn2(c) - fn3(z) elseif @ztweaker == "z=z/g-z" z = fn1(z) / fn2(g) - fn3(z) elseif @ztweaker == "z=z/c-c" z = fn1(z) / fn2(c) - fn3(c) elseif @ztweaker == "z=z/g-c" z = fn1(z) / fn2(g) - fn3(c) elseif @ztweaker == "z=z-z/c" z = fn1(z) - fn2(z) / fn3(c) elseif @ztweaker == "z=z-z/x" z = fn1(z) - fn2(z) / fn3(x) elseif @ztweaker == "z=z-z/g" z = fn1(z) - fn2(z) / fn3(g) elseif @ztweaker == "z=c-z/c" z = fn1(c) - fn2(z) / fn3(c) elseif @ztweaker == "z=c-z/g" z = fn1(c) - fn2(z) / fn3(g) elseif @ztweaker == "z=c/z" z = fn1(c) / fn2(z) elseif @ztweaker == "z*z+c" z = fn1(z) * fn2(z) + fn3(c) elseif @ztweaker == "z=g/z" z = fn1(g) / fn2(z) elseif @ztweaker == "ezz" z = e^fn1(z)* fn2(z) elseif @ztweaker == "ez/z" z = e^fn1(z)/ fn2(z) elseif @ztweaker == "ey/z" z = e^fn1(y)/ fn2(z) elseif @ztweaker == "eyz" z = e^fn1(y)* fn2(z) elseif @ztweaker == "z/1-z" z = fn1(z)/(1- fn2(z)) elseif @ztweaker == "z/1-x" z = fn1(z)/(1-fn2(x)) elseif @ztweaker == "z/1-y" z = fn1(z)/(1-fn2(y)) elseif @ztweaker == "zpi" z = z ^ #pi elseif @ztweaker == "zpi/z" z = z ^ #pi / z^2 elseif @ztweaker == "z^pi/z^z" z = z ^ #pi / z^z elseif @ztweaker == "z/pixel" z = z / #pixel elseif @ztweaker == "zpixel" z = z * #pixel elseif @ztweaker == "z^pixel/z+pixel" z = z ^ #pixel /z + pixel elseif @ztweaker == "ez/zpixel" z = e^z /(z+ #pixel) elseif @ztweaker == "ez/pixel" z = e^z /#pixel elseif @ztweaker == "piz/pixel" z = z^#pi / #pixel elseif @ztweaker == "piz/zpixel" z = z^#pi /(z + #pixel) elseif @ztweaker == "z+zpixel" z = z + #pixel elseif @ztweaker == "z-zpixel" z = z - #pixel elseif @ztweaker == "z/zpixel" z = z /(z+#pixel) elseif @ztweaker == "z/pixelz" z = z /#pixel^z elseif @ztweaker == "ez/pixel" z = e^z/#pixel elseif @ztweaker == "c/ez" z = fn1(c / (#e * fn2(z))) elseif @ztweaker == "z+c/g" z = fn1(fn2(z) + c / g ) elseif @ztweaker == "x+z/y+c" z = (fn1(x) + z) / (fn2(y) + c) elseif @ztweaker == "g^z-c" z = fn2(g ^ (fn1(z) )) - c elseif @ztweaker == "z-x+y/x-y" z = fn1(z) - p2 + fn2((x+y)/(x-y)) elseif @ztweaker == "g/c-z" z = fn1(( g )/ (c - fn2(z))) elseif @ztweaker == "y+c/g" z = fn1(fn2(y) + c / g ) elseif @ztweaker == "x+y/y+c" z = (fn1(x) + y) / (fn2(y) + c) elseif @ztweaker == "g^y-c" z = fn2(g ^ (fn1(y) )) - c elseif @ztweaker == "y-x+y/x-y" z = fn1(y) - p2 + fn2((x+y)/(x-y)) elseif @ztweaker == "g/c-y" z = fn1(( g )/ (c - fn2(y))) elseif @ztweaker == "c/ex" z = fn1(c / (#e * fn2(x))) elseif @ztweaker == "x+c/g" z = fn1(fn2(x) + c / g ) elseif @ztweaker == "g^x-c" z = fn2(g ^(fn1(x))) - c endif if @version > 1.0 if @style == "z" z = fn1((z-p1)*p2) elseif @style == "fn(z^(2+power))" z = fn1((z-p1)*p2)^fn2(2+ @p3) + fn3(c) elseif @style == "fn(x-y)" z = fn1((z-p1)*p2)^fn2(2+ @p3) + fn1(x-y) + fn3(c) elseif @style == "(fn(y-x))" z = fn1((z-p1)*p2)^fn2(2+ @p3+ fn1(y-x)) + fn3(c) elseif @style =="(fn(x^2-y^2))" z = fn1((z-p1)*p2)^fn2(2+ @p3+ fn1(y^2-x^2)) + fn3(c) elseif @style =="fn(x^2-y^2)" z = fn1((z-p1)*p2)^fn2(2+ @p3)+ fn1(y^2-x^2) + fn3(c) elseif @style =="fn(x^e)" z = fn1(x)^fn2(e) + fn3(c) elseif @style =="fn(y^e)" z = fn1(y)^fn2(e) + fn3(c) elseif @style =="fn(x^pi)" z = fn1(x)^fn2(#pi)+fn3(c) elseif @style =="fn(y^pi)" z = fn1(y)^fn2(#pi) +fn3(c) elseif @style =="fn(z-x)^fn(z-y)" z = fn1(z-x)^fn2(z-y)+fn3(c) elseif @style =="fn(z+x)^fn(z+y)" z = fn1(z+x)^fn2(z+y)+fn3(c) endif if @inv == true z = 1/z else z = z endif if @zpix == true z = ((pixel-p1)*p2)^(2+ @p3) else z = z endif if @xplus == true z = ((z-p1)*p2)^(2+ @p3) + x else z = z endif if @yplus == true z = ((z-p1)*p2)^(2+ @p3) + y else z = z endif if @zpower == true z = ((z-p1)*p2)^(2+ @p3) ^ z else z = z endif if @xpower == true z = ((z-p1)*p2)^(2+ @p3)^x else z = z endif if @ypower == true z = ((z-p1)*p2)^(2+ @p3)^y else z = z endif if @gpower == true ; hpower showed no effect z = ((z-p1)*p2)^(2+ @p3)^g else z = z endif if @gplus == true ; hplus showed no effect z = ((z-p1)*p2)^(2+ @p3) + g else z = z endif if @func1 == true z = fn1((z-p1)*p2) else z = z endif if @func2 == true z = fn2(fn1((z-p1)*p2)) else z = z endif if @func3 == true z = fn3(fn2(fn1((z-p1)*p2))) else z = z endif if @funcpowerz == true z = ((z-p1)*p2)^fn1(z) else z = z endif if @funcpowerx == true z = ((z-p1)*p2)^fn1(x) else z = z endif if @funcpowery == true z = ((z-p1)*p2)^fn1(y) else z = z endif if @funcpowerg == true ; funcpowerh no effect z = ((z-p1)*p2)^fn1(g) else z = z endif if @ez == true z = e^z else z = z endif if @zpi == true z = z^#pi else z = z endif if @ztopidivzpi == true z = z^#pi/(z*#pi) else z = z endif if @zpidivztopi == true z = z*#pi/(z^#pi) else z = z endif if @flavor == "z" z = fn1((z-p1)*p2) elseif @flavor == "z^2 + c" z = fn1((z-p1)*p2)^fn3(2+ @p3) + fn3(c) elseif @flavor == "z^(z/c)" z = fn1((z-p1)*p2)^fn2((z-p1)*p2) + fn3(@p3/c) elseif @flavor == "z/(z-1)" z = fn1((z-p1)*p2)/fn2(((z-p1)*p2) -1) + fn3(@p3*c) elseif @flavor == "z^2/(z-1)" z = fn1((z-p1)*p2)^(2+ @p3)/fn2(((z-p1)*p2) -1) + fn3(@p3*c) elseif @flavor == "z^3/(z^2-1)" z = fn1((z-p1)*p2)^(3+ @p3)/fn2(((z-p1)*p2)^(2+ @p3) -1)\ +fn3(@p3*c) elseif @flavor == "z^3*c/(z^2-c)" z = fn1((z-p1)*p2)^(3+ @p3)*c/fn2(((z-p1)*p2)^(2+@p3) - c)\ - fn3(@p3*c) elseif @flavor == "z^3+z^2+z+c" z = fn1((z-p1)*p2)^(3+ @p3)+((z-p1)*p2)^(2+ @p3)+fn2((z-p1)*p2)\ ^(2+ @p3)+ fn3(@p3*c) elseif @flavor == "fnzfnzfnz" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)*fn3((z-p1)*p2) + @p3*c elseif @flavor == "fnzpfnzpfnzp" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)*fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "fnzfnz/fnz" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)/fn3((z-p1)*p2) + @p3*c elseif @flavor == "fnzpfnzp/fnzp" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)/fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "zzz" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)*fn3((z-p1)*p2) + @p3*c elseif @flavor == "z^pz^pz^p" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)*fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "zz/z" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)/fn3(z-p1)+ @p3*c elseif @flavor == "z^pz^p/z^p" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)/fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "z^3-z^2+c" z = fn1((z-p1)*p2)^(3+ @p3)-fn2((z-p1)*p2)^(2+ @p3)+ fn3(@p3*c) endif if @cchange == "Orig" c = c^@expC elseif @cchange == "Real" c = real(c)^@expC elseif @cchange == "Imag" c = imag(c)^@expC elseif @cchange == "Sign" c = -c^@expC elseif @cchange == "Squared" c = c^2+@expC elseif @cchange == "Exponent" c = e^c^@expC elseif @cchange == "Inverse" c = 1 / c^@expC elseif @cchange == "Inv/Exp" c = 1 / e^c^@expC elseif @cchange == "C/Exp" c = c^@expC / e^c^@expC elseif @cchange == "SQRPixel" c = sqr(pixel)/3 elseif @cchange == "CPower" c = c^c elseif @cchange == "EPower" c = c^(e+c) elseif @cchange == "ZPower" c = c^z elseif @cchange == "CPower3" c = c^c^c elseif @cchange == "CFunction" c = c^((z-@p1)*@p2)^@fnc(2 + @p3) elseif @cchange == "Function" c = @fnc(c^@expC) endif endif if @op == "+" z = @fn3(c/(z^@power + c + z^@fn1(z)+ @fn2(c))) elseif @op == "-" z = @fn3(c/(z^@power + c + z^@fn1(z)- @fn2(c))) elseif @op == "*" z = @fn3(c/(z^@power + c + z^@fn1(z)* @fn2(c))) elseif @op == "/" z = @fn3(c/(z^@power + c + z^@fn1(z)/ @fn2(c))) elseif @op == "^" z = @fn3(c/(z^@power + c + z^@fn1(z)^ @fn2(c))) elseif @op == "sin" z = @fn3(c/(z^@power + c + z^@fn1(z)^ sin(@fn2(c)))) elseif @op == "sinh" z = @fn3(c/(z^@power + c + z^@fn1(z)^ sinh(@fn2(c)))) elseif @op == "asin" z = @fn3(c/(z^@power + c + z^@fn1(z)^ asin(@fn2(c)))) elseif @op == "asinh" z = @fn3(c/(z^@power + c + z^@fn1(z)^ asinh(@fn2(c)))) elseif @op == "cos" z = @fn3(c/(z^@power + c + z^@fn1(z)^ cos(@fn2(c)))) elseif @op == "cosh" z = @fn3(c/(z^@power + c + z^@fn1(z)^ cosh(@fn2(c)))) elseif @op == "acos" z = @fn3(c/(z^@power + c + z^@fn1(z)^ acos(@fn2(c)))) elseif @op == "acosh" z = @fn3(c/(z^@power + c + z^@fn1(z)^ acosh(@fn2(c)))) elseif @op == "tan" z = @fn3(c/(z^@power + c + z^@fn1(z)^ tan(@fn2(c)))) elseif @op == "atan" z = @fn3(c/(z^@power + c + z^@fn1(z)^ atan(@fn2(c)))) elseif @op == "tanh" z = @fn3(c/(z^@power + c + z^@fn1(z)^ tanh(@fn2(c)))) elseif @op == "atanh" z = @fn3(c/(z^@power + c + z^@fn1(z)^ atanh(@fn2(c)))) elseif @op == "cotan" z = @fn3(c/(z^@power + c + z^@fn1(z)^ cotan(@fn2(c)))) elseif @op == "cotanh" z = @fn3(c/(z^@power + c + z^@fn1(z)^ cotanh(@fn2(c)))) elseif @op == "sqr" z = @fn3(c/(z^@power + c + z^@fn1(z)^ sqr(@fn2(c)))) elseif @op == "sqrt" z = @fn3(c/(z^@power + c + z^@fn1(z)^ sqrt(@fn2(c)))) elseif @op == "log" z = @fn3(c/(z^@power + c + z^@fn1(z)^ log(@fn2(c)))) elseif @op == "exp" z = @fn3(c/(z^@power + c + z^@fn1(z)^ exp(@fn2(c)))) elseif @op == "abs" z = @fn3(c/(z^@power + c + z^@fn1(z)^ abs(@fn2(c)))) elseif @op == "cabs" z = @fn3(c/(z^@power + c + z^@fn1(z)^ cabs(@fn2(c)))) elseif @op == "conj" z = @fn3(c/(z^@power + c + z^@fn1(z)^ conj(@fn2(c)))) elseif @op == "flip" z = @fn3(c/(z^@power + c + z^@fn1(z)^ flip(@fn2(c)))) elseif @op == "ident" z = @fn3(c/(z^@power + c + z^@fn1(z)^ ident(@fn2(c)))) elseif @op == "zero" z = @fn3(c/(z^@power + c + z^@fn1(z)^ zero(@fn2(c)))) elseif @op == "recip" z = @fn3(c/(z^@power + c + z^@fn1(z)^ recip(@fn2(c)))) elseif @op == "ceil" z = @fn3(c/(z^@power + c + z^@fn1(z)^ ceil(@fn2(c)))) elseif @op == "floor" z = @fn3(c/(z^@power + c + z^@fn1(z)^ floor(@fn2(c)))) elseif @op == "trunc" z = @fn3(c/(z^@power + c + z^@fn1(z)^ trunc(@fn2(c)))) elseif @op == "round" z = @fn3(c/(z^@power + c + z^@fn1(z)^ round(@fn2(c)))) endif bailout: (@bailchoice == 0 && |z| <= @bailout) || \ (@bailchoice == 1 && real(sqr(z)) <= @bailout) || \ (@bailchoice == 2 && imag(sqr(z)) <= @bailout) || \ (@bailchoice == 3 && sqr(real(z)) <= @bailout) || \ (@bailchoice == 4 && sqr(imag(z)) <= @bailout) || \ (@bailchoice == 5 && (sqr(real(z)) <= @bailout && sqr(imag(z)) < @bailout)) || \ (@bailchoice == 6 && (sqr(real(z)) <= @bailout || sqr(imag(z)) < @bailout)) || \ (@bailchoice == 7 && (sqr(abs(real(z)) + abs(imag(z))) <= @bailout)) || \ (@bailchoice == 8 && (sqr(real(z) + imag(z)) <= @bailout)) default: title = "Julia Plus 4" periodicity = 0 param bailout caption = "Bailout value" default = 4.0 min = 1.0 endparam param bailchoice caption = "Bailout Choice" default = 0 enum = "|z|" "Real(Z^2)""Imag(Z^2)""Real(Z)^2""Imag(Z)^2"\ "Real & Imag""Real or Imag""Sqr(Abs(Real&Imag)" "Sqr(Real&Imag)" endparam param seed caption= "Julia seed" default = (-1.25,0) endparam param power caption = "Power" default = (2,0) endparam param p1 caption = "Subtracter" default = (0,0) endparam param p2 caption = "Mulitplier" default = (1,0) endparam param p3 caption = "Power" default = (0,0) endparam param op caption = "Operator" enum = "+""-""*""/""^""sin""sinh""asin""asinh"\ "cos""cosh""acos""acosh""tan""tanh""atan""atanh"\ "cotan""cotanh""sqr""sqrt""log""exp"\ "abs""cabs""conj""flip""ident""zero""recip" \ "ceil""floor""trunc" "round" default = 3 endparam param ztweaker caption = "Z Tweaker" enum = "z=orig""z=z+c""z=z+x""z=z+y""z=z+g"\ "z=z*c""z=z*x""z=z*g""z=z/c""z=z/g"\ "z=z/x+z""z=z/c+c""z=z/g+c""z=z-c""z=z-g""z=c-z"\ "z=g-z""z=z/c-z""z=z/g-z""z=z/c-c""z=z/x-c"\ "z=z/g-c""z=z-z/c""z=z-z/x""z=z-z/g""z=c-z/c"\ "z=c-z/g""z=c/z""z=g/z""z*z+c"\ "ezz""ez/z""exz""eyz""ey/z""z/1-z""z/1-x""z/1-y"\ "zpi""zpi/z""z^pi/z^z""zpixel""z/pixelz"\ "z/zpixel""z^pixel/z+pixel""ez/zpixel""z/pixel""piz/pixel"\ "piz/zpixel""z-zpixel""ez/pixel""z+zpixel"\ "c/ez""z+c/g""x+z/y+c""g^z-c""z-x+y/x-y""g/c-z"\ "y+c/g""x+y/y+c""g^y-c""y-x+y/x-y""g/c-y"\ "g/c-x""g^x-c""x+c/g""c/ex" default = 0 endparam param style caption = "Variation in Style" enum = "z""fn(z^(2+power))""fn(x-y)""fn(y-x)"\ "fn(x^2-y^2)""(fn(y-x))" "(fn(x^2-y^2))"\ "fn(x^e)""fn(y^e)""fn(x^pi)""fn(y^pi)"\ "fn(z-x)^fn(z-y)""fn(z+x)^fn(z+y)" default = 0 endparam bool param inv caption = "Invert Z" default = false endparam bool param zpix caption = "Z=Pixel" default = false endparam bool param xplus caption = "Add X" default = false endparam bool param yplus caption = "Add Y" default = false endparam bool param Zpower caption = "Z^Z" default = false endparam bool param Xpower caption = "Z^X" default = false endparam bool param Ypower caption = "Z^Y" default = false endparam bool param Gpower caption = "Z^G" default = false endparam bool param Gplus caption = "Z+G" default = false endparam bool param func1 caption = "Fn(Z)" default = false endparam bool param func2 caption = "Fn2(Fn1(Z))" default = false endparam bool param func3 caption = "Fn3(Fn2(Fn1(Z)))" default = false endparam bool param funcpowerz caption = "Function Power" default = false endparam bool param funcpowerx caption = "Function Power of X" default = false endparam bool param funcpowery caption = "Function Power of Y" default = false endparam bool param funcpowerg caption = "Function Power of G" default = false endparam bool param ez caption = "Euler times Z" default = false endparam bool param zpi caption = "Pi times Z" default = false endparam bool param ztopidivzpi caption = "Z^Pi/Z*Pi" default = false endparam bool param zpidivztopi caption = "Z*Pi/Z^Pi" default = false endparam param cchange caption = "Nuance of C" enum = "Orig""Real""Imag""Sign""Squared"\ "Exponent""Inverse""Inv/Exp""C/Exp"\ "SQRPixel""CPower""EPower""ZPower"\ "CPower3""CFunction""Function" default = 0 endparam func fnc caption = "C Function" default = sqr() visible = @cchange == "Function" ||\ @cchange == "CFunction" endfunc float param expC caption = "Power of C" default = 1.0 endparam param flavor caption = "Formula Flavor" enum = "z""z^2 + c""z^(z/c)""z/(z-1)""z^2/(z-1)""z^3/(z^2-1)"\ "z^3*c/(z^2-c)""z^3+z^2+z+c""fnzfnzfnz""fnzpfnzpfnzp"\ "fnzfnz/fnz""fnzpfnzp/fnzp""zzz""z^pz^pz^p"\ "zz/z""z^pz^p/z^p""z^3-z^2+c" default = 0 endparam heading caption = "Functions" endheading func fn1 caption = "Function 1" default = ident() endfunc func fn2 caption = "Function 2" default = ident() endfunc func fn3 caption = "Function 3" default = ident() endfunc param version caption = "Version" default = 2.0 endparam switch: type = "MandelbrotPlus4" bailout = @bailout op = @op fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 power = #pixel inv = @inv fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 xpower = @xpower ypower = @ypower zpower = @zpower gpower = @gpower x = @x y = @y g = @g gplus = @gplus xplus = @xplus yplus = @yplus func1 = @func1 func2 = @func2 func3 = @func3 p1 = @p1 p2 = @p2 p3 = @p3 funcpowerx = @funcpowerx funcpowery = @funcpowery funcpowerz = @funcpowerz funcpowerg = @funcpowerg fnc = @fnc expC = @expC style = @style ztweaker = @ztweaker bailchoice = @bailchoice cchange = @cchange flavor = @flavor zpix = @zpix inv = @inv ez = @ez zpi = @zpi ztopidivzpi = ztopidivzpi zpidivztopi = @zpidivztopi } ============================================================= MandelbrotPlus4{ ; Version 2.0 Added ztweaker ; By Dolf De Rovira 2-18-04 ; With much thanks from Toby Marshall and Bob Margolis init: z = @start c = #pixel loop: float x = Real(z) float y = Imag(z) float g = real(#pixel) if @ztweaker == "z=orig" z = z elseif @ztweaker == "z=z+c" z = fn1(z) + fn2(c) elseif @ztweaker == "z=z+x" z = fn1(z) + fn2(x) elseif @ztweaker == "z=z+y" z = fn1(z) + fn2(y) elseif @ztweaker == "z=z+g" z = fn1(z) + fn2(g) elseif @ztweaker == "z=z*c" z = fn1(z) * fn2(c) elseif @ztweaker == "z=z*x" z = fn1(z) * fn2(x) elseif @ztweaker == "z=z*g" z = fn1(z) * fn2(g) elseif @ztweaker == "z=z/c" z = fn1(z) / fn2(c) elseif @ztweaker == "z=z/g" z = fn1(z) / fn2(g) elseif @ztweaker == "z=z/x+z" z = fn1(z) / fn2(x) + fn3(z) elseif @ztweaker == "z=z/c+c" z = fn1(z) / fn2(c) + fn3(c) elseif @ztweaker == "z=z/g+c" z = fn1(z) / fn2(g) + fn3(c) elseif @ztweaker == "z=z-c" z = fn1(z) - fn2(c) elseif @ztweaker == "z=z-g" z = fn1(z) - fn2(g) elseif @ztweaker == "z=c-z" z = fn1(c) - fn2(z) elseif @ztweaker == "z=g-z" z = fn1(g) - fn2(z) elseif @ztweaker == "z=z/c-z" z = fn1(z) / fn2(c) - fn3(z) elseif @ztweaker == "z=z/g-z" z = fn1(z) / fn2(g) - fn3(z) elseif @ztweaker == "z=z/c-c" z = fn1(z) / fn2(c) - fn3(c) elseif @ztweaker == "z=z/g-c" z = fn1(z) / fn2(g) - fn3(c) elseif @ztweaker == "z=z-z/c" z = fn1(z) - fn2(z) / fn3(c) elseif @ztweaker == "z=z-z/x" z = fn1(z) - fn2(z) / fn3(x) elseif @ztweaker == "z=z-z/g" z = fn1(z) - fn2(z) / fn3(g) elseif @ztweaker == "z=c-z/c" z = fn1(c) - fn2(z) / fn3(c) elseif @ztweaker == "z=c-z/g" z = fn1(c) - fn2(z) / fn3(g) elseif @ztweaker == "z=c/z" z = fn1(c) / fn2(z) elseif @ztweaker == "z*z+c" z = fn1(z) * fn2(z) + fn3(c) elseif @ztweaker == "z=g/z" z = fn1(g) / fn2(z) elseif @ztweaker == "ezz" z = e^fn1(z)* fn2(z) elseif @ztweaker == "ez/z" z = e^fn1(z)/ fn2(z) elseif @ztweaker == "ey/z" z = e^fn1(y)/ fn2(z) elseif @ztweaker == "eyz" z = e^fn1(y)* fn2(z) elseif @ztweaker == "z/1-z" z = fn1(z)/(1- fn2(z)) elseif @ztweaker == "z/1-x" z = fn1(z)/(1-fn2(x)) elseif @ztweaker == "z/1-y" z = fn1(z)/(1-fn2(y)) elseif @ztweaker == "zpi" z = z ^ #pi elseif @ztweaker == "zpi/z" z = z ^ #pi / z^2 elseif @ztweaker == "z^pi/z^z" z = z ^ #pi / z^z elseif @ztweaker == "z/pixel" z = z / #pixel elseif @ztweaker == "zpixel" z = z * #pixel elseif @ztweaker == "z^pixel/z+pixel" z = z ^ #pixel /z + pixel elseif @ztweaker == "ez/zpixel" z = e^z /(z+ #pixel) elseif @ztweaker == "ez/pixel" z = e^z /#pixel elseif @ztweaker == "piz/pixel" z = z^#pi / #pixel elseif @ztweaker == "piz/zpixel" z = z^#pi /(z + #pixel) elseif @ztweaker == "z+zpixel" z = z + #pixel elseif @ztweaker == "z-zpixel" z = z - #pixel elseif @ztweaker == "z/zpixel" z = z /(z+#pixel) elseif @ztweaker == "z/pixelz" z = z /#pixel^z elseif @ztweaker == "ez/pixel" z = e^z/#pixel elseif @ztweaker == "c/ez" z = fn1(c / (#e * fn2(z))) elseif @ztweaker == "z+c/g" z = fn1(fn2(z) + c / g ) elseif @ztweaker == "x+z/y+c" z = (fn1(x) + z) / (fn2(y) + c) elseif @ztweaker == "g^z-c" z = fn2(g ^ (fn1(z) )) - c elseif @ztweaker == "z-x+y/x-y" z = fn1(z) - p2 + fn2((x+y)/(x-y)) elseif @ztweaker == "g/c-z" z = fn1(( g )/ (c - fn2(z))) elseif @ztweaker == "y+c/g" z = fn1(fn2(y) + c / g ) elseif @ztweaker == "x+y/y+c" z = (fn1(x) + y) / (fn2(y) + c) elseif @ztweaker == "g^y-c" z = fn2(g ^ (fn1(y) )) - c elseif @ztweaker == "y-x+y/x-y" z = fn1(y) - p2 + fn2((x+y)/(x-y)) elseif @ztweaker == "g/c-y" z = fn1(( g )/ (c - fn2(y))) elseif @ztweaker == "c/ex" z = fn1(c / (#e * fn2(x))) elseif @ztweaker == "x+c/g" z = fn1(fn2(x) + c / g ) elseif @ztweaker == "g^x-c" z = fn2(g ^(fn1(x))) - c endif if @version > 1.0 if @style == "z" z = fn1((z-p1)*p2) elseif @style == "fn(z^(2+power))" z = fn1((z-p1)*p2)^fn2(2+ @p3) + fn3(c) elseif @style == "fn(x-y)" z = fn1((z-p1)*p2)^fn2(2+ @p3) + fn1(x-y) + fn3(c) elseif @style == "(fn(y-x))" z = fn1((z-p1)*p2)^fn2(2+ @p3+ fn1(y-x)) + fn3(c) elseif @style =="(fn(x^2-y^2))" z = fn1((z-p1)*p2)^fn2(2+ @p3+ fn1(y^2-x^2)) + fn3(c) elseif @style =="fn(x^2-y^2)" z = fn1((z-p1)*p2)^fn2(2+ @p3)+ fn1(y^2-x^2) + fn3(c) elseif @style =="fn(x^e)" z = fn1(x)^fn2(e) + fn3(c) elseif @style =="fn(y^e)" z = fn1(y)^fn2(e) + fn3(c) elseif @style =="fn(x^pi)" z = fn1(x)^fn2(#pi)+fn3(c) elseif @style =="fn(y^pi)" z = fn1(y)^fn2(#pi) +fn3(c) elseif @style =="fn(z-x)^fn(z-y)" z = fn1(z-x)^fn2(z-y)+fn3(c) elseif @style =="fn(z+x)^fn(z+y)" z = fn1(z+x)^fn2(z+y)+fn3(c) endif if @inv == true z = 1/z else z = z endif if @zpix == true z = ((pixel-p1)*p2)^(2+ @p3) else z = z endif if @xplus == true z = ((z-p1)*p2)^(2+ @p3) + x else z = z endif if @yplus == true z = ((z-p1)*p2)^(2+ @p3) + y else z = z endif if @zpower == true z = ((z-p1)*p2)^(2+ @p3) ^ z else z = z endif if @xpower == true z = ((z-p1)*p2)^(2+ @p3)^x else z = z endif if @ypower == true z = ((z-p1)*p2)^(2+ @p3)^y else z = z endif if @gpower == true ; hpower showed no effect z = ((z-p1)*p2)^(2+ @p3)^g else z = z endif if @gplus == true ; hplus showed no effect z = ((z-p1)*p2)^(2+ @p3) + g else z = z endif if @func1 == true z = fn1((z-p1)*p2) else z = z endif if @func2 == true z = fn2(fn1((z-p1)*p2)) else z = z endif if @func3 == true z = fn3(fn2(fn1((z-p1)*p2))) else z = z endif if @funcpowerz == true z = ((z-p1)*p2)^fn1(z) else z = z endif if @funcpowerx == true z = ((z-p1)*p2)^fn1(x) else z = z endif if @funcpowery == true z = ((z-p1)*p2)^fn1(y) else z = z endif if @funcpowerg == true ; funcpowerh no effect z = ((z-p1)*p2)^fn1(g) else z = z endif if @ez == true z = e^z else z = z endif if @zpi == true z = z^#pi else z = z endif if @ztopidivzpi == true z = z^#pi/(z*#pi) else z = z endif if @zpidivztopi == true z = z*#pi/(z^#pi) else z = z endif if @flavor == "z" z = fn1((z-p1)*p2) elseif @flavor == "z^2 + c" z = fn1((z-p1)*p2)^fn3(2+ @p3) + fn3(c) elseif @flavor == "z^(z/c)" z = fn1((z-p1)*p2)^fn2((z-p1)*p2) + fn3(@p3/c) elseif @flavor == "z/(z-1)" z = fn1((z-p1)*p2)/fn2(((z-p1)*p2) -1) + fn3(@p3*c) elseif @flavor == "z^2/(z-1)" z = fn1((z-p1)*p2)^(2+ @p3)/fn2(((z-p1)*p2) -1) + fn3(@p3*c) elseif @flavor == "z^3/(z^2-1)" z = fn1((z-p1)*p2)^(3+ @p3)/fn2(((z-p1)*p2)^(2+ @p3) -1)\ +fn3(@p3*c) elseif @flavor == "z^3*c/(z^2-c)" z = fn1((z-p1)*p2)^(3+ @p3)*c/fn2(((z-p1)*p2)^(2+@p3) - c)\ - fn3(@p3*c) elseif @flavor == "z^3+z^2+z+c" z = fn1((z-p1)*p2)^(3+ @p3)+((z-p1)*p2)^(2+ @p3)+fn2((z-p1)*p2)\ ^(2+ @p3)+ fn3(@p3*c) elseif @flavor == "fnzfnzfnz" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)*fn3((z-p1)*p2) + @p3*c elseif @flavor == "fnzpfnzpfnzp" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)*fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "fnzfnz/fnz" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)/fn3((z-p1)*p2) + @p3*c elseif @flavor == "fnzpfnzp/fnzp" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)/fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "zzz" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)*fn3((z-p1)*p2) + @p3*c elseif @flavor == "z^pz^pz^p" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)*fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "zz/z" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)/fn3(z-p1)+ @p3*c elseif @flavor == "z^pz^p/z^p" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)/fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "z^3-z^2+c" z = fn1((z-p1)*p2)^(3+ @p3)-fn2((z-p1)*p2)^(2+ @p3)+ fn3(@p3*c) endif if @cchange == "Orig" c = c^@expC elseif @cchange == "Real" c = real(c)^@expC elseif @cchange == "Imag" c = imag(c)^@expC elseif @cchange == "Sign" c = -c^@expC elseif @cchange == "Squared" c = c^2+@expC elseif @cchange == "Exponent" c = e^c^@expC elseif @cchange == "Inverse" c = 1 / c^@expC elseif @cchange == "Inv/Exp" c = 1 / e^c^@expC elseif @cchange == "C/Exp" c = c^@expC / e^c^@expC elseif @cchange == "SQRPixel" c = sqr(pixel)/3 elseif @cchange == "CPower" c = c^c elseif @cchange == "EPower" c = c^(e+c) elseif @cchange == "ZPower" c = c^z elseif @cchange == "CPower3" c = c^c^c elseif @cchange == "CFunction" c = c^((z-@p1)*@p2)^@fnc(2 + @p3) elseif @cchange == "Function" c = @fnc(c^@expC) endif endif if @op == "+" z = @fn3(c/(z^@power + c + z^@fn1(z)+ @fn2(c))) elseif @op == "-" z = @fn3(c/(z^@power + c + z^@fn1(z)- @fn2(c))) elseif @op == "*" z = @fn3(c/(z^@power + c + z^@fn1(z)* @fn2(c))) elseif @op == "/" z = @fn3(c/(z^@power + c + z^@fn1(z)/ @fn2(c))) elseif @op == "^" z = @fn3(c/(z^@power + c + z^@fn1(z)^ @fn2(c))) elseif @op == "sin" z = @fn3(c/(z^@power + c + z^@fn1(z)^ sin(@fn2(c)))) elseif @op == "sinh" z = @fn3(c/(z^@power + c + z^@fn1(z)^ sinh(@fn2(c)))) elseif @op == "asin" z = @fn3(c/(z^@power + c + z^@fn1(z)^ asin(@fn2(c)))) elseif @op == "asinh" z = @fn3(c/(z^@power + c + z^@fn1(z)^ asinh(@fn2(c)))) elseif @op == "cos" z = @fn3(c/(z^@power + c + z^@fn1(z)^ cos(@fn2(c)))) elseif @op == "cosh" z = @fn3(c/(z^@power + c + z^@fn1(z)^ cosh(@fn2(c)))) elseif @op == "acos" z = @fn3(c/(z^@power + c + z^@fn1(z)^ acos(@fn2(c)))) elseif @op == "acosh" z = @fn3(c/(z^@power + c + z^@fn1(z)^ acosh(@fn2(c)))) elseif @op == "tan" z = @fn3(c/(z^@power + c + z^@fn1(z)^ tan(@fn2(c)))) elseif @op == "atan" z = @fn3(c/(z^@power + c + z^@fn1(z)^ atan(@fn2(c)))) elseif @op == "tanh" z = @fn3(c/(z^@power + c + z^@fn1(z)^ tanh(@fn2(c)))) elseif @op == "atanh" z = @fn3(c/(z^@power + c + z^@fn1(z)^ atanh(@fn2(c)))) elseif @op == "cotan" z = @fn3(c/(z^@power + c + z^@fn1(z)^ cotan(@fn2(c)))) elseif @op == "cotanh" z = @fn3(c/(z^@power + c + z^@fn1(z)^ cotanh(@fn2(c)))) elseif @op == "sqr" z = @fn3(c/(z^@power + c + z^@fn1(z)^ sqr(@fn2(c)))) elseif @op == "sqrt" z = @fn3(c/(z^@power + c + z^@fn1(z)^ sqrt(@fn2(c)))) elseif @op == "log" z = @fn3(c/(z^@power + c + z^@fn1(z)^ log(@fn2(c)))) elseif @op == "exp" z = @fn3(c/(z^@power + c + z^@fn1(z)^ exp(@fn2(c)))) elseif @op == "abs" z = @fn3(c/(z^@power + c + z^@fn1(z)^ abs(@fn2(c)))) elseif @op == "cabs" z = @fn3(c/(z^@power + c + z^@fn1(z)^ cabs(@fn2(c)))) elseif @op == "conj" z = @fn3(c/(z^@power + c + z^@fn1(z)^ conj(@fn2(c)))) elseif @op == "flip" z = @fn3(c/(z^@power + c + z^@fn1(z)^ flip(@fn2(c)))) elseif @op == "ident" z = @fn3(c/(z^@power + c + z^@fn1(z)^ ident(@fn2(c)))) elseif @op == "zero" z = @fn3(c/(z^@power + c + z^@fn1(z)^ zero(@fn2(c)))) elseif @op == "recip" z = @fn3(c/(z^@power + c + z^@fn1(z)^ recip(@fn2(c)))) elseif @op == "ceil" z = @fn3(c/(z^@power + c + z^@fn1(z)^ ceil(@fn2(c)))) elseif @op == "floor" z = @fn3(c/(z^@power + c + z^@fn1(z)^ floor(@fn2(c)))) elseif @op == "trunc" z = @fn3(c/(z^@power + c + z^@fn1(z)^ trunc(@fn2(c)))) elseif @op == "round" z = @fn3(c/(z^@power + c + z^@fn1(z)^ round(@fn2(c)))) endif bailout: (@bailchoice == 0 && |z| <= @bailout) || \ (@bailchoice == 1 && real(sqr(z)) <= @bailout) || \ (@bailchoice == 2 && imag(sqr(z)) <= @bailout) || \ (@bailchoice == 3 && sqr(real(z)) <= @bailout) || \ (@bailchoice == 4 && sqr(imag(z)) <= @bailout) || \ (@bailchoice == 5 && (sqr(real(z)) <= @bailout && sqr(imag(z)) < @bailout)) || \ (@bailchoice == 6 && (sqr(real(z)) <= @bailout || sqr(imag(z)) < @bailout)) || \ (@bailchoice == 7 && (sqr(abs(real(z)) + abs(imag(z))) <= @bailout)) || \ (@bailchoice == 8 && (sqr(real(z) + imag(z)) <= @bailout)) default: title = "MandelbrotPlus4" periodicity = 0 heading caption = "Parameters" endheading int param bailout caption = "Bailout value" default = 4 min = 1 max = 8 endparam param bailchoice caption = "Bailout Choice" default = 0 enum = "|z|" "Real(Z^2)""Imag(Z^2)""Real(Z)^2""Imag(Z)^2"\ "Real & Imag""Real or Imag""Sqr(Abs(Real&Imag)" "Sqr(Real&Imag)" endparam param start caption= "Start" default = (1,0) endparam param power caption = "Power" default = (2,0) endparam param p1 caption = "Subtracter" default = (0,0) endparam param p2 caption = "Mulitplier" default = (1,0) endparam param p3 caption = "Power" default = (0,0) endparam param op caption = "Operator" enum = "+""-""*""/""^""sin""sinh""asin""asinh"\ "cos""cosh""acos""acosh""tan""tanh""atan""atanh"\ "cotan""cotanh""sqr""sqrt""log""exp"\ "abs""cabs""conj""flip""ident""zero""recip" \ "ceil""floor""trunc" "round" default = 3 endparam param ztweaker caption = "Z Tweaker" enum = "z=orig""z=z+c""z=z+x""z=z+y""z=z+g"\ "z=z*c""z=z*x""z=z*g""z=z/c""z=z/g"\ "z=z/x+z""z=z/c+c""z=z/g+c""z=z-c""z=z-g""z=c-z"\ "z=g-z""z=z/c-z""z=z/g-z""z=z/c-c""z=z/x-c"\ "z=z/g-c""z=z-z/c""z=z-z/x""z=z-z/g""z=c-z/c"\ "z=c-z/g""z=c/z""z=g/z""z*z+c"\ "ezz""ez/z""exz""eyz""ey/z""z/1-z""z/1-x""z/1-y"\ "zpi""zpi/z""z^pi/z^z""zpixel""z/pixelz"\ "z/zpixel""z^pixel/z+pixel""ez/zpixel""z/pixel""piz/pixel"\ "piz/zpixel""z-zpixel""ez/pixel""z+zpixel"\ "c/ez""z+c/g""x+z/y+c""g^z-c""z-x+y/x-y""g/c-z"\ "y+c/g""x+y/y+c""g^y-c""y-x+y/x-y""g/c-y"\ "g/c-x""g^x-c""x+c/g""c/ex" default = 0 endparam param style caption = "Variation in Style" enum = "z""fn(z^(2+power))""fn(x-y)""fn(y-x)"\ "fn(x^2-y^2)""(fn(y-x))" "(fn(x^2-y^2))"\ "fn(x^e)""fn(y^e)""fn(x^pi)""fn(y^pi)"\ "fn(z-x)^fn(z-y)""fn(z+x)^fn(z+y)" default = 0 endparam bool param inv caption = "Invert Z" default = false endparam bool param zpix caption = "Z=Pixel" default = false endparam bool param xplus caption = "Add X" default = false endparam bool param yplus caption = "Add Y" default = false endparam bool param Zpower caption = "Z^Z" default = false endparam bool param Xpower caption = "Z^X" default = false endparam bool param Ypower caption = "Z^Y" default = false endparam bool param Gpower caption = "Z^G" default = false endparam bool param Gplus caption = "Z+G" default = false endparam bool param func1 caption = "Fn(Z)" default = false endparam bool param func2 caption = "Fn2(Fn1(Z))" default = false endparam bool param func3 caption = "Fn3(Fn2(Fn1(Z)))" default = false endparam bool param funcpowerz caption = "Function Power" default = false endparam bool param funcpowerx caption = "Function Power of X" default = false endparam bool param funcpowery caption = "Function Power of Y" default = false endparam bool param funcpowerg caption = "Function Power of G" default = false endparam bool param ez caption = "Euler times Z" default = false endparam bool param zpi caption = "Pi times Z" default = false endparam bool param ztopidivzpi caption = "Z^Pi/Z*Pi" default = false endparam bool param zpidivztopi caption = "Z*Pi/Z^Pi" default = false endparam param cchange caption = "Nuance of C" enum = "Orig""Real""Imag""Sign""Squared"\ "Exponent""Inverse""Inv/Exp""C/Exp"\ "SQRPixel""CPower""EPower""ZPower"\ "CPower3""CFunction""Function" default = 0 endparam func fnc caption = "C Function" default = sqr() visible = @cchange == "Function" ||\ @cchange == "CFunction" endfunc float param expC caption = "Power of C" default = 1.0 endparam param flavor caption = "Formula Flavor" enum = "z""z^2 + c""z^(z/c)""z/(z-1)""z^2/(z-1)""z^3/(z^2-1)"\ "z^3*c/(z^2-c)""z^3+z^2+z+c""fnzfnzfnz""fnzpfnzpfnzp"\ "fnzfnz/fnz""fnzpfnzp/fnzp""zzz""z^pz^pz^p"\ "zz/z""z^pz^p/z^p""z^3-z^2+c" default = 0 endparam heading caption = "Functions" endheading func fn1 caption = "Function 1" default = ident() endfunc func fn2 caption = "Function 2" default = ident() endfunc func fn3 caption = "Function 3" default = ident() endfunc param version caption = "Version" default = 2.0 endparam switch: type = "JuliaPlus4" seed = #pixel power = @power bailout = @bailout op = @op fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 power = #pixel inv = @inv fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 xpower = @xpower ypower = @ypower zpower = @zpower gpower = @gpower x = @x y = @y g = @g gplus = @gplus xplus = @xplus yplus = @yplus func1 = @func1 func2 = @func2 func3 = @func3 p1 = @p1 p2 = @p2 p3 = @p3 funcpowerx = @funcpowerx funcpowery = @funcpowery funcpowerz = @funcpowerz funcpowerg = @funcpowerg fnc = @fnc expC = @expC style = @style ztweaker = @ztweaker bailchoice = @bailchoice cchange = @cchange flavor = @flavor zpix = @zpix inv = @inv ez = @ez zpi = @zpi ztopidivzpi = ztopidivzpi zpidivztopi = @zpidivztopi } ============================================================= Julia21804{ ; By Dolf De Rovira 2-18-04 - Based off of Jayce Cruel's Random Generator and ; ; The standard Julia Formula in Ultra Fractal (R) Standard Formula. ; This is an improvement over the original formula which includes ; the selector "op". Almost all of the choices can have images if the bailout ; is played with. The standard bailout is 122, but choices of ; 64, 32 16, 8, and 4 can yield interesting images. ; Version 2.0 Added a factor p5 set to 0, when if used will ; set a value of C as seed and simulate a real Julia. init: z = #pixel c = @seed loop: if @version > 2.0 float x = Real(z) float y = Imag(z) float g = real(@seed) if @inv == true z = 1/z else z = z endif if @zpix == true z = ((pixel-@p7)*@p8)^(2+ @p9) else z = z endif if @xplus == true z = ((z-@p7)*@p8)^(2+ @p9) + x else z = z endif if @yplus == true z = ((z-@p7)*@p8)^(2+ @p9) + y else z = z endif if @zpower == true z = ((z-@p7)*@p8)^(2+ @p9) ^ z else z = z endif if @xpower == true z = ((z-@p7)*@p8)^(2+ @p9)^x else z = z endif if @ypower == true z = ((z-@p7)*@p8)^(2+ @p9)^y else z = z endif if @gpower == true ; hpower showed no effect z = ((z-@p7)*@p8)^(2+ @p9)^g else z = z endif if @gplus == true ; hplus showed no effect z = ((z-@p7)*@p8)^(2+ @p9) + g else z = z endif if @func1 == true z = @fn5((z-@p7)*@p8) else z = z endif if @func2 == true z = @fn6(@fn5((z-@p7)*@p8)) else z = z endif if @func3 == true z = @fn7(@fn6(@fn5((z-@p7)*@p8))) else z = z endif if @funcpowerz == true z = ((z-@p7)*@p8)^@fn5(z) else z = z endif if @funcpowerx == true z = ((z-@p7)*@p8)^@fn5(x) else z = z endif if @funcpowery == true z = ((z-@p7)*@p8)^@fn5(y) else z = z endif if @funcpowerg == true ; funcpowerh no effect z = ((z-@p7)*@p8)^@fn5(g) else z = z endif if @ez == true z = e^z else z = z endif if @zpi == true z = z^#pi else z = z endif if @ztopidivzpi == true z = z^#pi/(z*#pi) else z = z endif if @zpidivztopi == true z = z*#pi/(z^#pi) else z = z endif endif if @op == "+" z = 3 / (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 )))))))))) + p5*c elseif @op == "-" z = 3 / (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )- ((@fn3 ( z + p6 )- (p4)-\ (4 ^ z ^ (sqrt (p5 )))))))))) + p5*c elseif @op == "*" z = 3 / (fn4 ( fn4 ( z - @fn2 ( z * (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 )))))))))) + p5*c elseif @op == "/" z = 3 / (fn4 ( fn4 ( z - @fn2 ( z / (fn1 ( z ^ p3 )/ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 )))))))))) + p5*c elseif @op == "^" z = 3 / (fn4 ( fn4 ( z - @fn2 ( z ^ (fn1 ( z ^ p3 )^ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 )))))))))) + p5*c elseif @op == "sin" z = sin(3 /sin (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "sinh" z = sinh(3 / sinh(fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "asin" z = asin(3 / asin(fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "asinh" z = asinh(3 / asinh(fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "cos" z = cos(3 /cos (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "cosh" z = cosh(3 / cosh(fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "acos" z = acos(3 /acos (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "acosh" z = acosh(3 / acosh(fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "tan" z = tan( 3 / tan(fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "atan" z = atan(3 /atan (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "tanh" z = tanh( 3 /tanh (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "atanh" z = atanh(3 /atanh (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "cotan" z = cotan(3 / cotan(fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "cotanh" z = cotanh(3 /cotanh (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "sqr" z = sqr(3 /sqr (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "sqrt" z = sqrt(3 /sqrt (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "log" z = log(3 /log (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "exp" z = exp(3 /exp (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "abs" z = abs(3 /abs (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "cabs" z = cabs(3 / cabs(fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "conj" z = conj(3 / conj(fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "flip" z = flip(3 /flip (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "ident" z = ident(3 / ident(fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "zero" z = zero(3 /zero (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "recip" z = recip(3 / recip(fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "ceil" z = ceil(3 /ceil (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "floor" z = floor(3 / floor(fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "trunc" z = trunc(3 /trunc (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "round" z = round(3 /round (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c endif bailout: |z| <= @bailout default: title = "Julia21804" periodicity = 0 heading caption = "Parameters" endheading int param bailout caption = "Bailout value" default = 122 min = 1 endparam param op caption = "Operator" enum = "+""-""*""/""^""sin""sinh""asin""asinh"\ "cos""cosh""acos""acosh""tan""tanh""atan""atanh"\ "cotan""cotanh""sqr""sqrt""log""exp"\ "abs""cabs""conj""flip""ident""zero""recip" \ "ceil""floor""trunc" "round" default = 0 endparam heading caption = "Affecters of Z" endheading bool param inv caption = "Invert Z" default = false endparam bool param zpix caption = "Z=Pixel" default = false endparam bool param xplus caption = "Add X" default = false endparam bool param yplus caption = "Add Y" default = false endparam bool param Zpower caption = "Z^Z" default = false endparam bool param Xpower caption = "Z^X" default = false endparam bool param Ypower caption = "Z^Y" default = false endparam bool param Gpower caption = "Z^G" default = false endparam bool param Gplus caption = "Z+G" default = false endparam bool param func1 caption = "Fn(Z)" default = false endparam bool param func2 caption = "Fn1(@fn2(Z))" default = false endparam bool param func3 caption = "Fn1(fn2(fn3(Z)))" default = false endparam bool param funcpowerz caption = "Function Power" default = false endparam bool param funcpowerx caption = "Function Power of X" default = false endparam bool param funcpowery caption = "Function Power of Y" default = false endparam bool param funcpowerg caption = "Function Power of G" default = false endparam bool param ez caption = "Euler times Z" default = false endparam bool param zpi caption = "Pi times Z" default = false endparam bool param ztopidivzpi caption = "Z^Pi/Z*Pi" default = false endparam bool param zpidivztopi caption = "Z*Pi/Z^Pi" default = false endparam complex param p3 caption = "Param 1" default = (0,0) endparam complex param p4 caption = "Param 2" default = (0,0) endparam complex param p6 caption = "Param 3" default = (0,0) endparam float param p5 caption = "C Multiplier" default = 0 endparam param @p7 caption = "Subtracter" default = (0,0) endparam param @p8 caption = "Mulitplier" default = (1,0) endparam param @p9 caption = "Power" default = (0,0) endparam complex param seed caption = "Seed" default = (0,0) endparam heading caption = "Functions" endheading func fn4 caption = "Function 1" default = sin() endfunc func fn1 caption = "Function 2" default = asinh() endfunc func fn2 caption = "Function 3" default = atanh() endfunc func fn3 caption = "Function 4" default = tan() endfunc func @fn5 caption = "Function(1) of Z" default = ident() endfunc func @fn6 caption = "Functions(2) of z" default = ident() endfunc func @fn7 caption = "Functions(3) of z" default = ident() endfunc param version caption = "Version" default = 3.0 endparam switch: type = "Julia21804_delta_p1" p3 = #pixel p4 = @p4 p5 = @p5 p6 = @p6 bailout = @bailout fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 fn4 = @fn4 op = @op x = @x y = @y g = @g inv = @inv gplus = @gplus xplus = @xplus yplus = @yplus func1 = @func1 func2 = @func2 func3 = @func3 funcpowerx = @funcpowerx funcpowery = @funcpowery funcpowerz = @funcpowerz funcpowerg = @funcpowerg zpix = @zpix inv = @inv ez = @ez zpi = @zpi ztopidivzpi = ztopidivzpi zpidivztopi = @zpidivztopi } ======================================================== Julia21804_delta_p1{ ; By Dolf De Rovira 2-18-04 - Based off of Jayce Cruel's Random Generator and ; the standard Julia Formulation in Ultra Fractal (R) Standard Formula. ; Parameter 3 1,0 and 1,1 yield interesting results with Function 1 = asin and ; Function 4 =sqr. ; Also, Leaving Parameter 3 as 1,1, Parameter 4 as 1,0 and 1,1 also yield very ; interesting results. ; As well as Parameter 3 1,1, Parameter 4 1,1 and Parameter 6 = 1,0 ; Version 2.0 Added p5 * c and added c = @seed to better simulate a Julia. init: z = #pixel c = @seed loop: if @version > 2.0 float x = Real(z) float y = Imag(z) float g = real(@seed) if @inv == true z = 1/z else z = z endif if @zpix == true z = ((pixel-@p7)*@p8)^(2+ @p9) else z = z endif if @xplus == true z = ((z-@p7)*@p8)^(2+ @p9) + x else z = z endif if @yplus == true z = ((z-@p7)*@p8)^(2+ @p9) + y else z = z endif if @zpower == true z = ((z-@p7)*@p8)^(2+ @p9) ^ z else z = z endif if @xpower == true z = ((z-@p7)*@p8)^(2+ @p9)^x else z = z endif if @ypower == true z = ((z-@p7)*@p8)^(2+ @p9)^y else z = z endif if @gpower == true ; hpower showed no effect z = ((z-@p7)*@p8)^(2+ @p9)^g else z = z endif if @gplus == true ; hplus showed no effect z = ((z-@p7)*@p8)^(2+ @p9) + g else z = z endif if @func1 == true z = @fn5((z-@p7)*@p8) else z = z endif if @func2 == true z = @fn6(@fn5((z-@p7)*@p8)) else z = z endif if @func3 == true z = @fn7(@fn6(@fn5((z-@p7)*@p8))) else z = z endif if @funcpowerz == true z = ((z-@p7)*@p8)^@fn5(z) else z = z endif if @funcpowerx == true z = ((z-@p7)*@p8)^@fn5(x) else z = z endif if @funcpowery == true z = ((z-@p7)*@p8)^@fn5(y) else z = z endif if @funcpowerg == true ; funcpowerh no effect z = ((z-@p7)*@p8)^@fn5(g) else z = z endif if @ez == true z = e^z else z = z endif if @zpi == true z = z^#pi else z = z endif if @ztopidivzpi == true z = z^#pi/(z*#pi) else z = z endif if @zpidivztopi == true z = z*#pi/(z^#pi) else z = z endif endif if @op == "+" z = 3 / (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 )))))))))) + p5*c elseif @op == "-" z = 3 / (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )- ((@fn3 ( z + p6 )- (p4)-\ (4 ^ z ^ (sqrt (p5 )))))))))) + p5*c elseif @op == "*" z = 3 / (fn4 ( fn4 ( z - @fn2 ( z * (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 )))))))))) + p5*c elseif @op == "/" z = 3 / (fn4 ( fn4 ( z - @fn2 ( z / (fn1 ( z ^ p3 )/ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 )))))))))) + p5*c elseif @op == "^" z = 3 / (fn4 ( fn4 ( z - @fn2 ( z ^ (fn1 ( z ^ p3 )^ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 )))))))))) + p5*c elseif @op == "sin" z = sin(3 /sin (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "sinh" z = sinh(3 / sinh(fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "asin" z = asin(3 / asin(fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "asinh" z = asinh(3 / asinh(fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "cos" z = cos(3 /cos (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "cosh" z = cosh(3 / cosh(fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "acos" z = acos(3 /acos (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "acosh" z = acosh(3 / acosh(fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "tan" z = tan( 3 / tan(fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "atan" z = atan(3 /atan (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "tanh" z = tanh( 3 /tanh (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "atanh" z = atanh(3 /atanh (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "cotan" z = cotan(3 / cotan(fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "cotanh" z = cotanh(3 /cotanh (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "sqr" z = sqr(3 /sqr (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "sqrt" z = sqrt(3 /sqrt (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "log" z = log(3 /log (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "exp" z = exp(3 /exp (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "abs" z = abs(3 /abs (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "cabs" z = cabs(3 / cabs(fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "conj" z = conj(3 / conj(fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "flip" z = flip(3 /flip (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "ident" z = ident(3 / ident(fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "zero" z = zero(3 /zero (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "recip" z = recip(3 / recip(fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "ceil" z = ceil(3 /ceil (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "floor" z = floor(3 / floor(fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "trunc" z = trunc(3 /trunc (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c elseif @op == "round" z = round(3 /round (fn4 ( fn4 ( z - @fn2 ( z + (fn1 ( z ^ p3 )+ ((@fn3 ( z - p6 )+ (p4)-\ (4 ^ z ^ (sqrt (p5 ))))))))))) + p5*c endif bailout: |z| <= @bailout default: title = "Julia 21804_delta_p1" periodicity = 0 heading caption = "Parameters" endheading int param bailout caption = "Bailout value" default = 32 max = 122 min = 1 endparam param op caption = "Operator" enum = "+""-""*""/""^""sin""sinh""asin""asinh"\ "cos""cosh""acos""acosh""tan""tanh""atan""atanh"\ "cotan""cotanh""sqr""sqrt""log""exp"\ "abs""cabs""conj""flip""ident""zero""recip" \ "ceil""floor""trunc" "round" default = 0 endparam heading caption = "Affecters of Z" endheading bool param inv caption = "Invert Z" default = false endparam bool param zpix caption = "Z=Pixel" default = false endparam bool param xplus caption = "Add X" default = false endparam bool param yplus caption = "Add Y" default = false endparam bool param Zpower caption = "Z^Z" default = false endparam bool param Xpower caption = "Z^X" default = false endparam bool param Ypower caption = "Z^Y" default = false endparam bool param Gpower caption = "Z^G" default = false endparam bool param Gplus caption = "Z+G" default = false endparam bool param func1 caption = "Fn(Z)" default = false endparam bool param func2 caption = "Fn1(@fn2(Z))" default = false endparam bool param func3 caption = "Fn1(fn2(fn3(Z)))" default = false endparam bool param funcpowerz caption = "Function Power" default = false endparam bool param funcpowerx caption = "Function Power of X" default = false endparam bool param funcpowery caption = "Function Power of Y" default = false endparam bool param funcpowerg caption = "Function Power of G" default = false endparam bool param ez caption = "Euler times Z" default = false endparam bool param zpi caption = "Pi times Z" default = false endparam bool param ztopidivzpi caption = "Z^Pi/Z*Pi" default = false endparam bool param zpidivztopi caption = "Z*Pi/Z^Pi" default = false endparam complex param p3 caption = "Param 1" default = (0,0) endparam complex param p4 caption = "Param 2" default = (0,0) endparam complex param p6 caption = "Param 3" default = (0,0) endparam float param p5 caption = "C Mulitplier"; Formerly #Angle default = 0 endparam param @p7 caption = "Subtracter" default = (0,0) endparam param @p8 caption = "Mulitplier" default = (1,0) endparam param @p9 caption = "Power" default = (0,0) endparam complex param seed caption = "Seed" default = (0,0) endparam heading caption = "Functions" endheading func fn4 caption = "Function 1" default = cos() endfunc func fn1 caption = "Function 2" default = atan() endfunc func fn2 caption = "Function 3" default = cabs() endfunc func fn3 caption = "Function 4" default = cabs() endfunc func @fn5 caption = "Function(1) of Z" default = ident() endfunc func @fn6 caption = "Functions(2) of z" default = ident() endfunc func @fn7 caption = "Functions(3) of z" default = ident() endfunc param version caption = "Version" default = 3.0 endparam switch: type = "Julia21804" p3 = @p3 p4 = #pixel p5 = @p5 p6 = @p6 bailout = @bailout fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 fn4 = @fn4 op = @op x = @x y = @y g = @g inv = @inv gplus = @gplus xplus = @xplus yplus = @yplus func1 = @func1 func2 = @func2 func3 = @func3 funcpowerx = @funcpowerx funcpowery = @funcpowery funcpowerz = @funcpowerz funcpowerg = @funcpowerg zpix = @zpix inv = @inv ez = @ez zpi = @zpi ztopidivzpi = ztopidivzpi zpidivztopi = @zpidivztopi power = @power } JuliaVariant { ; By Dolf De Rovira 3-23-04 ; A variation on a previous theme. Each formula ; resembles the Julia Plus 4 format with a tweaking or ; variant. Switch goes into MandelbrotVariant. I have ; tried to help those who love spirals by analyzing as best ; as I could where the spirals might be by painstakingly going ; through all of the combinations. With 50 different flavors ; to choose from, I certainly might have missed some. If you find ; any great spirals, let me know and I will include it a ; future upload. For convenience, I have used some shortcuts ; like "found at ident,sin,cosh/conj" which means at both ident,sin ; and cosh for functions fn1 fn2 and fn3 respectively and at ident, sin, ; and conj as well. I put a lot of work into this one, I hope ; you find it enjoyable and discover interesting objects-Dolf ; This format was based on a formula wset up that was perfected ; with the help of Toby Marshall and Bob Margolis, and for their ; help I am forever grateful. Also I want to thank Andrea Spinozzi for ; the idea of the mode choice box. It works especially well in the ; switching mode. init: z = #pixel c = @seed x = real(z) y = imag(z) g = real(c) loop: if @mode == true x = real(c) y = imag(c) endif if @version > 2.0 if @ztweaker == "z=orig" z = fn1(z) elseif @ztweaker == "z=z+c" z = fn1(z) + fn2(c) elseif @ztweaker == "z=z+x" z = fn1(z) + fn2(x) elseif @ztweaker == "z=z+y" z = fn1(z) + fn2(y) elseif @ztweaker == "z=z+g" z = fn1(z) + fn2(g) elseif @ztweaker == "z=z*c" z = fn1(z) * fn2(c) elseif @ztweaker == "z=z*x" z = fn1(z) * fn2(x) elseif @ztweaker == "z=z*y" z = fn1(z) * fn2(y) elseif @ztweaker == "z=z*g" z = fn1(z) * fn2(g) elseif @ztweaker == "z=z/c" z = fn1(z) / fn2(c) elseif @ztweaker == "z=z/x" z = fn1(z) / fn2(x) elseif @ztweaker == "z=z/g" z = fn1(z) / fn2(g) elseif @ztweaker == "z=z/c+z" z = fn1(z) / fn2(c) + fn3(z) elseif @ztweaker == "z=z/x+z" z = fn1(z) / fn2(x) + fn3(z) elseif @ztweaker == "z=z/c+c" z = fn1(z) / fn2(c) + fn3(c) elseif @ztweaker == "z=z/x+c" z = fn1(z) / fn2(x) + fn3(c) elseif @ztweaker == "z=z/g+c" z = fn1(z) / fn2(g) + fn3(c) elseif @ztweaker == "z=z-c" z = fn1(z) - fn2(c) elseif @ztweaker == "z=z-x" z = fn1(z) - fn2(x) elseif @ztweaker == "z=z-g" z = fn1(z) - fn2(g) elseif @ztweaker == "z=c-z" z = fn1(c) - fn2(z) elseif @ztweaker == "z=x-z" z = fn1(x) - fn2(z) elseif @ztweaker == "z=g-z" z = fn1(g) - fn2(z) elseif @ztweaker == "z=z/c-z" z = fn1(z) / fn2(c) - fn3(z) elseif @ztweaker == "z=z/x-z" z = fn1(z) / fn2(x) - fn3(z) elseif @ztweaker == "z=z/g-z" z = fn1(z) / fn2(g) - fn3(z) elseif @ztweaker == "z=z/c-c" z = fn1(z) / fn2(c) - fn3(c) elseif @ztweaker == "z=z/x-c" z = fn1(z) / fn2(x) - fn3(c) elseif @ztweaker == "z=z/g-c" z = fn1(z) / fn2(g) - fn3(c) elseif @ztweaker == "z=z-z/c" z = fn1(z) - fn2(z) / fn3(c) elseif @ztweaker == "z=z-z/x" z = fn1(z) - fn2(z) / fn3(x) elseif @ztweaker == "z=z-z/g" z = fn1(z) - fn2(z) / fn3(g) elseif @ztweaker == "z=c-z/c" z = fn1(c) - fn2(z) / fn3(c) elseif @ztweaker == "z=c-z/g" z = fn1(c) - fn2(z) / fn3(g) elseif @ztweaker == "z=c-z/x" z = fn1(c) - fn2(z) / fn3(x) elseif @ztweaker == "z=c/z" z = fn1(c) / fn2(z) elseif @ztweaker == "z=x/z" z = fn1(x) / fn2(z) elseif @ztweaker == "z*z+c" z = fn1(z) * fn2(z) + fn3(c) elseif @ztweaker == "z*c+z" z = fn1(z) * fn2(c) + fn3(z) elseif @ztweaker == "z=g/z" z = fn1(g) / fn2(z) elseif @ztweaker == "ezz" z = e^fn1(z)* fn2(z) elseif @ztweaker == "ez/z" z = e^fn1(z)/ fn2(z) elseif @ztweaker == "ex/z" z = e^fn1(x)/ fn2(z) elseif @ztweaker == "exz" z = e^fn1(x)* fn2(z) elseif @ztweaker == "ey/z" z = e^fn1(y)/ fn2(z) elseif @ztweaker == "eyz" z = e^fn1(y)* fn2(z) elseif @ztweaker == "z/1-z" z = fn1(z)/(1- fn2(z)) elseif @ztweaker == "z/1-x" z = fn1(z)/(1-fn2(x)) elseif @ztweaker == "z/1-y" z = fn1(z)/(1-fn2(y)) elseif @ztweaker == "zpi" z = fn1(z) ^ #pi elseif @ztweaker == "zpi/z" z = fn1(z) ^ #pi / fn2(z)^2 elseif @ztweaker == "z^pi/z^z" z = fn1(z) ^ #pi / fn2(z^z) elseif @ztweaker == "z/pixel" z = fn2(fn1(z) / #pixel) elseif @ztweaker == "zpixel" z = fn2(fn1(z) * #pixel) elseif @ztweaker == "z^pixel/z+pixel" z = fn1(z) ^ #pixel /fn2(z) + pixel elseif @ztweaker == "ez/zpixel" z = e^fn1(z) /(fn2(z)+ #pixel) elseif @ztweaker == "ez/pixel" z = fn2(e^fn1(z) /#pixel) elseif @ztweaker == "piz/pixel" z = fn2(fn1(z)^#pi / #pixel) elseif @ztweaker == "piz/zpixel" z = fn1(z)^#pi /(fn2(z) + #pixel) elseif @ztweaker == "z+zpixel" z = fn2(fn1(z) + #pixel) elseif @ztweaker == "z-zpixel" z = fn2(fn1(z) - #pixel) elseif @ztweaker == "z/zpixel" z = fn1(z) /(fn2(z) + #pixel) elseif @ztweaker == "z/pixelz" z = fn1(z) /#pixel^fn2(z) elseif @ztweaker == "ez/pixel" z = fn2(e^fn1(z)/#pixel) elseif @ztweaker == "c/ez" z = fn1(c / (#e * fn2(z))) elseif @ztweaker == "z+c/g" z = fn1(fn2(z) + c / g ) elseif @ztweaker == "x+z/y+c" z = (fn1(x) + z) / (fn2(y) + c) elseif @ztweaker == "g^z-c" z = fn2(g ^ (fn1(z) )) - c elseif @ztweaker == "z-x+y/x-y" z = fn1(z) - p2 + fn2((x+y)/(x-y)) elseif @ztweaker == "g/c-z" z = fn1(( g )/ (c - fn2(z))) elseif @ztweaker == "y+c/g" z = fn1(fn2(y) + c / g ) elseif @ztweaker == "x+y/y+c" z = (fn1(x) + y) / (fn2(y) + c) elseif @ztweaker == "g^y-c" z = fn2(g ^ (fn1(y) )) - c elseif @ztweaker == "y-x+y/x-y" z = fn1(y) - p2 + fn2((x+y)/(x-y)) elseif @ztweaker == "g/c-y" z = fn1(( g )/ (c - fn2(y))) elseif @ztweaker == "c/ex" z = fn1(c / (#e * fn2(x))) elseif @ztweaker == "x+c/g" z = fn1(fn2(x) + c / g ) elseif @ztweaker == "g^x-c" z = fn2(g ^(fn1(x))) - c endif if @inv == true z = 1/z else z = z endif if @zpix == true z = ((pixel-p1)*p2)^(2+ @p3) else z = z endif if @xplus == true z = ((z-p1)*p2)^(2+ @p3) + x else z = z endif if @yplus == true z = ((z-p1)*p2)^(2+ @p3) + y else z = z endif if @zpower == true z = ((z-p1)*p2)^(2+ @p3) ^ z else z = z endif if @xpower == true z = ((z-p1)*p2)^(2+ @p3)^x else z = z endif if @ypower == true z = ((z-p1)*p2)^(2+ @p3)^y else z = z endif if @gpower == true ; hpower showed no effect z = ((z-p1)*p2)^(2+ @p3)^g else z = z endif if @gplus == true ; hplus showed no effect z = ((z-p1)*p2)^(2+ @p3) + g else z = z endif if @func1 == true z = fn1((z-p1)*p2) else z = z endif if @func2 == true z = fn2(fn1((z-p1)*p2)) else z = z endif if @func3 == true z = fn3(fn2(fn1((z-p1)*p2))) else z = z endif if @funcpowerz == true z = ((z-p1)*p2)^fn1(z) else z = z endif if @funcpowerx == true z = ((z-p1)*p2)^fn1(x) else z = z endif if @funcpowery == true z = ((z-p1)*p2)^fn1(y) else z = z endif if @funcpowerg == true ; funcpowerh no effect z = ((z-p1)*p2)^fn1(g) else z = z endif if @ez == true z = e^z else z = z endif if @zpi == true z = z^#pi else z = z endif if @ztopidivzpi == true z = z^#pi/(z*#pi) else z = z endif if @zpidivztopi == true z = z*#pi/(z^#pi) else z = z endif if @flavor == "z" z = fn1((z-p1)*p2) elseif @flavor == "z^2 + c" z = fn1((z-p1)*p2)^fn3(2+ @p3) + fn3(c) elseif @flavor == "z^(z/c)" z = fn1((z-p1)*p2)^fn2((z-p1)*p2) + fn3(@p3/c) elseif @flavor == "z/(z-1)" z = fn1((z-p1)*p2)/fn2(((z-p1)*p2) -1) + fn3(@p3*c) elseif @flavor == "z^2/(z-1)" z = fn1((z-p1)*p2)^(2+ @p3)/fn2(((z-p1)*p2) -1) + fn3(@p3*c) elseif @flavor == "z^3/(z^2-1)" z = fn1((z-p1)*p2)^(3+ @p3)/fn2(((z-p1)*p2)^(2+ @p3) -1)\ +fn3(@p3*c) elseif @flavor == "z^3*c/(z^2-c)" z = fn1((z-p1)*p2)^(3+ @p3)*c/fn2(((z-p1)*p2)^(2+@p3) - c)\ - fn3(@p3*c) elseif @flavor == "z^3+z^2+z+c" z = fn1((z-p1)*p2)^(3+ @p3)+((z-p1)*p2)^(2+ @p3)+fn2((z-p1)*p2)\ ^(2+ @p3)+ fn3(@p3*c) elseif @flavor == "fnzfnzfnz" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)*fn3((z-p1)*p2) + @p3*c elseif @flavor == "fnzpfnzpfnzp" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)*fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "fnzfnz/fnz" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)/fn3((z-p1)*p2) + @p3*c elseif @flavor == "fnzpfnzp/fnzp" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)/fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "zzz" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)*fn3((z-p1)*p2) + @p3*c elseif @flavor == "z^pz^pz^p" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)*fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "zz/z" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)/fn3(z-p1)+ @p3*c elseif @flavor == "z^pz^p/z^p" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)/fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "z^3-z^2+c" z = fn1((z-p1)*p2)^(3+ @p3)-fn2((z-p1)*p2)^(2+ @p3)+ fn3(@p3*c) endif if @cchange == "Orig" c = c^@expC elseif @cchange == "Real" c = real(c)^@expC elseif @cchange == "Imag" c = imag(c)^@expC elseif @cchange == "Sign" c = -c^@expC elseif @cchange == "Squared" c = c^2+@expC elseif @cchange == "Exponent" c = e^c^@expC elseif @cchange == "Inverse" c = 1 / c^@expC elseif @cchange == "Inv/Exp" c = 1 / e^c^@expC elseif @cchange == "C/Exp" c = c^@expC / e^c^@expC elseif @cchange == "SQRPixel" c = sqr(pixel)/3 elseif @cchange == "CPower" c = c^c elseif @cchange == "EPower" c = c^(e+c) elseif @cchange == "ZPower" c = c^z elseif @cchange == "CPower3" c = c^c^c elseif @cchange == "CFunction" c = c^((z-@p1)*@p2)^@fnc(2 + @p3) elseif @cchange == "Function" c = @fnc(c^@expC) endif endif if @op == "1" z = @fn3(x/(z^@power + c + z^@fn1(y) + @fn2(c))) ;Spirals found throughout with #'s 1 & 2 you have to ;search in the "noisy" areas at magnification. elseif @op == "2" z = @fn3(y/(z^@power + c + z^@fn1(x) + @fn2(c))) ;Complex smaller spirals can be found throughout. An ;example is in the magnified upper right corner of ;recip, ident, ident elseif @op == "3" z = fn1(@fn3(y/x*(z^@power))) + fn2(z^@fn1(c))* fn3(@fn2(x)) ;Many interesting shapes, no apparent spirals. elseif @op == "4" z = @fn1(y/(z^@power + z^@fn3(c)* @fn2(x))) ;Not many obvious spirals. The best one at exp,ident,ident ;Interesting pattern at sin,sin,log elseif @op == "5" z = @fn3(c-x)/fn1((z^@power + fn2(z)*z^@fn1(z)^ \ sqr(@fn2(c))) + y) ;Can't find many spirals, but many different patterns. elseif @op == "6" z = @fn3(c/(z^@power ^ fn1(z) + z^@fn1(y) - fn2(sqr(@fn2(z))))) ;Some interesting spirals at ceil, ident, ident, and ;ceil, conj/asin/sqrt,ident also at trunc, ident,ident and ;trunc, cosh/sin, ident elseif @op == "7" z = @fn3(z/(z^@power + x^@fn1(y)^ sin(@fn2(c)))) + z ;Nice spirals at round,log,tan and tanh. Otherwise varied ;shapes elseif @op == "8" z = @fn3(c/(z^@power ^ c ^ z^@fn1(z) - sqr(@fn2(c)))) ;Good spirals at cosh,ident,ident and many at coatnh,etc.etc. ;Including cotanh,ident,ident c.,abs,ident, c.cabs,ident ;and cot, conj, ident. Otherwise very nice symmetrical forms ;and shapes elseif @op == "9" z = @fn3(z/(z^@power + c + y^@fn1(y)^ asinh(@fn2(y)))) + x ;Globs, noise and various shapes, no apparent spirals elseif @op == "10" z = @fn3(y - c^x/z^@power + z) + fn1(c^@fn1(z)^ cos(@fn2(y))) - \ (y + c/x^3)^z ;Many shapes and open areas. elseif @op == "11" z = @fn3(c/(z^@power + c + z^@fn1(z)^ sqr(@fn2(c)))) ;Great spirals at Ident,ident,ident, sinh,ident,ident, etc. elseif @op == "12" z = @fn1(y/fn3(z^fn2(@power))) + z* fn2(z^c^@fn1(c))* \ fn3(acos(@fn2(c))) + y ;Many different shapes and forms. Spirals not prevalent. elseif @op == "13" z = @fn3(y^x/fn1(y^@power + y + z^@fn1(x)) + z^ acosh(@fn2(c))) ;Some small but different spirals. one example is at ;sqrt,sqr,ident elseif @op == "14" z = @fn3(c^(z^@power + z^@fn1(z)^asin(@fn2(c)))) ;Many spirals throughout. elseif @op == "15" z = @fn3(z/(z^@power + c + z^@fn1(y)^ atan(@fn2(c)))) ;Many vertically oriented globs. No apparent spirals. elseif @op == "16" z = @fn3(z/(z^@power + c)) + @fn1(z^@fn1(x))^ atan(@fn2(c)) ;Many interesting horizontally oriented shapes both symmetrical and ;asymmetrical. No obvious spirals elseif @op == "17" z = fn1(@fn3(x/(z^@power))) + fn2(c + z^@fn1(y)) + fn3(@fn2(c)) ;Many petal shapes and globular shapes, no apparent spirals elseif @op == "18" z = @fn3(fn3(y))/fn1(z^@power + c) + fn2(z^@fn1(x)) + fn3(z)/@fn2(c) ;Many irregular open shapes, no apparent spirals elseif @op == "19" z = @fn2(y/x*z)^fn2(z^@power) + fn1(fn3(z^c)) + fn1(@fn2(x)) ;Smallish irregular shapes, no apparent spirals elseif @op == "20" z = @fn3(fn1(y)/z^@power) + fn2(z^@fn1(c))* fn3(@fn2(x)) ;Some spirals like abs, cotanh, ident. Mostly oblong and globular ;shapes and forms elseif @op == "21" z = @fn3(x)/y^@power + z^fn1(z) + c^@fn1(z) - @fn2(c) ;Many spirals at sinh/asinh/acosh/atan/cotanh,ident,ident ;The best at asinh,etc.,etc. elseif @op == "22" z = @fn3(x)/z^fn1(z)* c^@fn1(z) - fn3(x)* @fn2(c) ;Many spirals throughout sin,ident,ident etc. elseif @op == "23" z = @fn3(fn1(c/(z^@power) + c)* z^z - c^@fn1(z)^ log(@fn2(c))) ;Interesting spirals at floor,cos,ident and floor,round ;cosh with other subtle shapes and forms elseif @op == "24" z = @fn3(x)/fn1(z^z) + fn3(c^@fn2(z)) - fn2(x)^@fn2(c) ;Squared off shaped a spiral at sqrt,ident,ident elseif @op == "25" z = @fn3(c/(z^@power + c + z^@fn1(z) + @fn2(c))) ;Interesting varied spirals esp at round,ident,ident,etc. ;Acos,ident,ident, etc. and exp,ident,ident, etc. elseif @op == "26" z = @fn3(x/(z^@power + c) - z^@fn1(y + x)* @fn2(c)) + z ;Many amorphous irregular shapes, no obvious spirals elseif @op == "27" z = @fn3(x/(z^@power + z^@fn1(y + x)* @fn2(z))) + c ;Many varied shapes no obvious spirals. elseif @op == "28" z = @fn3(z/x*(z^@power + z^@fn1(z)* @fn2(z))) + c ;Many spirals, esp. at cos/sqrt/log or ceil,ident,ident elseif @op == "29" z = @fn3(z/x*(z^@power + z^@fn1(z)* @fn2(c))) + c ;Many spirals, esp. at cos/sqrt/log or ceil,ident,ident elseif @op == "30" z = @fn3(x/(y^@power + fn3(z)) + z^@fn1(y+x)^ @fn2(c)) + z ;Various shapes no obvious spirals elseif @op == "31" z = @fn3(z/(z^@power + c^@fn1(c)^ sin(@fn2(c)))) + z ;Different spirals throughout elseif @op == "32" z = @fn3(x/(z^@power * z*@fn1(z))) + sin(@fn2(y)) + c ;Double seed-shapes and amorphous heart shapes with two good spirals ;at asin, round,abs and a floral spiral at asin,round,recip elseif @op == "33" z = z* @fn3(z/(z^@power + x^@fn1(c)^ asin(@fn2(c)))) + c ;Two noise bars and patterns elseif @op == "34" z = @fn3(z/(z^@power ^ c + y^@fn1(y + x)^ asinh(@fn2(y)))) + x ;Spirals at flip, .. , .. elseif @op == "35" z = @fn3(c)/fn1(z^@power) + fn2(z^@fn1(y + x)^ cos(@fn2(y)))\ + fn3(x^z^y) ;Many spiral forms with exp,..,.. elseif @op == "36" z = @fn3(c/(y^@power + @fn1(z)^ cosh(@fn2(c)))) + x ;Interesting different spirals at log,ident,ident/log,tanh,ident ;and esp. log, log, ident elseif @op == "37" z = @fn3(c/(z^@power + @fn1(z)^ acos(@fn2(c)))) + z ;Interesting partial spirals at log, ceil, tan / ident ;Spiral at log, ceil, recip elseif @op == "38" z = @fn3(x/(y^@power + y + z^@fn1(z)^ acosh(@fn2(c)))) + z ;Colorful patterns elseif @op == "39" z = @fn3(c)/fn3(z^@power + c) + z^@fn1(z)^ sqr(@fn2(c)) ;Spirals at Log, etc. etc. elseif @op == "40" z = @fn3(z/(z^@power + c + z^@fn1(y + x)^ atan(@fn2(c)))) + z ;Spirals at Sin exp etc. , also and open one at cos,ident,ident ;some interesting shapes and forms, and Minibrots throughout. ;Another interesting spirals at ceil/round,ident,ident. elseif @op == "41" z = @fn1(x) ^ @fn2(y) ^ @fn3(z) + @fn1(@power^c) ;Spiral at Flip, Atanh, Ident resp. elseif @op == "42" z = @fn1(x)/y ^@power + z*@fn2(x)^@fn3(y) + c ;Spirals at acosh, sin/asinh/tanh/ident, etc. resp. elseif @op == "43" z = @fn1(y/x*(z^@power + z^@fn1(c)* @fn3(x))) ;Very Interesting 3d Grids at recip, sqrt, etc. resp. elseif @op == "44" z = @fn1(y/z) + @power ^ z ^ @fn2(c) + @fn3(x) ^ c ;Spirals at acosh, sinh/asin/tan/atanh/conj, ;(acosh,ident,tan good) resp. elseif @op == "45" z = @fn3(@power + z) ^ z ^z + (@fn2(x)^ x + @fn1(c)) ;Many spirals with flip as first, cos & cotan as 2nd ;yield a splash spiral, three way spiral at log, zero, ;ceil, floor, trunc and round elseif @op == "46" z = @fn3(z)/fn2(z^@power) + x^@fn1(y)^ @fn2(c) ;Spirals at tan, ident, ident and many other tan ;also tan, ident, cabs, and ceil and floor, ident, ident elseif @op == "47" z = @fn3(x)^z^@power + x^@fn1(y)^@fn2(c)*z ;Interesting patterns curves and overlays elseif @op == "48" z = @fn3(x/y^@power+c) + 1/z^@fn1(z)^asin(@fn2(z)) ;Cotanh sin round = 5 pointed star spirals elseif @op == "49" z = fn1(x^3)/fn1(z-c^@power) - fn2(x^3)/y*fn2(z) + fn3(z^3)^fn3(z) ;Wings and fin shapes, no apparent spirals. elseif @op == "50" z = @fn1(x - z)/@fn1(z^c) * fn2(z^(c*x))/fn2(x^2-c^2) + fn3(z^4)^x ;Man Like figure, pedestals, etc. no apparent spiral forms. endif bailout: (@bailchoice == 0 && |z| <= @bailout) || \ (@bailchoice == 1 && real(sqr(z)) <= @bailout) || \ (@bailchoice == 2 && imag(sqr(z)) <= @bailout) || \ (@bailchoice == 3 && sqr(real(z)) <= @bailout) || \ (@bailchoice == 4 && sqr(imag(z)) <= @bailout) || \ (@bailchoice == 5 && (sqr(real(z)) <= @bailout && sqr(imag(z)) < @bailout)) || \ (@bailchoice == 6 && (sqr(real(z)) <= @bailout || sqr(imag(z)) < @bailout)) || \ (@bailchoice == 7 && (sqr(abs(real(z)) + abs(imag(z))) <= @bailout)) || \ (@bailchoice == 8 && (sqr(real(z) + imag(z)) <= @bailout)) default: title = "Spirogenesis-JuliaVariant" angle = 270.001 periodicity = 0 param bailout caption = "Bailout value" default = 4.0 min = 1.0 endparam param bailchoice caption = "Bailout Choice" default = 0 enum = "|z|" "Real(Z^2)""Imag(Z^2)""Real(Z)^2""Imag(Z)^2"\ "Real & Imag""Real or Imag""Sqr(Abs(Real&Imag)" "Sqr(Real&Imag)" endparam param seed caption = "Julia seed" default = (-0.6,0.01) endparam param power caption = "Power" default = (4,0) endparam param op 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" default = 0 endparam param mode caption = "Julia Mode" default = false endparam param p1 caption = "Subtracter" default = (0,0) endparam param p2 caption = "Mulitplier" default = (1,0) endparam param p3 caption = "Power" default = (0,0) endparam heading caption = "Functions" endheading func fn1 caption = "Function 1" default = ident() endfunc func fn2 caption = "Function 2" default = ident() endfunc func fn3 caption = "Function 3" default = ident() endfunc heading caption = "Affecters of Z" endheading bool param inv caption = "Invert Z" default = false endparam bool param zpix caption = "Z=Pixel" default = false endparam bool param xplus caption = "Add X" default = false endparam bool param yplus caption = "Add Y" default = false endparam bool param Zpower caption = "Z^Z" default = false endparam bool param Xpower caption = "Z^X" default = false endparam bool param Ypower caption = "Z^Y" default = false endparam bool param Gpower caption = "Z^G" default = false endparam bool param Gplus caption = "Z+G" default = false endparam bool param func1 caption = "Fn(Z)" default = false endparam bool param func2 caption = "Fn2(Fn1(Z))" default = false endparam bool param func3 caption = "Fn3(Fn2(Fn1(Z)))" default = false endparam bool param funcpowerz caption = "Function Power" default = false endparam bool param funcpowerx caption = "Function Power of X" default = false endparam bool param funcpowery caption = "Function Power of Y" default = false endparam bool param funcpowerg caption = "Function Power of G" default = false endparam bool param ez caption = "Euler times Z" default = false endparam bool param zpi caption = "Pi times Z" default = false endparam bool param ztopidivzpi caption = "Z^Pi/Z*Pi" default = false endparam bool param zpidivztopi caption = "Z*Pi/Z^Pi" default = false endparam param cchange caption = "Nuance of C" enum = "Orig""Real""Imag""Sign""Squared"\ "Exponent""Inverse""Inv/Exp""C/Exp"\ "SQRPixel""CPower""EPower""ZPower"\ "CPower3""CFunction""Function" default = 0 endparam func fnc caption = "C Function" default = sqr() visible = @cchange == "Function" ||\ @cchange == "CFunction" endfunc float param expC caption = "Power of C" default = 1.0 endparam param ztweaker caption = "Z Tweaker" enum = "z=orig""z=z+c""z=z+x""z=z+y""z=z+g"\ "z=z*c""z=z*x""z=z*y""z=z*g""z=z/c""z=z/x""z=z/g"\ "z=z/c+z""z=z/x+z""z=z/c+c""z=z/x+c"\ "z=z/g+c""z=z-c""z=z-x""z=z-g""z=c-z""z=x-z"\ "z=g-z""z=z/c-z""z=z/x-z""z=z/g-z""z=z/c-c""z=z/x-c"\ "z=z/g-c""z=z-z/c""z=z-z/x""z=z-z/g""z=c-z/c"\ "z=c-z/x""z=c-z/g""z=c/z""z=x/z""z=g/z""z*z+c""z*c+z"\ "ezz""ez/z""exz""ex/z""eyz""ey/z""z/1-z""z/1-x""z/1-y"\ "zpi""zpi/z""z^pi/z^z""zpixel""z/pixelz"\ "z/zpixel""z^pixel/z+pixel""ez/zpixel""z/pixel""piz/pixel"\ "piz/zpixel""z-zpixel""ez/pixel""z+zpixel"\ "c/ez""z+c/g""x+z/y+c""g^z-c""z-x+y/x-y""g/c-z"\ "y+c/g""x+y/y+c""g^y-c""y-x+y/x-y""g/c-y"\ "g/c-x""g^x-c""x+c/g""c/ex" default = 0 endparam param flavor caption = "Formula Flavor" enum = "z""z^2 + c""z^(z/c)""z/(z-1)""z^2/(z-1)""z^3/(z^2-1)"\ "z^3*c/(z^2-c)""z^3+z^2+z+c""fnzfnzfnz""fnzpfnzpfnzp"\ "fnzfnz/fnz""fnzpfnzp/fnzp""zzz""z^pz^pz^p"\ "zz/z""z^pz^p/z^p""z^3-z^2+c" default = 0 endparam param version caption = "Version" default = 3.0 endparam switch: type = "MandelbrotVariant" op = @op power = #pixel mode = @mode bailout = @bailout inv = @inv fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 xpower = @xpower ypower = @ypower zpower = @zpower gpower = @gpower x = @x y = @y g = @g gplus = @gplus xplus = @xplus yplus = @yplus func1 = @func1 func2 = @func2 func3 = @func3 p1 = @p1 p2 = @p2 p3 = @p3 funcpowerx = @funcpowerx funcpowery = @funcpowery funcpowerz = @funcpowerz funcpowerg = @funcpowerg startseed = #pixel fnc = @fnc expC = @expC mode2=@switchmode switchmode=@mode2 center=@swcenter scale=@swscale style = @style ztweaker = @ztweaker bailchoice = @bailchoice cchange = @cchange flavor = @flavor zpix = @zpix inv = @inv ez = @ez zpi = @zpi ztopidivzpi = ztopidivzpi zpidivztopi = @zpidivztopi } MandelbrotVariant { ; By Dolf De Rovira 3-23-04 ; A variation on a previous theme. Each formula ; resembles the Julia Plus 4 format with a tweaking or ; variant. Switch goes into JuliaVariant. init: z = @start c = #pixel x = real(z) y = imag(z) g = real(c) loop: if @mode == true x = real(c) y = imag(c) endif if @version > 2.0 if @ztweaker == "z=orig" z = fn1(z) elseif @ztweaker == "z=z+c" z = fn1(z) + fn2(c) elseif @ztweaker == "z=z+x" z = fn1(z) + fn2(x) elseif @ztweaker == "z=z+y" z = fn1(z) + fn2(y) elseif @ztweaker == "z=z+g" z = fn1(z) + fn2(g) elseif @ztweaker == "z=z*c" z = fn1(z) * fn2(c) elseif @ztweaker == "z=z*x" z = fn1(z) * fn2(x) elseif @ztweaker == "z=z*y" z = fn1(z) * fn2(y) elseif @ztweaker == "z=z*g" z = fn1(z) * fn2(g) elseif @ztweaker == "z=z/c" z = fn1(z) / fn2(c) elseif @ztweaker == "z=z/x" z = fn1(z) / fn2(x) elseif @ztweaker == "z=z/g" z = fn1(z) / fn2(g) elseif @ztweaker == "z=z/c+z" z = fn1(z) / fn2(c) + fn3(z) elseif @ztweaker == "z=z/x+z" z = fn1(z) / fn2(x) + fn3(z) elseif @ztweaker == "z=z/c+c" z = fn1(z) / fn2(c) + fn3(c) elseif @ztweaker == "z=z/x+c" z = fn1(z) / fn2(x) + fn3(c) elseif @ztweaker == "z=z/g+c" z = fn1(z) / fn2(g) + fn3(c) elseif @ztweaker == "z=z-c" z = fn1(z) - fn2(c) elseif @ztweaker == "z=z-x" z = fn1(z) - fn2(x) elseif @ztweaker == "z=z-g" z = fn1(z) - fn2(g) elseif @ztweaker == "z=c-z" z = fn1(c) - fn2(z) elseif @ztweaker == "z=x-z" z = fn1(x) - fn2(z) elseif @ztweaker == "z=g-z" z = fn1(g) - fn2(z) elseif @ztweaker == "z=z/c-z" z = fn1(z) / fn2(c) - fn3(z) elseif @ztweaker == "z=z/x-z" z = fn1(z) / fn2(x) - fn3(z) elseif @ztweaker == "z=z/g-z" z = fn1(z) / fn2(g) - fn3(z) elseif @ztweaker == "z=z/c-c" z = fn1(z) / fn2(c) - fn3(c) elseif @ztweaker == "z=z/x-c" z = fn1(z) / fn2(x) - fn3(c) elseif @ztweaker == "z=z/g-c" z = fn1(z) / fn2(g) - fn3(c) elseif @ztweaker == "z=z-z/c" z = fn1(z) - fn2(z) / fn3(c) elseif @ztweaker == "z=z-z/x" z = fn1(z) - fn2(z) / fn3(x) elseif @ztweaker == "z=z-z/g" z = fn1(z) - fn2(z) / fn3(g) elseif @ztweaker == "z=c-z/c" z = fn1(c) - fn2(z) / fn3(c) elseif @ztweaker == "z=c-z/g" z = fn1(c) - fn2(z) / fn3(g) elseif @ztweaker == "z=c-z/x" z = fn1(c) - fn2(z) / fn3(x) elseif @ztweaker == "z=c/z" z = fn1(c) / fn2(z) elseif @ztweaker == "z=x/z" z = fn1(x) / fn2(z) elseif @ztweaker == "z*z+c" z = fn1(z) * fn2(z) + fn3(c) elseif @ztweaker == "z*c+z" z = fn1(z) * fn2(c) + fn3(z) elseif @ztweaker == "z=g/z" z = fn1(g) / fn2(z) elseif @ztweaker == "ezz" z = e^fn1(z)* fn2(z) elseif @ztweaker == "ez/z" z = e^fn1(z)/ fn2(z) elseif @ztweaker == "ex/z" z = e^fn1(x)/ fn2(z) elseif @ztweaker == "exz" z = e^fn1(x)* fn2(z) elseif @ztweaker == "ey/z" z = e^fn1(y)/ fn2(z) elseif @ztweaker == "eyz" z = e^fn1(y)* fn2(z) elseif @ztweaker == "z/1-z" z = fn1(z)/(1- fn2(z)) elseif @ztweaker == "z/1-x" z = fn1(z)/(1-fn2(x)) elseif @ztweaker == "z/1-y" z = fn1(z)/(1-fn2(y)) elseif @ztweaker == "zpi" z = fn1(z) ^ #pi elseif @ztweaker == "zpi/z" z = fn1(z) ^ #pi / fn2(z)^2 elseif @ztweaker == "z^pi/z^z" z = fn1(z) ^ #pi / fn2(z^z) elseif @ztweaker == "z/pixel" z = fn2(fn1(z) / #pixel) elseif @ztweaker == "zpixel" z = fn2(fn1(z) * #pixel) elseif @ztweaker == "z^pixel/z+pixel" z = fn1(z) ^ #pixel /fn2(z) + pixel elseif @ztweaker == "ez/zpixel" z = e^fn1(z) /(fn2(z)+ #pixel) elseif @ztweaker == "ez/pixel" z = fn2(e^fn1(z) /#pixel) elseif @ztweaker == "piz/pixel" z = fn2(fn1(z)^#pi / #pixel) elseif @ztweaker == "piz/zpixel" z = fn1(z)^#pi /(fn2(z) + #pixel) elseif @ztweaker == "z+zpixel" z = fn2(fn1(z) + #pixel) elseif @ztweaker == "z-zpixel" z = fn2(fn1(z) - #pixel) elseif @ztweaker == "z/zpixel" z = fn1(z) /(fn2(z) + #pixel) elseif @ztweaker == "z/pixelz" z = fn1(z) /#pixel^fn2(z) elseif @ztweaker == "ez/pixel" z = fn2(e^fn1(z)/#pixel) elseif @ztweaker == "c/ez" z = fn1(c / (#e * fn2(z))) elseif @ztweaker == "z+c/g" z = fn1(fn2(z) + c / g ) elseif @ztweaker == "x+z/y+c" z = (fn1(x) + z) / (fn2(y) + c) elseif @ztweaker == "g^z-c" z = fn2(g ^ (fn1(z) )) - c elseif @ztweaker == "z-x+y/x-y" z = fn1(z) - p2 + fn2((x+y)/(x-y)) elseif @ztweaker == "g/c-z" z = fn1(( g )/ (c - fn2(z))) elseif @ztweaker == "y+c/g" z = fn1(fn2(y) + c / g ) elseif @ztweaker == "x+y/y+c" z = (fn1(x) + y) / (fn2(y) + c) elseif @ztweaker == "g^y-c" z = fn2(g ^ (fn1(y) )) - c elseif @ztweaker == "y-x+y/x-y" z = fn1(y) - p2 + fn2((x+y)/(x-y)) elseif @ztweaker == "g/c-y" z = fn1(( g )/ (c - fn2(y))) elseif @ztweaker == "c/ex" z = fn1(c / (#e * fn2(x))) elseif @ztweaker == "x+c/g" z = fn1(fn2(x) + c / g ) elseif @ztweaker == "g^x-c" z = fn2(g ^(fn1(x))) - c endif if @inv == true z = 1/z else z = z endif if @zpix == true z = ((pixel-p1)*p2)^(2+ @p3) else z = z endif if @xplus == true z = ((z-p1)*p2)^(2+ @p3) + x else z = z endif if @yplus == true z = ((z-p1)*p2)^(2+ @p3) + y else z = z endif if @zpower == true z = ((z-p1)*p2)^(2+ @p3) ^ z else z = z endif if @xpower == true z = ((z-p1)*p2)^(2+ @p3)^x else z = z endif if @ypower == true z = ((z-p1)*p2)^(2+ @p3)^y else z = z endif if @gpower == true ; hpower showed no effect z = ((z-p1)*p2)^(2+ @p3)^g else z = z endif if @gplus == true ; hplus showed no effect z = ((z-p1)*p2)^(2+ @p3) + g else z = z endif if @func1 == true z = fn1((z-p1)*p2) else z = z endif if @func2 == true z = fn2(fn1((z-p1)*p2)) else z = z endif if @func3 == true z = fn3(fn2(fn1((z-p1)*p2))) else z = z endif if @funcpowerz == true z = ((z-p1)*p2)^fn1(z) else z = z endif if @funcpowerx == true z = ((z-p1)*p2)^fn1(x) else z = z endif if @funcpowery == true z = ((z-p1)*p2)^fn1(y) else z = z endif if @funcpowerg == true ; funcpowerh no effect z = ((z-p1)*p2)^fn1(g) else z = z endif if @ez == true z = e^z else z = z endif if @zpi == true z = z^#pi else z = z endif if @ztopidivzpi == true z = z^#pi/(z*#pi) else z = z endif if @zpidivztopi == true z = z*#pi/(z^#pi) else z = z endif if @flavor == "z" z = fn1((z-p1)*p2) elseif @flavor == "z^2 + c" z = fn1((z-p1)*p2)^fn3(2+ @p3) + fn3(c) elseif @flavor == "z^(z/c)" z = fn1((z-p1)*p2)^fn2((z-p1)*p2) + fn3(@p3/c) elseif @flavor == "z/(z-1)" z = fn1((z-p1)*p2)/fn2(((z-p1)*p2) -1) + fn3(@p3*c) elseif @flavor == "z^2/(z-1)" z = fn1((z-p1)*p2)^(2+ @p3)/fn2(((z-p1)*p2) -1) + fn3(@p3*c) elseif @flavor == "z^3/(z^2-1)" z = fn1((z-p1)*p2)^(3+ @p3)/fn2(((z-p1)*p2)^(2+ @p3) -1)\ +fn3(@p3*c) elseif @flavor == "z^3*c/(z^2-c)" z = fn1((z-p1)*p2)^(3+ @p3)*c/fn2(((z-p1)*p2)^(2+@p3) - c)\ - fn3(@p3*c) elseif @flavor == "z^3+z^2+z+c" z = fn1((z-p1)*p2)^(3+ @p3)+((z-p1)*p2)^(2+ @p3)+fn2((z-p1)*p2)\ ^(2+ @p3)+ fn3(@p3*c) elseif @flavor == "fnzfnzfnz" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)*fn3((z-p1)*p2) + @p3*c elseif @flavor == "fnzpfnzpfnzp" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)*fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "fnzfnz/fnz" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)/fn3((z-p1)*p2) + @p3*c elseif @flavor == "fnzpfnzp/fnzp" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)/fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "zzz" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)*fn3((z-p1)*p2) + @p3*c elseif @flavor == "z^pz^pz^p" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)*fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "zz/z" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)/fn3(z-p1)+ @p3*c elseif @flavor == "z^pz^p/z^p" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)/fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "z^3-z^2+c" z = fn1((z-p1)*p2)^(3+ @p3)-fn2((z-p1)*p2)^(2+ @p3)+ fn3(@p3*c) endif if @cchange == "Orig" c = c^@expC elseif @cchange == "Real" c = real(c)^@expC elseif @cchange == "Imag" c = imag(c)^@expC elseif @cchange == "Sign" c = -c^@expC elseif @cchange == "Squared" c = c^2+@expC elseif @cchange == "Exponent" c = e^c^@expC elseif @cchange == "Inverse" c = 1 / c^@expC elseif @cchange == "Inv/Exp" c = 1 / e^c^@expC elseif @cchange == "C/Exp" c = c^@expC / e^c^@expC elseif @cchange == "SQRPixel" c = sqr(pixel)/3 elseif @cchange == "CPower" c = c^c elseif @cchange == "EPower" c = c^(e+c) elseif @cchange == "ZPower" c = c^z elseif @cchange == "CPower3" c = c^c^c elseif @cchange == "CFunction" c = c^((z-@p1)*@p2)^@fnc(2 + @p3) elseif @cchange == "Function" c = @fnc(c^@expC) endif endif if @op == "1" z = @fn3(x/z^@power + fn2(c + z^@fn1(y))) + fn3(@fn2(c)) + z^x ;Spirals found throughout with #'s 1 & 2 you have to ;search in the "noisy" areas at magnification. elseif @op == "2" z = fn1(@fn3(y/z^@power)) + fn2(fn1(c)^z^@fn1(x)) + @fn2(z - c) ;Spiral at round, acosh, ident, rest interesting shapes elseif @op == "3" z = z^(@fn3(y/x*(z^@power))) + fn2(z^@fn1(c))* fn3(@fn2(x)) ;No apparent spirals, but many interesting shapes. elseif @op == "4" z = fn3(fn1(z^y)/z^@power) + fn2(z^@fn3(c))* @fn2(x) + c ;Many Mandelbrot shapes, no apparent spirals elseif @op == "5" z = @fn3(c - x)/fn1((z^@power + fn2(z)*z^@fn1(z)^ \ sqr(@fn2(c))) + y) ;Many spiral like scattered throughout esp at asin,?,? and at ;asinh, ?,? elseif @op == "6" z = @fn1(c/z^@power ^ fn1(z)) + fn2(z^@fn1(y)) - fn3(fn2\ (sqr(@fn2(z)) + c)) ;Many tiny spiral configurations throughout. elseif @op == "7" z = fn1(@fn3(fn1(z^@power))*fn2(c - x))/fn1(z^@power) + fn2(x^@fn3(y)^x\ + sin(@fn2(z-c))) ;Many little spirals like at cos,ident,ident, etc. elseif @op == "8" z = @fn1(c - z^2)/fn3(z^@power ^ c) + fn1(c^z^@fn1(z)) - sqr(@fn2(c)) ;Tiny hidden throughout like at acosh, ident, ident, and cotan,ident,ident ;Magnify the busy areas. elseif @op == "9" z = fn1(c - z^2)/@fn2(z^@power) * fn2(z)^(x^@fn3(y))*fn3(asinh(@fn2(z))) ;Many interesting shapes, but no obvious spirals elseif @op == "10" z = @fn3(y-c^x/z^@power + z) + fn1(c^@fn1(z)^ cos(@fn2(y))) - \ (y + c/x^3)^z ;Most spirals at conj,...,... other interesting shapes. elseif @op == "11" z = @fn3(z)^c/(z^@power + c + z^@fn1(z)^ sqr(@fn2(c))) ;Many spirals in combinations at sin/asin/sinh/asinh/tan/sqr ;ident/zero/trunc/round,ident,ident and others. elseif @op == "12" z = @fn1(y/fn3(z^fn2(@power))) + z* fn2(z^c^@fn1(c))* \ fn3(acos(@fn2(c))) + y^c ;Various tiny spirals that need magnification elseif @op == "13" z = @fn1(y)^fn3(z^fn2(@power)) + fn2(z^fn2(z^c^@fn1(c)))* \ fn3(acos(@fn2(c))) + y ;Interesting shapes, no obvious spirals elseif @op == "14" z = @fn3(c^(z^@power + z^@fn1(z)^asin(@fn2(c)))) ;Many shapes and open areas. No obvious spirals. elseif @op == "15" z = @fn1(z - c)/fn1(z^@power * c/x - @power) * fn2(z^@fn3(y - c))* \ atan(@fn2(c - z)) ;Tiny spirals discovered after magnifying small areas example: ;sqrt,ident,ident elseif @op == "16" z = @fn3(z/(z^@power + c)) + @fn1(z^@fn1(x))^ atan(@fn2(c)) ;No apparent spirals found yet. elseif @op == "17" z = fn1(@fn3(x/(z^@power))) + fn2(c + z^@fn1(y)) + fn3(@fn2(c)) ;Magnified spiral in center by black area. elseif @op == "18" z = @fn3(fn3(y))/fn1(z^@power + c) + fn2(z^@fn1(x)) + fn3(z)/@fn2(c) ;Spirals at flip, ident and others, ident. elseif @op == "19" z = @fn2(y/x*z)^fn2(z^@power) + fn1(fn3(z^c)) + fn1(@fn2(x)) + z ;sinh & sqr,ident,ident spirals. Better at sinh, tan, ident and others. elseif @op == "20" z = @fn3(fn1(y)/z^@power) + fn2(z^@fn1(c))* fn3(@fn2(x)) + c ;Floor, ident, ident interesting wide spiral elseif @op == "21" z = fn1(@fn3(x - c))/fn2(y - c) + fn1(fn2(z^c)* c^@fn3(z)) ;Small spirals at log,ident,ident ident,ident,ident and others elseif @op == "22" z = @fn3(x)/z^fn1(z)* c^@fn1(z) - fn3(x)* @fn2(c) ;Spirals at asin/atan/cotan,ident,ident elseif @op == "23" z = @fn3(fn1(c/(z^@power) + c)* z^z - c^@fn1(z)^ log(@fn2(c))) ;No apparent spirals elseif @op == "24" z = @fn3(x)/fn1(z^z) + fn3(c^@fn2(z)) - fn2(x)^@fn2(c) ;Spiral at exp,ident,ident magnify from middle elseif @op == "25" z = fn1(@fn3(c/z^@power + (z - c)/x)) + fn2(z^@fn1(z)) + fn3(1/@fn2(c)) ;Interesting shapes. No obvious spirals. elseif @op == "26" z = @fn3(x/(z^@power + c) - z^@fn1(y + x)* @fn2(c)) + z ;Spirals at flip, ident, ident elseif @op == "27" z = @fn3(x/(z^@power + z^@fn1(y + x)* @fn2(z))) + c ;Interesting shapes, but no apparent spirals elseif @op == "28" z = fn1(@fn3(z - c)/x*(z - c)^@power) + fn2(z^@fn1(z))* fn3(@fn2(z)) + c ;Many different shapes. No apparent spirals. elseif @op == "29" z = @fn3(z/c - x*(z^fn1(@power/z - c) + fn2(z)^@fn1(z)* @fn2(c))) ;Little spirals example at cosh,ident,ident magnified elseif @op == "30" z = @fn3(x/(y^@power + fn3(z)) + z^@fn1(y + x)^ @fn2(c)) + z ;Little spirals like at sinh,ident,ident elseif @op == "31" z = fn1(@fn3(x - c)/fn1(y - c)) * fn1(y*fn2(z) + fn2(z^@power)) / c^@fn1(z) + (x - y)\ ^2*fn1(sin(@fn2(c))) + z ;Mini Spirals like at sqrt,ident,ident elseif @op == "32" z = @fn3(x - c)/fn1(x - c)* fn2(z)^@power*@fn1(z) + fn3(sin(@fn2(y))) + c ;Small spirals need to be magnified like at cosh,ident,ident and others elseif @op == "33" z = fn1(@fn3(x)/fn1(x - c)) - fn2(fn2(z)^@power - fn3(z)) \ + fn3((x - c)/fn1(z)) + c ;Tiny spiral at tanh,ident,ident and others throughout. elseif @op == "34" z = @fn3(z/(fn1(z^@power) ^ c + y^@fn1(y + x)^ asinh(@fn2(y)))) + x ;Small spiral at asin, ident,ident elseif @op == "35" z = @fn3(c)/fn1(z^@power) + fn2(z^@fn1(y + x)^ cos(@fn2(y))) \ + fn3(x^z^y) ;Spiral at sinh,ident,ident elseif @op == "36" z = @fn3(c/(y^@power + @fn1(z)^ cosh(@fn2(c)))) + x ;Many shapes, no apparent spirals elseif @op == "37" z = fn1(c - y)/fn3(z-c) - fn1(fn2(x) + fn3(y)) + fn2(c - z)^z ;Tiny spirals like at tan,ident,ident and others. elseif @op == "38" z = @fn3(x/(y^@power + y + z^@fn1(z)^ acosh(@fn2(c)))) + z ;Colorful set, but no apparent spirals. elseif @op == "39" z = @fn3(c)/fn3(z^@power + c) + z^@fn1(z)^ sqr(@fn2(c)) ;Many shapes, no apparent spirals. elseif @op == "40" z = @fn3(fn1(z)/(z - c)^fn1(@power) + fn2(z)^c + z^@fn1(y + x)^ \ atan(@fn2(c))) + z ;Interesting spiral-like colorful forms at asin,ident,ident. OPen spiral ;at cotan,indent,ident. Little spirals are: exp,ident,ident. Interesting ;"snail spiral at recip,ident,ident. elseif @op == "41" z = @fn3(fn1(z)/(z + c)^fn1(@power) - fn2(z)^c - z^@fn1(y-x)^\ atan(@fn2(c))) - z ;Many small but interesting spirals throughout. Found at ;cosh/acosh/sqr/sqrt/log/abs/cabs/exp,etc.,ident,ident elseif @op == "42" z = @fn1(fn2(x - z)*y^3 - x^@power) + (c - z)^fn3(z)*@fn2(x)^@fn3(y) + c ;Many complex spirals throughout. Especially at sin/asin/sinh/asinh ;tan/tanh/atan/cotan/cotanh/conj/ident,ident,ident other fn2 and fn3. elseif @op == "43" z = @fn1(y - c)/x*z - c^@power + fn2(z^@fn1(c))* fn1(@fn3(x)) + z ;Spirals or hooks in this formula appear at sinh/asin/tan./cotan/trunc/round, ;ident,ident. elseif @op == "44" z = fn1(@fn2(y/z - c)) + fn1(c*fn2(y - x*@power)) + z^fn3(y ^ @fn2(c))* c + z ;Spirals at asin,ceil/floor/trunc,acos. Also many ;very interesting patterns throughout. elseif @op == "45" z = @fn3(@power)^y + fn1(z)^fn1(c - z) + fn1(x)^z + fn3(@fn2(x))^x \ + @fn1(c) + c ;Spiral at asin,ident,ident elseif @op == "46" z = fn1(x + c)/@fn3(z - c)^x + fn2(z^@power)*(c + z) + fn2(x^@fn1(y - c)) \ + y^@fn2(c) + y ;Mini spirals like at log,ident,ident and ident,ident,ident. elseif @op == "47" z = fn1(z - c)*x^y/@fn3(x)^z^@power + x^@fn1(y)^@fn2(c)*z + c*fn3(x)^y ;Small spirals at sinh/cos/cosh/acosh/exp,ident,ident and others ;Open pseudo-spiral at asin,ident,ident elseif @op == "48" z = @fn3(fn1(x - c))^x + fn1(c - z)/z^@fn1(z - c) + y*@power^asin(@fn2(z))\ + fn3(fn1(x - c))/fn2(c + y) + c ;Spiral at round,ident,ident. Curious box psuedo spiral at round, ;floor,ident. elseif @op == "49" z = fn3(fn1(x - c)*fn1(z - c)) - fn1(fn2(x^3)/fn2(z)) \ + fn1(x*fn3(z)^fn3(z)) + c^@power ;Many tiny spirals as in recip,tan,ident elseif @op == "50" z = @fn1(x - z)/@fn1(z^c) * fn2(z^(c*x))/fn2(x^2 - c^2) + fn1(fn3(z^4)^x) + c ;Tiny spirals like at ident,ident,ident. Also other interesting shapes. endif bailout: (@bailchoice == 0 && |z| <= @bailout) || \ (@bailchoice == 1 && real(sqr(z)) <= @bailout) || \ (@bailchoice == 2 && imag(sqr(z)) <= @bailout) || \ (@bailchoice == 3 && sqr(real(z)) <= @bailout) || \ (@bailchoice == 4 && sqr(imag(z)) <= @bailout) || \ (@bailchoice == 5 && (sqr(real(z)) <= @bailout && sqr(imag(z)) < @bailout)) || \ (@bailchoice == 6 && (sqr(real(z)) <= @bailout || sqr(imag(z)) < @bailout)) || \ (@bailchoice == 7 && (sqr(abs(real(z)) + abs(imag(z))) <= @bailout)) || \ (@bailchoice == 8 && (sqr(real(z) + imag(z)) <= @bailout)) default: title = "Spirogenesis-MandelbrotVariant" periodicity = 0 angle = 270.001 int param bailout caption = "Bailout value" default = 32 min = 1 max = 122 endparam param bailchoice caption = "Bailout Choice" default = 0 enum = "|z|" "Real(Z^2)""Imag(Z^2)""Real(Z)^2""Imag(Z)^2"\ "Real & Imag""Real or Imag""Sqr(Abs(Real&Imag)" "Sqr(Real&Imag)" endparam heading caption = "Parameters" endheading param start caption= "Start" default = (1,0) endparam param power caption = "Power" default = (4,0) endparam param op 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" default = 0 endparam param mode caption = "Switch To Julia" default = false endparam param p1 caption = "Subtracter" default = (0,0) endparam param p2 caption = "Mulitplier" default = (1,0) endparam param p3 caption = "Power" default = (0,0) endparam heading caption = "Functions" endheading func fn1 caption = "Function 1" default = ident() endfunc func fn2 caption = "Function 2" default = ident() endfunc func fn3 caption = "Function 3" default = ident() endfunc heading caption = "Affecters of Z" endheading bool param inv caption = "Invert Z" default = false endparam bool param zpix caption = "Z=Pixel" default = false endparam bool param xplus caption = "Add X" default = false endparam bool param yplus caption = "Add Y" default = false endparam bool param Zpower caption = "Z^Z" default = false endparam bool param Xpower caption = "Z^X" default = false endparam bool param Ypower caption = "Z^Y" default = false endparam bool param Gpower caption = "Z^G" default = false endparam bool param Gplus caption = "Z+G" default = false endparam bool param func1 caption = "Fn(Z)" default = false endparam bool param func2 caption = "Fn2(Fn1(Z))" default = false endparam bool param func3 caption = "Fn3(Fn2(Fn1(Z)))" default = false endparam bool param funcpowerz caption = "Function Power" default = false endparam bool param funcpowerx caption = "Function Power of X" default = false endparam bool param funcpowery caption = "Function Power of Y" default = false endparam bool param funcpowerg caption = "Function Power of G" default = false endparam bool param ez caption = "Euler times Z" default = false endparam bool param zpi caption = "Pi times Z" default = false endparam bool param ztopidivzpi caption = "Z^Pi/Z*Pi" default = false endparam bool param zpidivztopi caption = "Z*Pi/Z^Pi" default = false endparam param cchange caption = "Nuance of C" enum = "Orig""Real""Imag""Sign""Squared"\ "Exponent""Inverse""Inv/Exp""C/Exp"\ "SQRPixel""CPower""EPower""ZPower"\ "CPower3""CFunction""Function" default = 0 endparam func fnc caption = "C Function" default = sqr() visible = @cchange == "Function" ||\ @cchange == "CFunction" endfunc float param expC caption = "Power of C" default = 1.0 endparam param ztweaker caption = "Z Tweaker" enum = "z=orig""z=z+c""z=z+x""z=z+y""z=z+g"\ "z=z*c""z=z*x""z=z*y""z=z*g""z=z/c""z=z/x""z=z/g"\ "z=z/c+z""z=z/x+z""z=z/c+c""z=z/x+c"\ "z=z/g+c""z=z-c""z=z-x""z=z-g""z=c-z""z=x-z"\ "z=g-z""z=z/c-z""z=z/x-z""z=z/g-z""z=z/c-c""z=z/x-c"\ "z=z/g-c""z=z-z/c""z=z-z/x""z=z-z/g""z=c-z/c"\ "z=c-z/x""z=c-z/g""z=c/z""z=x/z""z=g/z""z*z+c""z*c+z"\ "ezz""ez/z""exz""ex/z""eyz""ey/z""z/1-z""z/1-x""z/1-y"\ "zpi""zpi/z""z^pi/z^z""zpixel""z/pixelz"\ "z/zpixel""z^pixel/z+pixel""ez/zpixel""z/pixel""piz/pixel"\ "piz/zpixel""z-zpixel""ez/pixel""z+zpixel"\ "c/ez""z+c/g""x+z/y+c""g^z-c""z-x+y/x-y""g/c-z"\ "y+c/g""x+y/y+c""g^y-c""y-x+y/x-y""g/c-y"\ "g/c-x""g^x-c""x+c/g""c/ex" default = 0 endparam param flavor caption = "Formula Flavor" enum = "z""z^2 + c""z^(z/c)""z/(z-1)""z^2/(z-1)""z^3/(z^2-1)"\ "z^3*c/(z^2-c)""z^3+z^2+z+c""fnzfnzfnz""fnzpfnzpfnzp"\ "fnzfnz/fnz""fnzpfnzp/fnzp""zzz""z^pz^pz^p"\ "zz/z""z^pz^p/z^p""z^3-z^2+c" default = 0 endparam param version caption = "Version" default = 3.0 endparam switch: type = "JuliaVariant" seed = #pixel op = @op mode = @mode bailout = @bailout inv = @inv fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 xpower = @xpower ypower = @ypower zpower = @zpower gpower = @gpower x = @x y = @y g = @g gplus = @gplus xplus = @xplus yplus = @yplus func1 = @func1 func2 = @func2 func3 = @func3 p1 = @p1 p2 = @p2 p3 = @p3 funcpowerx = @funcpowerx funcpowery = @funcpowery funcpowerz = @funcpowerz funcpowerg = @funcpowerg startseed = #pixel fnc = @fnc expC = @expC mode2=@switchmode switchmode=@mode2 center=@swcenter scale=@swscale style = @style ztweaker = @ztweaker bailchoice = @bailchoice cchange = @cchange flavor = @flavor zpix = @zpix inv = @inv ez = @ez zpi = @zpi ztopidivzpi = ztopidivzpi zpidivztopi = @zpidivztopi power = @power } SaddleReignsJulia { ; Saddle Inspired Julia ; By Dolf De Rovira Original Date 5-20-04 ; Version 3.5 Expanded Ztweaker, Style, and added ; Dabble Boxes 6-5-04 ; Version 3.4 Expanded ztweaker. ; Version 3.1 All in one. ; Version 3.2 - Bailouts together, ; Affecter Parameter Renamed. ; Version 3.3 added new cchange and ztweakers ; This is a formula based on the trigonometric ; saddle formula with a little extras ; The base formula is x^3 + y^3 - 12x - 27y +7 ; Although this particular formula did not ; yield very many interesting results, the ; variations off of the theme did. I isolated ; the x and y variables from the real and imaginary ; z complex variable. I then also found when ; three functions were placed in front of the ; groups and with the use of a power parameter ; and z^ factor, many interesting results ; were shown. I have kept the same "OP" selection ; to include the mathematical and trigonometric ; functions as in the Julia Plus 4. This ; Saddle Julia switches with the SaddleMandelbrot. ; A ztweaker, and bailout chooser has been added to enhance the images. ; Also added is a switch for the "c" variable yielding c = c ; (the orginal value), c=-c, c=c^2, c = imag(c) and c=real(c) ; Special thanks again to my two mentors; Toby Marshall and ; Bob Margolis without whose help, I would have never gotten ; to the comfort level to create such a complex task, and whose ; guidance I am sure will help bring me to even further levels of expertise. ; I also want to thank Frederik Slikjerman, whose Ultra Fractal ; Formula has enabled me to accomplish this, and for his kind ; generosity to enable me to include, with some adaptations, his original ; formula work. I also want to thank Sean M. Pratz for the ; ideas from his Bailout Galore formula that enabled me to add ; adjusting the bailouts in my bailchoice adaptation. ; The intent of the original formula was to see how x and y variables of real ; and imaginary z would play out. The results were not too convincing. ; I then took formulas from the Fractint collection in Ultra Fractal 3 public ; formulas and changed them to suit the tweaking of x and y variables ; in their ability to affect the formula outcome. I call these ; "Affecter Mode" choices. The z variable goes on and is changed again by the ; subsequent flavors, multipliers, subtracters and functions as well as the ; other choices of seed, bailout, power and start. Maximum iterations ; can greatly affect the final outcome as well. ; Also added is a switch for the "c" variable yielding c = c ; (the original value), c=-c, c=c^2, c = imag(c) and c=real(c) init: z = pixel c = @startseed loop: float x = real(z) float y = imag(z) float a = real(c) float b = imag(c) float g = real(@startseed) float h = imag(@startseed) if @mode2 == "Mandelbrot" z = @startseed c = #pixel endif if @mode2 == "Julia" z = pixel c = @startseed if @scale != 1.0 z = z/@scale endif if @center != (0.0,0.0) z = z + @center endif endif if @style == "z" z = fn1((z-p1)*p2) elseif @style =="fn(z^(2+power))" z = fn1((z-p1)*p2)^fn2(2+ @p3) + fn3(c) elseif @style == "fn(x-y)" z = fn1((z-p1)*p2)^fn2(2+ @p3) + fn1(x-y) + fn3(c) elseif @style == "(fn(y-x))" z = fn1((z-p1)*p2)^fn2(2+ @p3+ fn1(y-x)) + fn3(c) elseif @style =="(fn(x^2-y^2))" z = fn1((z-p1)*p2)^fn2(2+ @p3+ fn1(y^2-x^2)) + fn3(c) elseif @style =="fn(x^2-y^2)" z = fn1((z-p1)*p2)^fn2(2+ @p3)+ fn1(y^2-x^2) + fn3(c) elseif @style =="fn(x^e)" z = fn1(x)^fn2(e) + fn3(c) elseif @style =="fn(y^e)" z = fn1(y)^fn2(e) + fn3(c) elseif @style =="fn(x^pi)" z = fn1(x)^fn2(#pi)+fn3(c) elseif @style =="fn(y^pi)" z = fn1(y)^fn2(#pi) +fn3(c) elseif @style =="fn(z-x)^fn(z-y)" z = fn1(z-x)^fn2(z-y)+fn3(c) elseif @style =="fn(z+x)^fn(z+y)" z = fn1(z+x)^fn2(z+y)+fn3(c) endif if @ztweaker == "z=orig" z = z elseif @ztweaker == "z=z+a" z = z + a elseif @ztweaker == "z=z+b" z = z + b elseif @ztweaker == "z=z+c" z = z + c elseif @ztweaker == "z=z+x" z = z + x elseif @ztweaker == "z=z+y" z = z + y elseif @ztweaker == "z=z+g" z = z + g elseif @ztweaker == "z=z+h";all z+? z = z + h elseif @ztweaker == "z=z*c" z = z * c elseif @ztweaker == "z=z*a" z = z * a elseif @ztweaker == "z=z*b" z = z * b elseif @ztweaker == "z=z*x" z = z * x elseif @ztweaker == "z=z*y" z = z * y elseif @ztweaker == "z=z*g" z = z * g elseif @ztweaker == "z=z*h";all z*? z = z * h elseif @ztweaker == "z=z/c" z = z / c elseif @ztweaker == "z=z/a" z = z / a elseif @ztweaker == "z=z/b" z = z / b elseif @ztweaker == "z=z/x" z = z / x elseif @ztweaker == "z=z/y" z = z / y elseif @ztweaker == "z=z/g" z = z / g elseif @ztweaker == "z=z/h";all z/? z = z / h elseif @ztweaker == "z=z/c+z" z = z / c + z elseif @ztweaker == "z=z/x+z" z = z / x + z elseif @ztweaker == "z=z/y+z";all z/?+z z = z / y + z elseif @ztweaker == "z=z/c+c" z = z / c + c elseif @ztweaker == "z=z/a+c" z = z / a + c elseif @ztweaker == "z=z/b+c" z = z / b + c elseif @ztweaker == "z=z/x+c" z = z / x + c elseif @ztweaker == "z=z/y+c" z = z / y + c elseif @ztweaker == "z=z/g+c" z = z / g + c elseif @ztweaker == "z=z/h+c";all z/?+c z = z / h + z elseif @ztweaker == "z=z-c" z = z - c elseif @ztweaker == "z=z-a" z = z - a elseif @ztweaker == "z=z-b" z = z - b elseif @ztweaker == "z=z-x" z = z - x elseif @ztweaker == "z=z-y" z = z - y elseif @ztweaker == "z=z-g" z = z - g elseif @ztweaker == "z=z-h";all z-? z = z - h elseif @ztweaker == "z=c-z" z = c -z elseif @ztweaker == "z=a-z" z = a - z elseif @ztweaker == "z=b-z" z = b - z elseif @ztweaker == "z=x-z" z = x - z elseif @ztweaker == "z=y-z" z = y - z elseif @ztweaker == "z=g-z" z = g - z elseif @ztweaker == "z=h-z";all ?-z z = h - z elseif @ztweaker == "z=z/c-z" z = z / c - z elseif @ztweaker == "z=z/x-z" z = z / x - z elseif @ztweaker == "z=z/y-z" z = z / y - z elseif @ztweaker == "z=z/a-z" z = z / a - z elseif @ztweaker == "z=z/b-z" z = z / b - z elseif @ztweaker == "z=z/g-z" z = z / g - z elseif @ztweaker == "z=z/h-z";all z/?-z z = z / h - z elseif @ztweaker == "z=z/c-c" z = z / c - c elseif @ztweaker == "z=z/a-c" z = z / a - c elseif @ztweaker == "z=z/b-c" z = z / b - c elseif @ztweaker == "z=z/x-c" z = z / x - c elseif @ztweaker == "z=z/y-c" z = z / y - c elseif @ztweaker == "z=z/g-c" z = z / g - c elseif @ztweaker == "z=z/h-c";all z/?-c z = z / h - z elseif @ztweaker == "z=z-z/c" z = z - z / c elseif @ztweaker == "z=z-z/x" z = z - z / x elseif @ztweaker == "z=z-z/y" z = z - z / y elseif @ztweaker == "z=z-z/a" z = z - z / a elseif @ztweaker == "z=z-z/b" z = z - z / b elseif @ztweaker == "z=z-z/g" z = z - z / g elseif @ztweaker == "z=z-z/h";all z-z/? z = z - z / h elseif @ztweaker == "z=c-z/c" z = c - z / c elseif @ztweaker == "z=c-z/a" z = c - z / a elseif @ztweaker == "z=c-z/b" z = c - z / b elseif @ztweaker == "z=c-z/g" z = c - z / g elseif @ztweaker == "z=c-z/h" z = c - z / h elseif @ztweaker == "z=c-z/x" z = c - z / x elseif @ztweaker == "z=c-z/y" z = c - z / y elseif @ztweaker == "z=a/z" z = a / z elseif @ztweaker == "z=b/z" z = b / z elseif @ztweaker == "z=c/z" z = c / z elseif @ztweaker == "z=x/z" z = x / z elseif @ztweaker == "z=y/z" z = y / z elseif @ztweaker == "z=g/z" z = g / z elseif @ztweaker == "z=h/z" z = h / z elseif @ztweaker == "z*z+c" z = fn1(z) * fn2(z) + fn3(c) elseif @ztweaker == "z*c+z" z = fn1(z) * fn2(c) + fn3(z) elseif @ztweaker == "z=g/z" z = fn1(g) / fn2(z) elseif @ztweaker == "ezz" z = e^fn1(z)* fn2(z) elseif @ztweaker == "ez/z" z = e^fn1(z)/ fn2(z) elseif @ztweaker == "ex/z" z = e^fn1(x)/ fn2(z) elseif @ztweaker == "exz" z = e^fn1(x)* fn2(z) elseif @ztweaker == "ey/z" z = e^fn1(y)/ fn2(z) elseif @ztweaker == "eyz" z = e^fn1(y)* fn2(z) elseif @ztweaker == "z/1-z" z = fn1(z)/(1- fn2(z)) elseif @ztweaker == "z/1-x" z = fn1(z)/(1-fn2(x)) elseif @ztweaker == "z/1-y" z = fn1(z)/(1-fn2(y)) elseif @ztweaker == "zpi" z = z ^ #pi elseif @ztweaker == "zpi/z" z = z ^ #pi / z^2 elseif @ztweaker == "z^pi/z^z" z = z ^ #pi / z^z elseif @ztweaker == "z/pixel" z = z / #pixel elseif @ztweaker == "zpixel" z = z * #pixel elseif @ztweaker == "z^pixel/z+pixel" z = z ^ #pixel /z + pixel elseif @ztweaker == "ez/zpixel" z = e^z /(z+ #pixel) elseif @ztweaker == "ez/pixel" z = e^z /#pixel elseif @ztweaker == "piz/pixel" z = z^#pi / #pixel elseif @ztweaker == "piz/zpixel" z = z^#pi /(z + #pixel) elseif @ztweaker == "z+zpixel" z = z + #pixel elseif @ztweaker == "z-zpixel" z = z - #pixel elseif @ztweaker == "z/zpixel" z = z /(z+#pixel) elseif @ztweaker == "z/pixelz" z = z /#pixel^z elseif @ztweaker == "ez/pixel" z = e^z/#pixel elseif @ztweaker == "piz/pixel" z = fn2(fn1(z)^#pi / #pixel) elseif @ztweaker == "piz/zpixel" z = fn1(z)^#pi /(fn2(z) + #pixel) elseif @ztweaker == "z+zpixel" z = fn2(fn1(z) + #pixel) elseif @ztweaker == "z-zpixel" z = fn2(fn1(z) - #pixel) elseif @ztweaker == "z/zpixel" z = fn1(z) /(fn2(z) + #pixel) elseif @ztweaker == "z/pixelz" z = fn1(z) /#pixel^fn2(z) elseif @ztweaker == "ez/pixel" z = fn2(e^fn1(z)/#pixel) elseif @ztweaker == "c/ez" z = fn1(c / (#e * fn2(z))) elseif @ztweaker == "z+c/g" z = fn1(fn2(z) + c / g ) elseif @ztweaker == "x+z/y+c" z = (fn1(x) + z) / (fn2(y) + c) elseif @ztweaker == "g^z-c" z = fn2(g ^ (fn1(z) )) - c elseif @ztweaker == "z-x+y/x-y" z = fn1(z) - p2 + fn2((x+y)/(x-y)) elseif @ztweaker == "g/c-z" z = fn1(( g )/ (c - fn2(z))) elseif @ztweaker == "y+c/g" z = fn1(fn2(y) + c / g ) elseif @ztweaker == "x+y/y+c" z = (fn1(x) + y) / (fn2(y) + c) elseif @ztweaker == "g^y-c" z = fn2(g ^ (fn1(y) )) - c elseif @ztweaker == "y-x+y/x-y" z = fn1(y) - p2 + fn2((x+y)/(x-y)) elseif @ztweaker == "g/c-y" z = fn1(( g )/ (c - fn2(y))) elseif @ztweaker == "c/ex" z = fn1(c / (#e * fn2(x))) elseif @ztweaker == "x+c/g" z = fn1(fn2(x) + c / g ) elseif @ztweaker == "g^x-c" z = fn2(g ^(fn1(x))) - c endif if @inv == true z = 1/z else z = z endif if @zpix == true z = ((#pixel-p1)*p2)^(2+ @p3) else z = z endif if @xplus == true z = ((z-p1)*p2)^(2+ @p3) + x else z = z endif if @yplus == true z = ((z-p1)*p2)^(2+ @p3) + y else z = z endif if @zpower == true z = ((z-p1)*p2)^(2+ @p3) ^ z else z = z endif if @xpower == true z = ((z-p1)*p2)^(2+ @p3)^x else z = z endif if @ypower == true z = ((z-p1)*p2)^(2+ @p3)^y else z = z endif if @gpower == true ; hpower showed no effect z = ((z-p1)*p2)^(2+ @p3)^g else z = z endif if @gplus == true ; hplus showed no effect z = ((z-p1)*p2)^(2+ @p3) + g else z = z endif if @func1 == true z = fn1((z-p1)*p2) else z = z endif if @func2 == true z = fn2(fn1((z-p1)*p2)) else z = z endif if @func3 == true z = fn3(fn2(fn1((z-p1)*p2))) else z = z endif if @funcpowerz == true z = ((z-p1)*p2)^fn1(z) else z = z endif if @funcpowerx == true z = ((z-p1)*p2)^fn1(x) else z = z endif if @funcpowery == true z = ((z-p1)*p2)^fn1(y) else z = z endif if @funcpowerg == true ; funcpowerh no effect z = ((z-p1)*p2)^fn1(g) else z = z endif if @ez == true z = e^z else z = z endif if @zpi == true z = z^#pi else z = z endif if @ztopidivzpi == true z = z^#pi/(z*#pi) else z = z endif if @zpidivztopi == true z = z*#pi/(z^#pi) else z = z endif if @flavor == "z" z = fn1((z-p1)*p2) elseif @flavor == "z^2 + c" z = fn1((z-p1)*p2)^fn3(2+ @p3) + fn3(c) elseif @flavor == "z^(z/c)" z = fn1((z-p1)*p2)^fn2((z-p1)*p2) + fn3(@p3/c) elseif @flavor == "z/(z-1)" z = fn1((z-p1)*p2)/fn2(((z-p1)*p2) -1) + fn3(@p3*c) elseif @flavor == "z^2/(z-1)" z = fn1((z-p1)*p2)^(2+ @p3)/fn2(((z-p1)*p2) -1) + fn3(@p3*c) elseif @flavor == "z^3/(z^2-1)" z = fn1((z-p1)*p2)^(3+ @p3)/fn2(((z-p1)*p2)^(2+ @p3) -1)\ +fn3(@p3*c) elseif @flavor == "z^3*c/(z^2-c)" z = fn1((z-p1)*p2)^(3+ @p3)*c/fn2(((z-p1)*p2)^(2+@p3) - c)\ - fn3(@p3*c) elseif @flavor == "z^3+z^2+z+c" z = fn1((z-p1)*p2)^(3+ @p3)+((z-p1)*p2)^(2+ @p3)+fn2((z-p1)*p2)\ ^(2+ @p3)+ fn3(@p3*c) elseif @flavor == "fnzfnzfnz" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)*fn3((z-p1)*p2) + @p3*c elseif @flavor == "fnzpfnzpfnzp" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)*fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "fnzfnz/fnz" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)/fn3((z-p1)*p2) + @p3*c elseif @flavor == "fnzpfnzp/fnzp" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)/fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "zzz" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)*fn3((z-p1)*p2) + @p3*c elseif @flavor == "z^pz^pz^p" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)*fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "zz/z" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)/fn3(z-p1)+ @p3*c elseif @flavor == "z^pz^p/z^p" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)/fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "z^3-z^2+c" z = fn1((z-p1)*p2)^(3+ @p3)-fn2((z-p1)*p2)^(2+ @p3)+ fn3(@p3*c) endif if @cchange == "Orig" c = c^@expC elseif @cchange == "Real" c = real(c)^@expC elseif @cchange == "Imag" c = imag(c)^@expC elseif @cchange == "Sign" c = -c^@expC elseif @cchange == "Squared" c = c^2+@expC elseif @cchange == "Exponent" c = e^c^@expC elseif @cchange == "Inverse" c = 1 / c^@expC elseif @cchange == "Inv/Exp" c = 1 / e^c^@expC elseif @cchange == "C/Exp" c = c^@expC / e^c^@expC elseif @cchange == "SQRPixel" c = sqr(pixel)/3 elseif @cchange == "CPower" c = c^c elseif @cchange == "EPower" c = c^(e+c) elseif @cchange == "ZPower" c = c^z elseif @cchange == "CPower3" c = c^c^c elseif @cchange == "CFunction" c = c^((z-p1)*p2)^@fnc(2 + @spower) elseif @cchange == "Function" c = @fnc(c^@expC) endif ; "Affecter - Loop" for x & y variables. These formulas are ; not exactly the same as the named formulas, but are in the ; same essence as the originals. Liberties have been taken ; by this formula writer to make them compatible with this work. ; Many thanks to Frederik Slikjerman who has converted the original ; formulas developed first for FRACTINT to be compatible with ; Ultra Fractal. It is with his permission that I have adapted ; these original formulas for this one. if @mode == "Julia/Mandelbrot" z = z elseif @mode == "Barnsley1" if x >= 0 z = (z - 1) * c elseif x<0 z = (z + 1) * c endif elseif @mode == "Barnsley2" if x * h + g * y >= 0 z = (z - 1) * c elseif x * h + g * y < 0 z = (z + 1) * c endif elseif @mode == "Barnsley3" if x > 0 z = x^2 - y^2 -1 + 2*x * y elseif x <= 0 z = x^2 - y^2 -1 + a*x + 2*x*y + b*x endif elseif @mode == "ComplexMarks" if x >= y z = x^(@spower-1)*z^2 + c + x elseif y > x z = y^(@spower-1)*z^2 + c + y endif elseif @mode == "FrothyBasin" if x >= y z = z^2 - conj(z)*(1 + 1.02871376828*y) + x elseif y > x z = z^2 - conj(z)*(1 + 1.02871376828*y) + y endif elseif @mode == "GingerBread" if x >= y x = 1 - y + |x| elseif y > x y = x endif elseif @mode == "Magnet" if x >= y z = sqr( (z^2 + p1 - 1) / (2*(z-p1)*p2)^(2+ @spower) + p1) + x elseif y > x z = sqr( (z^2 + p1 - 1) / (2*(z-p1)*p2)^(2+ @spower) + p1) + y endif elseif @mode == "Lamda" if x >= y z = @startseed * fn1(z) + x elseif y > x z = @startseed * fn1(z) + y endif elseif @mode == "Hopalong" if x >= y z = sqrt(abs(p2*z-c)) + |p1 - x| + c + x elseif y > x z = sqrt(abs(p2*z-c)) + |p1 - y| + c + y endif elseif @mode == "Lorenz";x=x-p1*x + p1*y y= y+p1-y-z*x z=z -c*z + ;(x-p1*x + p1*y)* (y+p1-y-z*x) if x >= y z = z -c*((z-p1)*p2)^(2+ @spower) + (x-p1*x + p1*y)* (y+p1-y-(z-p1)*p2)^((2+ @spower)*x) + x elseif y > x z = ((z-p1)*p2)^(2+ @spower) -c*((z-p1)*p2)^(2+ @spower) + (x-p1*x + p1*y)* (y+p1-y-z*x) + y endif elseif @mode == "Newton" if x >= y z = (x)*((z-p1)*p2)^(@spower +1) + x + c elseif y > x z = (y)*((z-p1)*p2)^(@spower +1) + y + c endif elseif @mode == "Phoenix" if @spower >= 2 z = z^@spower + a*((z-p1)*p2)^(@spower - 1) + b * y elseif @spower <= -3 z = z^(-@spower) + a * ((z-p1)*p2)^(@spower - 2) + b * y elseif @spower > 3 || @spower < 2 z = z^2 + a + b * y endif elseif @mode == "Quat"; if x >= y z = sqr(z) - sqr(real(z)) - sqr(y) + c elseif y > x z = 2*x*x + flip(2*x*y) +c endif elseif @mode == "Sierpinski" if y > x z = y + 1/(2*x-1) elseif y>=x z = 2*x-1 + 1/(2*y) endif elseif @mode == "Spider" if y > x z = sqr((z-p1)*p2)^(2+ @spower) + c + ((z-p1)*p2)^(2+ @spower) + x elseif y>=x z = sqr((z-p1)*p2)^(2+ @spower) + c + ((z-p1)*p2)^(2+ @spower) + y endif endif if @op == "+" z = z^@power +z^(3+ fn1(x^3 + y ^3) - fn2(12*x) - fn3(27 * y +7)) + c elseif @op == "-" z = z^@power +z^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7))- c elseif @op == "*" z = z^@power +z*z^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7))+ c elseif @op == "/" z = z^@power +z /z^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7))- c elseif @op == "^" z = z^@power +z^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7))^ c elseif @op == "sin" z = z^@power +sin( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) elseif @op == "sinh" z = z^@power +sinh( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) elseif @op == "asin" z = z^@power +asin( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) elseif @op == "asinh" z = z^@power +asinh( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c) elseif @op == "cos" z = z^@power +cos( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) elseif @op == "cosh" z = z^@power +cosh( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c) elseif @op == "acos" z = z^@power +acos( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c) elseif @op == "acosh" z = z^@power +acosh( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c) elseif @op == "tan" z = z^@power +tan( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) elseif @op == "atan" z = z^@power +atan( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) elseif @op == "tanh" z = z^@power +tanh( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c) elseif @op == "atanh" z = z^@power +atanh( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) elseif @op == "cotan" z = z^@power +cotan( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) elseif @op == "cotanh" z = z^@power +cotanh( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c) elseif @op == "sqr" z = z^@power +sqr( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) elseif @op == "sqrt" z = z^@power +sqrt( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) elseif @op == "log" z = z^@power +log( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) elseif @op == "exp" z = z^@power +exp( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) elseif @op == "abs" z = z^@power +abs( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) elseif @op == "cabs" z = z^@power +cabs( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) elseif @op == "conj" z = z^@power +conj( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) elseif @op == "flip" z = z^@power +flip( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) elseif @op == "ident" z = z^@power +ident( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c) elseif @op == "zero" z = z^@power +z^(3+ fn1(x^3 - y ^3) + fn2(12*x) + zero(fn3(27 * y +7)- c)) elseif @op == "recip" z = z^@power +recip( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c) elseif @op == "ceil" z = z^@power +ceil( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) elseif @op == "floor" z = z^@power +floor( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c) elseif @op == "trunc" z = z^@power +trunc( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) elseif @op == "round" z = z^@power +round( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c) endif bailout: (@bailchoice == 0 && |z| <= @bailout) || \ (@bailchoice == 1 && real(sqr(z)) <= @bailout) || \ (@bailchoice == 2 && imag(sqr(z)) <= @bailout) || \ (@bailchoice == 3 && sqr(real(z)) <= @bailout) || \ (@bailchoice == 4 && sqr(imag(z)) <= @bailout) || \ (@bailchoice == 5 && (sqr(real(z)) <= @bailout && sqr(imag(z)) < @bailout)) || \ (@bailchoice == 6 && (sqr(real(z)) <= @bailout || sqr(imag(z)) < @bailout)) || \ (@bailchoice == 7 && (sqr(abs(real(z)) + abs(imag(z))) <= @bailout)) || \ (@bailchoice == 8 && (sqr(real(z) + imag(z)) <= @bailout)) default: title = "SaddleJulia" ; center = (0.23,-.06) magn = 1 angle = 0.01 periodicity = 0 param version caption = "Version" default = 3.5 endparam heading caption = "Switch Parameters" visible = @show endheading param mode2 caption = "Current Mode" enum = "Mandelbrot""Julia" default = 1 enabled = false endparam param SwitchMode caption = "Switch to" enum = "Mandelbrot""Julia" default = 0 enabled = false visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 hint = "Changes the scale in the switch window" visible = @show && @mode2 == "Mandelbrot" endparam complex param swcenter caption = "Switch Center" default = (0,0) hint = "Changes the center in the switch window" visible = @show && @mode2 == "Mandelbrot" endparam float param scale caption = "Scale Reset" default = 1 hint = "If you changed the 'Scale' value before switching you should \ reset this value to 1 in the Julia for the data in the 'Location' \ tab to be accurate" visible = @show && @mode2 == "Julia" endparam complex param center caption = "Center Reset" default = (0,0) hint = "If you changed the 'Scale' value before switching you should \ reset this value to (0,0) in the Julia for the data in the 'Location' \ tab to be accurate" visible = @show && @mode2 == "Julia" endparam param style caption = "Variation in Style" enum = "z""fn(z^(2+power))""fn(x-y)""fn(y-x)"\ "fn(x^2-y^2)""(fn(y-x))" "(fn(x^2-y^2))" \ "fn(x^e)""fn(y^e)""fn(x^pi)""fn(y^pi)"\ "fn(z-x)^fn(z-y)""fn(z+x)^fn(z+y)" default = 0 endparam heading caption = "Affecters of Z" endheading bool param inv caption = "Invert Z" default = false endparam bool param zpix caption = "Z=Pixel" default = false endparam bool param xplus caption = "Add X" default = false endparam bool param yplus caption = "Add Y" default = false endparam bool param Zpower caption = "Z^Z" default = false endparam bool param Xpower caption = "Z^X" default = false endparam bool param Ypower caption = "Z^Y" default = false endparam bool param Gpower caption = "Z^G" default = false endparam bool param Gplus caption = "Z+G" default = false endparam bool param func1 caption = "Fn(Z)" default = false endparam bool param func2 caption = "Fn2(Fn1(Z))" default = false endparam bool param func3 caption = "Fn3(Fn2(Fn1(Z)))" default = false endparam bool param funcpowerz caption = "Function Power" default = false endparam bool param funcpowerx caption = "Function Power of X" default = false endparam bool param funcpowery caption = "Function Power of Y" default = false endparam bool param funcpowerg caption = "Function Power of G" default = false endparam bool param ez caption = "Euler times Z" default = false endparam bool param zpi caption = "Pi times Z" default = false endparam bool param ztopidivzpi caption = "Z^Pi/Z*Pi" default = false endparam bool param zpidivztopi caption = "Z*Pi/Z^Pi" default = false endparam heading caption = "Functions" endheading func fn1 caption = "Function 1" default = ident() endfunc func fn2 caption = "Function 2" default = ident() endfunc func fn3 caption = "Function 3" default = ident() endfunc heading caption = "Parameters" endheading param bailout caption = "Bailout value" default = 4.0 min = 1.0 endparam param bailchoice caption = "Bailout Choice" default = 0 enum = "Reg" "Real(Z^2)""Imag(Z^2)""Real(Z)^2""Imag(Z)^2"\ "Real & Imag""Real or Imag""Sqr(Abs(Real&Imag)" "Sqr(Real&Imag)" endparam param startseed caption= "Start/Seed" ; default = (0.009,0.01);default for Mandelbrot default = (-1.25,0) hint = "Init Z for Mandlebrot, Seed for Julia" endparam param power caption = "Power" default = (2,0) endparam float param spower caption = "SPower" default = 0 endparam param op caption = "Operator" enum = "+""-""*""/""^""sin""sinh""asin""asinh"\ "cos""cosh""acos""acosh""tan""tanh""atan""atanh"\ "cotan""cotanh""sqr""sqrt""log""exp"\ "abs""cabs""conj""flip""ident""zero""recip" \ "ceil""floor""trunc" "round" default = 0 endparam param cchange caption = "Nuance of C" enum = "Orig""Real""Imag""Sign""Squared"\ "Exponent""Inverse""Inv/Exp""C/Exp"\ "SQRPixel""CPower""EPower""ZPower"\ "CPower3""CFunction""Function" default = 0 endparam func fnc caption = "C Function" default = sqr() visible = @cchange == "Function" ||\ @cchange == "CFunction" endfunc float param expC caption = "Power of C" default = 1.0 endparam param ztweaker caption = "Z Tweaker" enum = "z=orig""z=z+a""z=z+b""z=z+c""z=z+x""z=z+y""z=z+g""z=z+h"\ "z=z*a""z=z*b""z=z*c""z=z*x""z=z*y""z=z*g""z=z*h"\ "z=z/c""z=z/a""z=z/b""z=z/x""z=z/y""z=z/g""z=z/h"\ "z=z/c+z""z=z/x+z""z=z/y+z"\ "z=z/c+c""z=z/a+c""z=z/b+c""z=z/x+c""z=z/y+c""z=z/g+c""z=z/h+c"\ "z=z-a""z=z-b""z=z-c""z=z-x""z=z-y""z=z-g""z=z-h"\ "z=a-z""z=b-z""z=c-z""z=x-z""z=y-z""z=g-z""z=h-z"\ "z=z/c-z""z=z/x-z""z=z/y-z""z=z/a-z""z=z/b-z""z=z/g-z""z=z/h-z"\ "z=z/c-c""z=z/a-c""z=z/b-c""z=z/x-c""z=z/y-c""z=z/g-c""z=z/h-c"\ "z=z-z/c""z=z-z/x""z=z-z/y""z=z-z/a""z=z-z/b""z=z-z/g""z=z-z/h"\ "z=c-z/c""z=c-z/a""z=c-z/b""z=c-z/x""z=c-z/y""z=c-z/g""z=c-z/h"\ "z=a/z""z=b/z""z=c/z""z=x/z""z=y/z""z=g/z""z=h/z""z*z+c""z*c+z"\ "ezz""ez/z""exz""ex/z""eyz""ey/z""z/1-z""z/1-x""z/1-y"\ "zpi""zpi/z""z^pi/z^z""zpixel""z/pixelz"\ "z/zpixel""z^pixel/z+pixel""ez/zpixel""z/pixel""piz/pixel"\ "piz/zpixel""z-zpixel""ez/pixel""z+zpixel"\ "c/ez""z+c/g""x+z/y+c""g^z-c""z-x+y/x-y""g/c-z"\ "y+c/g""x+y/y+c""g^y-c""y-x+y/x-y""g/c-y"\ "g/c-x""g^x-c""x+c/g""c/ex" default = 0 endparam param flavor caption = "Formula Flavor" enum = "z""z^2 + c""z^(z/c)""z/(z-1)""z^2/(z-1)""z^3/(z^2-1)"\ "z^3*c/(z^2-c)""z^3+z^2+z+c""fnzfnzfnz""fnzpfnzpfnzp"\ "fnzfnz/fnz""fnzpfnzp/fnzp""zzz""z^pz^pz^p"\ "zz/z""z^pz^p/z^p""z^3-z^2+c" default = 0 endparam param mode caption = "Affecter Mode" default = 0 enum = "Julia/Mandelbrot""Barnsley1""Barnsley2""Barnsley3"\ "ComplexMarks""FrothyBasin""GingerBread""Magnet""Lamda"\ "Hopalong""Lorenz""Newton""Phoenix""Quat""Sierpinski"\ "Spider" endparam param p1 caption = "Affecter P1" default = (0,0) endparam param p2 caption = "Affecter P2" default = (1,0) endparam param p3 caption = "Power" default = (0,0) endparam switch: type = "SaddleReignsJulia" op = @op bailout = @bailout fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 fnc = @fnc power = @power p1 = @p1 p2 = @p2 a = @a b = @b g = @g h = @h x = @x y = @y expC = @expC cchange = @cchange btype = @btype ztweaker = @ztweaker bailchoice = @bailchoice spower = @spower version = @version mode2=@switchmode switchmode=@mode2 center=@swcenter scale=@swscale startseed = pixel style = @style inv = @inv zpix = @zpix xplus = @xplus yplus = @yplus xpower = @xpower ypower = @ypower gpower = @gpower func1 = @func1 func2 = @func2 func3 = @func3 funcpowerz = @funcpowerz funcpowerx = @funcpowerx funcpowery = @funcpowery funcpowerg = @funcpowerg ez = @ez zpi = @zpi ztopidivzpi = ztopidivzpi zpidivztopi = @zpidivztopi } SaddleReignsPlusJuliaComplex { ; By Dolf De Rovira 5-20-04 ; Version 3.1 All in one. ; Version 3.2 - Bailouts together, ; Affecter Parameter Renamed. ; Version 3.3 Added new ztweakers and cchanges. ; Saddle Julia derived from the topographical ; or trigonometric equation that produces a 3 dimensional ; saddle curve. ; SaddlePlusJulia was developed utilizing functions and ; parameters used in other successful formulas. ; This is a formula based on the trigonometric ; saddle formula with a little extras ; The base formula is x^3 + y^3 - 12x - 27y +7 ; Although this particular formula did not ; yield very many interesting results, the ; variations off of the theme did. I isolated ; the x and y variables from the real and imaginary ; z complex variable. I then also found when ; three functions were placed in front of the ; groups and with the use of a power parameter ; and z^ factor, many interesting results ; were shown. I have kept the same "OP" selection ; to include the mathematical and trigonometric ; functions as in the Julia Plus 4. This ; Saddle Julia switches with the SaddleMandelbrot. ; A ztweaker, and bailout chooser has been added to enhance the images. ; Also added is a switch for the "c" variable yielding c = c ; (the original value), c=-c, c=c^2, c = imag(c) and c=real(c) ; Special thanks again to my two mentors; Toby Marshall and ; Bob Margolis without whose help, I would have never gotten ; to the comfort level to create such a complex task, and whose ; guidance I am sure will help bring me to even further levels of expertise. ; I also want to thank Frederik Slikjerman, whose Ultra Fractal ; Formula has enabled me to accomplish this, and for his kind ; generosity to enable me to include, with some adaptations, his original ; formula work. I also want to thank Sean M. Pratz for the ; ideas from his Bailout Galore formula that enabled me to add ; adjusting the bailouts in my bailchoice adaptation. ; The intent of the original formula was to see how x and y variables of real ; and imaginary z would play out. The results were not too convincing. ; I then took formulas from the Fractint collection in Ultra Fractal 3 public ; formulas and changed them to suit the tweaking of x and y variables ; in their ability to affect the formula outcome. I call these ; "Affecter Mode" choices. The z variable goes on and is changed again by the ; subsequent flavors, multipliers, subtracters and functions as well as the ; other choices of seed, bailout, power and start. Maximum iterations ; can greatly affect the final outcome as well. ; Also added is a switch for the "c" variable yielding c = c ; (the original value), c=-c, c=c^2, c = imag(c) and c=real(c) init: z = pixel c = @startseed loop: float x = real(z) float y = imag(z) float a = real(c) float b = imag(c) float g = real(@startseed) float h = imag(@startseed) if @mode2 == "Mandelbrot" z = @startseed c = #pixel endif if @mode2 == "Julia" z = pixel c = @startseed if @scale != 1.0 z = z/@scale endif if @center != (0.0,0.0) z = z + @center endif endif if @style == "z" z = fn1((z-p1)*p2) elseif @style == "fn(z^(2+power))" z = fn1((z-p1)*p2)^fn2(2+ @p3) + fn3(c) elseif @style == "fn(x-y)" z = fn1((z-p1)*p2)^fn2(2+ @p3) + fn1(x-y) + fn3(c) elseif @style == "(fn(y-x))" z = fn1((z-p1)*p2)^fn2(2+ @p3+ fn1(y-x)) + fn3(c) elseif @style =="(fn(x^2-y^2))" z = fn1((z-p1)*p2)^fn2(2+ @p3+ fn1(y^2-x^2)) + fn3(c) elseif @style =="fn(x^2-y^2)" z = fn1((z-p1)*p2)^fn2(2+ @p3)+ fn1(y^2-x^2) + fn3(c) elseif @style =="fn(x^e)" z = fn1(x)^fn2(e) + fn3(c) elseif @style =="fn(y^e)" z = fn1(y)^fn2(e) + fn3(c) elseif @style =="fn(x^pi)" z = fn1(x)^fn2(#pi)+fn3(c) elseif @style =="fn(y^pi)" z = fn1(y)^fn2(#pi) +fn3(c) elseif @style =="fn(z-x)^fn(z-y)" z = fn1(z-x)^fn2(z-y)+fn3(c) elseif @style =="fn(z+x)^fn(z+y)" z = fn1(z+x)^fn2(z+y)+fn3(c) endif if @ztweaker == "z=orig" z = fn1(z) elseif @ztweaker == "z=z+c" z = fn1(z) + fn2(c) elseif @ztweaker == "z=z+x" z = fn1(z) + fn2(x) elseif @ztweaker == "z=z+y" z = fn1(z) + fn2(y) elseif @ztweaker == "z=z+g" z = fn1(z) + fn2(g) elseif @ztweaker == "z=z*c" z = fn1(z) * fn2(c) elseif @ztweaker == "z=z*x" z = fn1(z) * fn2(x) elseif @ztweaker == "z=z*y" z = fn1(z) * fn2(y) elseif @ztweaker == "z=z*g" z = fn1(z) * fn2(g) elseif @ztweaker == "z=z/c" z = fn1(z) / fn2(c) elseif @ztweaker == "z=z/x" z = fn1(z) / fn2(x) elseif @ztweaker == "z=z/g" z = fn1(z) / fn2(g) elseif @ztweaker == "z=z/c+z" z = fn1(z) / fn2(c) + fn3(z) elseif @ztweaker == "z=z/x+z" z = fn1(z) / fn2(x) + fn3(z) elseif @ztweaker == "z=z/c+c" z = fn1(z) / fn2(c) + fn3(c) elseif @ztweaker == "z=z/x+c" z = fn1(z) / fn2(x) + fn3(c) elseif @ztweaker == "z=z/g+c" z = fn1(z) / fn2(g) + fn3(c) elseif @ztweaker == "z=z-c" z = fn1(z) - fn2(c) elseif @ztweaker == "z=z-x" z = fn1(z) - fn2(x) elseif @ztweaker == "z=z-g" z = fn1(z) - fn2(g) elseif @ztweaker == "z=c-z" z = fn1(c) - fn2(z) elseif @ztweaker == "z=x-z" z = fn1(x) - fn2(z) elseif @ztweaker == "z=g-z" z = fn1(g) - fn2(z) elseif @ztweaker == "z=z/c-z" z = fn1(z) / fn2(c) - fn3(z) elseif @ztweaker == "z=z/x-z" z = fn1(z) / fn2(x) - fn3(z) elseif @ztweaker == "z=z/g-z" z = fn1(z) / fn2(g) - fn3(z) elseif @ztweaker == "z=z/c-c" z = fn1(z) / fn2(c) - fn3(c) elseif @ztweaker == "z=z/x-c" z = fn1(z) / fn2(x) - fn3(c) elseif @ztweaker == "z=z/g-c" z = fn1(z) / fn2(g) - fn3(c) elseif @ztweaker == "z=z-z/c" z = fn1(z) - fn2(z) / fn3(c) elseif @ztweaker == "z=z-z/x" z = fn1(z) - fn2(z) / fn3(x) elseif @ztweaker == "z=z-z/g" z = fn1(z) - fn2(z) / fn3(g) elseif @ztweaker == "z=c-z/c" z = fn1(c) - fn2(z) / fn3(c) elseif @ztweaker == "z=c-z/g" z = fn1(c) - fn2(z) / fn3(g) elseif @ztweaker == "z=c-z/x" z = fn1(c) - fn2(z) / fn3(x) elseif @ztweaker == "z=c/z" z = fn1(c) / fn2(z) elseif @ztweaker == "z=x/z" z = fn1(x) / fn2(z) elseif @ztweaker == "z*z+c" z = fn1(z) * fn2(z) + fn3(c) elseif @ztweaker == "z*c+z" z = fn1(z) * fn2(c) + fn3(z) elseif @ztweaker == "z=g/z" z = fn1(g) / fn2(z) elseif @ztweaker == "ezz" z = e^fn1(z)* fn2(z) elseif @ztweaker == "ez/z" z = e^fn1(z)/ fn2(z) elseif @ztweaker == "ex/z" z = e^fn1(x)/ fn2(z) elseif @ztweaker == "exz" z = e^fn1(x)* fn2(z) elseif @ztweaker == "ey/z" z = e^fn1(y)/ fn2(z) elseif @ztweaker == "eyz" z = e^fn1(y)* fn2(z) elseif @ztweaker == "z/1-z" z = fn1(z)/(1- fn2(z)) elseif @ztweaker == "z/1-x" z = fn1(z)/(1-fn2(x)) elseif @ztweaker == "z/1-y" z = fn1(z)/(1-fn2(y)) elseif @ztweaker == "zpi" z = fn1(z) ^ #pi elseif @ztweaker == "zpi/z" z = fn1(z) ^ #pi / fn2(z)^2 elseif @ztweaker == "z^pi/z^z" z = fn1(z) ^ #pi / fn2(z^z) elseif @ztweaker == "z/pixel" z = fn2(fn1(z) / #pixel) elseif @ztweaker == "zpixel" z = fn2(fn1(z) * #pixel) elseif @ztweaker == "z^pixel/z+pixel" z = fn1(z) ^ #pixel /fn2(z) + pixel elseif @ztweaker == "ez/zpixel" z = e^fn1(z) /(fn2(z)+ #pixel) elseif @ztweaker == "ez/pixel" z = fn2(e^fn1(z) /#pixel) elseif @ztweaker == "piz/pixel" z = fn2(fn1(z)^#pi / #pixel) elseif @ztweaker == "piz/zpixel" z = fn1(z)^#pi /(fn2(z) + #pixel) elseif @ztweaker == "z+zpixel" z = fn2(fn1(z) + #pixel) elseif @ztweaker == "z-zpixel" z = fn2(fn1(z) - #pixel) elseif @ztweaker == "z/zpixel" z = fn1(z) /(fn2(z) + #pixel) elseif @ztweaker == "z/pixelz" z = fn1(z) /#pixel^fn2(z) elseif @ztweaker == "ez/pixel" z = fn2(e^fn1(z)/#pixel) elseif @ztweaker == "c/ez" z = fn1(c / (#e * fn2(z))) elseif @ztweaker == "z+c/g" z = fn1(fn2(z) + c / g ) elseif @ztweaker == "x+z/y+c" z = (fn1(x) + z) / (fn2(y) + c) elseif @ztweaker == "g^z-c" z = fn2(g ^ (fn1(z) )) - c elseif @ztweaker == "z-x+y/x-y" z = fn1(z) - p2 + fn2((x+y)/(x-y)) elseif @ztweaker == "g/c-z" z = fn1(( g )/ (c - fn2(z))) elseif @ztweaker == "y+c/g" z = fn1(fn2(y) + c / g ) elseif @ztweaker == "x+y/y+c" z = (fn1(x) + y) / (fn2(y) + c) elseif @ztweaker == "g^y-c" z = fn2(g ^ (fn1(y) )) - c elseif @ztweaker == "y-x+y/x-y" z = fn1(y) - p2 + fn2((x+y)/(x-y)) elseif @ztweaker == "g/c-y" z = fn1(( g )/ (c - fn2(y))) elseif @ztweaker == "c/ex" z = fn1(c / (#e * fn2(x))) elseif @ztweaker == "x+c/g" z = fn1(fn2(x) + c / g ) elseif @ztweaker == "g^x-c" z = fn2(g ^(fn1(x))) - c endif if @inv == true z = 1/z else z = z endif if @zpix == true z = ((pixel-p1)*p2)^(2+ @p3) else z = z endif if @xplus == true z = ((z-p1)*p2)^(2+ @p3) + x else z = z endif if @yplus == true z = ((z-p1)*p2)^(2+ @p3) + y else z = z endif if @zpower == true z = ((z-p1)*p2)^(2+ @p3) ^ z else z = z endif if @xpower == true z = ((z-p1)*p2)^(2+ @p3)^x else z = z endif if @ypower == true z = ((z-p1)*p2)^(2+ @p3)^y else z = z endif if @gpower == true ; hpower showed no effect z = ((z-p1)*p2)^(2+ @p3)^g else z = z endif if @gplus == true ; hplus showed no effect z = ((z-p1)*p2)^(2+ @p3) + g else z = z endif if @func1 == true z = fn1((z-p1)*p2) else z = z endif if @func2 == true z = fn2(fn1((z-p1)*p2)) else z = z endif if @func3 == true z = fn3(fn2(fn1((z-p1)*p2))) else z = z endif if @funcpowerz == true z = ((z-p1)*p2)^fn1(z) else z = z endif if @funcpowerx == true z = ((z-p1)*p2)^fn1(x) else z = z endif if @funcpowery == true z = ((z-p1)*p2)^fn1(y) else z = z endif if @funcpowerg == true ; funcpowerh no effect z = ((z-p1)*p2)^fn1(g) else z = z endif if @ez == true z = e^z else z = z endif if @zpi == true z = z^#pi else z = z endif if @ztopidivzpi == true z = z^#pi/(z*#pi) else z = z endif if @zpidivztopi == true z = z*#pi/(z^#pi) else z = z endif if @flavor == "z" z = fn1((z-p1)*p2) elseif @flavor =="z^2 + c" z = fn1((z-p1)*p2)^fn3(2+ @p3) + fn3(c) elseif @flavor == "z^(z/c)" z = fn1((z-p1)*p2)^fn2((z-p1)*p2) + fn3(@p3/c) elseif @flavor == "z/(z-1)" z = fn1((z-p1)*p2)/fn2(((z-p1)*p2) -1) + fn3(@p3*c) elseif @flavor == "z^2/(z-1)" z = fn1((z-p1)*p2)^(2+ @p3)/fn2(((z-p1)*p2) -1) + fn3(@p3*c) elseif @flavor == "z^3/(z^2-1)" z = fn1((z-p1)*p2)^(3+ @p3)/fn2(((z-p1)*p2)^(2+ @p3) -1)\ +fn3(@p3*c) elseif @flavor == "z^3*c/(z^2-c)" z = fn1((z-p1)*p2)^(3+ @p3)*c/fn2(((z-p1)*p2)^(2+@p3) - c)\ - fn3(@p3*c) elseif @flavor == "z^3+z^2+z+c" z = fn1((z-p1)*p2)^(3+ @p3)+((z-p1)*p2)^(2+ @p3)+fn2((z-p1)*p2)\ ^(2+ @p3)+ fn3(@p3*c) elseif @flavor == "fnzfnzfnz" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)*fn3((z-p1)*p2) + @p3*c elseif @flavor == "fnzpfnzpfnzp" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)*fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "fnzfnz/fnz" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)/fn3((z-p1)*p2) + @p3*c elseif @flavor == "fnzpfnzp/fnzp" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)/fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "zzz" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)*fn3((z-p1)*p2) + @p3*c elseif @flavor == "z^pz^pz^p" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)*fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "zz/z" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)/fn3(z-p1)+ @p3*c elseif @flavor == "z^pz^p/z^p" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)/fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "z^3-z^2+c" z = fn1((z-p1)*p2)^(3+ @p3)-fn2((z-p1)*p2)^(2+ @p3)+ fn3(@p3*c) endif if @cchange == "Orig" c = c^@expC elseif @cchange == "Real" c = real(c)^@expC elseif @cchange == "Imag" c = imag(c)^@expC elseif @cchange == "Sign" c = -c^@expC elseif @cchange == "Squared" c = c^2+@expC elseif @cchange == "Exponent" c = e^c^@expC elseif @cchange == "Inverse" c = 1 / c^@expC elseif @cchange == "Inv/Exp" c = 1 / e^c^@expC elseif @cchange == "C/Exp" c = c^@expC / e^c^@expC elseif @cchange == "SQRPixel" c = sqr(pixel)/3 elseif @cchange == "CPower" c = c^c elseif @cchange == "EPower" c = c^(e+c) elseif @cchange == "ZPower" c = c^z elseif @cchange == "CPower3" c = c^c^c elseif @cchange == "CFunction" c = c^((z-@p1)*@p2)^@fnc(2 + @p3) elseif @cchange == "Function" c = @fnc(c^@expC) endif ; "Affecter - Loop" for x & y variables. These formulas are ; not exactly the same as the named formulas, but are in the ; same essence as the originals. Liberties have been taken ; by this formula writer to make them compatible with this work. ; Many thanks to Frederik Slikjerman who has converted the original ; formulas developed first for FRACTINT to be compatible with ; Ultra Fractal. It is with his permission that I have adapted ; these original formulas for this one. if @mode == "Julia/Mandelbrot" z = z elseif @mode == "Barnsley1" if x >= 0 z = (z - 1) * c elseif x<0 z = (z + 1) * c endif elseif @mode == "Barnsley2" if x * h + g * y >= 0 z = (z - 1) * c elseif x * h + g * y < 0 z = (z + 1) * c endif elseif @mode == "Barnsley3" if x > 0 z = x^2 - y^2 -1 + 2*x * y elseif x <= 0 z = x^2 - y^2 -1 + a*x + 2*x*y + b*x endif elseif @mode == "ComplexMarks" if x >= y z = x^(@spower-1)*z^2 + c + x elseif y > x z = y^(@spower-1)*z^2 + c + y endif elseif @mode == "FrothyBasin" if x >= y z = z^2 - conj(z)*(1 + 1.02871376828*y) + x elseif y > x z = z^2 - conj(z)*(1 + 1.02871376828*y) + y endif elseif @mode == "GingerBread" if x >= y x = 1 - y + |x| elseif y > x y = x endif elseif @mode == "Magnet" if x >= y z = sqr( (z^2 + p1 - 1) / (2*(z-p1)*p2)^(2+ @spower) + p1) + x elseif y > x z = sqr( (z^2 + p1 - 1) / (2*(z-p1)*p2)^(2+ @spower) + p1) + y endif elseif @mode == "Lamda" if x >= y z = @startseed * fn1(z) + x elseif y > x z = @startseed * fn1(z) + y endif elseif @mode == "Hopalong" if x >= y z = sqrt(abs(p2*z-c)) + |p1 - x| + c + x elseif y > x z = sqrt(abs(p2*z-c)) + |p1 - y| + c + y endif elseif @mode == "Lorenz";x=x-p1*x + p1*y y= y+p1-y-z*x z=z -c*z + ;(x-p1*x + p1*y)* (y+p1-y-z*x) if x >= y z = z -c*((z-p1)*p2)^(2+ @spower) + (x-p1*x + p1*y)* (y+p1-y-(z-p1)*p2)^((2+ @spower)*x) + x elseif y > x z = ((z-p1)*p2)^(2+ @spower) -c*((z-p1)*p2)^(2+ @spower) + (x-p1*x + p1*y)* (y+p1-y-z*x) + y endif elseif @mode == "Newton" if x >= y z = (x)*((z-p1)*p2)^(@spower +1) + x + c elseif y > x z = (y)*((z-p1)*p2)^(@spower +1) + y + c endif elseif @mode == "Phoenix" if @spower >= 2 z = z^@spower + a*((z-p1)*p2)^(@spower - 1) + b * y elseif @spower <= -3 z = z^(-@spower) + a * ((z-p1)*p2)^(@spower - 2) + b * y elseif @spower > 3 || @spower < 2 z = z^2 + a + b * y endif elseif @mode == "Quat"; if x >= y z = sqr(z) - sqr(real(z)) - sqr(y) + c elseif y > x z = 2*x*x + flip(2*x*y) +c endif elseif @mode == "Sierpinski" if y > x z = y + 1/(2*x-1) elseif y>=x z = 2*x-1 + 1/(2*y) endif elseif @mode == "Spider" if y > x z = sqr((z-p1)*p2)^(2+ @spower) + c + ((z-p1)*p2)^(2+ @spower) + x elseif y>=x z = sqr((z-p1)*p2)^(2+ @spower) + c + ((z-p1)*p2)^(2+ @spower) + y endif endif if @op == "+" ;Comment "Splash" This yield fish like curves and discontinuous almost ;water diffracted circles z = z^@power /fn1( z ^ fn1(x^3 + y ^3) + fn2(x)^fn2(z) - fn3(27 * y +7) + c ^ z) elseif @op == "-" ;Comment "Caves and Curves" This yields discontinuous cave like formations ; on one hand and curvy almost wispy tendrils on the other. z = z^@power /7* fn1( z ^ fn2(x^3 + y ^3)) - fn3(x)* fn3(z - fn3(y) * c ^ z) elseif @op == "*" ;Comment "Wisps" Similar to the Caves and Curves alternate shapes, these ;come in tendrils and wisps. There are a few spirals as well. z = z^@power * fn1( z ^ fn2(x^3 + y ^3)) - fn3(x)* fn3(z - fn3(y) * c ^ z) elseif @op == "/" ;Comment "Curves and Lines" This yields more curves and lines than the others z = z ^ fn1(@power/z) + fn2(z*fn1(y)) - fn3(fn2(z)/ fn3(x)) elseif @op == "^" ;Atan, Floor, Cosh, shows an interesting squared off spiral. Others ;are wispy lines. z = fn1(z^@power +z) +z^fn2(3+ fn1(x^3 - y^3)) + fn3(fn2(x) + fn3(y)^ c) elseif @op == "sin" ;Many dolphin like shapes, manta ray shapes, and other curvy figures z = z^@power + sin( z)^fn1(x^3 - y ^3) + fn2(z) + fn3(x-c) elseif @op == "sinh" ;Triangular shapes, no apparent spirals z = fn1(z^@power ^sinh( z)) +fn2(fn1(x^3 - y^3)) + fn3(fn2(x)) elseif @op == "asin" ;Vertical "pod" shape z = fn1(z^@power +asin( z))* z^(3+ fn2(x^3 - z))* fn3(12*x) elseif @op == "asinh" ;More curves and swirls - no apparent spirals z = fn1(z^@power) * fn2(asinh(z^c)+ fn1(x^3 - y^3)) + fn2(x) + fn3(y) elseif @op == "cos" z = z^@power +cos( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) ;Spirals and curves elseif @op == "cosh" ;Open one side smooth \, one side jagged areas, swilrs, etc. z = fn1(z^@power+cosh(z))*fn1(x^3 - y ^3) + fn2((x) + fn3(y)) elseif @op == "acos" z = z^@power +acos( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c) elseif @op == "acosh" z = z^@power +acosh( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c) elseif @op == "tan" ;Many irregular open areas and swirls z = fn1(z^@power+tan( z))*(x^3 - y^3) + fn2(fn2(x) + fn3(y)) elseif @op == "atan" ;Spiral at sin,ident,ident Many arrow head shapes and other irregular patterns z = z^@power*fn1(atan(z))^3 - fn2(x - y^3) + fn3(fn2(z*x)) elseif @op == "tanh" z = fn1(z)*@power/tanh(z) + c^fn3(fn2(x)) + y ;Swirls and Curves elseif @op == "atanh" ;Interesting different spirals at sin,ident,ident & sin, tanh, exp z = atanh(z)^fn1(x)^z + y^fn2(x) + z^fn3(y)- c elseif @op == "cotan" ;Sparkle spiral z = z^@power +cotan( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) elseif @op == "cotanh" ;Complex sprays and textures z = z^fn1(z) +fn2(cotanh(@power^z))^fn1(x)*z^y + fn3(x-c) elseif @op == "sqr" ;Ropes and fractured psuedo-spirals z = x+z^@power - y^sqr(z)/fn1(x^3) + fn2(x)^c + fn3(y)/c-z elseif @op == "sqrt" ;Good spirals at cabs,cos, acosh,..flip,..atanh z = z^(@power*sqrt(z)) - fn1(x)^ fn2(y)/fn3(c-x) elseif @op == "log" ;Square Spirals z = z^@power +log( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) elseif @op == "exp" ;Square spirals z = z^@power +exp( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) elseif @op == "abs" ;Structural types of shapes and figures - architectural z = fn1(@power*(x)+ fn2(abs(x^3 / y ^c)) * fn3(fn2(12*x)) ^ fn3(27 * y +7)) elseif @op == "cabs" ;Interesting shapes and spirals esp. cosh,,. Best spiral at exp,cosh,ident z = z^@power + cabs(z)^fn1(x) + fn2(y) *fn3(c) elseif @op == "conj" ;Interesting Mountain-like shapes z = fn1(z^@power) + fn1(conj(z))^y+fn2(fn2(x)/fn3(y)) elseif @op == "flip" ;Floral "petals" and shapes z = (z-x^c)^@power +flip(c+z)^y+ fn1(c)/fn2(x)^fn3(z-y/z) elseif @op == "ident" ;Spiral at cab, conj, asin, plus other shapes and forms z = z^(z-@power/x) + ident(z-c/y)^x * fn1(c-x+z/y) / (fn2(x-c)\ + fn3(y- c)) elseif @op == "zero" ;Curves and swirls z = z^(z-@power/x) + zero(z)- fn1((z-c/y)^x * fn2(c-x+z/y) / fn3(x-c)) elseif @op == "recip" ;Shark shapes, feather spiral at canj, atanh. ident z = fn3(x^@power*z) + fn2(z^(z-c))/fn1((z)^fn2(x)-fn3(recip(y))) elseif @op == "ceil" ;Many different shapes and lines z = fn1(z)^ceil(y)*fn1(fn2(z-c)*c^x) + y ^ fn3(fn1(x-3)/y)-c elseif @op == "floor" ;Many different shaped spirals ans swirls. Examples log/atanh,idenmt,ident ;and a jagged spiral at sqrt/flip,ident,ident z = z^@power +floor(z)^(fn1(c) + fn2(x) + fn3(y)- c) elseif @op == "trunc" ;Many interesting spirals and fomrs at trunc, (many), ident z = z^@power +fn1(trunc( z)^(fn1(c) * fn2(x)) + fn3(y - c )) elseif @op == "round" ;Covered Hex spiral at acos,ident,ident, great variations at other acos, ;(others), ident. Acos, recip ident is most different. z = z^@power +fn1(round( z)^fn1(y)) * fn2(fn2(x) + fn3(y)- c)/fn3(x/y^c) endif bailout: (@bailchoice == 0 && |z| <= @bailout) || \ (@bailchoice == 1 && real(sqr(z)) <= @bailout) || \ (@bailchoice == 2 && imag(sqr(z)) <= @bailout) || \ (@bailchoice == 3 && sqr(real(z)) <= @bailout) || \ (@bailchoice == 4 && sqr(imag(z)) <= @bailout) || \ (@bailchoice == 5 && (sqr(real(z)) <= @bailout && sqr(imag(z)) < @bailout)) || \ (@bailchoice == 6 && (sqr(real(z)) <= @bailout || sqr(imag(z)) < @bailout)) || \ (@bailchoice == 7 && (sqr(abs(real(z)) + abs(imag(z))) <= @bailout)) || \ (@bailchoice == 8 && (sqr(real(z) + imag(z)) <= @bailout)) default: title = "SaddlePlusJuliaComplex" angle = 0.01 center = (-0.3,-0.01) magn = 1.8 periodicity = 0 param version caption = "Version" default = 100 endparam heading caption = "Switch Parameters" visible = @show endheading param mode2 caption = "Current Mode" enum = "Mandelbrot""Julia" default = 1 enabled = false endparam param SwitchMode caption = "Switch to" enum = "Mandelbrot""Julia" default = 0 enabled = false visible = false endparam param show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 hint = "Changes the scale in the switch window" visible = @show && @mode2 == "Mandelbrot" endparam complex param swcenter caption = "Switch Center" default = (0,0) hint = "Changes the center in the switch window" visible = @show && @mode2 == "Mandelbrot" endparam float param scale caption = "Scale Reset" default = 1 hint = "If you changed the 'Scale' value before switching you should \ reset this value to 1 in the Julia for the data in the 'Location' \ tab to be accurate" visible = @show && @mode2 == "Julia" endparam complex param center caption = "Center Reset" default = (0,0) hint = "If you changed the 'Scale' value before switching you should \ reset this value to (0,0) in the Julia for the data in the 'Location' \ tab to be accurate" visible = @show && @mode2 == "Julia" endparam param bailout caption = "Bailout value" default = 4.0 min = 1.0 endparam param bailchoice caption = "Bailout Choice" default = 0 enum = "0=Reg" "1=Real(Z^2)""2=Imag(Z^2)""3=Real(Z)^2""4=Imag(Z)^2"\ "5=Real & Imag""6=Real or Imag""7=Sqr(Abs(Real&Imag)" "8=Sqr(Real&Imag)" endparam heading caption = "Functions" endheading func fn1 caption = "Function 1" default = ident() endfunc func fn2 caption = "Function 2" default = ident() endfunc func fn3 caption = "Function 3" default = ident() endfunc param style caption = "Variation in Style" enum = "z""fn(z^(2+power))""fn(x-y)""fn(y-x)"\ "fn(x^2-y^2)""(fn(y-x))" "(fn(x^2-y^2))"\ "fn(x^e)""fn(y^e)""fn(x^pi)""fn(y^pi)"\ "fn(z-x)^fn(z-y)""fn(z+x)^fn(z+y)" default = 0 endparam heading caption = "Parameters" endheading param startseed caption= "Start/Seed" ; default = (0.009,0.01);default for Mandelbrot default = (-1.25,0) hint = "Init Z for Mandlebrot, Seed for Julia" endparam param op caption = "Operator" enum = "+""-""*""/""^""sin""sinh""asin""asinh"\ "cos""cosh""acos""acosh""tan""tanh""atan""atanh"\ "cotan""cotanh""sqr""sqrt""log""exp"\ "abs""cabs""conj""flip""ident""zero""recip" \ "ceil""floor""trunc" "round" default = 0 endparam param power caption = "Power" default = (-1.25,0) endparam float param spower caption = "SPower" default = 0 endparam param cchange caption = "Nuance of C" enum = "Orig""Real""Imag""Sign""Squared"\ "Exponent""Inverse""Inv/Exp""C/Exp"\ "SQRPixel""CPower""EPower""ZPower"\ "CPower3""CFunction""Function" default = 0 endparam func fnc caption = "C Function" default = sqr() visible = @cchange == "Function" ||\ @cchange == "CFunction" endfunc complex param expc caption = "C Exponent" default = (0,0) endparam param ztweaker caption = "Z Tweaker" enum = "z=orig""z=z+a""z=z+b""z=z+c""z=z+x""z=z+y""z=z+g""z=z+h"\ "z=z*a""z=z*b""z=z*c""z=z*x""z=z*y""z=z*g""z=z*h"\ "z=z/c""z=z/a""z=z/b""z=z/x""z=z/y""z=z/g""z=z/h"\ "z=z/c+z""z=z/x+z""z=z/y+z"\ "z=z/c+c""z=z/a+c""z=z/b+c""z=z/x+c""z=z/y+c""z=z/g+c""z=z/h+c"\ "z=z-a""z=z-b""z=z-c""z=z-x""z=z-y""z=z-g""z=z-h"\ "z=a-z""z=b-z""z=c-z""z=x-z""z=y-z""z=g-z"\ "z=z/c-z""z=z/x-z""z=z/y-z""z=z/a-z""z=z/b-z""z=z/g-z""z=z/h-z"\ "z=z/c-c""z=z/a-c""z=z/b-c""z=z/x-c""z=z/y-c""z=z/g-c""z=z/h-c"\ "z=z-z/c""z=z-z/x""z=z-z/y""z=z-z/a""z=z-z/b""z=z-z/g""z=z-z/h"\ "z=c-z/c""z=c-z/a""z=c-z/b""z=c-z/x""z=c-z/y""z=c-z/g""z=c-z/h"\ "z=a/z""z=b/z""z=c/z""z=x/z""z=y/z""z=g/z""z*z+c""z*c+z"\ "ezz""ez/z""exz""ex/z""eyz""ey/z""z/1-z""z/1-x""z/1-y"\ "zpi""zpi/z""z^pi/z^z""zpixel""z/pixelz"\ "z/zpixel""z^pixel/z+pixel""ez/zpixel""z/pixel""piz/pixel"\ "piz/zpixel""z-zpixel""ez/pixel""z+zpixel"\ "c/ez""z+c/g""x+z/y+c""g^z-c""z-x+y/x-y""g/c-z"\ "y+c/g""x+y/y+c""g^y-c""y-x+y/x-y""g/c-y"\ "g/c-x""g^x-c""x+c/g""c/ex" default = 0 endparam param flavor caption = "Formula Flavor" enum = "z""z^2 + c""z^(z/c)""z/(z-1)""z^2/(z-1)""z^3/(z^2-1)"\ "z^3*c/(z^2-c)""z^3+z^2+z+c""fnzfnzfnz""fnzpfnzpfnzp"\ "fnzfnz/fnz""fnzpfnzp/fnzp""zzz""z^pz^pz^p"\ "zz/z""z^pz^p/z^p""z^3-z^2+c" default = 0 endparam param mode caption = "Affecter Mode" default = 0 enum = "Julia/Mandelbrot""Barnsley1""Barnsley2""Barnsley3""\ ComplexMarks""FrothyBasin""GingerBread""Magnet""Lamda"\ "Hopalong""Lorenz""Newton""Phoenix""Quat""Sierpinski"\ "Spider" endparam param p1 caption = "Subtracter" default = (0,0) endparam param p2 caption = "Mulitplier" default = (1,0) endparam param p3 caption = "Power" default = (0,0) endparam bool param inv caption = "Invert Z" default = false endparam bool param zpix caption = "Z=Pixel" default = false endparam bool param xplus caption = "Add X" default = false endparam bool param yplus caption = "Add Y" default = false endparam bool param Zpower caption = "Z^Z" default = false endparam bool param Xpower caption = "Z^X" default = false endparam bool param Ypower caption = "Z^Y" default = false endparam bool param Gpower caption = "Z^G" default = false endparam bool param Gplus caption = "Z+G" default = false endparam bool param func1 caption = "Fn(Z)" default = false endparam bool param func2 caption = "Fn2(Fn1(Z))" default = false endparam bool param func3 caption = "Fn3(Fn2(Fn1(Z)))" default = false endparam bool param funcpowerz caption = "Function Power" default = false endparam bool param funcpowerx caption = "Function Power of X" default = false endparam bool param funcpowery caption = "Function Power of Y" default = false endparam bool param funcpowerg caption = "Function Power of G" default = false endparam bool param ez caption = "Euler times Z" default = false endparam bool param zpi caption = "Pi times Z" default = false endparam bool param ztopidivzpi caption = "Z^Pi/Z*Pi" default = false endparam bool param zpidivztopi caption = "Z*Pi/Z^Pi" default = false endparam switch: type = "SaddleReignsPlusJuliaComplex" bailout = @bailout startseed = pixel op = @op fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 fnc = @fnc power = @power p1 = @p1 p2 = @p2 a = @a b = @b g = @g h = @h x = @x y = @y expC = @expC cchange = @cchange btype = @btype ztweaker = @ztweaker bailchoice = @bailchoice spower = @spower version = @version mode2=@switchmode switchmode=@mode2 center=@swcenter scale=@swscale style = @style flavor = @flavor inv = @inv zpix = @zpix xplus = @xplus yplus = @yplus xpower = @xpower ypower = @ypower gpower = @gpower func1 = @func1 func2 = @func2 func3 = @func3 funcpowerz = @funcpowerz funcpowerx = @funcpowerx funcpowery = @funcpowery funcpowerg = @funcpowerg ez = @ez zpi = @zpi ztopidivzpi = ztopidivzpi zpidivztopi = @zpidivztopi } Mandelbrot/Julia100{ ; By Dolf De Rovira Originally developed 5-20-2004 ; Version 2.2 more style and cchange parameters added. Added version. ; Fixed some of the default formula choices for this later version. ; Started the default off as a Julia. 5-28-2004 ; Version 2.1 - Bailouts together, Switch disabled, Affecter Parameter Renamed. ; Version 2.0 - All in one switch, float parameters placed ; inside the loop. Mandelbrot variables set ; so Julia and Mandelbrot are both visible. ; Thanks for considerable help from Toby Marshall and Bob Margolis ; The intent of the original formula was to see how x and y variables of real ; and imaginary z would play out. The results were not too convincing. ; I then took formulas from the Fractint collection in Ultra Fractal 3 public ; formulas and changed them to suit the tweaking of x and y variables ; in their ability to affect the formula outcome. I call these ; "Affecter Mode" choices. The z variable goes on and is changed again by the ; subsequent flavors, multipliers, subtracters and functions as well as the ; other choices of seed, bailout, power and startseed. Maximum iterations ; can greatly affect the final outcome as well. ; Also added is a switch for the "c" variable yielding c = c ; (the original value), c=-c, c=c^2, c = imag(c) and c=real(c) ; The Bailout Choice idea came from Sean M. Pratz's ; Bailout Galore formula which was adapted from ; F. Slijkerman. Other bailout conditions (types B & C) are based on routines ; suggested by Mark Townsend. init: complex z = @startseed complex c = #pixel if @mode2 == "Mandelbrot" z = @startseed c = #pixel endif if @mode2 == "Julia" z = #pixel c = @startseed if @scale != 1.0 z = z/@scale endif if @center != (0.0,0.0) z = z + @center endif endif loop: float x = Real(z) float y = Imag(z) float a = real(c) float b = imag(c) float g = real(@startseed) float h = imag(@startseed) if @style == "fn(z^(2+power))" z = fn2(fn1(z)) elseif @style == "fn(x-y)" z = fn2(z)+ fn1(x - y) elseif @style == "fn(y-x)" z = fn2(z)+ fn1(y - x) elseif @style =="fn(x^2-y^2)" z = fn2(z)+ fn1(x^2-y^2) elseif @style =="fn(y^2-x^2)" z = fn2(z)+ fn1(y^2-x^2) elseif @style =="fn(x^e)" z = fn1(x)^fn2(e) + fn3(c) elseif @style =="fn(y^e)" z = fn1(y)^fn2(e) + fn3(c) elseif @style =="fn(x^pi)" z = fn1(x)^fn2(#pi)+fn3(c) elseif @style =="fn(y^pi)" z = fn1(y)^fn2(#pi) +fn3(c) elseif @style =="fn(z-x)^fn(z-y)" z = fn1(z-x)^fn2(z-y)+fn3(c) elseif @style =="fn(z+x)^fn(z+y)" z = fn1(z+x)^fn2(z+y)+fn3(c) endif if @ztweaker == "z=orig" z = z elseif @ztweaker == "z=z+a" z = z + a elseif @ztweaker == "z=z+b" z = z + b elseif @ztweaker == "z=z+c" z = z + c elseif @ztweaker == "z=z+x" z = z + x elseif @ztweaker == "z=z+y" z = z + y elseif @ztweaker == "z=z+g" z = z + g elseif @ztweaker == "z=z+h";all z+? z = z + h elseif @ztweaker == "z=z*c" z = z * c elseif @ztweaker == "z=z*a" z = z * a elseif @ztweaker == "z=z*b" z = z * b elseif @ztweaker == "z=z*x" z = z * x elseif @ztweaker == "z=z*y" z = z * y elseif @ztweaker == "z=z*g" z = z * g elseif @ztweaker == "z=z*h";all z*? z = z * h elseif @ztweaker == "z=z/c" z = z / c elseif @ztweaker == "z=z/a" z = z / a elseif @ztweaker == "z=z/b" z = z / b elseif @ztweaker == "z=z/x" z = z / x elseif @ztweaker == "z=z/y" z = z / y elseif @ztweaker == "z=z/g" z = z / g elseif @ztweaker == "z=z/h";all z/? z = z / h elseif @ztweaker == "z=z/c+z" z = z / c + z elseif @ztweaker == "z=z/x+z" z = z / x + z elseif @ztweaker == "z=z/y+z";all z/?+z z = z / y + z elseif @ztweaker == "z=z/c+c" z = z / c + c elseif @ztweaker == "z=z/a+c" z = z / a + c elseif @ztweaker == "z=z/b+c" z = z / b + c elseif @ztweaker == "z=z/x+c" z = z / x + c elseif @ztweaker == "z=z/y+c" z = z / y + c elseif @ztweaker == "z=z/g+c" z = z / g + c elseif @ztweaker == "z=z/h+c";all z/?+c z = z / h + z elseif @ztweaker == "z=z-c" z = z - c elseif @ztweaker == "z=z-a" z = z - a elseif @ztweaker == "z=z-b" z = z - b elseif @ztweaker == "z=z-x" z = z - x elseif @ztweaker == "z=z-y" z = z - y elseif @ztweaker == "z=z-g" z = z - g elseif @ztweaker == "z=z-h";all z-? z = z - h elseif @ztweaker == "z=c-z" z = c -z elseif @ztweaker == "z=a-z" z = a - z elseif @ztweaker == "z=b-z" z = b - z elseif @ztweaker == "z=x-z" z = x - z elseif @ztweaker == "z=y-z" z = y - z elseif @ztweaker == "z=g-z" z = g - z elseif @ztweaker == "z=h-z";all ?-z z = h - z elseif @ztweaker == "z=z/c-z" z = z / c - z elseif @ztweaker == "z=z/x-z" z = z / x - z elseif @ztweaker == "z=z/y-z" z = z / y - z elseif @ztweaker == "z=z/a-z" z = z / a - z elseif @ztweaker == "z=z/b-z" z = z / b - z elseif @ztweaker == "z=z/g-z" z = z / g - z elseif @ztweaker == "z=z/h-z";all z/?-z z = z / h - z elseif @ztweaker == "z=z/c-c" z = z / c - c elseif @ztweaker == "z=z/a-c" z = z / a - c elseif @ztweaker == "z=z/b-c" z = z / b - c elseif @ztweaker == "z=z/x-c" z = z / x - c elseif @ztweaker == "z=z/y-c" z = z / y - c elseif @ztweaker == "z=z/g-c" z = z / g - c elseif @ztweaker == "z=z/h-c";all z/?-c z = z / h - z elseif @ztweaker == "z=z-z/c" z = z - z / c elseif @ztweaker == "z=z-z/x" z = z - z / x elseif @ztweaker == "z=z-z/y" z = z - z / y elseif @ztweaker == "z=z-z/a" z = z - z / a elseif @ztweaker == "z=z-z/b" z = z - z / b elseif @ztweaker == "z=z-z/g" z = z - z / g elseif @ztweaker == "z=z-z/h";all z-z/? z = z - z / h elseif @ztweaker == "z=c-z/c" z = c - z / c elseif @ztweaker == "z=c-z/a" z = c - z / a elseif @ztweaker == "z=c-z/b" z = c - z / b elseif @ztweaker == "z=c-z/g" z = c - z / g elseif @ztweaker == "z=c-z/h" z = c - z / h elseif @ztweaker == "z=c-z/x" z = c - z / x elseif @ztweaker == "z=c-z/y" z = c - z / y elseif @ztweaker == "z=a/z" z = a / z elseif @ztweaker == "z=b/z" z = b / z elseif @ztweaker == "z=c/z" z = c / z elseif @ztweaker == "z=x/z" z = x / z elseif @ztweaker == "z=y/z" z = y / z elseif @ztweaker == "z=g/z" z = g / z elseif @ztweaker == "z=h/z" z = h / z endif if @cchange == "Orig" c = c^@expC elseif @cchange == "Real" c = real(c)^@expC elseif @cchange == "Imag" c = imag(c)^@expC elseif @cchange == "Sign" c = -c^@expC elseif @cchange == "Squared" c = c^2+@expC elseif @cchange == "Exponent" c = e^c^@expC elseif @cchange == "Inverse" c = 1 / c^@expC elseif @cchange == "Inv/Exp" c = 1 / e^c^@expC elseif @cchange == "C/Exp" c = c^@expC / e^c^@expC elseif @cchange == "Function" c = @fnc(c^@expC) endif if @mode == "Julia/Mandelbrot" if @style == "fn(x-y)" \ || @style == "fn(y-x)" \ || @style == "fn(y^2-x^2)" ||@style == "fn(x^2-y^2)" z = (z - 1) * c elseif @style == "fn(z^(2+power))" z = z endif elseif @mode == "Barnsley1" if x >= 0 z = (z - 1) * c elseif x<0 z = (z + 1) * c endif elseif @mode == "Barnsley2" if x * h + g * y >= 0 z = (z - 1) * c elseif x * h + g * y < 0 z = (z + 1) * c endif elseif @mode == "Barnsley3" if x > 0 z = x^2 - y^2 -1 + 2*x * y elseif x <= 0 z = x^2 - y^2 -1 + a*x + 2*x*y + b*x endif elseif @mode == "ComplexMarks" if x >= y z = x^(@power-1)*z^2 + c + x elseif y > x z = y^(@power-1)*z^2 + c + y endif elseif @mode == "FrothyBasin" if x >= y z = z^2 - conj(z)*(1 + 1.02871376828*y) + x elseif y > x z = z^2 - conj(z)*(1 + 1.02871376828*y) + y endif elseif @mode == "GingerBread" if x >= y x = 1 - y + |x| elseif y > x y = x endif elseif @mode == "Magnet" if x >= y z = sqr( (z^2 + p1 - 1) / (2*(z-p1)*p2)^(2+ @power) + p1) + x elseif y > x z = sqr( (z^2 + p1 - 1) / (2*(z-p1)*p2)^(2+ @power) + p1) + y endif elseif @mode == "Lambda" if x >= y z = @startseed * fn1(z) + x elseif y > x z = @startseed * fn1(z) + y endif elseif @mode == "Hopalong" if x >= y z = sqrt(abs(p2*z-c)) + |p1 - x| + c + x elseif y > x z = sqrt(abs(p2*z-c)) + |p1 - y| + c + y endif elseif @mode == "Lorenz" if x >= y z = z -c*((z-p1)*p2)^(2+ @power) + (x-p1*x + p1*y)* (y+p1-y-(z-p1)*p2)^((2+ @power)*x) + x elseif y > x z = ((z-p1)*p2)^(2+ @power) -c*((z-p1)*p2)^(2+ @power) + (x-p1*x + p1*y)* (y+p1-y-z*x) + y endif elseif @mode == "Newton" if x >= y z = (x)*((z-p1)*p2)^(@power +1) + x + c elseif y > x z = (y)*((z-p1)*p2)^(@power +1) + y + c endif elseif @mode == "Phoenix" if @spower >= 2 z = z^@spower + a*((z-p1)*p2)^(@power - 1) + b * y elseif @spower <= -3 z = z^(-@spower) + a * ((z-p1)*p2)^(@power - 2) + b * y elseif @spower > 3 || @spower < 2 z = z^2 + a + b * y endif elseif @mode == "Quat"; if x >= y z = sqr(z) - sqr(real(z)) - sqr(y) + c elseif y > x z = 2*x*x + flip(2*x*y) +c endif elseif @mode == "Sierpinski" if y > x z = y + 1/(2*x-1) elseif y>=x z = 2*x-1 + 1/(2*y) endif elseif @mode == "Spider" if y > x z = sqr((z-p1)*p2)^(2+ @power) + c + ((z-p1)*p2)^(2+ @power) + x elseif y>=x z = sqr((z-p1)*p2)^(2+ @power) + c + ((z-p1)*p2)^(2+ @power) + y endif endif if @flavora == "1" if @flavorb == "1" z=@fn3(c/(z^@spower + c + fn4(z^@fn1(z) + @fn2(c)))) elseif @flavorb =="2" z=@fn3(x*c/x*(z^@spower + c + fn4(z^@fn1(z) + @fn2(c)))) elseif @flavorb =="3" z=@fn3(c/(z^@spower + c + fn4(z^@fn1(z) - @fn2(c)))) + z elseif @flavorb =="4" z=@fn3(c/(z^@spower + c / fn4(z^@fn1(z)- @fn2(c)))) + z ^ c elseif @flavorb =="5" z=@fn3(c/(z^@spower + c + fn4(z^@fn1(z)^ atanh(@fn2(c))))) + z elseif @flavorb =="6" z=@fn3(c/(z^@spower + c + fn4(z^@fn1(z)^ flip(@fn2(c))))) + z elseif @flavorb =="7" z=@fn3(c/(z^@spower + c + fn4(z^@fn1(z)^ sqrt(@fn2(c))))) + z elseif @flavorb =="8" z=@fn3(c/(z^@spower + c + fn4(z^@fn1(z)^ acosh(@fn2(c))))) + z ^ c elseif @flavorb =="9" if @version <2.2 z=@fn3(c/(z^@spower + c + fn4(z^@fn1(z)^ tan(@fn2(c))))) + z else z=@fn3(c/(z^@spower + c + fn4(z^@fn1(z)^ tan(@fn2(c))))) + z + c endif elseif @flavorb =="10" if @version <2.2 z=@fn3(c/(z^@spower + c + fn4(z^@fn1(z)^ asin(@fn2(c))))) + z else z=@fn3(c/(z^@spower + c + fn4(z^@fn1(z)^ asin(@fn2(c))))) + z + c endif endif elseif @flavora == "2" if @flavorb == "1" z=@fn3(c/(z^@spower + c + fn4(z^fn1(z)^ floor(fn2(c))))) + fn1(x) + z elseif @flavorb =="2" z=@fn3(c/(z^@spower + c + fn4(z^fn1(z)^ fn1(floor(fn2(z)))))) + z if @version <2.2 z=@fn3(c/(z^@spower + c + fn4(z^fn1(z)^ fn1(floor(fn2(z)))))) + z else z=@fn3(c/(z^@spower + c + fn4(z^fn1(z)^ fn1(floor(fn2(z)))))) + z + c endif elseif @flavorb =="3" z=@fn3(c/(fn2(z)^@spower + c + fn4(1/fn1(z)^@fn3(z)^ floor(fn2(z))))) + z elseif @flavorb =="4" if @version <2.2 z=@fn3(c/(z^@spower + c^2 + fn4(z^fn1(z)*floor(fn2(c))))) + z else z=@fn3(c/(z^@spower + c^2 + fn4(z^fn1(z-c)*floor(fn2(c))))) + z + c endif elseif @flavorb =="5" z=@fn3(c/(z^@spower + c + fn4(z^@fn1(z)* z^(fn2(x))))) + z elseif @flavorb =="6" z=@fn3(c+z/(z^@spower + c + fn4(z^@fn1(z)* z^(fn2(x+y))))) + z elseif @flavorb =="7" z=@fn3(c/(z^@spower + c + fn4(z^@fn1(z)* z^(fn2(y))))) + z elseif @flavorb =="8" z=@fn3(c/(z^@spower + c + fn4(z^@fn1(x)* z^(fn2(y))))) - z elseif @flavorb =="9" z=@fn3(c/(z^@spower + fn4(z*@fn1(x-y)* z*(fn2(y-c))))) + c + z elseif @flavorb =="10" z=@fn3(c/(z^@spower + fn4(z*@fn1(y-x)* z*(fn2(x-c))))) + c + z endif elseif @flavora == "3" if @flavorb == "1" z = z^fn1(z^2) + fn4(x^fn2(z^z) + y^fn3(z^3)) + c elseif @flavorb =="2" z = z^fn1(z) + fn4(x^fn2(z) + y^fn3(z)) + c elseif @flavorb =="3" z = z^fn1(z) + fn4(z^fn2(x) + z^fn3(y)) + c elseif @flavorb =="4" z = z^fn1(z-x) + fn4(z^fn2(x-y) + z^fn3(y-z)) + c elseif @flavorb =="5" z = z^fn1(z-x) + fn4(z^fn2(x-y) + c/z^fn3(y-z)) + c^z elseif @flavorb =="6" z = z^fn1(z+x) + fn4(z^fn2(x+y) - x^x/z^fn3(y-z)) + c/z elseif @flavorb =="7" z = z^fn1(x) + fn4(z^fn2(y) - z^fn3(z)) + c elseif @flavorb =="8" z = z^z +fn1(x)^(c-z) + fn4(z^fn2(y) - z^fn3(z)) + c/z elseif @flavorb =="9" z = z^z +fn1(x^z) + fn4(y^fn2(y) - z^fn3(z)) + c/z elseif @flavorb =="10" z = z^z +fn1(y^z) + fn4(x^fn2(x) + z^fn3(z)) + c endif elseif @flavora == "4" if @flavorb == "1" z = fn1(z)^fn2(z)+ fn4(x^fn3(z)) + c + z elseif @flavorb =="2" if @version <2.2 z = fn1(z)^z + x^fn2(z) + fn4(y^fn3(z)) + x + c else z = fn1(z)^z + x^fn2(z) + fn4((y+z)^fn3(z-c)) - z^z + c endif elseif @flavorb =="3" z = fn1(z)^z + y^fn2(z) + fn4(x^fn3(z) + y/z) + c elseif @flavorb =="4" z = fn1(x)^z^z + z^fn2(x-y) + fn4(z^fn3(y-z)) + c elseif @flavorb =="5" z = fn1(z-x)^z^z + z^fn2(x-y) + fn4(c/z^fn3(y-z) + c^z) + c elseif @flavorb =="6" z = fn1(z+x)^z^z + z^fn2(x+y) - fn4(x^x/z^fn3(y-z)) + c elseif @flavorb =="7" z = fn1(x)^z^z + z^fn2(y) - fn4(z^fn3(z)) + c elseif @flavorb =="8" z = z^z^z +fn1(x)^(c-z) +fn4(z^fn2(y) - z^fn3(z)) + c elseif @flavorb =="9" z = z^z^z +fn1(x^z) + fn4(y^fn2(y) - z^fn3(z)) + c elseif @flavorb =="10" z = z^z^z +fn1(y^z) + fn4(x^fn2(x) + z^fn3(z)) + c endif elseif @flavora == "5" if @flavorb == "1" z = fn1(z)^fn2(z)+ fn4(z^fn3(z)) + c/z elseif @flavorb =="2" z = fn1(z)^z + x^fn2(z) + fn4(z^fn3(z)) * x + c/z elseif @flavorb =="3" z = fn1(z)^z + y^fn2(z) + fn4(z^fn3(z)) + y + c elseif @flavorb =="4" z = fn1(x)^z^z + z^fn2(x-z) + fn4(z^fn3(y-z)) + c elseif @flavorb =="5" z = fn1(z-x)^z^z + z^fn2(x-z) + fn4(c/z^fn3(y-z)) + c^z elseif @flavorb =="6" z = fn1(z+x)^z^z + z^fn2(x+z) - fn4(x^x/z^fn3(y-z)) + c elseif @flavorb =="7" z = fn1(x)^z^z + z^fn2(z) - fn4(z^fn3(z)) + c/z elseif @flavorb =="8" z = z^z^z +fn1(x)^(c-z) + z^fn2(z) - fn4(z^fn3(z)) + c elseif @flavorb =="9" z = z^z^z +fn1(x^z) + y^fn2(z) - fn4(z^fn3(z)) + c elseif @flavorb =="10" z = z^z^z +fn1(y^z) + x^fn2(z) + fn4(z^fn3(z)) + c endif elseif @flavora == "6" if @flavorb == "1" z = fn1(fn2(z))^fn2(fn3(z))+ fn3(fn1(z)) + c/z elseif @flavorb =="2" z = fn1(fn2(z^z))^fn2(fn3(z^z))+ fn3(fn1(z^z)) + c/z + fn4(z) elseif @flavorb =="3" z = fn1(fn2(z^x))^fn2(fn3(z^x))* fn3(fn1(z^x)) / c + z * fn4(c + z) + c elseif @flavorb =="4" z = fn1(fn2(z^z))^fn2(fn3(z^y))* fn3(fn1(z^c)) - c elseif @flavorb =="5" z = fn1(fn2(x^y))^fn2(fn3(x^y))+ fn3(fn1(x^y)) / c/z + fn4(z) + c elseif @flavorb =="6" if @version <2.2 z = fn1(fn2(z/x))^fn2(fn3(z/x))+ fn3(fn1(z/x)) / c/z * fn4(z) + c else z = fn1(fn2(z/x))^fn2(fn3(z/x))+ fn3(fn1(z^e/x*c)) / c/z * fn4(z-c) + c endif elseif @flavorb =="7" z = fn1(fn2(z^z))^fn2(fn3(z^y))* fn3(fn1(z^c)) + c elseif @flavorb =="8" z = fn1(fn2(z^z))^fn2(fn3(z^y))* fn3(fn1(z^c)) + z/c elseif @flavorb =="9" z = fn1(fn2(z^z))^fn2(fn3(z^y))* fn3(fn1(z^c)) - z/c elseif @flavorb =="10" if @version <2.2 z = fn1(fn2(1-z))^fn2(fn3(1-z))+ fn3(fn1(1-z)) + fn4(c/z) + c else z = fn1(fn2(c-z))^fn2(fn3(z))+ fn3(fn1(1-z)) + fn4(z^c/z) + c endif endif elseif @flavora == "7" if @flavorb == "1" z = fn1(fn2(z))*fn2(fn3(z))+ fn3(fn1(z)) + fn4(c - z) elseif @flavorb =="2" z = fn1(fn2(z^z))*fn2(fn3(z^z))+ fn3(fn1(z^z)) + fn4(c/z) elseif @flavorb =="3" z = fn1(fn2(z^x))*fn2(fn3(z^x))+ fn3(fn1(z^x)) * fn4(c/z) ^ c + z elseif @flavorb =="4" z = fn1(fn2(z^y))*fn2(fn3(z^y))+ fn3(fn1(z^y)) + fn4(c/z) + c elseif @flavorb =="5" z = fn1(fn2(x^z))*fn2(fn3(x^y))+ fn3(fn1(z^z)) + c * z + fn4(c/z) ^ c + z elseif @flavorb =="6" z = fn1(fn2(z/x))*fn2(fn3(z/x))+ fn3(fn1(z/x)) + fn4(c/z) elseif @flavorb =="7" z = fn1(fn2(z))*fn2(fn3(x))^z+ fn3(fn1(y))^z + fn4(c/z) elseif @flavorb =="8" if @version <2.2 z = fn1(fn2(z))*fn2(fn3(x))^z+ fn3(fn1(y))^z + fn4((1-c)/z) + c else z = fn1(fn2(z))*fn2(fn3(z-x))^z+ fn3(fn1(y-c))^(z-c) + fn4((1-c)/e^z) + c endif elseif @flavorb =="9" if @version <2.2 z = fn1(fn2(z))*fn2(fn3(x))^z+ fn3(fn1(y))^z + fn4((c+z)/z) + c else z = fn1(fn2(z))*fn2(fn3(x))^z+ fn3(fn1(y))^(z-c) + fn4((c+z)/(z-e)) + c endif elseif @flavorb =="10" if @version <2.2 z = fn1(fn2(z))*fn2(fn3(x))^z+ fn3(fn1(y))^z + fn4((c+z)/z) else z = fn1(fn2(z-c))*fn2(fn3(z-x))^z+ fn3(fn1(y))^(z-c) + fn4((c+z)/z) + c^z endif endif elseif @flavora == "8" if @flavorb == "1" z = fn1(fn2(z))+ fn4(fn1(1-z)/(fn2(fn3(z)))+ fn3(fn1(z + x^2))) + c elseif @flavorb =="2" z = fn1(fn2(z^z))+ fn4(fn1(1-z)/(fn2(fn3(z^z))+ fn3(fn1(z^z)))) + c elseif @flavorb =="3" z = fn1(fn2(z^x))+ fn4(fn1(1-z)/(fn2(fn3(z^x)))+ fn3(fn1(z^x))) + c elseif @flavorb =="4" z = fn1(fn2(z^y))+ fn4(fn1(1-z)/(fn2(fn3(z^y/x+c)))+ z) + c/z elseif @flavorb =="5" z = fn1(fn2(x^y))+ fn4(fn1(1-z)/fn4(fn2(fn3(x^y))) + c^z/fn3(fn1(x^y))) + c elseif @flavorb =="6" z = fn1(fn2(z/x))+ fn4(fn1(1-z)/fn4(fn2(fn3(z/x)))+ fn3(fn1(z/x))) + c elseif @flavorb =="7" z = fn1(fn2(z))/fn4(fn2(fn3(x))^z /fn4(fn3(fn1(y/c+z))^z)) + c/z elseif @flavorb =="8" z = fn1(fn2(z))/fn4(fn2(fn3(x))^z /fn4(fn3(fn1(y/c+z))^z)) + c^z elseif @flavorb =="9" z = fn1(fn2(z))/fn4(fn2(fn3(x))^z /fn4(fn3(fn1(y/c+z))^z)) - c elseif @flavorb =="10" z = fn1(fn2(1-z))^z + fn1(c-z)/(1-fn2(fn3(x-z)))+ fn4(fn3(fn1(c-z))) + c/z endif elseif @flavora == "9" if @flavorb == "1" z = x/fn3(fn2(fn1(z)^2) + c)^ z + (z*c^2 + 7)/fn4(z)*x + c elseif @flavorb =="2" z = x/z^fn4(fn3(fn2(z^2 + fn1(z))^x + c) + z) + c elseif @flavorb =="3" z = fn1(y/z^2) + fn4(fn2(fn1(c)^2 + c + z) + fn3(x + z)^c) + c elseif @flavorb =="4" z = fn1(z^2 + fn1(c)^z) + (y + c)^2/fn4(fn2(c + z)^c + fn3(fn4((x + z)/c^3)))/x + c elseif @flavorb =="5" z = fn1(z^2)^3 + fn3(fn1(c)^fn1(c) + c + z)/fn4(x + z^3)/c + x + c elseif @flavorb =="6" z = fn3(fn1(z^z)) / fn2(z^z/x^2) + fn4(fn1(z)^2) + c elseif @flavorb =="7" z = fn1(fn2(z))/fn4(fn3(x))^z + c/z + c elseif @flavorb =="8" z = fn1(fn2(z))/fn4(fn3(x))^z - c^z elseif @flavorb =="9" z = fn1(fn2(z))/fn4(fn3(x))^z + c/z elseif @flavorb =="10" z = fn1(fn2(z))^5 + z/fn4(fn1(z)^fn2(fn3(z)) + fn3(fn1(x))) + c endif elseif @flavora == "10" if @flavorb == "1" z = fn4(fn3(z^z^2) + fn2(c + fn1(x + c)))/z + c elseif @flavorb =="2" if @version <2.2 z = fn4(z^z^2) + fn1(fn3(fn1(c) + c)/x + fn2(x + z)^2)/z + c else z = fn4(z^y^2) + fn1(fn3(fn1(z/e) + c)/x / fn2(x + z)^2)/z^c - c^z endif elseif @flavorb =="3" z = fn3(z^z^2 + fn1(c)^2) + fn2(c^fn4(z) + y) + c elseif @flavorb =="4" z = fn2(fn1(x/z^z^2) + fn1(c)^c) + fn3(z^z)/fn4(x + z)^c + c elseif @flavorb =="5" z = fn4(fn3(fn2(fn1(z + c)^z)^2)/c + z^c/fn1(c)^fn1(c)) + c elseif @flavorb =="6" if @version <2.2 z = fn1(fn2(z^z/x))+ fn1(1-z)/fn4(fn2(fn3(z/x))+ fn3(fn1(z/x)))/c + c else z = fn1(fn2(z^z/(x-c)))+ fn1(1-z)/fn4(fn2(fn3(z^e/x^e))+ fn3(fn1(z/x)))/c + c endif elseif @flavorb =="7" if @version <2.2 z = fn1(fn2(z^z))/fn4(fn2(fn3(x)) + z + c^fn3(fn1(z)) + z)/(z^c + c) + c else z = fn1(fn2(z^z/(x-c)^e))/fn4(fn2(fn3(z/c - e/x)) + fn3(fn1((z^2-y^2)/e*z)) + z)/(z^c + c) + c endif elseif @flavorb =="8" z = fn1(fn2(1-z))^z*c + z^fn4(fn1(c-z)/fn2(fn3(c-z)))- c/z elseif @flavorb =="9" z = fn1(fn2(1-z))^z*c + z^fn4(fn1(c-z)/fn2(fn3(c-z)))+ c/z + c elseif @flavorb =="10" z = fn1(fn2(1-z))^z*c + z^fn4(fn1(c-z)/fn2(fn3(c-z)))+ c/z endif endif bailout: (@bailchoice == 0 && |z| <= @bailout) || \ (@bailchoice == 1 && real(sqr(z)) <= @bailout) || \ (@bailchoice == 2 && imag(sqr(z)) <= @bailout) || \ (@bailchoice == 3 && sqr(real(z)) <= @bailout) || \ (@bailchoice == 4 && sqr(imag(z)) <= @bailout) || \ (@bailchoice == 5 && (sqr(real(z)) <= @bailout && sqr(imag(z)) < @bailout)) || \ (@bailchoice == 6 && (sqr(real(z)) <= @bailout || sqr(imag(z)) < @bailout)) || \ (@bailchoice == 7 && (sqr(abs(real(z)) + abs(imag(z))) <= @bailout)) || \ (@bailchoice == 8 && (sqr(real(z) + imag(z)) <= @bailout)) default: title = "Mandelbrot/Julia 100" center = (-1.0917187506,0.0771875001) magn = 2 heading caption = "Switch Parameters" visible = @show endheading param mode2 caption = "Current Mode" enum = "Mandelbrot""Julia" default = 1 enabled = false endparam param SwitchMode caption = "Switch to" enum = "Mandelbrot""Julia" default = 0 enabled = false visible = false endparam param @show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show hint = "Changes the scale of the image in the switch window" endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show hint = "Changes the centering of the image in the switch window" endparam float param scale caption = "Scale Reset" default = 1 visible = @show hint = "If you changed the 'Scale' parmeter while using the switch \ reset this value to 1 after switching for accurate display of the \ magnification value on the Location tab" endparam complex param center caption = "Center Reset" default = (0,0) visible = @show hint = "If you changed the 'Switch Center' parmeter while using the switch \ reset this value to 0,0 after switching for accurate display of the \ center values on the Location tab" endparam heading caption = "Formula Choices" endheading param flavora caption = "Flavor A" enum = "1""2""3""4""5""6""7""8""9""10" default = 0 endparam param flavorb caption = "Flavor B" enum = "1""2""3""4""5""6""7""8""9""10" default = 0 endparam heading caption = "Affecters" endheading param cchange caption = "Nuance of C" enum = "Orig""Real""Imag""Sign""Squared"\ "Exponent""Inverse""Inv/Exp""C/Exp""Function" default = 0 endparam func fnc caption = "C Function" default = sqr() visible = @cchange == "Function" endfunc float param expC caption = "Power of C" default = 1.0 endparam param ztweaker caption = "Z Tweaker" enum = "z=orig""z=z+a""z=z+b""z=z+c""z=z+x""z=z+y""z=z+g""z=z+h"\ "z=z*a""z=z*b""z=z*c""z=z*x""z=z*y""z=z*g""z=z*h"\ "z=z/c""z=z/a""z=z/b""z=z/x""z=z/y""z=z/g""z=z/h"\ "z=z/c+z""z=z/x+z""z=z/y+z"\ "z=z/c+c""z=z/a+c""z=z/b+c""z=z/x+c""z=z/y+c""z=z/g+c""z=z/h+c"\ "z=z-a""z=z-b""z=z-c""z=z-x""z=z-y""z=z-g""z=z-h"\ "z=a-z""z=b-z""z=c-z""z=x-z""z=y-z""z=g-z""z=h-z"\ "z=z/c-z""z=z/x-z""z=z/y-z""z=z/a-z""z=z/b-z""z=z/g-z""z=z/h-z"\ "z=z/c-c""z=z/a-c""z=z/b-c""z=z/x-c""z=z/y-c""z=z/g-c""z=z/h-c"\ "z=z-z/c""z=z-z/x""z=z-z/y""z=z-z/a""z=z-z/b""z=z-z/g""z=z-z/h"\ "z=c-z/c""z=c-z/a""z=c-z/b""z=c-z/x""z=c-z/y""z=c-z/g""z=c-z/h"\ "z=a/z""z=b/z""z=c/z""z=x/z""z=y/z""z=g/z""z=h/z" default = 0 endparam param mode caption = "Affecter Mode" default = 0 enum = "Julia/Mandelbrot""Barnsley1""Barnsley2""Barnsley3""\ ComplexMarks""FrothyBasin""GingerBread""Magnet""Lambda"\ "Hopalong""Lorenz""Newton""Phoenix""Quat""Sierpinski"\ "Spider" endparam param style caption = "Variation in Style" enum = "fn(z^(2+power))""fn(x+y)""fn(x-y)""fn(y-x)"\ "fn(x^2+y^2)""fn(x^2-y^2)""fn(y^2-x^2)""fn(x)""fn(y)"\ "fn(x^e)""fn(y^e)""fn(x^pi)""fn(y^pi)"\ "fn(z-x)^fn(z-y)""fn(z+x)^fn(z+y)" default = 0 endparam param version caption = "Version" default = 2.2 endparam heading caption = "Functions" endheading func fn1 caption = "Function 1" default = ident() endfunc func fn2 caption = "Function 2" default = ident() endfunc func fn3 caption = "Function 3" default = ident() endfunc func fn4 caption = "Function 4" default = ident() endfunc heading caption = "Parameters" endheading int param bailout caption = "Bailout value" default = 32 min = 1 endparam param bailchoice caption = "Bailout Choice" default = 0 enum = "|z|" "Real(Z^2)""Imag(Z^2)""Real(Z)^2""Imag(Z)^2"\ "Real & Imag""Real or Imag""Sqr(Abs(Real&Imag)" "Sqr(Real&Imag)" endparam param power caption = "Power" default = (0,0) endparam float param spower caption = "SPower" default = 0 endparam param startseed caption= "Start/Seed" default = (-1.2,0.1) hint = "This param acts as the Z start value in the Mandelbrot mode \ and the seed value in the Julia mode" endparam complex param p1 caption = "Param 1" default = (0,0) endparam param p2 caption = "Parameter 2" default = (1,0) endparam switch: type = "Mandelbrot/Julia100" startseed = #pixel bailout = @bailout style = @style fn1= @fn1 fn2= @fn2 fn3 = @fn3 fn4 = @fn4 flavora = @flavora flavorb = @flavorb power = @power p1 = @p1 p2 = @p2 a = @a b = @b g = @g h = @h x = @x y = @y cchange = @cchange btype = @btype ztweaker = @ztweaker bailchoice = @bailchoice fnc = @fnc expC = @expC mode2=@switchmode switchmode=@mode2 center=@swcenter scale=@swscale } MandelbrotJuliaQuest{ ; By Dolf De Rovira 5-20-2004 ; Version 2.0 This version was created for its switching ability ; within itself. The Float parameters were placed within the loop ; to be more effective. ; Version 2.1 - Bailouts together, Switch disabled, Affecter Parameter Renamed. ; This is an exploratory formula developed for the neophyte ; formula writer and devotee of the Julia and Mandelbrot Sets. ; I have started with the simple z = z^2 + c. This yields ; the typical Julia with z = pixel and c = @seed. Then within ; each type we have a choice of how to change the form of the ; formula. There are five choices. ; ; There is the original formula without any changes because the ; function default is set to ident. This achieves the same goal ; as not having any function. The following are the choices: ; ; 1-fn(z^2+power)-This makes the function affect the z and the power to ; which it is raised. I must mention here that the power variable ; can quickly add a power(or any number of powers) to the exponent ; That means if z = z^2 (or as the formula is written here ; z = z^(2+@power) ; and you add a 1 to the power box, it really means z^(2+1) or z^3, ; which is z cubed. You can vary the power value at will to look at how ; the image changes. ; ; 2-6 fn(x & y functions)-This changes the expression (x + y) to fn(x + y) ; ; 7-fn(x)-This changes the expression (x) to fn(x) ; ; 8-fn(y)-This changes the expression (y) to fn(y) ; ; There are also style choices. These range from the standard ; formula as above of "z = z^2+power + c" or z = fn1((z-p1)*p2)^(2+ @power) + c ; to a complex of : ; z = (fn1((z-p1)*p2)^(y+ @power)- c) * (fn1(z)^2 + y + c ; The first six choices or flavors go from ; z^2 to z^7, so adjusting the power value really makes the image go to ; the next set. However, in the later flavors this can have a greatly ; different impact. Please take the time to review the formula ; and how it is written and don't forget that when @power = 0 ; something like ^(2+@power) = (2+0) or 2 ; And when @power is 0, z*x*z^@power is really z*x, because ; anything to the 0 power is 1. So the above = z*x*(1) or z*x. ; ; Good luck, have fun and learn a little about the Julia and ; Mandelbrot sets. ; ; The variable z has been replaced by two other exploratory variables. ; The default values leave z as z. The first is a subtracter variable ; This subtracts a real and imaginary value from z. It is set to a default of ; (0,0). ; The second is a multiplier variable that multiplies the value of z by some ; complex number made up again of real and imaginary values. The p1 default is ; (0,0) and the p2 default here is (1,0), so the expression ((z-p1)*p2) also ; defaults to a value of z. ; Play with these values and see some differences appear. ; ; Recap: The formula might look like ; z = ((z-p1)*p2)^(2+ @power) + c, ; but being that the defaults for p1=(0,0), p2 = (1,0) and @power = 0 ; the formula really looks like the simple ; z = z^2 + c, or the common formula that yields a Julia. ; The value of z is a complex number and is made up of real and imaginary ; parts. This formula explores what happens when these are split ; out. Later flavors also explore what happens when they are ; subtracted from each other as well, yielding some very interesting ; patterns. ; ; The intent of the original formula was to see how x and y variables of real ; and imaginary z would play out. The results were not too convincing. ; I then took formulas from the Fractint collection in Ultra Fractal 3 public ; formulas and changed them to suit the tweaking of x and y variables ; in their ability to affect the formula outcome. I call these ; "Affecter Mode" choices. The z variable goes on and is changed again by the ; subsequent flavors, multipliers, subtracters and functions as well as the ; other choices of seed, bailout, power and startseed. Maximum iterations ; can greatly affect the final outcome as well. ; Also added is a switch for the "c" variable yielding c = c ; (the original value), c=-c, c=c^2, c = imag(c) and c=real(c) ; The Bailout Choice idea came from Sean M. Pratz's ; Bailout Galore formula which was adapted from ; F. Slijkerman. Other bailout conditions (types B & C) are based on routines ; suggested by Mark Townsend. init: complex z = @startseed complex c = #pixel if @mode2 == "Mandelbrot" z = @startseed c = #pixel endif if @mode2 == "Julia" z = pixel c = @startseed if @scale != 1.0 z = z/@scale endif if @center != (0.0,0.0) z = z + @center endif endif loop: float x = real(z) float y = imag(z) float a = real(c) float b = imag(c) float g = real(@startseed) float h = imag(@startseed) if @inv == true z = 1/z else z = z endif if @ztweaker == "z=orig" z = z elseif @ztweaker == "z=z+a" z = z + a elseif @ztweaker == "z=z+b" z = z + b elseif @ztweaker == "z=z+c" z = z + c elseif @ztweaker == "z=z+x" z = z + x elseif @ztweaker == "z=z+y" z = z + y elseif @ztweaker == "z=z+g" z = z + g elseif @ztweaker == "z=z+h";all z+? z = z + h elseif @ztweaker == "z=z*c" z = z * c elseif @ztweaker == "z=z*a" z = z * a elseif @ztweaker == "z=z*b" z = z * b elseif @ztweaker == "z=z*x" z = z * x elseif @ztweaker == "z=z*y" z = z * y elseif @ztweaker == "z=z*g" z = z * g elseif @ztweaker == "z=z*h";all z*? z = z * h elseif @ztweaker == "z=z/c" z = z / c elseif @ztweaker == "z=z/a" z = z / a elseif @ztweaker == "z=z/b" z = z / b elseif @ztweaker == "z=z/x" z = z / x elseif @ztweaker == "z=z/y" z = z / y elseif @ztweaker == "z=z/g" z = z / g elseif @ztweaker == "z=z/h";all z/? z = z / h elseif @ztweaker == "z=z/c+z" z = z / c + z elseif @ztweaker == "z=z/x+z" z = z / x + z elseif @ztweaker == "z=z/y+z";all z/?+z z = z / y + z elseif @ztweaker == "z=z/c+c" z = z / c + c elseif @ztweaker == "z=z/a+c" z = z / a + c elseif @ztweaker == "z=z/b+c" z = z / b + c elseif @ztweaker == "z=z/x+c" z = z / x + c elseif @ztweaker == "z=z/y+c" z = z / y + c elseif @ztweaker == "z=z/g+c" z = z / g + c elseif @ztweaker == "z=z/h+c";all z/?+c z = z / h + z elseif @ztweaker == "z=z-c" z = z - c elseif @ztweaker == "z=z-a" z = z - a elseif @ztweaker == "z=z-b" z = z - b elseif @ztweaker == "z=z-x" z = z - x elseif @ztweaker == "z=z-y" z = z - y elseif @ztweaker == "z=z-g" z = z - g elseif @ztweaker == "z=z-h";all z-? z = z - h elseif @ztweaker == "z=c-z" z = c -z elseif @ztweaker == "z=a-z" z = a - z elseif @ztweaker == "z=b-z" z = b - z elseif @ztweaker == "z=x-z" z = x - z elseif @ztweaker == "z=y-z" z = y - z elseif @ztweaker == "z=g-z" z = g - z elseif @ztweaker == "z=h-z";all ?-z z = h - z elseif @ztweaker == "z=z/c-z" z = z / c - z elseif @ztweaker == "z=z/x-z" z = z / x - z elseif @ztweaker == "z=z/y-z" z = z / y - z elseif @ztweaker == "z=z/a-z" z = z / a - z elseif @ztweaker == "z=z/b-z" z = z / b - z elseif @ztweaker == "z=z/g-z" z = z / g - z elseif @ztweaker == "z=z/h-z";all z/?-z z = z / h - z elseif @ztweaker == "z=z/c-c" z = z / c - c elseif @ztweaker == "z=z/a-c" z = z / a - c elseif @ztweaker == "z=z/b-c" z = z / b - c elseif @ztweaker == "z=z/x-c" z = z / x - c elseif @ztweaker == "z=z/y-c" z = z / y - c elseif @ztweaker == "z=z/g-c" z = z / g - c elseif @ztweaker == "z=z/h-c";all z/?-c z = z / h - z elseif @ztweaker == "z=z-z/c" z = z - z / c elseif @ztweaker == "z=z-z/x" z = z - z / x elseif @ztweaker == "z=z-z/y" z = z - z / y elseif @ztweaker == "z=z-z/a" z = z - z / a elseif @ztweaker == "z=z-z/b" z = z - z / b elseif @ztweaker == "z=z-z/g" z = z - z / g elseif @ztweaker == "z=z-z/h";all z-z/? z = z - z / h elseif @ztweaker == "z=c-z/c" z = c - z / c elseif @ztweaker == "z=c-z/a" z = c - z / a elseif @ztweaker == "z=c-z/b" z = c - z / b elseif @ztweaker == "z=c-z/g" z = c - z / g elseif @ztweaker == "z=c-z/h" z = c - z / h elseif @ztweaker == "z=c-z/x" z = c - z / x elseif @ztweaker == "z=c-z/y" z = c - z / y elseif @ztweaker == "z=a/z" z = a / z elseif @ztweaker == "z=b/z" z = b / z elseif @ztweaker == "z=c/z" z = c / z elseif @ztweaker == "z=x/z" z = x / z elseif @ztweaker == "z=y/z" z = y / z elseif @ztweaker == "z=g/z" z = g / z elseif @ztweaker == "z=h/z" z = h / z endif if @cchange == "Orig" c = c^@expC elseif @cchange == "Real" c = real(c)^@expC elseif @cchange == "Imag" c = imag(c)^@expC elseif @cchange == "Sign" c = -c^@expC elseif @cchange == "Squared" c = c^2+@expC elseif @cchange == "Exponent" c = e^c^@expC elseif @cchange == "Inverse" c = 1 / c^@expC elseif @cchange == "Inv/Exp" c = 1 / e^c^@expC elseif @cchange == "C/Exp" c = c^@expC / e^c^@expC elseif @cchange == "Function" c = @fnc(c^@expC) endif ; "Affecter - Loop" for x & y variables. These formulas are ; not exactly the same as the named formulas, but are in essence ; the same as the originals. Liberties have been taken ; by this formula writer to make them compatible with this work. ; Many thanks to Frederik Slijkerman who converted the original ; formulas developed originally for Fractint to be compatible with ; Ultra Fractal. With his permission, I have adapted ; those original formulas for this one. if @mode == "Julia/Mandelbrot" if @style == "fn(x+y)" || @style =="fn(x-y)" \ || @style == "fn(y-x)" || @style =="fn(x^2+y^2)" \ || @style == "fn(x)" ||@style == "fn(y)" \ || @style == "fn(y^2-x^2)" ||@style == "fn(x^2-y^2)" z = (z - 1) * c elseif @style == "fn(z^(2+power))" z = z endif elseif @mode == "Barnsley1" if x >= 0 z = (z - 1) * c elseif x<0 z = (z + 1) * c endif elseif @mode == "Barnsley2" if x * h + g * y >= 0 z = (z - 1) * c elseif x * h + g * y < 0 z = (z + 1) * c endif elseif @mode == "Barnsley3" if x > 0 z = x^2 - y^2 -1 + 2*x * y elseif x <= 0 z = x^2 - y^2 -1 + a*x + 2*x*y + b*x endif elseif @mode == "ComplexMarks" if x >= y z = x^(@power-1)*z^2 + c + x elseif y > x z = y^(@power-1)*z^2 + c + y endif elseif @mode == "FrothyBasin" if x >= y z = z^2 - conj(z)*(1 + 1.02871376828*y) + x elseif y > x z = z^2 - conj(z)*(1 + 1.02871376828*y) + y endif elseif @mode == "GingerBread" if x >= y z = 1 - y + |x| elseif y > x z = x endif elseif @mode == "Magnet" if x >= y z = sqr( (z^2 + p1 - 1) / (2*(z-p1)*p2)^(2+ @power) + p1) + x elseif y > x z = sqr( (z^2 + p1 - 1) / (2*(z-p1)*p2)^(2+ @power) + p1) + y endif elseif @mode == "Lambda" if x >= y z = @startseed * fn1(z) + x*z elseif y > x z = @startseed * fn1(z) + y*z endif elseif @mode == "Hopalong" if x >= y z = sqrt(abs(p2*z-c)) + |p1 - x| + c + x elseif y > x z = sqrt(abs(p2*z-c)) + |p1 - y| + c + y endif elseif @mode == "Lorenz" if x >= y z = z -c*((z-p1)*p2)^(2+ @power) + (x-p1*x + p1*y)* (y+p1-y-(z-p1)*p2)^((2+ @power)*x) + x elseif y > x z = ((z-p1)*p2)^(2+ @power) -c*((z-p1)*p2)^(2+ @power) + (x-p1*x + p1*y)* (y+p1-y-z*x) + y endif elseif @mode == "Newton" if x >= y z = (x)*((z-p1)*p2)^(@power +1) + x + c elseif y > x z = (y)*((z-p1)*p2)^(@power +1) + y + c endif elseif @mode == "Phoenix" if @power >= 2 z = z^@power + a*((z-p1)*p2)^(@power - 1) + b * y elseif @power <= -3 z = z^(-@power) + a * ((z-p1)*p2)^(@power - 2) + b * y elseif @power > 3 || @power < 2 z = z^2 + a + b * y endif elseif @mode == "Quat"; if x >= y z = sqr(z) - sqr(real(z)) - sqr(y) + c elseif y > x z = 2*x*x + flip(2*x*y) +c endif elseif @mode == "Sierpinski" if y > x z = y + 1/(2*x-1) elseif y>=x z = 2*x-1 + 1/(2*y) endif elseif @mode == "Spider" if y > x z = sqr((z-p1)*p2)^(2+ @power) + c + ((z-p1)*p2)^(2+ @power) + x elseif y>=x z = sqr((z-p1)*p2)^(2+ @power) + c + ((z-p1)*p2)^(2+ @power) + y endif endif ;Main Loop Selection if @flavor == "1" ; Standard Julia if @style == "fn(z^(2+power))" z = fn1(((z-p1)*p2)^(2+ @power)) + c elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^(2+ @power) + fn2(x + y)/x + c elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^(2+ @power) + fn2(x - y)/x + c elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^(2+ @power) + fn2(y - x)/x + c elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^(2+ @power) + fn2(y^2 + x^2)/x + c elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^(2+ @power) + fn2(y^2 - x^2)/x + c elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^(2+ @power) + fn2(x^2 - y^2)/x + c elseif @style == "fn(x)" z = fn1(z-p1)*p2^(2+ @power) + fn3(x)/x + c elseif @style == "fn(y)" z = fn1(z-p1)*p2^(2+ @power) + fn4(y)/y + c endif elseif @flavor == "2" ;Trefoil with continuous trefoil inside if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2*z^(2+ @power)) + c elseif @style == "fn(x+y)" z = fn1((z-p1)*p2*z^(2+ @power)) + fn2(x + y) + c elseif @style == "fn(x-y)" z = fn1(z-p1)*p2*z^(2+ @power) + fn2(x - y) + c elseif @style == "fn(y-x)" z = fn1(z-p1)*p2*z^(2+ @power) + fn2(y -x) + c elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2*z^(2+ @power) + fn2(y^2 + x^2) + c elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2*z^(2+ @power) + fn2(y^2 - x^2) + c elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2*z^(2+ @power) + fn2(x^2 - y^2) + c elseif @style == "fn(x)" z = fn1(z-p1)*p2*z^(2+ @power) + fn3(x) + c elseif @style == "fn(y)" z = fn1(z-p1)*p2*z^(2+ @power) + fn4(y) + c endif elseif @flavor == "3" ;Open Quadro-Julia if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2*z*z^(2+ @power)) + c elseif @style == "fn(x+y)" z = fn1((z-p1)*p2*z*z^(2+ @power)) + fn2(x + y) + c elseif @style == "fn(x-y)" z = fn1(z-p1)*p2*z*z^(2+ @power) + fn2(x - y) + c elseif @style == "fn(y-x)" z = fn1(z-p1)*p2*z*z^(2+ @power) + fn2(y -x) + c elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2*z*z^(2+ @power) + fn2(y^2 + x^2) + c elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2*z*z^(2+ @power) + fn2(y^2 - x^2) + c elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2*z*z^(2+ @power) + fn2(x^2 - y^2) + c elseif @style == "fn(x)" z = fn1(z-p1)*p2*z*z^(2+ @power) + fn3(x) + c elseif @style == "fn(y)" z = fn1(z-p1)*p2*z*z^(2+ @power) + fn4(y) + c endif elseif @flavor == "4" ; Faint Penta-Julia if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2*z*z*z^(2+ @power)) + c elseif @style == "fn(x+y)" z = fn1((z-p1)*p2*z*z*z^(2+ @power)) + fn2(x + y) + c elseif @style == "fn(x-y)" z = fn1(z-p1)*p2*z*z*z^(2+ @power) + fn2(x - y) + c elseif @style == "fn(y-x)" z = fn1(z-p1)*p2*z*z*z^(2+ @power) + fn2(y -x) + c elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2*z*z*z^(2+ @power) + fn2(y^2 + x^2) + c elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2*z*z*z^(2+ @power) + fn2(y^2 - x^2) + c elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2*z*z*z^(2+ @power) + fn2(x^2 - y^2) + c elseif @style == "fn(x)" z = fn1(z-p1)*p2*z*z*z^(2+ @power) + fn3(x) + c elseif @style == "fn(y)" z = fn1(z-p1)*p2*z*z*z^(2+ @power) + fn4(y) + c endif elseif @flavor == "5" ;Colorful Curved 6-arm Flower if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2*z*z*z*z^(2+ @power)) + c elseif @style == "fn(x+y)" z = fn1((z-p1)*p2*z*z*z*z^(2+ @power)) + fn2(y + x) + c elseif @style == "fn(x-y)" z = fn1(z-p1)*p2*z*z*z*z^(2+ @power) + fn2(x - y) + c elseif @style == "fn(y-x)" z = fn1(z-p1)*p2*z*z*z*z^(2+ @power) + fn2(y -x) + c elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2*z*z*z*z^(2+ @power) + fn2(y^2 + x^2) + c elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2*z*z*z*z^(2+ @power) + fn2(y^2 - x^2) + c elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2*z*z*z*z^(2+ @power) + fn2(x^2 - y^2) + c elseif @style == "fn(x)" z = fn1(z-p1)*p2*z*z*z*z^(2+ @power) + fn3(x) + c elseif @style == "fn(y)" z = fn1(z-p1)*p2*z*z*z*z^(2+ @power) + fn4(y) + c endif elseif @flavor == "6" ;Faint HeptaFoil continuous if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2*z*z*z*z*z^(2+ @power)) + c elseif @style == "fn(x+y)" z = fn1((z-p1)*p2*z*z*z*z*z*z^(2+ @power)) + fn2(y + x) + c elseif @style == "fn(x-y)" z = fn1(z-p1)*p2*z*z*z*z*z^(2+ @power) + fn2(x - y) + c elseif @style == "fn(y-x)" z = fn1(z-p1)*p2*z*z*z*z*z^(2+ @power) + fn2(y -x) + c elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2*z*z*z*z*z^(2+ @power) + fn2(y^2 + x^2) + c elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2*z*z*z*z*z^(2+ @power) + fn2(y^2 - x^2) + c elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2*z*z*z*z*z^(2+ @power) + fn2(x^2 - y^2) + c elseif @style == "fn(x)" z = fn1(z-p1)*p2*z*z*z*z*z^(2+ @power)+ fn3(x) + c elseif @style == "fn(y)" z = fn1(z-p1)*p2*z*z*z*z*z^(2+ @power)+ fn4(y) + c endif elseif @flavor == "7" ;Open Photolamp Shape with nodes and faint spirals if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(2+ @power)) + c^z elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^(2+ @power) + fn2(x + y) + x + c^z elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^(2+ @power) + fn2(x - y)+ x + c^z elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^(2+ @power) + fn2(y -x) + x + c^z elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^(2+ @power) + fn2(y^2 + x^2) + x + c^z elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^(2+ @power) + fn2(y^2 - x^2) + x + c^z elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^(2+ @power) + fn2(x^2 - y^2) + x + c^z elseif @style == "fn(x)" z = fn1(z-p1)*p2^(2+ @power) + fn3(x) + c^z elseif @style == "fn(y)" z = fn1(z-p1)*p2^(2+ @power) + fn4(y) + c^z endif elseif @flavor == "8" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(2+ @power)) + z + c^z elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^(2+ @power) + z + fn2(x + y) + c^z elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^(2+ @power) + fn2(x - y)+ z + c^z elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^(2+ @power) + fn2(y -x) + z + c^z elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^(2+ @power) + fn2(y^2 + x^2) + z + c^z elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^(2+ @power) + fn2(y^2 - x^2) + z + c^z elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^(2+ @power) + fn2(x^2 - y^2) + z + c^z elseif @style == "fn(x)" z = fn1(z-p1)*p2^(2+ @power) + z + fn3(x) + c^z elseif @style == "fn(y)" z = fn1(z-p1)*p2^(2+ @power) + z + fn4(y) + c^z endif elseif @flavor == "9" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(2+ @power)) + z - x + c^z elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^(2+ @power) + z - fn2(x + y) + c^z elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^(2+ @power) + z - fn2(x - y) + c^z elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^(2+ @power) + z - fn2(y -x) + c^z elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^(2+ @power) + z - fn2(x^2 + y^2) + c^z elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^(2+ @power) + z - fn2(x^2 - y^2) + c^z elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^(2+ @power) + z - fn2(x^2 - y^2) + c^z elseif @style == "fn(x)" z = fn1(z-p1)*p2^(2+ @power) + z - fn3(x) + c^z elseif @style == "fn(y)" z = fn1(z-p1)*p2^(2+ @power) + z - fn4(y) + c^z endif elseif @flavor == "10" ; Rounded bottom mountain over faint white spirals if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(2+ @power)) + z + y + c^z elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^(2+ @power) + z + fn2(x - y) + c^z elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^(2+ @power) + z + fn2(y - x) + c^z elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^(2+ @power) + z + fn2(x^2 + y^2) + c^z elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^(2+ @power) + z + fn2(x^2 - y^2) + c^z elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^(2+ @power) + z + fn2(x^2 - y^2) + c^z elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^(2+ @power) + z + fn2(x + y) + c^z elseif @style == "fn(x)" z = fn1(z-p1)*p2^(2+ @power) + z + fn3(x) + c^z elseif @style == "fn(y)" z = fn1(z-p1)*p2^(2+ @power) + z + fn4(y) + c^z endif elseif @flavor == "11" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(2+ @power)) + z^z - 2*x + c elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^(2+ @power) + z^z + fn2(2*x - y) + c elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^(2+ @power) + z^z + fn2(y - 2*x) + c elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^(2+ @power) + z^z + fn2(2*x^2 + y^2) + c elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^(2+ @power) + z^z + fn2(2*x^2 - y^2) + c elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^(2+ @power) + z^z + fn2(2*x^2 - y^2) + c elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^(2+ @power) + z^z - fn2(2*x + y) + c elseif @style == "fn(x)" z = fn1(z-p1)*p2^(2+ @power) +z^z - fn3(2*x) + c elseif @style == "fn(y)" z = fn1(z-p1)*p2^(2+ @power) +z^z - fn4(2*y) + c endif elseif @flavor == "12" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(2+ @power)) + z^z + 2*y + c elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^(2+ @power) + z^z + fn2(x - 2*y) + c elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^(2+ @power) + z^z + fn2(2*y - x) + c elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^(2+ @power) + z^z + fn2(x^2 + 2*y^2) + c elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^(2+ @power) + z^z + fn2(x^2 - 2*y^2) + c elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^(2+ @power) + z^z + fn2(x^2 - 2*y^2) + c elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^(2+ @power) + z^z + fn2(x + 2*y) + c elseif @style == "fn(x)" z = fn1(z-p1)*p2^(2+ @power) +z^z + fn3(2*x) + c elseif @style == "fn(y)" z = fn1(z-p1)*p2^(2+ @power) +z^z + fn4(2*y) + c endif elseif @flavor == "13" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(2+ @power)) + |z - x| + c^z elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^(2+ @power) + |z - x - y| + c^z elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^(2+ @power) + |z + y - x| + c^z elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^(2+ @power) + |z - fn2(x^2 + y^2)| + c^z elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^(2+ @power) + |z - fn2(y^2 - x^2)| + c^z elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^(2+ @power) + |z - fn2(x^2 - y^2)| + c^z elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^(2+ @power) + fn2(|z - x|) + c^z elseif @style == "fn(x)" z = fn1(z-p1)*p2^(2+ @power) + |z - fn3(x)| + c^z elseif @style == "fn(y)" z = fn1(z-p1)*p2^(2+ @power) + |z - fn4(y)| + c^z endif elseif @flavor == "14" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(2+ @power)) + |z - y| + c^z elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^(2+ @power) + |z - y - x| + c^z elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^(2+ @power) + |z + x - y| + c^z elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^(2+ @power) + |z + fn2(x^2 + y^2)| + c^z elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^(2+ @power) + |z + fn2(y^2 - x^2)| + c^z elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^(2+ @power) + |z + fn2(x^2 - y^2)| + c^z elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^(2+ @power) + fn2(|z - y|) + c^z elseif @style == "fn(x)" z = fn1(z-p1)*p2^(2+ @power) + |z - fn3(x)| + x*c elseif @style == "fn(y)" z = fn1(z-p1)*p2^(2+ @power) + |z - fn4(y)| + x*c endif elseif @flavor == "15" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(z+ @power)) + c^z elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^(z+ @power) + c^z + fn2(x - y) elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^(z+ @power) + c^z + fn2(y - x) elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^(z+ @power) + c^z + fn2(x^2+y^2) elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^(z+ @power) + c^z + fn2(y^2 - x^2) elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^(z+ @power) + c^z + fn2(x^2 - y^2) elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^fn2(z+ @power) + c^z + fn2(x + y) elseif @style == "fn(x)" z = fn1(z-p1)*p2^(z+ @power) + c^z + fn3(x) elseif @style == "fn(y)" z = fn1(z-p1)*p2^(z+ @power) + c^z + fn4(y) endif elseif @flavor == "16" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(z+ @power)) + x + c^z elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^(z+ @power) + x + c^z + fn2(x - y) elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^(z+ @power) + x + c^z + fn2(y - x) elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^(z+ @power) + x + c^z + fn2(x^2+y^2) elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^(z+ @power) + x + c^z + fn2(y^2 - x^2) elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^(z+ @power) + x + c^z + fn2(x^2 - y^2) elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^fn2(z+ @power) + x + c^z + fn2(x + y) elseif @style == "fn(x)" z = fn1(z-p1)*p2^(z+ @power) + x + c^z + fn3(x) elseif @style == "fn(y)" z = fn1(z-p1)*p2^(z+ @power) + x + c^z + fn4(y) endif elseif @flavor == "17" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(z+ @power)) + y + c^z elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^(z+ @power) + y + c^z + fn2(x - y) elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^(z+ @power) + y + c^z + fn2(y - x) elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^(z+ @power) + y + c^z + fn2(x^2+y^2) elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^(z+ @power) + y + c^z + fn2(y^2 - x^2) elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^(z+ @power) + y + c^z + fn2(x^2 - y^2) elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^fn2(z+ @power) + y + c^z + fn2(x + y) elseif @style == "fn(x)" z = fn1(z-p1)*p2^(z+ @power) + y + c^z + fn3(x) elseif @style == "fn(y)" z = fn1(z-p1)*p2^(z+ @power) + y + c^z + fn4(y) endif elseif @flavor == "18" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^z)^(z+ @power) + c^z elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^z^(z+ @power) + c^z + fn2(x - y) elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^z^(z+ @power) + c^z + fn2(y - x) elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^z^(z+ @power) + c^z + fn2(x^2+y^2) elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^z^(z+ @power) + c^z + fn2(y^2 - x^2) elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^z^(z+ @power) + c^z + fn2(x^2 - y^2) elseif @style == "fn(x+y)" z = fn1((z-p1)*p2^z^fn2(z+ @power)) + fn2(x + y) + c^z elseif @style == "fn(x)" z = fn1(z-p1)*p2^z^(z+ @power) + c^z + fn3(x) elseif @style == "fn(y)" z = fn1(z-p1)*p2^z^(z+ @power) + c^z + fn4(y) endif elseif @flavor == "19" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^z)^z^(z + @power) + c elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^z^z^(z + @power) + c + fn2(x - y) elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^z^z^(z + @power) + c + fn2(y - x) elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^z^z^(z + @power) + c + fn2(x^2 + y^2) elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^z^z^(z + @power) + c + fn2(y^2 - x^2) elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^z^z^(z+ @power) + c + fn2(x^2 - y^2) elseif @style == "fn(x+y)" z = fn1((z-p1)*p2^z^z^fn2(z + @power)) + c elseif @style == "fn(x)" z = fn1(z-p1)*p2^z^z^(z + @power) + c + fn3(x) elseif @style == "fn(y)" z = fn1(z-p1)*p2^z^z^(z + @power) + c + fn4(y) endif elseif @flavor == "20" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^z)^z^z^(z+ @power) + c elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^z^z^z^(z+ @power) + c + fn2(x - y) elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^z^z^z^(z+ @power) + c + fn2(y - x) elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^z^z^z^(z+ @power) + c + fn2(x^2+y^2) elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^z^z^z^(z+ @power) + c + fn2(y^2 - x^2) elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^z^z^z^(z+ @power) + c + fn2(x^2 - y^2) elseif @style == "fn(x+y)" z = fn1((z-p1)*p2^z^z^z^fn2(z+ @power)) + c elseif @style == "fn(x)" z = fn1(z-p1)*p2^z^z^z^(z+ @power) + c + fn3(x) elseif @style == "fn(y)" z = fn1(z-p1)*p2^z^z^z^(z+ @power) + c + fn4(y) endif elseif @flavor == "21" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^z)^z^z^z^(z+ @power) + c elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^z^z^z^z^(z+ @power) + c + fn2(x - y) elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^z^z^z^z^(z+ @power) + c + fn2(y - x) elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^z^z^z^z^(z+ @power) + c + fn2(x^2+y^2) elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^z^z^z^z^(z+ @power) + c + fn2(y^2 - x^2) elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^z^z^z^z^(z+ @power) + c + fn2(x^2 - y^2) elseif @style == "fn(x+y)" z = fn1((z-p1)*p2^z^z^z^z^fn2(z+ @power)) + c elseif @style == "fn(x)" z = fn1(z-p1)*p2^z^z^z^z^(z+ @power) + c + fn3(x) elseif @style == "fn(y)" z = fn1(z-p1)*p2^z^z^z^z^(z+ @power) + c + fn4(y) endif elseif @flavor == "22" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(z+ @power)) + y^2 + c^z elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^(z+ @power) + c^z + y^2 + fn2(x - y) elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^(z+ @power) + c^z + y^2 + fn2(y - x) elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^(z+ @power) + c^z + y^2 + fn2(x^2+y^2) elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^(z+ @power) + c^z + y^2 + fn2(y^2 - x^2) elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^(z+ @power) + c^z + y^2 + fn2(x^2 - y^2) elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^(z+ @power) + fn2(x + y) + c^z + y^2 elseif @style == "fn(x)" z = fn1(z-p1)*p2^(z+ @power) + y^2 + c^z + fn3(x) elseif @style == "fn(y)" z = fn1(z-p1)*p2^(z+ @power) + y^2 + c + fn4(y) endif elseif @flavor == "23" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(z+ @power)) + x + c^z elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^(z+ @power) + c^z + x + fn2(x - y) elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^(z+ @power) + c^z + x + fn2(y - x) elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^(z+ @power) + c^z + x + fn2(x^2+y^2) elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^(z+ @power) + c^z + x + fn2(y^2 - x^2) elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^(z+ @power) + c^z + x + fn2(x^2 - y^2) elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^(z+ @power) + fn2(x + y) + c^z + x elseif @style == "fn(x)" z = fn1(z-p1)*p2^(z+ @power) + x + c^z + fn3(x) elseif @style == "fn(y)" z = fn1(z-p1)*p2^(z+ @power) + x + c^z + fn4(y) endif elseif @flavor == "24" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(z+ @power)) + x - c^z elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^(z+ @power) - c^z + x + fn2(x - y) elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^(z+ @power) - c^z + x + fn2(y - x) elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^(z+ @power) - c^z + x + fn2(x^2+y^2) elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^(z+ @power) - c^z + x + fn2(y^2 - x^2) elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^(z+ @power) - c^z + x + fn2(x^2 - y^2) elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^(z+ @power) + fn2(x + y) - c^z + x elseif @style == "fn(x)" z = fn1(z-p1)*p2^(z+ @power) + x - c^z + fn3(x) elseif @style == "fn(y)" z = fn1(z-p1)*p2^(z+ @power) + x - c^z + fn4(y) endif elseif @flavor == "25" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(z+ @power)) + y - c^z elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^(z+ @power) - c^z + y + fn2(x - y) elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^(z+ @power) - c^z + y + fn2(y - x) elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^(z+ @power) - c^z + y + fn2(x^2+y^2) elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^(z+ @power) - c^z + y + fn2(y^2 - x^2) elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^(z+ @power) - c^z + y + fn2(x^2 - y^2) elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^(z+ @power) + fn2(x + y) - c^z + y elseif @style == "fn(x)" z = fn1(z-p1)*p2^(z+ @power) + y - c^z + fn3(x) elseif @style == "fn(y)" z = fn1(z-p1)*p2^(z+ @power) + y - c^z + fn4(y) endif elseif @flavor == "26" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(z+ @power)) + |x - c^z| elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^(z+ @power) + |x - c^z| + fn2(x - y) elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^(z+ @power) + |x - c^z| + fn2(y - x) elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^(z+ @power) + |x - c^z| + fn2(x^2+y^2) elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^(z+ @power) + |x - c^z| + fn2(y^2 - x^2) elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^(z+ @power) + |x - c^z| + fn2(x^2 - y^2) elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^(z+ @power) + fn2(x + y) + |x - c^z| elseif @style == "fn(x)" z = fn1(z-p1)*p2^(z+ @power) + |x - c^z| + fn3(x) elseif @style == "fn(y)" z = fn1(z-p1)*p2^(z+ @power) + |x - c^z| + fn4(y) endif elseif @flavor == "27" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(z+ @power)) + |y^z - c^z| elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^(z+ @power) + |y^z - c^z| + fn2(x - y) elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^(z+ @power) + |y^z - c^z| + fn2(y - x) elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^(z+ @power) + |y^z - c^z| + fn2(x^2+y^2) elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^(z+ @power) + |y^z - c^z| + fn2(y^2 - x^2) elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^(z+ @power) + |y^z - c^z| + fn2(x^2 - y^2) elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^(z+ @power) + fn2(x + y) + |y^z - c^z| elseif @style == "fn(x)" z = fn1(z-p1)*p2^(z+ @power) + |y^z - c^z| + fn3(x) elseif @style == "fn(y)" z = fn1(z-p1)*p2^(z+ @power) + |y^z - c^z| + fn4(y) endif elseif @flavor == "28" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^z^(z+ @power)) + |x - c^z|^2 elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^z^(z+ @power) + |x - c^z|^2 + fn2(x - y) elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^z^(z+ @power) + |x - c^z|^2 + fn2(y - x) elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^z^(z+ @power) + |x - c^z|^2 + fn2(x^2+y^2) elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^z^(z+ @power) + |x - c^z|^2 + fn2(y^2 - x^2) elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^z^(z+ @power) + |x - c^z|^2 + fn2(x^2 - y^2) elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^z^(z+ @power) + fn2(x + y) + |x - c^z|^2 elseif @style == "fn(x)" z = fn1(z-p1)*p2^z^(z+ @power) + |x - c^z|^2 + fn3(x) elseif @style == "fn(y)" z = fn1(z-p1)*p2^z^(z+ @power) + |x - c^z|^2 + fn4(y) endif elseif @flavor == "29" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^z^(z+ @power)) + |y^z - c^z| elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^z^(z+ @power) + |y^z - c^z| + fn2(x - y) elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^z^(z+ @power) + |y^z - c^z| + fn2(y - x) elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^z^(z+ @power) + |y^z - c^z| + fn2(x^2+y^2) elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^z^(z+ @power) + |y^z - c^z| + fn2(y^2 - x^2) elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^z^(z+ @power) + |y^z - c^z| + fn2(x^2 - y^2) elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^z^(z+ @power) + fn2(x + y) + |y^z - c^z| elseif @style == "fn(x)" z = fn1(z-p1)*p2^z^(z+ @power) + |y^z - c^z| + fn3(x) elseif @style == "fn(y)" z = fn1(z-p1)*p2^z^(z+ @power) + |y^z - c^z| + fn4(y) endif elseif @flavor == "30" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^z^(z+ @power)) + x - c^z elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^z^(z+ @power) + x - c^z + fn2(x - y) elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^z^(z+ @power) + x - c^z + fn2(y - x) elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^z^(z+ @power) + x - c^z + fn2(x^2+y^2) elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^z^(z+ @power) + x - c^z + fn2(y^2 - x^2) elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^z^(z+ @power) + x - c^z + fn2(x^2 - y^2) elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^z^(z+ @power) + x - c^z + fn2(x + y) elseif @style == "fn(x)" z = fn1(z-p1)*p2^z^(z+ @power) + x - c^z + fn3(x) elseif @style == "fn(y)" z = fn1(z-p1)*p2^z^(z+ @power) + x - c^z + fn4(y) endif elseif @flavor == "31" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^z^(z+ @power)) + y - c^z elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^z^(z+ @power) + y - c^z + fn2(x - y) elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^z^(z+ @power) + y - c^z + fn2(y - x) elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^z^(z+ @power) + y - c^z + fn2(x^2+y^2) elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^z^(z+ @power) + y - c^z + fn2(y^2 - x^2) elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^z^(z+ @power) + y - c^z + fn2(x^2 - y^2) elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^z^(z+ @power) + y - c^z + fn2(x + y) elseif @style == "fn(x)" z = fn1(z-p1)*p2^z^(z+ @power) + y - c^z + fn3(x) elseif @style == "fn(y)" z = fn1(z-p1)*p2^z^(z+ @power) + y - c^z + fn4(y) endif elseif @flavor == "32" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^z^(z+ @power)) + y + c^z elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^z^(z+ @power) + y + c^z + fn2(x - y) elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^z^(z+ @power) + y + c^z + fn2(y - x) elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^z^(z+ @power) + y + c^z + fn2(x^2+y^2) elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^z^(z+ @power) + y + c^z + fn2(y^2 - x^2) elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^z^(z+ @power) + y + c^z + fn2(x^2 - y^2) elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^z^(z+ @power) + y + c^z + fn2(x + y) elseif @style == "fn(x)" z = fn1(z-p1)*p2^z^(z+ @power) + y + c^z + fn3(x) elseif @style == "fn(y)" z = fn1(z-p1)*p2^z^(z+ @power) + y + c^z + fn4(y) endif elseif @flavor == "33" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^z^(z+ @power)) + x + fn1(c) + c^z elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^z^(z+ @power) + x + fn1(c)+ fn2(x - y) + c^z elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^z^(z+ @power) + x + fn1(c) + fn2(y - x) + c^z elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^z^(z+ @power) + x + fn1(c) + fn2(x^2+y^2) + c^z elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^z^(z+ @power) + x +fn1(c) + fn2(y^2 - x^2) + c^z elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^z^(z+ @power) + x + fn1(c) + fn2(x^2 - y^2) + c^z elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^z^(z+ @power) + x + fn1(c) + fn2(x + y) + c^z elseif @style == "fn(x)" z = fn1(z-p1)*p2^z^(z+ @power) + x + fn1(c) + fn3(x) + c^z elseif @style == "fn(y)" z = fn1(z-p1)*p2^z^(z+ @power) + x + fn1(c) + fn4(y) + c^z endif elseif @flavor == "34" if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^z^(z+ @power)) + y + c^z elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^z^(z+ @power) + y + c^z + fn2(x - y) elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^z^(z+ @power) + y + c^z + fn2(y - x) elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^z^(z+ @power) + y + c^z + fn2(x^2+y^2) elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^z^(z+ @power) + y + c^z + fn2(y^2 - x^2) elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^z^(z+ @power) + y + c^z + fn2(x^2 - y^2) elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^z^(z+ @power) + y + c^z + fn2(x + y) elseif @style == "fn(x)" z = fn1(z-p1)*p2^z^(z+ @power) + y + c^z + fn3(x) elseif @style == "fn(y)" z = fn1(z-p1)*p2^z^(z+ @power) + y + c^z + fn4(y) endif elseif @flavor == "35" if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^z^(z+ @power)) + x*c^z elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^z^(z+ @power) + x*c^z + fn2(x - y) elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^z^(z+ @power) + x*c^z + fn2(y - x) elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^z^(z+ @power) + x*c^z + fn2(x^2+y^2) elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^z^(z+ @power) + x*c^z + fn2(y^2 - x^2) elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^z^(z+ @power) + x*c^z + fn2(x^2 - y^2) elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^z^(z+ @power) + x*c^z + fn2(x + y) elseif @style == "fn(x)" z = fn1(z-p1)*p2^z^(z+ @power) + x*c^z + fn3(x) elseif @style == "fn(y)" z = fn1(z-p1)*p2^z^(z+ @power) + x*c^z + fn4(y) endif elseif @flavor == "36" ; if @style =="fn(z^(2+power))" z = fn1(y*x) + c + fn1((z-p1)*p2^2)*z^(z+@power) elseif @style == "fn(x-y)" z = fn1(x*y) + c + fn1(z-p1)*p2^z^(z+ @power) + fn2(x - y) elseif @style == "fn(y-x)" z = fn1(x*y) + c + fn1(z-p1)*p2^z^(z+ @power) + fn2(y - x) elseif @style == "fn(x^2+y^2)" z = fn1(x*y) + c + fn1(z-p1)*p2^z^(z+ @power) + fn2(x^2+y^2) elseif @style == "fn(y^2-x^2)" z = fn1(x*y) + c + fn1(z-p1)*p2^z^(z+ @power) + fn2(y^2 - x^2) elseif @style == "fn(x^2-y^2)" z = fn1(x*y) + c + fn1(z-p1)*p2^z^(z+ @power) + fn2(x^2 - y^2) elseif @style == "fn(x+y)" z = fn1(x*y) + c + fn1(z-p1)*p2^z^(z+ @power) + fn2( x + y) elseif @style == "fn(x)" z = fn1(x*y) + c + fn1(z-p1)*p2^z^(z+ @power) + fn3(x) elseif @style == "fn(y)" z = fn1(x*y) + c + fn1(z-p1)*p2^z^(z+ @power) + fn4(y) endif elseif @flavor == "37" ; if @style =="fn(z^(2+power))" z = (y*x) + c + fn1((z-p1)*p2^2)*z^z^(z+ @power) elseif @style == "fn(x-y)" z = (x*y) + c + fn1(z-p1)*p2^z^(z+ @power) + fn2(x - y) elseif @style == "fn(y-x)" z = (x*y) + c + fn1(z-p1)*p2^z^(z+ @power) + fn2(y - x) elseif @style == "fn(x^2+y^2)" z = (x*y) + c + fn1(z-p1)*p2^z^(z+ @power) + fn2(x^2+y^2) elseif @style == "fn(y^2-x^2)" z = (x*y) + c + fn1(z-p1)*p2^z^(z+ @power) + fn2(y^2 - x^2) elseif @style == "fn(x^2-y^2)" z = (x*y) + c + fn1(z-p1)*p2^z^(z+ @power) + fn2(x^2 - y^2) elseif @style == "fn(x+y)" z = (x*y) + c + fn1(z-p1)*p2^z^(z+ @power) + fn2( x + y) elseif @style == "fn(x)" z = (x*y) + c + fn1(z-p1)*p2^z^(z+ @power) + fn3(x) elseif @style == "fn(y)" z = (x*y) + c + fn1(z-p1)*p2^z^(z+ @power) + fn4(y) endif elseif @flavor == "38" ; if @style =="fn(z^(2+power))" z = (y*x) + c + fn1((z-p1)*p2^2)+ c*z*z^(@power) + c^z elseif @style == "fn(x-y)" z = (x*y) + c + fn1(z-p1)*p2+ c*z^(z+ @power) + fn2(x - y) + c^z elseif @style == "fn(y-x)" z = (x*y) + c + fn1(z-p1)*p2+ c*z^(z+ @power) + fn2(y - x) + c^z elseif @style == "fn(x^2+y^2)" z = (x*y) + c + fn1(z-p1)*p2+ c*z^(z+ @power) + fn2(x^2+y^2) + c^z elseif @style == "fn(y^2-x^2)" z = (x*y) + c + fn1(z-p1)*p2+ c*z^(z+ @power) + fn2(y^2 - x^2) +c^z elseif @style == "fn(x^2-y^2)" z = (x*y) + c + fn1(z-p1)*p2+ c*z^(z+ @power) + fn2(x^2 - y^2) + c^z elseif @style == "fn(x+y)" z = (x*y) + c + fn1(z-p1)*p2+ c*z^(z+ @power) + fn2( x + y) + c^z elseif @style == "fn(x)" z = (x*y) + c + fn1(z-p1)*p2+ c*z^(z+ @power) + fn3(x) + c^z elseif @style == "fn(y)" z = (x*y) + c + fn1(z-p1)*p2+ c*z^(z+ @power) + fn4(y) + c^z endif elseif @flavor == "39" ; if @style =="fn(z^(2+power))" z = fn1(z-p1)*p2^(x+@power) + fn1(z)^2 + z^z + c elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^(x+ @power) + fn2(x - y) + z^z + c elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^(x+ @power) + fn2(y - x) + z^z + c elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^(x+ @power) + fn2(x^2+y^2) + z^z + c elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^(x+ @power) + fn2(y^2 - x^2) + z^z + c elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^(x+ @power) + fn2(x^2 - y^2) + z^z + c elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^(x+@power) + fn2(x + y) + z^z + c elseif @style == "fn(x)" z = fn3(x)*fn1((z-p1)*p2^(x+@power)) + z + z^z + c elseif @style == "fn(y)" z = fn4(y)*fn1(z-p1)*p2^(x+@power) + z + z^z + c endif elseif @flavor == "40" ; if @style =="fn(z^(2+power))" z = fn1(z-p1)*p2^(y+@power) + z^fn1(z) + c elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^(y+ @power) + z^fn1(z) + fn2(x - y) + c elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^(y+ @power) + z^fn1(z) + fn2(y - x) + c elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^(y+ @power) + z^fn1(z) + fn2(x^2+y^2) + c elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^(y+ @power) + z^fn1(z) + fn2(y^2 - x^2) + c elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^(y+ @power) + z^fn1(z) + fn2(x^2 - y^2) + c elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^(y+@power) + z^fn1(z)+ fn2(x + y) + c elseif @style == "fn(x)" z = fn3(x)*fn1((z-p1)*p2^(y+@power)) + z^fn1(z) + fn3(x) + c elseif @style == "fn(y)" z = fn4(y)*fn1(z-p1)*p2^(y+@power) + z^fn1(z) + fn4(y) + c endif elseif @flavor == "41" ; if @style =="fn(z^(2+power))" z = y^(fn1(z-p1)*p2+@power) + fn1(z)^2 + c elseif @style == "fn(y-x)" z = y^fn1(z-p1)*p2^(y+ @power) + fn2(y - x) + c elseif @style == "fn(x-y)" z = y^fn1(z-p1)*p2^(y+ @power) + fn2(x - y) + c elseif @style == "fn(x^2+y^2)" z = y^fn1(z-p1)*p2^(y+ @power) + fn2(x^2+y^2) + c elseif @style == "fn(y^2-x^2)" z = y^fn1(z-p1)*p2^(y+ @power) + fn2(y^2 - x^2) + c elseif @style == "fn(x^2-y^2)" z = y^fn1(z-p1)*p2^(y+ @power) + fn2(x^2 - y^2) + c elseif @style == "fn(x+y)" z = y^fn1(z-p1)*p2^(y+ @power) + fn2(x + y) + c elseif @style == "fn(x)" z = y^fn1(z-p1)*p2^(y+ @power) + fn2(x) + c elseif @style == "fn(y)" z = y^fn1(z-p1)*p2^(y+ @power) + fn2(y) + c endif elseif @flavor == "42" ; if @style =="fn(z^(2+power))" z = x^fn1(z-p1)*p2^(y+ @power) + fn1(z)^2 + c elseif @style == "fn(y-x)" z = x^fn1(z-p1)*p2^(y+ @power) + fn2(y - x) + c elseif @style == "fn(x-y)" z = x^fn1(z-p1)*p2^(y+ @power) + fn2(x - y) + c elseif @style == "fn(x^2+y^2)" z = x^fn1(z-p1)*p2^(y+ @power) + fn2(x^2+y^2) + c elseif @style == "fn(y^2-x^2)" z = x^fn1(z-p1)*p2^(y+ @power) + fn2(y^2 - x^2) + c elseif @style == "fn(x^2-y^2)" z = x^fn1(z-p1)*p2^(y+ @power) + fn2(x^2 - y^2) + c elseif @style == "fn(x+y)" z = x^fn1(z-p1)*p2^(y+ @power) + fn2(x + y) + c elseif @style == "fn(x)" z = x^fn1(z-p1)*p2^(y+ @power) + fn2(x) + c elseif @style == "fn(y)" z = x^fn1(z-p1)*p2^(y+ @power) + fn2(y) + c endif elseif @flavor == "43" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn1(z)^2 + c elseif @style == "fn(y-x)" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn2(y - x) + c elseif @style == "fn(x-y)" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn2(x - y) + c elseif @style == "fn(x^2+y^2)" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn2(x^2+y^2) + c elseif @style == "fn(y^2-x^2)" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn2(y^2 - x^2) + c elseif @style == "fn(x^2-y^2)" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn2(x^2 - y^2) + c elseif @style == "fn(x+y)" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn2(x + y) + c elseif @style == "fn(x)" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn2(x) + c elseif @style == "fn(y)" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn2(y) + c endif elseif @flavor == "44" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(z + @power)- c^2) * fn1(z)^2 * (1 - z)/x + c elseif @style == "fn(y-x)" z = fn1((z-p1)*p2^(z + @power)- c^2) * fn2(y - x) * (1 - z)/x + c elseif @style == "fn(y-x)" z = fn1((z-p1)*p2^(z + @power)- c^2) * fn2(x - y) * (1 - z)/x + c elseif @style == "fn(x^2+y^2)" z = fn1((z-p1)*p2^(z + @power)- c^2) * fn2(x^2+y^2) * (1 - z)/x + c elseif @style == "fn(y^2-x^2)" z = fn1((z-p1)*p2^(z + @power)- c^2) * fn2(y^2 - x^2) * (1 - z)/x + c elseif @style == "fn(x^2-y^2)" z = fn1((z-p1)*p2^(z + @power)- c^2) * fn2(x^2 - y^2) * (1 - z)/x + c elseif @style == "fn(x+y)" z = fn1((z-p1)*p2^(z + @power)- c^2) * fn2(x + y) *(1 - z)/x + c elseif @style == "fn(x)" z = fn1((z-p1)*p2^(z + @power)- c^2) * fn2(x) *(1 - z)/x + c elseif @style == "fn(y)" z = fn1((z-p1)*p2^(z + @power)- c^2) * fn2(y) *(1 - z)/x + c endif elseif @flavor == "45" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(y+ @power)- c) * fn1(z)^2*c + c elseif @style == "fn(y-x)" z = fn1((z-p1)*p2^(y+ @power)- c) * fn2(y - x)*c + c elseif @style == "fn(x-y)" z = fn1((z-p1)*p2^(y+ @power)- c) * fn2(x - y)*c + c elseif @style == "fn(x^2+y^2)" z = fn1((z-p1)*p2^(y+ @power)- c) * fn2(x^2+y^2)*c + c elseif @style == "fn(y^2-x^2)" z = fn1((z-p1)*p2^(y+ @power)- c) * fn2(y^2 - x^2)*c + c elseif @style == "fn(x^2-y^2)" z = fn1((z-p1)*p2^(y+ @power)- c) * fn2(x^2 - y^2)*c + c elseif @style == "fn(x+y)" z = fn1((z-p1)*p2^(y+ @power)- c) * fn2(x + y)*c + c elseif @style == "fn(x)" z = fn1((z-p1)*p2^(y+ @power)- c) * fn2(x)*c + c elseif @style == "fn(y)" z = fn1((z-p1)*p2^(y+ @power)- c) * fn2(y)*c + c endif elseif @flavor == "46" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(y+ @power)- c) * fn1(z)^2 * z + c elseif @style == "fn(y-x)" z = fn1((z-p1)*p2^(y+ @power)- c) * fn2(y - x)* z + c elseif @style == "fn(x-y)" z = fn1((z-p1)*p2^(y+ @power)- c) * fn2(x - y)* z + c elseif @style == "fn(x^2+y^2)" z = fn1((z-p1)*p2^(y+ @power)- c) * fn2(x^2+y^2) * z + c elseif @style == "fn(y^2-x^2)" z = fn1((z-p1)*p2^(y+ @power)- c) * fn2(y^2 - x^2) * z + c elseif @style == "fn(x^2-y^2)" z = fn1((z-p1)*p2^(y+ @power)- c) * fn2(x^2 - y^2) * z + c elseif @style == "fn(x+y)" z = fn1((z-p1)*p2^(y+ @power)- c) * fn2(x + y) * z + c elseif @style == "fn(x)" z = fn1((z-p1)*p2^(y+ @power)- c) * fn2(x) * z + c elseif @style == "fn(y)" z = fn1((z-p1)*p2^(y+ @power)- c) * fn2(y) * z + c endif elseif @flavor == "47" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(x+ @power)- c) * fn1(z)^2*x + c elseif @style == "fn(y-x)" z = fn1((z-p1)*p2^(x+ @power)- c) * fn2(y - x)*x + c elseif @style == "fn(x-y)" z = fn1((z-p1)*p2^(x+ @power)- c) * fn2(x - y)*x + c elseif @style == "fn(x^2+y^2)" z = fn1((z-p1)*p2^(x+ @power)- c) * fn2(x^2+y^2)*x + c elseif @style == "fn(y^2-x^2)" z = fn1((z-p1)*p2^(x+ @power)- c) * fn2(y^2 - x^2)*x + c elseif @style == "fn(x^2-y^2)" z = fn1((z-p1)*p2^(x+ @power)- c) * fn2(x^2 - y^2)*x + c elseif @style == "fn(x+y)" z = fn1((z-p1)*p2^(x+ @power)- c) * fn2(x + y)*x + c elseif @style == "fn(x)" z = fn1((z-p1)*p2^(x+ @power)- c) * fn2(x)*x + c elseif @style == "fn(y)" z = fn1((z-p1)*p2^(x+ @power)- c) * fn2(y)*x + c endif elseif @flavor == "48" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(x+ @power)- c) * fn1(z)^2 + z + c elseif @style == "fn(y-x)" z = fn1((z-p1)*p2^(x+ @power)- c) * fn2(y - x)+ z + c elseif @style == "fn(x-y)" z = fn1((z-p1)*p2^(x+ @power)- c) * fn2(x - y)+ z + c elseif @style == "fn(x^2+y^2)" z = fn1((z-p1)*p2^(x+ @power)- c) * fn2(x^2+y^2) + z + c elseif @style == "fn(y^2-x^2)" z = fn1((z-p1)*p2^(x+ @power)- c) * fn2(y^2 - x^2) + z + c elseif @style == "fn(x^2-y^2)" z = fn1((z-p1)*p2^(x+ @power)- c) * fn2(x^2 - y^2) + z + c elseif @style == "fn(x+y)" z = fn1((z-p1)*p2^(x+ @power)- c) * fn2(x + y) + z + c elseif @style == "fn(x)" z = fn1((z-p1)*p2^(x+ @power)- c) * fn2(x) + z + c elseif @style == "fn(y)" z = fn1((z-p1)*p2^(x+ @power)- c) * fn2(y) + z + c endif elseif @flavor == "49" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn1(z)^2 + x + c elseif @style == "fn(y-x)" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn2(y - x)+ x + c elseif @style == "fn(x-y)" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn2(x - y)+ x + c elseif @style == "fn(x^2+y^2)" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn2(x^2+y^2) + x + c elseif @style == "fn(y^2-x^2)" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn2(y^2 - x^2) + x + c elseif @style == "fn(x^2-y^2)" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn2(x^2 - y^2) + x + c elseif @style == "fn(x+y)" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn2(x + y) + x + c elseif @style == "fn(x)" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn2(x) + x + c elseif @style == "fn(y)" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn2(y) + x + c endif elseif @flavor == "50" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn1(z)^2 + y + c elseif @style == "fn(y-x)" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn2(y - x)+ y + c elseif @style == "fn(y-x)" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn2(y - x)+ y + c elseif @style == "fn(x^2+y^2)" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn2(x^2+y^2) + y + c elseif @style == "fn(y^2-x^2)" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn2(y^2 - x^2) + y + c elseif @style == "fn(x^2-y^2)" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn2(x^2 - y^2) + y + c elseif @style == "fn(x+y)" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn2(x + y) + y + c elseif @style == "fn(x)" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn2(x) + y + c elseif @style == "fn(y)" z = fn1((z-p1)*p2^(y+ @power)+ c) * fn2(y) + y + c endif elseif @flavor == "51" ; if @style =="fn(z^(2+power))" z = fn1(z-p1)*p2^(y+ @power) * fn1(z-2*x) * fn1(z)^2 + y + c elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^(y+ @power)* fn1(z-2*x) * fn2(y - x)+ y + c elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^(y+ @power)* fn1(z-2*x) * fn2(x - y)+ y + c elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^(y+ @power)* fn1(z-2*x) * fn2(x^2+y^2) + y + c elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^(y+ @power)* fn1(z-2*x)* fn2(y^2 - x^2) + y + c elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^(y+ @power)* fn1(z-2*x) * fn2(x^2 - y^2) + y + c elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^(y+ @power)* fn1(z-2*x) * fn2(x + y) + y + c elseif @style == "fn(x)" z = fn1(z-p1)*p2^(y+ @power)* fn1(z-2*x) * fn2(x) + y + c elseif @style == "fn(y)" z = fn1(z-p1)*p2^(y+ @power)* fn1(z-2*x) * fn2(y) + y + c endif elseif @flavor == "52" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(y+ @power)- c) * fn1(z)^2 + x^z + c elseif @style == "fn(y-x)" z = fn1((z-p1)*p2^(y+ @power)- c) * fn2(y - x)+ x^z + c elseif @style == "fn(x-y)" z = fn1((z-p1)*p2^(y+ @power)- c) * fn2(x - y)+ x^z + c elseif @style == "fn(x^2+y^2)" z = fn1((z-p1)*p2^(y+ @power)- c) * fn2(x^2+y^2) + x^z + c elseif @style == "fn(y^2-x^2)" z = fn1((z-p1)*p2^(y+ @power)- c) * fn2(y^2 - x^2) + x^z + c elseif @style == "fn(x^2-y^2)" z = fn1((z-p1)*p2^(y+ @power)- c) * fn2(x^2 - y^2) + x^z + c elseif @style == "fn(x+y)" z = fn1((z-p1)*p2^(y+ @power)- c) * fn2(x + y) + x^z + c elseif @style == "fn(x)" z = fn1((z-p1)*p2^(y+ @power)- c) * fn2(x) + x^z + c elseif @style == "fn(y)" z = fn1((z-p1)*p2^(y+ @power)- c) * fn2(y) + x^z + c endif elseif @flavor == "53" ; if @style =="fn(z^(2+power))" z = fn1((z-p1)*p2^(|y+@power - c|)) * fn1(z)^2 + x + c + z elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^(|y+@power - c|) * fn2(y - x)+ x + c + z elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^(|y+@power - c|) * fn2(x - y)+ x + c + z elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^(|y+@power - c|) * fn2(x^2+y^2) + x + c + z elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^(|y+@power - c|) * fn2(y^2 - x^2) + x + c + z elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^(|y+@power - c|) * fn2(x^2 - y^2) + x + c + z elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^(|y+@power - c|) * fn2(x + y) + x + c + z elseif @style == "fn(x)" z = fn1(z-p1)*p2^(|y+@power - c|) * fn2(x) + x + c + z elseif @style == "fn(y)" z = fn1(z-p1)*p2^(|y+@power - c|) * fn2(y) + x + c + z endif elseif @flavor == "54" ; if @style =="fn(z^(2+power))" z = fn1(z-p1)*p2^(|x+@power - c|) * fn1(z)^2 + x * c + z elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^(|x+@power - c|) * fn2(y - x)+ x * c + z elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^(|x+@power - c|) * fn2(x - y)+ x * c + z elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^(|x+@power - c|) * fn2(x^2+y^2) + x * c + z elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^(|x+@power -c|) * fn2(y^2 - x^2) + x * c + z elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^(|x+@power - c|) * fn2(x + y) + x * c + z elseif @style == "fn(x)" z = fn1(z-p1)*p2^(|x+@power - c|) * fn2(x) + x * c + z elseif @style == "fn(y)" z = fn1(z-p1)*p2^(|x+@power - c|) * fn2(y) + x * c + z endif elseif @flavor == "55" ; if @style =="fn(z^(2+power))" z = fn1(z-p1)*p2^(|(z+@power) - c|) + fn1(z)^2 + c elseif @style == "fn(y-x)" z = fn1(z-p1)*p2^(|z+@power - c|) + fn2(y - x)+ x + c + z elseif @style == "fn(x-y)" z = fn1(z-p1)*p2^(|z+@power - c|) + fn2(x - y)+ x + c + z elseif @style == "fn(x^2+y^2)" z = fn1(z-p1)*p2^(|z+@power - c|) + fn2(x^2+y^2) + x + c + z elseif @style == "fn(y^2-x^2)" z = fn1(z-p1)*p2^(|z+@power - c|) + fn2(y^2 - x^2) + x + c + z elseif @style == "fn(x^2-y^2)" z = fn1(z-p1)*p2^(|z+@power - c|) + fn2(x^2 - y^2) + x + c + z elseif @style == "fn(x+y)" z = fn1(z-p1)*p2^(|(z+@power) - c|) + fn2(x+y) + c elseif @style == "fn(x)" z = fn3(x)*(fn1(z-p1)*p2^(|(z+@power) - c|)) + c elseif @style == "fn(y)" z = fn4(y)*fn1(z-p1)*p2^(|(z+@power) - c|) + c endif endif bailout: (@bailchoice == 0 && |z| <= @bailout) || \ (@bailchoice == 1 && real(sqr(z)) <= @bailout) || \ (@bailchoice == 2 && imag(sqr(z)) <= @bailout) || \ (@bailchoice == 3 && sqr(real(z)) <= @bailout) || \ (@bailchoice == 4 && sqr(imag(z)) <= @bailout) || \ (@bailchoice == 5 && (sqr(real(z)) <= @bailout && sqr(imag(z)) < @bailout)) || \ (@bailchoice == 6 && (sqr(real(z)) <= @bailout || sqr(imag(z)) < @bailout)) || \ (@bailchoice == 7 && (sqr(abs(real(z)) + abs(imag(z))) <= @bailout)) || \ (@bailchoice == 8 && (sqr(real(z) + imag(z)) <= @bailout)) default: title = "MandelbrotJuliaQuest" periodicity = 0 angle = 0.001 heading caption = "Switch Parameters" visible = @show endheading param mode2 caption = "Current Mode" enum = "Mandelbrot""Julia" default = 1 enabled = false endparam param SwitchMode caption = "Switch to" enum = "Mandelbrot""Julia" default = 0 enabled = false visible = false endparam param @show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show hint = "Changes the scale of the image in the switch window" endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show hint = "Changes the centering of the image in the switch window" endparam float param scale caption = "Scale Reset" default = 1 visible = @show hint = "If you changed the 'Scale' parmeter while using the switch \ reset this value to 1 after switching for accurate display of the \ magnification value on the Location tab" endparam complex param center caption = "Center Reset" default = (0,0) visible = @show hint = "If you changed the 'Switch Center' parmeter while using the switch \ reset this value to 0,0 after switching for accurate display of the \ center values on the Location tab" endparam heading caption = "Formula Choices" endheading param flavor caption = "Variation in Flavor" 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" default = 0 endparam heading caption = "Functions" endheading func fn1 caption = "Function 1" default = ident() endfunc param mode caption = "Affecter Mode" default = 0 enum = "Julia/Mandelbrot""Barnsley1""Barnsley2""Barnsley3"\ "ComplexMarks""FrothyBasin""GingerBread""Magnet""Lambda"\ "Hopalong""Lorenz""Newton""Phoenix""Quat""Sierpinski"\ "Spider" endparam param style caption = "Variation in Style" enum = "fn(z^(2+power))""fn(x+y)""fn(x-y)"\ "fn(y-x)""fn(x^2+y^2)""fn(x^2-y^2)""fn(y^2-x^2)""fn(x)""fn(y)" default = 0 endparam func fn2 caption = "X + Y Functions" default = ident() visible = @style == "fn(x+y)" || @style =="fn(y-x)" \ || @style =="fn(x-y)" || @style =="fn(x^2+y^2)" \ || @style =="fn(x^2-y^2)" ||@style == "fn(y^2-x^2)" endfunc func fn3 caption = "X Functions" default = ident() visible = @style == "fn(x)" endfunc func fn4 caption = "Y Functions" default = ident() visible = @style == "fn(y)" endfunc param cchange caption = "Nuance of C" enum = "Orig""Real""Imag""Sign""Squared"\ "Exponent""Inverse""Inv/Exp""C/Exp""Function" default = 0 endparam func fnc caption = "C Function" default = sqr() visible = @cchange == "Function" endfunc float param expC caption = "Power of C" default = 1.0 endparam param ztweaker caption = "Z Tweaker" enum = "z=orig""z=z+a""z=z+b""z=z+c""z=z+x""z=z+y""z=z+g""z=z+h"\ "z=z*a""z=z*b""z=z*c""z=z*x""z=z*y""z=z*g""z=z*h"\ "z=z/c""z=z/a""z=z/b""z=z/x""z=z/y""z=z/g""z=z/h"\ "z=z/c+z""z=z/x+z""z=z/y+z"\ "z=z/c+c""z=z/a+c""z=z/b+c""z=z/x+c""z=z/y+c""z=z/g+c""z=z/h+c"\ "z=z-a""z=z-b""z=z-c""z=z-x""z=z-y""z=z-g""z=z-h"\ "z=a-z""z=b-z""z=c-z""z=x-z""z=y-z""z=g-z""z=h-z"\ "z=z/c-z""z=z/x-z""z=z/y-z""z=z/a-z""z=z/b-z""z=z/g-z""z=z/h-z"\ "z=z/c-c""z=z/a-c""z=z/b-c""z=z/x-c""z=z/y-c""z=z/g-c""z=z/h-c"\ "z=z-z/c""z=z-z/x""z=z-z/y""z=z-z/a""z=z-z/b""z=z-z/g""z=z-z/h"\ "z=c-z/c""z=c-z/a""z=c-z/b""z=c-z/x""z=c-z/y""z=c-z/g""z=c-z/h"\ "z=a/z""z=b/z""z=c/z""z=x/z""z=y/z""z=g/z""z=h/z" default = 0 endparam bool param inv caption = "Invert Z" default = false endparam heading caption = "Parameters" endheading int param bailout caption = "Bailout value" default = 32 min = 1 endparam param bailchoice caption = "Bailout Choice" default = 0 enum = "|z|" "Real(Z^2)""Imag(Z^2)""Real(Z)^2""Imag(Z)^2"\ "Real & Imag""Real or Imag""Sqr(Abs(Real&Imag)" "Sqr(Real&Imag)" endparam float param power caption = "Power" default = 0 endparam param startseed caption= "Startseed" default = (-0.780002327,0.1333197198) endparam param p1 caption = "Subtractor" default = (0,0) endparam param p2 caption = "Mulitplier" default = (1,0) endparam switch: type = "MandelbrotJuliaQuest" startseed = #pixel bailout = @bailout fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 fn4 = @fn4 flavor = @flavor style = @style power = @power p1 = @p1 p2 = @p2 cchange = @cchange btype = @btype bailchoice = @bailchoice ztweaker = @ztweaker a = @a b = @b x = @x y = @y g = @g h = @h mode = @mode fnc = @fnc expC = @expC mode2=@switchmode switchmode=@mode2 center=@swcenter scale=@swscale } FractalDabbler{ ; By Dolf De Rovira 5-21-2004 ; Version 1.2 Added more ztweakers ; Version 1.1 5-24-2004 ; Added extra ztweakers and flavors, and fixed switch params. ; In this version the name was changed from JM Dabbler to ; Fractal Dabbler. ; First Version = Version 1.0 ; This formula represents a fractal canvas. Tweak, twist, and ; add affecters on top of parameters. Change z,c, functions, ; etc. The check boxes represent dabbles of paints, while the ; other choices represent the background layers as in painting. ; Each addition adds to the previous, uncheck the box and see a ; new image emerge. ; Bailout protocol developed from Sean M. Pratz's Bailout Galore. ; Developed with assistance from Toby Marshall and Bob Margolis. init: complex z = @startseed complex c = #pixel if @mode2 == "Mandelbrot" z = @startseed c = #pixel endif if @mode2 == "Julia" z = #pixel c = @startseed if @scale != 1.0 z = z/@scale endif if @center != (0.0,0.0) z = z + @center endif endif loop: float x = Real(z) float y = Imag(z) float g = real(@startseed) if @style == "fn(z^(2+power))" z = fn1((z-p1)*p2)^fn2(2+ @p3) + fn3(c) elseif @style == "fn(x-y)" z = fn1((z-p1)*p2)^fn2(2+ @p3) + fn1(x-y) + fn3(c) elseif @style == "(fn(y-x))" z = fn1((z-p1)*p2)^fn2(2+ @p3+ fn1(y-x)) + fn3(c) elseif @style =="(fn(x^2-y^2))" z = fn1((z-p1)*p2)^fn2(2+ @p3+ fn1(y^2-x^2)) + fn3(c) elseif @style =="fn(x^2-y^2)" z = fn1((z-p1)*p2)^fn2(2+ @p3)+ fn1(y^2-x^2) + fn3(c) elseif @style =="fn(x^e)" z = fn1(x)^fn2(e) + fn3(c) elseif @style =="fn(y^e)" z = fn1(y)^fn2(e) + fn3(c) elseif @style =="fn(x^pi)" z = fn1(x)^fn2(#pi)+fn3(c) elseif @style =="fn(y^pi)" z = fn1(y)^fn2(#pi) +fn3(c) elseif @style =="fn(z-x)^fn(z-y)" z = fn1(z-x)^fn2(z-y)+fn3(c) elseif @style =="fn(z+x)^fn(z+y)" z = fn1(z+x)^fn2(z+y)+fn3(c) endif if @ztweaker == "z=orig" z = fn1(z) elseif @ztweaker == "z=z+c" z = fn1(z) + fn2(c) elseif @ztweaker == "z=z+x" z = fn1(z) + fn2(x) elseif @ztweaker == "z=z+y" z = fn1(z) + fn2(y) elseif @ztweaker == "z=z+g" z = fn1(z) + fn2(g) elseif @ztweaker == "z=z*c" z = fn1(z) * fn2(c) elseif @ztweaker == "z=z*x" z = fn1(z) * fn2(x) elseif @ztweaker == "z=z*y" z = fn1(z) * fn2(y) elseif @ztweaker == "z=z*g" z = fn1(z) * fn2(g) elseif @ztweaker == "z=z/c" z = fn1(z) / fn2(c) elseif @ztweaker == "z=z/x" z = fn1(z) / fn2(x) elseif @ztweaker == "z=z/g" z = fn1(z) / fn2(g) elseif @ztweaker == "z=z/c+z" z = fn1(z) / fn2(c) + fn3(z) elseif @ztweaker == "z=z/x+z" z = fn1(z) / fn2(x) + fn3(z) elseif @ztweaker == "z=z/c+c" z = fn1(z) / fn2(c) + fn3(c) elseif @ztweaker == "z=z/x+c" z = fn1(z) / fn2(x) + fn3(c) elseif @ztweaker == "z=z/g+c" z = fn1(z) / fn2(g) + fn3(c) elseif @ztweaker == "z=z-c" z = fn1(z) - fn2(c) elseif @ztweaker == "z=z-x" z = fn1(z) - fn2(x) elseif @ztweaker == "z=z-g" z = fn1(z) - fn2(g) elseif @ztweaker == "z=c-z" z = fn1(c) - fn2(z) elseif @ztweaker == "z=x-z" z = fn1(x) - fn2(z) elseif @ztweaker == "z=g-z" z = fn1(g) - fn2(z) elseif @ztweaker == "z=z/c-z" z = fn1(z) / fn2(c) - fn3(z) elseif @ztweaker == "z=z/x-z" z = fn1(z) / fn2(x) - fn3(z) elseif @ztweaker == "z=z/g-z" z = fn1(z) / fn2(g) - fn3(z) elseif @ztweaker == "z=z/c-c" z = fn1(z) / fn2(c) - fn3(c) elseif @ztweaker == "z=z/x-c" z = fn1(z) / fn2(x) - fn3(c) elseif @ztweaker == "z=z/g-c" z = fn1(z) / fn2(g) - fn3(c) elseif @ztweaker == "z=z-z/c" z = fn1(z) - fn2(z) / fn3(c) elseif @ztweaker == "z=z-z/x" z = fn1(z) - fn2(z) / fn3(x) elseif @ztweaker == "z=z-z/g" z = fn1(z) - fn2(z) / fn3(g) elseif @ztweaker == "z=c-z/c" z = fn1(c) - fn2(z) / fn3(c) elseif @ztweaker == "z=c-z/g" z = fn1(c) - fn2(z) / fn3(g) elseif @ztweaker == "z=c-z/x" z = fn1(c) - fn2(z) / fn3(x) elseif @ztweaker == "z=c/z" z = fn1(c) / fn2(z) elseif @ztweaker == "z=x/z" z = fn1(x) / fn2(z) elseif @ztweaker == "z*z+c" z = fn1(z) * fn2(z) + fn3(c) elseif @ztweaker == "z*c+z" z = fn1(z) * fn2(c) + fn3(z) elseif @ztweaker == "z=g/z" z = fn1(g) / fn2(z) elseif @ztweaker == "ezz" z = e^fn1(z)* fn2(z) elseif @ztweaker == "ez/z" z = e^fn1(z)/ fn2(z) elseif @ztweaker == "ex/z" z = e^fn1(x)/ fn2(z) elseif @ztweaker == "exz" z = e^fn1(x)* fn2(z) elseif @ztweaker == "ey/z" z = e^fn1(y)/ fn2(z) elseif @ztweaker == "eyz" z = e^fn1(y)* fn2(z) elseif @ztweaker == "z/1-z" z = fn1(z)/(1- fn2(z)) elseif @ztweaker == "z/1-x" z = fn1(z)/(1-fn2(x)) elseif @ztweaker == "z/1-y" z = fn1(z)/(1-fn2(y)) elseif @ztweaker == "zpi" z = fn1(z) ^ #pi elseif @ztweaker == "zpi/z" z = fn1(z) ^ #pi / fn2(z)^2 elseif @ztweaker == "z^pi/z^z" z = fn1(z) ^ #pi / fn2(z^z) elseif @ztweaker == "z/pixel" z = fn2(fn1(z) / #pixel) elseif @ztweaker == "zpixel" z = fn2(fn1(z) * #pixel) elseif @ztweaker == "z^pixel/z+pixel" z = fn1(z) ^ #pixel /fn2(z) + pixel elseif @ztweaker == "ez/zpixel" z = e^fn1(z) /(fn2(z)+ #pixel) elseif @ztweaker == "ez/pixel" z = fn2(e^fn1(z) /#pixel) elseif @ztweaker == "piz/pixel" z = fn2(fn1(z)^#pi / #pixel) elseif @ztweaker == "piz/zpixel" z = fn1(z)^#pi /(fn2(z) + #pixel) elseif @ztweaker == "z+zpixel" z = fn2(fn1(z) + #pixel) elseif @ztweaker == "z-zpixel" z = fn2(fn1(z) - #pixel) elseif @ztweaker == "z/zpixel" z = fn1(z) /(fn2(z) + #pixel) elseif @ztweaker == "z/pixelz" z = fn1(z) /#pixel^fn2(z) elseif @ztweaker == "ez/pixel" z = fn2(e^fn1(z)/#pixel) elseif @ztweaker == "c/ez" z = fn1(c / (#e * fn2(z))) elseif @ztweaker == "z+c/g" z = fn1(fn2(z) + c / g ) elseif @ztweaker == "x+z/y+c" z = (fn1(x) + z) / (fn2(y) + c) elseif @ztweaker == "g^z-c" z = fn2(g ^ (fn1(z) )) - c elseif @ztweaker == "z-x+y/x-y" z = fn1(z) - p2 + fn2((x+y)/(x-y)) elseif @ztweaker == "g/c-z" z = fn1(( g )/ (c - fn2(z))) elseif @ztweaker == "y+c/g" z = fn1(fn2(y) + c / g ) elseif @ztweaker == "x+y/y+c" z = (fn1(x) + y) / (fn2(y) + c) elseif @ztweaker == "g^y-c" z = fn2(g ^ (fn1(y) )) - c elseif @ztweaker == "y-x+y/x-y" z = fn1(y) - p2 + fn2((x+y)/(x-y)) elseif @ztweaker == "g/c-y" z = fn1(( g )/ (c - fn2(y))) elseif @ztweaker == "c/ex" z = fn1(c / (#e * fn2(x))) elseif @ztweaker == "x+c/g" z = fn1(fn2(x) + c / g ) elseif @ztweaker == "g^x-c" z = fn2(g ^(fn1(x))) - c endif if @inv == true z = 1/z else z = z endif if @zpix == true z = ((pixel-p1)*p2)^(2+ @p3) else z = z endif if @xplus == true z = ((z-p1)*p2)^(2+ @p3) + x else z = z endif if @yplus == true z = ((z-p1)*p2)^(2+ @p3) + y else z = z endif if @zpower == true z = ((z-p1)*p2)^(2+ @p3) ^ z else z = z endif if @xpower == true z = ((z-p1)*p2)^(2+ @p3)^x else z = z endif if @ypower == true z = ((z-p1)*p2)^(2+ @p3)^y else z = z endif if @gpower == true ; hpower showed no effect z = ((z-p1)*p2)^(2+ @p3)^g else z = z endif if @gplus == true ; hplus showed no effect z = ((z-p1)*p2)^(2+ @p3) + g else z = z endif if @func1 == true z = fn1((z-p1)*p2) else z = z endif if @func2 == true z = fn2(fn1((z-p1)*p2)) else z = z endif if @func3 == true z = fn3(fn2(fn1((z-p1)*p2))) else z = z endif if @funcpowerz == true z = ((z-p1)*p2)^fn1(z) else z = z endif if @funcpowerx == true z = ((z-p1)*p2)^fn1(x) else z = z endif if @funcpowery == true z = ((z-p1)*p2)^fn1(y) else z = z endif if @funcpowerg == true ; funcpowerh no effect z = ((z-p1)*p2)^fn1(g) else z = z endif if @ez == true z = e^z else z = z endif if @zpi == true z = z^#pi else z = z endif if @ztopidivzpi == true z = z^#pi/(z*#pi) else z = z endif if @zpidivztopi == true z = z*#pi/(z^#pi) else z = z endif if @flavor == "z" z = fn1((z-p1)*p2) elseif @flavor == "z^2 + c" z = fn1((z-p1)*p2)^fn3(2+ @p3) + fn3(c) elseif @flavor == "z^(z/c)" z = fn1((z-p1)*p2)^fn2((z-p1)*p2) + fn3(@p3/c) elseif @flavor == "z/(z-1)" z = fn1((z-p1)*p2)/fn2(((z-p1)*p2) -1) + fn3(@p3*c) elseif @flavor == "z^2/(z-1)" z = fn1((z-p1)*p2)^(2+ @p3)/fn2(((z-p1)*p2) -1) + fn3(@p3*c) elseif @flavor == "z^3/(z^2-1)" z = fn1((z-p1)*p2)^(3+ @p3)/fn2(((z-p1)*p2)^(2+ @p3) -1)\ +fn3(@p3*c) elseif @flavor == "z^3*c/(z^2-c)" z = fn1((z-p1)*p2)^(3+ @p3)*c/fn2(((z-p1)*p2)^(2+@p3) - c)\ - fn3(@p3*c) elseif @flavor == "z^3+z^2+z+c" z = fn1((z-p1)*p2)^(3+ @p3)+((z-p1)*p2)^(2+ @p3)+fn2((z-p1)*p2)\ ^(2+ @p3)+ fn3(@p3*c) elseif @flavor == "fnzfnzfnz" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)*fn3((z-p1)*p2) + @p3*c elseif @flavor == "fnzpfnzpfnzp" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)*fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "fnzfnz/fnz" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)/fn3((z-p1)*p2) + @p3*c elseif @flavor == "fnzpfnzp/fnzp" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)/fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "zzz" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)*fn3((z-p1)*p2) + @p3*c elseif @flavor == "z^pz^pz^p" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)*fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "zz/z" z = fn1((z-p1)*p2)*fn2((z-p1)*p2)/fn3(z-p1)+ @p3*c elseif @flavor == "z^pz^p/z^p" z = fn1((z-p1)*p2)^(2+ @p3)*fn2((z-p1)*p2)^(2+ @p3)/fn3((z-p1)\ ^(2+ @p3)*p2) + @p3*c elseif @flavor == "z^3-z^2+c" z = fn1((z-p1)*p2)^(3+ @p3)-fn2((z-p1)*p2)^(2+ @p3)+ fn3(@p3*c) endif if @cchange == "Orig" c = c^@expC elseif @cchange == "Real" c = real(c)^@expC elseif @cchange == "Imag" c = imag(c)^@expC elseif @cchange == "Sign" c = -c^@expC elseif @cchange == "Squared" c = c^2+@expC elseif @cchange == "Exponent" c = e^c^@expC elseif @cchange == "Inverse" c = 1 / c^@expC elseif @cchange == "Inv/Exp" c = 1 / e^c^@expC elseif @cchange == "C/Exp" c = c^@expC / e^c^@expC elseif @cchange == "SQRPixel" c = sqr(pixel)/3 elseif @cchange == "CPower" c = c^c elseif @cchange == "EPower" c = c^(e+c) elseif @cchange == "ZPower" c = c^z elseif @cchange == "CPower3" c = c^c^c elseif @cchange == "CFunction" c = c^((z-@p1)*@p2)^@fnc(2 + @p3) elseif @cchange == "Function" c = @fnc(c^@expC) endif ;========================================================== bailout: (@bailchoice == 0 && |z| <= @bailout) || \ (@bailchoice == 1 && real(sqr(z)) <= @bailout) || \ (@bailchoice == 2 && imag(sqr(z)) <= @bailout) || \ (@bailchoice == 3 && sqr(real(z)) <= @bailout) || \ (@bailchoice == 4 && sqr(imag(z)) <= @bailout) || \ (@bailchoice == 5 && (sqr(real(z)) <= @bailout && sqr(imag(z)) < @bailout)) || \ (@bailchoice == 6 && (sqr(real(z)) <= @bailout || sqr(imag(z)) < @bailout)) || \ (@bailchoice == 7 && (sqr(abs(real(z)) + abs(imag(z))) <= @bailout)) || \ (@bailchoice == 8 && (sqr(real(z) + imag(z)) <= @bailout)) default: title = "FractalDabbler" angle = 0.01 periodicity = 0 heading caption = "Switch Parameters" visible = @show endheading param mode2 caption = "Current Mode" enum = "Mandelbrot""Julia" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "Mandelbrot""Julia" default = 1 enabled = false visible = false endparam param @show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show hint = "Changes the scale of the image in the switch window" endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show hint = "Changes the centering of the image in the switch window" endparam float param scale caption = "Scale Reset" default = 1 visible = @show hint = "If you changed the 'Scale' parmeter while using the switch \ reset this value to 1 after switching for accurate display of the \ magnification value on the Location tab" endparam complex param center caption = "Center Reset" default = (0,0) visible = @show hint = "If you changed the 'Switch Center' parmeter while using the switch \ reset this value to 0,0 after switching for accurate display of the \ center values on the Location tab" endparam heading caption = "Parameters" endheading param bailout caption = "Bailout value" default = 4.0 min = 1.0 endparam param bailchoice caption = "Bailout Choice" default = 0 enum = "|z|" "Real(Z^2)""Imag(Z^2)""Real(Z)^2""Imag(Z)^2"\ "Real & Imag""Real or Imag""Sqr(Abs(Real&Imag)" "Sqr(Real&Imag)" endparam param startseed caption= "Start/Seed" default = (-1,0) hint = "This param acts as the Z start value in the Mandelbrot mode \ and the seed value in the Julia mode" endparam param p1 caption = "Subtracter" default = (0,0) endparam param p2 caption = "Mulitplier" default = (1,0) endparam param p3 caption = "Power" default = (0,0) endparam heading caption = "Affecters of Z" endheading bool param inv caption = "Invert Z" default = false endparam bool param zpix caption = "Z=Pixel" default = false endparam bool param xplus caption = "Add X" default = false endparam bool param yplus caption = "Add Y" default = false endparam bool param Zpower caption = "Z^Z" default = false endparam bool param Xpower caption = "Z^X" default = false endparam bool param Ypower caption = "Z^Y" default = false endparam bool param Gpower caption = "Z^G" default = false endparam bool param Gplus caption = "Z+G" default = false endparam bool param func1 caption = "Fn(Z)" default = false endparam bool param func2 caption = "Fn2(Fn1(Z))" default = false endparam bool param func3 caption = "Fn3(Fn2(Fn1(Z)))" default = false endparam bool param funcpowerz caption = "Function Power" default = false endparam bool param funcpowerx caption = "Function Power of X" default = false endparam bool param funcpowery caption = "Function Power of Y" default = false endparam bool param funcpowerg caption = "Function Power of G" default = false endparam bool param ez caption = "Euler times Z" default = false endparam bool param zpi caption = "Pi times Z" default = false endparam bool param ztopidivzpi caption = "Z^Pi/Z*Pi" default = false endparam bool param zpidivztopi caption = "Z*Pi/Z^Pi" default = false endparam param cchange caption = "Nuance of C" enum = "Orig""Real""Imag""Sign""Squared"\ "Exponent""Inverse""Inv/Exp""C/Exp"\ "SQRPixel""CPower""EPower""ZPower"\ "CPower3""CFunction""Function" default = 0 endparam func fnc caption = "C Function" default = sqr() visible = @cchange == "Function" ||\ @cchange == "CFunction" endfunc float param expC caption = "Power of C" default = 1.0 endparam param ztweaker caption = "Z Tweaker" enum = "z=orig""z=z+c""z=z+x""z=z+y""z=z+g"\ "z=z*c""z=z*x""z=z*y""z=z*g""z=z/c""z=z/x""z=z/g"\ "z=z/c+z""z=z/x+z""z=z/c+c""z=z/x+c"\ "z=z/g+c""z=z-c""z=z-x""z=z-g""z=c-z""z=x-z"\ "z=g-z""z=z/c-z""z=z/x-z""z=z/g-z""z=z/c-c""z=z/x-c"\ "z=z/g-c""z=z-z/c""z=z-z/x""z=z-z/g""z=c-z/c"\ "z=c-z/x""z=c-z/g""z=c/z""z=x/z""z=g/z""z*z+c""z*c+z"\ "ezz""ez/z""exz""ex/z""eyz""ey/z""z/1-z""z/1-x""z/1-y"\ "zpi""zpi/z""z^pi/z^z""zpixel""z/pixelz"\ "z/zpixel""z^pixel/z+pixel""ez/zpixel""z/pixel""piz/pixel"\ "piz/zpixel""z-zpixel""ez/pixel""z+zpixel"\ "c/ez""z+c/g""x+z/y+c""g^z-c""z-x+y/x-y""g/c-z"\ "y+c/g""x+y/y+c""g^y-c""y-x+y/x-y""g/c-y"\ "g/c-x""g^x-c""x+c/g""c/ex" default = 0 endparam param flavor caption = "Formula Flavor" enum = "z""z^2 + c""z^(z/c)""z/(z-1)""z^2/(z-1)""z^3/(z^2-1)"\ "z^3*c/(z^2-c)""z^3+z^2+z+c""fnzfnzfnz""fnzpfnzpfnzp"\ "fnzfnz/fnz""fnzpfnzp/fnzp""zzz""z^pz^pz^p"\ "zz/z""z^pz^p/z^p""z^3-z^2+c" default = 1 endparam param style caption = "Variation in Style" enum = "fn(z^(2+power))""fn(x-y)""fn(y-x)"\ "fn(x^2-y^2)""(fn(y-x))" "(fn(x^2-y^2))"\ "fn(x^e)""fn(y^e)""fn(x^pi)""fn(y^pi)"\ "fn(z-x)^fn(z-y)""fn(z+x)^fn(z+y)" default = 0 endparam func fn1 caption = "Function(1) of Z" default = ident() endfunc func fn2 caption = "Functions(2) of z" default = ident() endfunc func fn3 caption = "Functions(3) of z" default = ident() endfunc switch: type = "FractalDabbler" bailout = @bailout inv = @inv fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 xpower = @xpower ypower = @ypower zpower = @zpower gpower = @gpower x = @x y = @y g = @g gplus = @gplus xplus = @xplus yplus = @yplus func1 = @func1 func2 = @func2 func3 = @func3 p1 = @p1 p2 = @p2 p3 = @p3 funcpowerx = @funcpowerx funcpowery = @funcpowery funcpowerz = @funcpowerz funcpowerg = @funcpowerg startseed = #pixel fnc = @fnc expC = @expC mode2=@switchmode switchmode=@mode2 center=@swcenter scale=@swscale style = @style ztweaker = @ztweaker bailchoice = @bailchoice cchange = @cchange flavor = @flavor zpix = @zpix inv = @inv ez = @ez zpi = @zpi ztopidivzpi = ztopidivzpi zpidivztopi = @zpidivztopi } TropicalFish { ; Version 1.0 6-14-2004 By Dolf De Rovira ; Developed from the example formula Mandelbrot Modified found in Ultra ; Fractal 3.04 and examples of global randomizers. global: float values[#maxiter] int i = 0 int seed = 12345678 while i < 100 seed = random(seed) values[i] = seed / #randomrange i = i + 1 endwhile init: z = @startseed int iter = 0 ; "i" is already taken c = #pixel if @mode2 == "Mandelbrot" z = @startseed int iter = 0 ; "i" is already taken c = #pixel endif if @mode2 == "Julia" z = #pixel int iter = 0 ; "i" is already taken c = @startseed if @scale != 1.0 z = z/@scale endif if @center != (0.0,0.0) z = z + @center endif endif loop: if @choices == "1" z = fn1(z) + c + fn2(values[iter]) + c elseif @choices == "2" z = fn1(z) + c - fn2(values[iter])+ c elseif @choices == "3" z = fn1(z) * z * c + fn2(values[iter])+ c elseif @choices == "4" z = fn1(z) * z * c ^ fn2(values[iter])+ 1 + c elseif @choices == "5" z = fn1(z) * c ^ fn2(values[iter]) + 1 + c elseif @choices == "6" z = fn1(z) * c -fn2(values[iter])+ c elseif @choices == "7" z = fn1(z) ^ c +fn2(values[iter])+ c elseif @choices == "8" z = fn1(z) ^ c - fn2(values[iter])+ c elseif @choices == "9" z = fn1(z) / c + fn2(values[iter])+ 1+ c elseif @choices == "10" z = fn1(z) / c - fn2(values[iter])+ c elseif @choices == "11" z = fn1(z) * z^z* c + fn2(values[iter])+c elseif @choices == "12" z = fn1(z) * z*z* c -fn2(values[iter])+c elseif @choices == "13" z = fn1(z) *z*e* c + fn2(values[iter])+ c elseif @choices == "14" z = fn1(z) *z^e* c - fn2(values[iter]) + c elseif @choices == "15" z = fn1(z) * z + #pi* c + fn2(values[iter])+ c elseif @choices == "16" z = fn1(z) *z/#pi* c - fn2(values[iter])+ c endif if @rnd == true if @rndfunc == "1" if real(#random)<0.5 z = z + fn4(real(#random)+ #pixel*@p5) else z = z + @fn5(p3*(real(#random)+ #pixel*@p5)) endif elseif @rndfunc == "2" if real(#random)<0.5 z = z + fn4(real(#random)*#pixel*@p5) else z = @fn5(p3*(z - real(#random)- #pixel*@p5)) endif elseif @rndfunc == "3" if real(#random)<0.5 z = z ^ fn4(real(#random)+ #pixel*@p5) else z = @fn5(p3*(z - real(#random)/ #pixel*@p5)) endif elseif @rndfunc == "4" if real(#random)<0.5 z = z + fn4(real(#random)-(#pixel)^2*@p5) else z = @fn5(p3*(z - real(#random)* #pixel*@p5)) endif elseif @rndfunc == "5" if real(#random)<0.5 z = z / fn4(real(#random)^#pixel*@p5) else z = @fn5(p3*(z - real(#random)+ #pixel*@p5)) endif elseif @rndfunc == "6" if real(#random)<0.5 z = z + fn4(real(#random)/#pixel*@p5) else z = @fn5(p3*(z - real(#random)+ #pixel*@p5)) endif elseif @rndfunc == "7" if real(#random)<0.5 z = z + fn4(real(#random)- #pixel*@p5) else z = @fn5(p3*(z - real(#random)+ #pixel*@p5)) endif endif endif iter = p2*(iter + p1) if @inv == true z = 1/z else z = z endif if @func1 == true z = @fn7((z-@p6)*@p7) + c else z = z endif if @func2 == true z = @fn7(@fn8((z-@p6)*@p7))+ c else z = z endif if @func3 == true z = @fn7(@fn8(@fn9((z-@p6)*@p7)))+ c else z = z endif if @func3z == true z = z^2 + @fn7(@fn8(@fn9((z-@p6)*@p7)))+ c else z = z endif if @ez == true z = e^z else z = z endif if @zpi == true z = z^#pi else z = z endif if @ztopidivzpi == true z = z^#pi/(z*#pi) else z = z endif if @zpidivztopi == true z = z*#pi/(z^#pi) else z = z endif ;======================================================== bailout: |z| <= 4 default: title = "TropicalFish" periodicity = 0 center = (-1.0,0.0) param bailout caption = "Bailout value" default = 4.0 min = 1.0 endparam heading caption = "Switch Parameters" visible = @show endheading param mode2 caption = "Current Mode" enum = "Mandelbrot""Julia" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "Mandelbrot""Julia" default = 1 enabled = false visible = false endparam param @show caption = "Switch Parameters" default = false visible = false endparam float param swscale caption = "Scale" default = 1 visible = @show hint = "Changes the scale of the image in the switch window" endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show hint = "Changes the centering of the image in the switch window" endparam float param scale caption = "Scale Reset" default = 1 visible = @show hint = "If you changed the 'Scale' parmeter while using the switch \ reset this value to 1 after switching for accurate display of the \ magnification value on the Location tab" endparam complex param center caption = "Center Reset" default = (0,0) visible = @show hint = "If you changed the 'Switch Center' parmeter while using the switch \ reset this value to 0,0 after switching for accurate display of the \ center values on the Location tab" endparam param startseed caption = "Startseed" default = (0,0) endparam param seed caption = "Variableseed" default = (0,0) visible = false endparam param choices caption = "Choices" enum = "1""2""3""4""5""6""7""8""9""10""11""12""13""14"\ "15""16" default = 4 endparam bool param inv caption = "Invert Z" default = false endparam bool param func1 caption = "Fn(Z)" default = false endparam func @fn7 caption = "Fn1(Z) Functions" default = ident() visible = @func1 == true || @func2 == true\ || @func3 == true || @func3z ==true endfunc bool param func2 caption = "Fn2(Fn1(Z))" default = false endparam func @fn8 caption = "Fn2/1 Functions" default = ident() visible = @func2 == true\ || @func3 == true || @func3z ==true endfunc bool param func3 caption = "Fn3(Fn2(Fn1(Z)))" default = false endparam func @fn9 caption = "Fn3/2/1 Functions" default = ident() visible = @func3 == true || @func3z ==true endfunc bool param func3z;Added caption = "Z + Fn3(Fn2(Fn1(Z)))" default = false endparam bool param ez caption = "Euler times Z" default = false endparam bool param zpi caption = "Pi times Z" default = false endparam bool param ztopidivzpi caption = "Z^Pi/Z*Pi" default = false endparam bool param zpidivztopi caption = "Z*Pi/Z^Pi" default = false endparam param p1 caption = "Iteration Addition" default = 1 endparam param p2 caption = "Iteration Multiplier" default = 1 endparam param p3 caption = "Random Divergence" default = 1.00 visible = @rnd == true endparam param @p5 caption = "Randomizer Power" default = 0.01 visible = @rnd == true endparam param @p6 caption = "Adder" default = 0.00 visible = @func1 == true || @func2 == true\ || @func3 == true || @func3z ==true endparam param @p7 caption = "Multiplier" default = 1.00 visible = @func1 == true || @func2 == true\ || @func3 == true || @func3z ==true endparam bool param rnd caption = "Randomizer" default = false endparam func fn1 caption = "Z-Function 1" default = sqr() endfunc func fn2 caption = "Iter-Function 2" default = ident() endfunc func fn4 caption = "Random Function 1" default = ident() visible = @rnd == true endfunc func fn5 caption = "Random Function 2" default = ident() visible = @rnd == true endfunc param rndfunc caption = "Randomization Type" enum = "1""2""3""4""5""6""7" default = 0 visible = @rnd == true endparam heading caption = "If blanks show make \ version=1.0" visible = false endheading param version caption = "Version" default = 1.0 visible = false endparam switch: type = "TropicalFish" bailout = @bailout inv = @inv fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 fn4 = @fn4 fn5 = @fn5 fn6 = @fn6 fn7 = @fn7 fn8 = @fn8 fn9 = @fn9 func1 = @func1 func2 = @func2 func3 = @func3 func3z = @func3z p1 = @p1 p2 = @p2 p3 = @p3 p4 = @p4 p5 = @p5 p6 = @p6 p7 = @p7 fnc = @fnc expC = @expC mode=@switchmode switchmode=@mode center=@swcenter scale=@swscale ztweaker = @ztweaker bailchoice = @bailchoice cchange = @cchange inv = @inv ez = @ez zpi = @zpi ztopidivzpi = @ztopidivzpi zpidivztopi = @zpidivztopi startseed = #pixel version = @version mode2 = @mode2 choices = @choices rnd = @rnd rndfunc = @rndfunc } FunctionALL { ; ; Formula with many function combinations. ; Dabblers added to enhance formula. ; init: complex z = c = #pixel x = real(#pixel) y = imag(#pixel) if @mode2 == "PseudoMan" complex z = c = #pixel endif if @mode2 == "PseudoJul" z = pixel c = @startseed if @scale != 1.0 z = z/@scale endif if @center != (0.0,0.0) z = z + @center endif endif loop: z = @fn6(@fn5(fn2(z-p1)^fn3(@power+p3)) + fn4(c)) c = fn1(#pixel)*p2 if @cchange == "Orig" c = c^@expC elseif @cchange == "Real" c = real(c)^@expC elseif @cchange == "Imag" c = imag(c)^@expC elseif @cchange == "Sign" c = -c^@expC elseif @cchange == "Squared" c = c^2+@expC elseif @cchange == "Exponent" c = e^c^@expC elseif @cchange == "Inverse" c = 1 / c^@expC elseif @cchange == "Inv/Exp" c = 1 / e^c^@expC elseif @cchange == "C/Exp" c = c^@expC / e^c^@expC elseif @cchange == "SQRPixel" c = sqr(pixel)/3 elseif @cchange == "CPower" c = c^c elseif @cchange == "EPower" c = c^(e+c) elseif @cchange == "ZPower" c = c^z elseif @cchange == "CPower3" c = c^c^c elseif @cchange == "CFunction" c = c^((z-@p4)*@p5)^@fnc(2 + @p6) elseif @cchange == "Function" c = @fnc(c^@expC) endif if @inv == true z = 1/z else z = z endif if @xplus == true z = ((z-p1)*p2)^(2+ @p3) + x else z = z endif if @yplus == true z = ((z-p1)*p2)^(2+ @p3) + y else z = z endif if @zpower == true z = ((z-p1)*p2)^(2+ @p3) ^ z else z = z endif if @xpower == true z = ((z-p1)*p2)^(2+ @p3)^x else z = z endif if @ypower == true z = ((z-p1)*p2)^(2+ @p3)^y else z = z endif if @func1 == true z = @fn7((z-p1)*p2) else z = z endif if @func2 == true z = @fn8(@fn7((z-p1)*p2)) else z = z endif if @func3 == true z = @fn9(@fn8(@fn7((z-p1)*p2))) else z = z endif if @funcpowerz == true z = ((z-p1)*p2)^@fn7(z) else z = z endif if @funcpowerx == true z = ((z-p1)*p2)^@fn7(x) else z = z endif if @funcpowery == true z = ((z-p1)*p2)^@fn7(y) else z = z endif if @ez == true z = e^z else z = z endif if @zpi == true z = z^#pi else z = z endif if @ztopidivzpi == true z = z^#pi/(z*#pi) else z = z endif if @zpidivztopi == true z = z*#pi/(z^#pi) else z = z endif if @ztweaker == "z=orig" z = fn1(z) elseif @ztweaker == "z=z+c" z = fn1(z) + fn2(c) elseif @ztweaker == "z=z+x" z = fn1(z) + fn2(x) elseif @ztweaker == "z=z+y" z = fn1(z) + fn2(y) elseif @ztweaker == "z=z*c" z = fn1(z) * fn2(c) elseif @ztweaker == "z=z*x" z = fn1(z) * fn2(x) elseif @ztweaker == "z=z*y" z = fn1(z) * fn2(y) elseif @ztweaker == "z=z/c" z = fn1(z) / fn2(c) elseif @ztweaker == "z=z/x" z = fn1(z) / fn2(x) elseif @ztweaker == "z=z/c+z" z = fn1(z) / fn2(c) + fn3(z) elseif @ztweaker == "z=z/x+z" z = fn1(z) / fn2(x) + fn3(z) elseif @ztweaker == "z=z/c+c" z = fn1(z) / fn2(c) + fn3(c) elseif @ztweaker == "z=z/x+c" z = fn1(z) / fn2(x) + fn3(c) elseif @ztweaker == "z=z-c" z = fn1(z) - fn2(c) elseif @ztweaker == "z=z-x" z = fn1(z) - fn2(x) elseif @ztweaker == "z=c-z" z = fn1(c) - fn2(z) elseif @ztweaker == "z=x-z" z = fn1(x) - fn2(z) elseif @ztweaker == "z=z/c-z" z = fn1(z) / fn2(c) - fn3(z) elseif @ztweaker == "z=z/x-z" z = fn1(z) / fn2(x) - fn3(z) elseif @ztweaker == "z=z/c-c" z = fn1(z) / fn2(c) - fn3(c) elseif @ztweaker == "z=z/x-c" z = fn1(z) / fn2(x) - fn3(c) elseif @ztweaker == "z=z-z/c" z = fn1(z) - fn2(z) / fn3(c) elseif @ztweaker == "z=z-z/x" z = fn1(z) - fn2(z) / fn3(x) elseif @ztweaker == "z=c-z/c" z = fn1(c) - fn2(z) / fn3(c) elseif @ztweaker == "z=c-z/x" z = fn1(c) - fn2(z) / fn3(x) elseif @ztweaker == "z=c/z" z = fn1(c) / fn2(z) elseif @ztweaker == "z=x/z" z = fn1(x) / fn2(z) elseif @ztweaker == "z*z+c" z = fn1(z) * fn2(z) + fn3(c) elseif @ztweaker == "z*c+z" z = fn1(z) * fn2(c) + fn3(z) elseif @ztweaker == "ezz" z = e^fn1(z)* fn2(z) elseif @ztweaker == "ez/z" z = e^fn1(z)/ fn2(z) elseif @ztweaker == "ex/z" z = e^fn1(x)/ fn2(z) elseif @ztweaker == "exz" z = e^fn1(x)* fn2(z) elseif @ztweaker == "ey/z" z = e^fn1(y)/ fn2(z) elseif @ztweaker == "eyz" z = e^fn1(y)* fn2(z) elseif @ztweaker == "z/1-z" z = fn1(z)/(1- fn2(z)) elseif @ztweaker == "z/1-x" z = fn1(z)/(1-fn2(x)) elseif @ztweaker == "z/1-y" z = fn1(z)/(1-fn2(y)) elseif @ztweaker == "zpi" z = fn1(z) ^ #pi elseif @ztweaker == "zpi/z" z = fn1(z) ^ #pi / fn2(z)^2 elseif @ztweaker == "z^pi/z^z" z = fn1(z) ^ #pi / fn2(z^z) elseif @ztweaker == "z/pixel" z = fn2(fn1(z) / c) elseif @ztweaker == "zpixel" z = fn2(fn1(z) * c) elseif @ztweaker == "z^pixel/z+pixel" z = fn1(z) ^ #pixel /fn2(z) + c elseif @ztweaker == "ez/zpixel" z = e^fn1(z) /(fn2(z)+ c) elseif @ztweaker == "ez/pixel" z = fn2(e^fn1(z) /c) elseif @ztweaker == "piz/pixel" z = fn2(fn1(z)^#pi /c) elseif @ztweaker == "piz/zpixel" z = fn1(z)^#pi /(fn2(z) + c) elseif @ztweaker == "z+zpixel" z = fn2(fn1(z) + c) elseif @ztweaker == "z-zpixel" z = fn2(fn1(z) - c) elseif @ztweaker == "z/zpixel" z = fn1(z) /(fn2(z) + c) elseif @ztweaker == "z/pixelz" z = fn1(z) /#pixel^fn2(z) elseif @ztweaker == "ez/pixel" z = fn2(e^fn1(z)/c) elseif @ztweaker == "c/ez" z = fn1(c / (#e * fn2(z))) elseif @ztweaker == "z-x+y/x-y" z = fn1(z) - p2 + fn2((x+y)/(x-y)) elseif @ztweaker == "y-x+y/x-y" z = fn1(y) - p2 + fn2((x+y)/(x-y)) elseif @ztweaker == "c/ex" z = fn1(c / (#e * fn2(x))) endif ;================================================== bailout: |z| <= @bailout default: title = "FunctionALL" periodicity = 0 center = (0.16,0.65) Magn = 3 ;=================================================== heading caption = "Switch Parameters" visible = @show endheading param mode2 caption = "Current Mode" enum = "PseudoMan""PseudoJul" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "Mandelbrot""Julia" default = 1 enabled = false visible = false endparam param @show caption = "Switch Parameters" default = false visible = false endparam float param swscale caption = "Scale" default = 1 visible = @show hint = "Changes the scale of the image in the switch window" endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show hint = "Changes the centering of the image in the switch window" endparam float param scale caption = "Scale Reset" default = 1 visible = @show hint = "If you changed the 'Scale' parmeter while using the switch \ reset this value to 1 after switching for accurate display of the \ magnification value on the Location tab" endparam complex param center caption = "Center Reset" default = (0,0) visible = @show hint = "If you changed the 'Switch Center' parmeter while using the switch \ reset this value to 0,0 after switching for accurate display of the \ center values on the Location tab" endparam param power caption = "Power" default = (1.5,0.13) endparam param startseed caption = "Startseed" default = (-1.25,0) endparam param bailout caption = "Bailout value" default = 4.0 min = 1.0 endparam bool param inv caption = "Invert Z" default = false endparam bool param xplus caption = "Add X" default = false endparam bool param yplus caption = "Add Y" default = false endparam bool param Zpower caption = "Z^Z" default = false endparam bool param Xpower caption = "Z^X" default = false endparam bool param Ypower caption = "Z^Y" default = false endparam bool param func1 caption = "Fn(Z)" default = false endparam func fn7 caption = "Function(1) of Z" default = abs() visible = @func1 == true || @func2 == true\ || @func3 == true || @funcpowerx == true\ || @funcpowery == true || @funcpowerz == true endfunc bool param func2 caption = "Fn2(Fn1(Z))" default = false endparam func fn8 caption = "Functions(2) of z" default = ident() visible = @func2 == true || @func3 == true endfunc bool param func3 caption = "Fn3(Fn2(Fn1(Z)))" default = false endparam func fn9 caption = "Functions(3) of z" default = ident() visible = @func3 == true endfunc bool param funcpowerz caption = "Function Power" default = false endparam bool param funcpowerx caption = "Function Power of X" default = false endparam bool param funcpowery caption = "Function Power of Y" default = false endparam bool param ez caption = "Euler times Z" default = false endparam bool param zpi caption = "Pi times Z" default = false endparam bool param ztopidivzpi caption = "Z^Pi/Z*Pi" default = false endparam bool param zpidivztopi caption = "Z*Pi/Z^Pi" default = false endparam param p1 Caption = "Adder" default = (0,0) endparam param p2 Caption = "Multiplier" default = (1,0) endparam param p3 Caption = "Power Z" default = (0,0) endparam param p4 Caption = "Adder2" default = (0,0) endparam param p5 Caption = "Multiplier2" default = (1,0) endparam param p6 Caption = "Adder3" default = (0,0) endparam func fn1 Caption = "Function 1" default = ident() endfunc func fn2 Caption = "Function 2" default = ident() endfunc func fn3 Caption = "Function 3" default = ident() endfunc func fn4 Caption = "Function 4" default = ident() endfunc func fn5 Caption = "Function 5" default = ident() endfunc func fn6 Caption = "Function 6" default = ident() endfunc param ztweaker caption = "Z Tweaker" enum = "z=orig""z=z+c""z=z+x""z=z+y"\ "z=z*c""z=z*x""z=z*y""z=z/c""z=z/x"\ "z=z/c+z""z=z/x+z""z=z/c+c""z=z/x+c"\ "z=z-c""z=z-x""z=c-z""z=x-z"\ "z=z/c-z""z=z/x-z""z=z/c-c""z=z/x-c"\ "z=z-z/c""z=z-z/x""z=c-z/c"\ "z=c-z/x""z=c/z""z=x/z""z*z+c""z*c+z"\ "ezz""ez/z""exz""ex/z""eyz""ey/z""z/1-z""z/1-x""z/1-y"\ "zpi""zpi/z""z^pi/z^z""zpixel""z/pixelz"\ "z/zpixel""z^pixel/z+pixel""ez/zpixel""z/pixel""piz/pixel"\ "piz/zpixel""z-zpixel""ez/pixel""z+zpixel"\ "c/ez""x+z/y+c""z-x+y/x-y""y-x+y/x-y""c/ex" default = 0 endparam param cchange caption = "Nuance of C" enum = "Orig""Real""Imag""Sign""Squared"\ "Exponent""Inverse""Inv/Exp""C/Exp"\ "SQRPixel""CPower""EPower""ZPower"\ "CPower3""CFunction""Function" default = 0 endparam func fnc caption = "C Function" default = sqr() visible = @cchange == "Function" ||\ @cchange == "CFunction" endfunc float param expC caption = "Power of C" default = 1.0 endparam param version caption = "Version" default = 1.0 visible = false endparam switch: type = "FunctionALL" bailout = @bailout inv = @inv fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 fn4 = @fn4 fn5 = @fn5 fn6 = @fn6 fn7 = @fn7 fn8 = @fn8 fn9 = @fn9 xpower = @xpower ypower = @ypower zpower = @zpower x = @x y = @y xplus = @xplus yplus = @yplus func1 = @func1 func2 = @func2 func3 = @func3 p1 = @p1 p2 = @p2 p3 = @p3 p4 = @p4 p5 = @p5 p6 = @p6 funcpowerx = @funcpowerx funcpowery = @funcpowery funcpowerz = @funcpowerz fnc = @fnc expC = @expC mode2=@switchmode switchmode=@mode2 center=@swcenter scale=@swscale ztweaker = @ztweaker bailchoice = @bailchoice cchange = @cchange zpix = @zpix inv = @inv ez = @ez zpi = @zpi ztopidivzpi = @ztopidivzpi zpidivztopi = @zpidivztopi startseed = #pixel version = @version } PopcornDD { ; Developed from the orignal formula made for ; Ultrafractal by Bradley Beacham. ; init: complex z = c = #pixel x = real(#pixel) y = imag(#pixel) loop: if @mode2 == "PseudoMan" complex z = c = #pixel endif if @mode2 == "PseudoJul" z = #pixel*@startseed c = @startseed if @scale != 1.0 z = z/@scale endif if @center != (0.0,0.0) z = z + @center endif endif x2 = x - p2*@m1*fn1((y+p1)^(@power+p3) + p2*fn2(@m2*y+p1))^(@power+p3) + @cm*c y2 = y - @p5*@m1*fn1((x+p4)^(@power+@p6c) + @p5*fn2(@m2*x+p4))^(@power+@p6c) + @cm*c if @choice == "0" x2 = x - p2*@m1*fn1((y+p1)^(@power+p3) - p2*fn2(@m2*y+p1))^(@power+p3) + @cm*c y2 = y - @p5*@m1*fn1((x+p4)^(@power+@p6c) - @p5*fn2(@m2*x+p4))^(@power+@p6c) + @cm*c elseif @choice == "1" x2 = x + p2*@m1*fn1((y+p1)^(@power+p3) + p2*fn2(@m2*y+p1))^(@power+p3) + @cm*c y2 = y + @p5*@m1*fn1((x+p4)^(@power+@p6c) + @p5*fn2(@m2*x+p4))^(@power+@p6c) + @cm*c elseif @choice == "2" x2 = x + p2*@m1*fn1((y+p1)^(@power+p3) + p2*fn2(@m2*y+p1))^(@power+p3) + @cm*c y2 = y + @p5*@m1*fn1((x+p4)^(@power+@p6c) - @p5*fn2(@m2*x+p4))^(@power+@p6c) + @cm*c elseif @choice == "3" x2 = x + p2*@m1*fn1((y+p1)^(@power+p3) + p2*fn2(@m2*y+p1))^(@power+p3) + @cm*c y2 = y - @p5*@m1*fn1((x+p4)^(@power+@p6c) + @p5*fn2(@m2*x+p4))^(@power+@p6c) + @cm*c elseif @choice == "4" x2 = x + p2*@m1*fn1((y+p1)^(@power+p3) - p2*fn2(@m2*y+p1))^(@power+p3) + @cm*c y2 = y + @p5*@m1*fn1((x+p4)^(@power+@p6c) + @p5*fn2(@m2*x+p4))^(@power+@p6c) + @cm*c elseif @choice == "5" x2 = x - p2*@m1*fn1((y+p1)^(@power+p3) + p2*fn2(@m2*y+p1))^(@power+p3) + @cm*c y2 = y + @p5*@m1*fn1((x+p4)^(@power+@p6c) + @p5*fn2(@m2*x+p4))^(@power+@p6c) + @cm*c elseif @choice == "6" x2 = x + p2*@m1*fn1((y+p1)^(@power+p3) + p2*fn2(@m2*y+p1))^(@power+p3) + @cm*c y2 = y - @p5*@m1*fn1((x+p4)^(@power+@p6c) - @p5*fn2(@m2*x+p4))^(@power+@p6c) + @cm*c elseif @choice == "7" x2 = x + p2*@m1*fn1((y+p1)^(@power+p3) - p2*fn2(@m2*y+p1))^(@power+p3) + @cm*c y2 = y + @p5*@m1*fn1((x+p4)^(@power+@p6c) - @p5*fn2(@m2*x+p4))^(@power+@p6c) + @cm*c elseif @choice == "8" x2 = x - p2*@m1*fn1((y+p1)^(@power+p3) + p2*fn2(@m2*y+p1))^(@power+p3) + @cm*c y2 = y + @p5*@m1*fn1((x+p4)^(@power+@p6c) - @p5*fn2(@m2*x+p4))^(@power+@p6c) + @cm*c elseif @choice == "9" x2 = x + p2*@m1*fn1((y+p1)^(@power+p3) - p2*fn2(@m2*y+p1))^(@power+p3) + @cm*c y2 = y - @p5*@m1*fn1((x+p4)^(@power+@p6c) + @p5*fn2(@m2*x+p4))^(@power+@p6c) + @cm*c elseif @choice == "10" x2 = x - p2*@m1*fn1((y+p1)^(@power+p3) - p2*fn2(@m2*y+p1))^(@power+p3) + @cm*c y2 = y + @p5*@m1*fn1((x+p4)^(@power+@p6c) + @p5*fn2(@m2*x+p4))^(@power+@p6c) + @cm*c elseif @choice == "11" x2 = x - p2*@m1*fn1((y+p1)^(@power+p3) - p2*fn2(@m2*y+p1))^(@power+p3) + @cm*c y2 = y - @p5*@m1*fn1((x+p4)^(@power+@p6c) + @p5*fn2(@m2*x+p4))^(@power+@p6c) + @cm*c elseif @choice == "12" x2 = x - p2*@m1*fn1((y+p1)^(@power+p3) - p2*fn2(@m2*y+p1))^(@power+p3) + @cm*c y2 = y + @p5*@m1*fn1((x+p4)^(@power+@p6c) - @p5*fn2(@m2*x+p4))^(@power+@p6c) + @cm*c elseif @choice == "13" x2 = x - p2*@m1*fn1((y+p1)^(@power+p3) + p2*fn2(@m2*y+p1))^(@power+p3) + @cm*c y2 = y - @p5*@m1*fn1((x+p4)^(@power+@p6c) - @p5*fn2(@m2*x+p4))^(@power+@p6c) + @cm*c elseif @choice == "14" x2 = x + p2*@m1*fn1((y+p1)^(@power+p3) - p2*fn2(@m2*y+p1))^(@power+p3) + @cm*c y2 = y - @p5*@m1*fn1((x+p4)^(@power+@p6c) - @p5*fn2(@m2*x+p4))^(@power+@p6c) + @cm*c endif x = @fn5(x2) y = @fn6(y2) z = fn3(x) + fn4(y) if @change == "Orig" c = c^@expC elseif @change == "Real" c = real(c)^@expC elseif @change == "Imag" c = imag(c)^@expC elseif @change == "Sign" c = -c^@expC elseif @change == "Squared" c = c^2+@expC elseif @change == "Exponent" c = e^c^@expC elseif @change == "Inverse" c = 1 / c^@expC elseif @change == "Inv/Exp" c = 1 / e^c^@expC elseif @change == "C/Exp" c = c^@expC / e^c^@expC elseif @change == "SQRPixel" c = sqr(pixel)/3 elseif @change == "CPower" c = c^c elseif @change == "EPower" c = c^(e+c) elseif @change == "ZPower" c = c^z elseif @change == "CPower3" c = c^c^c elseif @change == "CFunction" c = c^((z-@p4c)*@p5c)^@fnc(2 + @p6c) elseif @change == "Function" c = @fnc(c^@expC) endif if @inv == true z = 1/z else z = z endif if @xplus == true z = ((z-@p4c)*@p5c)^(2+ @p6c) + x else z = z endif if @yplus == true z = ((z-@p4c)*@p5c)^(2+ @p6c) + y else z = z endif if @zpower == true z = ((z-@p4c)*@p5c)^(2+ @p6c) ^ z else z = z endif if @xpower == true z = ((z-@p4c)*@p5c)^(2+ @p6c)^x else z = z endif if @ypower == true z = ((z-@p4c)*@p5c)^(2+ @p6c)^y else z = z endif if @func1 == true z = @fn7((z-@p4c)*@p5c) else z = z endif if @func2 == true z = @fn8(@fn7((z-@p4c)*@p5c)) else z = z endif if @func3 == true z = @fn9(@fn8(@fn7((z-@p4c)*@p5c))) else z = z endif if @funcpowerz == true z = ((z-@p4c)*@p5c)^@fn7(z) else z = z endif if @funcpowerx == true z = ((z-@p4c)*@p5c)^@fn7(x) else z = z endif if @funcpowery == true z = ((z-@p4c)*@p5c)^@fn7(y) else z = z endif if @ez == true z = e^z else z = z endif if @zpi == true z = z^#pi else z = z endif if @ztopidivzpi == true z = z^#pi/(z*#pi) else z = z endif if @zpidivztopi == true z = z*#pi/(z^#pi) else z = z endif if @ztweaker == "z=orig" z = @fn7(z) elseif @ztweaker == "z=z+c" z = @fn7(z) + @fn8(c) elseif @ztweaker == "z=z+x" z = @fn7(z) + @fn8(x) elseif @ztweaker == "z=z+y" z = @fn7(z) + @fn8(y) elseif @ztweaker == "z=z*c" z = @fn7(z) * @fn8(c) elseif @ztweaker == "z=z*x" z = @fn7(z) * @fn8(x) elseif @ztweaker == "z=z*y" z = @fn7(z) * @fn8(y) elseif @ztweaker == "z=z/c" z = @fn7(z) / @fn8(c) elseif @ztweaker == "z=z/x" z = @fn7(z) / @fn8(x) elseif @ztweaker == "z=z/c+z" z = @fn7(z) / @fn8(c) + @fn9(z) elseif @ztweaker == "z=z/x+z" z = @fn7(z) / @fn8(x) + @fn9(z) elseif @ztweaker == "z=z/c+c" z = @fn7(z) / @fn8(c) + @fn9(c) elseif @ztweaker == "z=z/x+c" z = @fn7(z) / @fn8(x) + @fn9(c) elseif @ztweaker == "z=z-c" z = @fn7(z) - @fn8(c) elseif @ztweaker == "z=z-x" z = @fn7(z) - @fn8(x) elseif @ztweaker == "z=c-z" z = @fn7(c) - @fn8(z) elseif @ztweaker == "z=x-z" z = @fn7(x) - @fn8(z) elseif @ztweaker == "z=z/c-z" z = @fn7(z) / @fn8(c) - @fn9(z) elseif @ztweaker == "z=z/x-z" z = @fn7(z) / @fn8(x) - @fn9(z) elseif @ztweaker == "z=z/c-c" z = @fn7(z) / @fn8(c) - @fn9(c) elseif @ztweaker == "z=z/x-c" z = @fn7(z) / @fn8(x) - @fn9(c) elseif @ztweaker == "z=z-z/c" z = @fn7(z) - @fn8(z) / @fn9(c) elseif @ztweaker == "z=z-z/x" z = @fn7(z) - @fn8(z) / @fn9(x) elseif @ztweaker == "z=c-z/c" z = @fn7(c) - @fn8(z) / @fn9(c) elseif @ztweaker == "z=c-z/x" z = @fn7(c) - @fn8(z) / @fn9(x) elseif @ztweaker == "z=c/z" z = @fn7(c) / @fn8(z) elseif @ztweaker == "z=x/z" z = @fn7(x) / @fn8(z) elseif @ztweaker == "z*z+c" z = @fn7(z) * @fn8(z) + @fn9(c) elseif @ztweaker == "z*c+z" z = @fn7(z) * @fn8(c) + @fn9(z) elseif @ztweaker == "ezz" z = e^@fn7(z)* @fn8(z) elseif @ztweaker == "ez/z" z = e^@fn7(z)/ @fn8(z) elseif @ztweaker == "ex/z" z = e^@fn7(x)/ @fn8(z) elseif @ztweaker == "exz" z = e^@fn7(x)* @fn8(z) elseif @ztweaker == "ey/z" z = e^@fn7(y)/ @fn8(z) elseif @ztweaker == "eyz" z = e^@fn7(y)* @fn8(z) elseif @ztweaker == "z/1-z" z = @fn7(z)/(1- @fn8(z)) elseif @ztweaker == "z/1-x" z = @fn7(z)/(1-@fn8(x)) elseif @ztweaker == "z/1-y" z = @fn7(z)/(1-@fn8(y)) elseif @ztweaker == "zpi" z = @fn7(z) ^ #pi elseif @ztweaker == "zpi/z" z = @fn7(z) ^ #pi / @fn8(z)^2 elseif @ztweaker == "z^pi/z^z" z = @fn7(z) ^ #pi / @fn8(z^z) elseif @ztweaker == "z/pixel" z = @fn8(@fn7(z) / #pixel) elseif @ztweaker == "zpixel" z = @fn8(@fn7(z) * #pixel) elseif @ztweaker == "z^pixel/z+pixel" z = @fn7(z) ^ #pixel /@fn8(z) + pixel elseif @ztweaker == "ez/zpixel" z = e^@fn7(z) /(@fn8(z)+ #pixel) elseif @ztweaker == "ez/pixel" z = @fn8(e^@fn7(z) /#pixel) elseif @ztweaker == "piz/pixel" z = @fn8(@fn7(z)^#pi / #pixel) elseif @ztweaker == "piz/zpixel" z = @fn7(z)^#pi /(@fn8(z) + #pixel) elseif @ztweaker == "z+zpixel" z = @fn8(@fn7(z) + #pixel) elseif @ztweaker == "z-zpixel" z = @fn8(@fn7(z) - #pixel) elseif @ztweaker == "z/zpixel" z = @fn7(z) /(@fn8(z) + #pixel) elseif @ztweaker == "z/pixelz" z = @fn7(z) /#pixel^@fn8(z) elseif @ztweaker == "ez/pixel" z = @fn8(e^@fn7(z)/#pixel) elseif @ztweaker == "c/ez" z = @fn7(c / (#e * @fn8(z))) elseif @ztweaker == "z-x+y/x-y" z = @fn7(z) - p2 + @fn8((x+y)/(x-y)) elseif @ztweaker == "y-x+y/x-y" z = @fn7(y) - p2 + @fn8((x+y)/(x-y)) elseif @ztweaker == "c/ex" z = @fn7(c / (#e * @fn8(x))) endif ;================================================== bailout: |z| <= @bailout default: title = "PopcornDD" periodicity = 0 center = (0.17,0.07) magn = 0.7 ;=================================================== heading caption = "Switch Parameters" visible = @show endheading param mode2 caption = "Current Mode" enum = "PseudoMan""PseudoJul" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "Mandelbrot""Julia" default = 1 enabled = false visible = false endparam param @show caption = "Switch Parameters" default = false visible = false endparam float param swscale caption = "Scale" default = 1 visible = @show hint = "Changes the scale of the image in the switch window" endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show hint = "Changes the centering of the image in the switch window" endparam float param scale caption = "Scale Reset" default = 1 visible = @show hint = "If you changed the 'Scale' parmeter while using the switch \ reset this value to 1 after switching for acurate display of the \ magnification value on the Location tab" endparam complex param center caption = "Center Reset" default = (0,0) visible = @show hint = "If you changed the 'Switch Center' parmeter while using the switch \ reset this value to 0,0 after switching for acurate display of the \ center values on the Location tab" endparam heading caption = "To Switch Make Enabler<>0" endheading param cm caption = "Switch Enabler" default = (0.0,0.0) endparam param bailout caption = "Bailout value" default = 4.0 min = 1.0 endparam param choice caption = "Pop Choice" enum = "0""1""2""3""4""5""6""7""8""9""10"\ "11""12""13""14" default = 0 endparam ;========================================================== heading caption = "Popcorn Pars & Funcs" endheading param m1 Caption = "Pop Multiplier1" default = 0.05 endparam param m2 Caption = "Pop Multiplier2" default = 3.0 endparam func fn1 Caption = "Pop Func1" default = sin() endfunc func fn2 Caption = "Pop Func2" default = tan() endfunc func fn3 Caption = "Pop Func3" default = ident() endfunc func fn4 Caption = "Pop Func4" default = flip() endfunc func fn5 caption = "Sec. Pop1 Func" default = ident() endfunc func fn6 caption = "Sec. Pop2 Func" default = ident() endfunc heading caption = "Pop Parameters" endheading param power caption = "Power" default = (1.0,0.0) endparam param p1 Caption = "Pop Adder1" default = (0,0) endparam param p2 Caption = "Pop Multiplier1" default = (1,0) endparam param p3 Caption = "Pop Power1" default = (0,0) endparam param p4 Caption = "Pop Adder2" default = (0,0) endparam param p5 Caption = "Pop Multiplier2" default = (1,0) endparam param p6 Caption = "Pop Power2" default = (0,0) endparam param startseed caption = "Startseed" default = (-1.25,0) visible = @mode2 == "PseudoJul" endparam ;========================================================== heading caption = "Dabble Boxes" endheading bool param inv caption = "Invert Z" default = false endparam bool param xplus caption = "Add X" default = false endparam bool param yplus caption = "Add Y" default = false endparam bool param Zpower caption = "Z^Z" default = false endparam bool param Xpower caption = "Z^X" default = false endparam bool param Ypower caption = "Z^Y" default = false endparam bool param func1 caption = "Fn(Z)" default = false endparam func fn7 caption = "Function(1) of Z" default = sin() visible = @func1 == true || @func2 == true\ || @func3 == true || @funcpowerx == true\ || @funcpowery == true || @funcpowerz == true endfunc bool param func2 caption = "Fn2(Fn1(Z))" default = false endparam func fn8 caption = "Functions(2) of z" default = ident() visible = @func2 == true || @func3 == true endfunc bool param func3 caption = "Fn3(Fn2(Fn1(Z)))" default = false endparam func fn9 caption = "Functions(3) of z" default = ident() visible = @func3 == true endfunc bool param funcpowerz caption = "Function Power" default = false endparam bool param funcpowerx caption = "Function Power of X" default = false endparam bool param funcpowery caption = "Function Power of Y" default = false endparam bool param ez caption = "Euler times Z" default = false endparam bool param zpi caption = "Pi times Z" default = false endparam bool param ztopidivzpi caption = "Z^Pi/Z*Pi" default = false endparam bool param zpidivztopi caption = "Z*Pi/Z^Pi" default = false endparam ;========================================================== heading caption = "C Funcs" endheading param change caption = "Nuance of C" enum = "Orig""Real""Imag""Sign""Squared"\ "Exponent""Inverse""Inv/Exp""C/Exp"\ "SQRPixel""CPower""EPower""ZPower"\ "CPower3""CFunction""Function" default = 0 endparam func fnc caption = "C Function" default = sqr() visible = @change == "Function" ||\ @change == "CFunction" endfunc float param expC caption = "Power of C" default = 1.0 endparam param p4c Caption = "C Adder" default = (0,0) visible = @change != "Orig" endparam param p5c Caption = "C Multiplier" default = (1,0) visible = @change != "Orig" endparam param p6c Caption = "C Power" default = (0,0) visible = @change != "Orig" endparam ;======================================================= heading Caption = "XYZ Funcs" endheading param p11 Caption = "XYZ Adder" default = (0,0) endparam param p21 Caption = "XYZ Multiplier" default = (1,0) endparam param p31 Caption = "XYZ Power" default = (0,0) endparam ;======================================================= param ztweaker caption = "Z Tweaker" enum = "z=orig""z=z+c""z=z+x""z=z+y"\ "z=z*c""z=z*x""z=z*y""z=z/c""z=z/x"\ "z=z/c+z""z=z/x+z""z=z/c+c""z=z/x+c"\ "z=z-c""z=z-x""z=c-z""z=x-z"\ "z=z/c-z""z=z/x-z""z=z/c-c""z=z/x-c"\ "z=z-z/c""z=z-z/x""z=c-z/c"\ "z=c-z/x""z=c/z""z=x/z""z*z+c""z*c+z"\ "ezz""ez/z""exz""ex/z""eyz""ey/z""z/1-z""z/1-x""z/1-y"\ "zpi""zpi/z""z^pi/z^z""zpixel""z/pixelz"\ "z/zpixel""z^pixel/z+pixel""ez/zpixel""z/pixel""piz/pixel"\ "piz/zpixel""z-zpixel""ez/pixel""z+zpixel"\ "c/ez""x+z/y+c""z-x+y/x-y""y-x+y/x-y""c/ex" default = 0 endparam param version caption = "Version" default = 1.0 visible = false endparam switch: type = "PopcornDD" bailout = @bailout inv = @inv fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 fn4 = @fn4 fn5 = @fn5 fn6 = @fn6 fn7 = @fn7 fn8 = @fn8 fn9 = @fn9 xpower = @xpower ypower = @ypower zpower = @zpower x = @x y = @y xplus = @xplus yplus = @yplus func1 = @func1 func2 = @func2 func3 = @func3 p1 = @p1 p2 = @p2 p3 = @p3 p11 = @p11 p21 = @p21 p31 = @p31 funcpowerx = @funcpowerx funcpowery = @funcpowery funcpowerz = @funcpowerz fnc = @fnc expC = @expC mode2=@switchmode switchmode=@mode2 center=@swcenter scale=@swscale ztweaker = @ztweaker bailchoice = @bailchoice change = @change zpix = @zpix inv = @inv ez = @ez zpi = @zpi ztopidivzpi = @ztopidivzpi zpidivztopi = @zpidivztopi startseed = #pixel version = @version cm = @cm startseed = #pixel } NewtonZapple { ; Version 2.0 6-14-2004 By Dolf De Rovira ; Adapted from existing Standard Newton formula in ; Ultra Fractal 3.04 ; Standard Newton fractal. Applying modification of ; Pickover's Popcorn trap approach to add randomization. ; init: z = c = pixel x = real(z) y = imag(z) loop: zold = z if @newttype == "Newton" if @zapper == true z = p2*(((3,6) - 1) * p2*fn3(z)^(3,6) + @r) / ((3,6) * z ^ ((3,6) - p3)) else z = p2*((p1 - 1) * p2*fn3(z)^p1 + @r) / (p1 * z ^ (p1 - p3)) endif elseif @newttype == "Newton-" if @zapper == true z = p2*(((3,6) - 1) * p2*fn3(z)^(3,6) - (1+@r)^2) / ((3,6) * z ^ ((3,6) - p3)) else z = p2*((p1 - 1) * p2*fn3(z)^p1 -(1+@r)^2) / (p1 * z ^ (p1 - p3)) endif elseif @newttype == "Newton^z" if @zapper == true z = p2*(((3,6) - 1) * p2*fn3(z)^(3,6) - (1+@r)^z) / ((3,6) * z ^ ((3,6) - p3)) else z = p2*((p1 - 1) * p2*fn3(z)^p1 -(1+@r)^z) / (p1 * z ^ (p1 - p3)) endif elseif @newttype == "Newton^pz" if @zapper == true z = p2*(((3,6) - 1) * p2*fn3(z)^(3,6) - (3,6)*(1+@r)^z) / ((3,6) * z ^ ((3,6) - p3)) else z = p2*((p1 - 1) * p2*fn3(z)^p1 -p1*(1+@r)^z) / (p1 * z ^ (p1 - p3)) endif elseif @newttype == "NewtonZ" if @zapper == true z = p2*(((3,6) - 1) * p2*fn3(z)*z^(3,6) + @r) / ((3,6) *z ^ ((3,6) - p3)) else z = p2*((p1 - 1) * p2*fn3(z)*z^p1 + @r) / (p1 * z ^ (p1 - p3)) endif elseif @newttype == "NewtonZ-Z" if @zapper == true z = p2*(((3,6) - 1) * p2*fn3(z)*z^(3,6) + @r) / ((3,6) *z ^ ((3,6) - p3)) -z else z = p2*((p1 - 1) * p2*fn3(z)*z^p1 + @r) / (p1 * z ^ (p1 - p3))-z endif elseif @newttype == "NewtonZ+Z" if @zapper == true z = p2*(((3,6) - 1) * p2*fn3(z)*z^(3,6) + @r) / ((3,6) *z ^ ((3,6) - p3)) +z else z = p2*((p1 - 1) * p2*fn3(z)*z^p1 + @r) / (p1 * z ^ (p1 - p3))+z endif elseif @newttype == "NewtonZ+x" if @zapper == true z = p2*(((3,6) - 1) * p2*fn3(z)*z^(3,6) + @r) / ((3,6) *z ^ \ ((3,6) - p3)) + x else z = p2*((p1 - 1) * p2*fn3(z)*z^p1 + @r) / (p1 * z ^ (p1 - p3)) + x endif elseif @newttype == "NewtonZ+y" if @zapper == true z = p2*(((3,6) - 1) * p2*fn3(z)*z^(3,6) + @r) / ((3,6) *z ^ \ ((3,6) - p3)) + y else z = p2*((p1 - 1) * p2*fn3(z)*z^p1 + @r) / (p1 * z ^ (p1 - p3)) + y endif elseif @newttype == "NewtonY" if @zapper == true z = p2*(((3,6) - 1) * p2*fn3(z)*z^(3,6) + @r) / ((3,6) *(z+y) ^ ((3,6) - p3)) else z = p2*((p1 - 1) * p2*fn3(z)*z^p1 + @r) / (p1 * (z+y) ^ (p1 - p3)) endif elseif @newttype == "NewtonX" if @zapper == true z = p2*(((3,6) - 1) * p2*fn3(z)*z^(3,6) + @r) / ((3,6) *(z+x) ^ ((3,6) - p3)) else z = p2*((p1 - 1) * p2*fn3(z)*z^p1 + @r) / (p1 * (z+x) ^ (p1 - p3)) endif elseif @newttype == "Z4e" if @zapper == true z = p2*(((3,6) - 1) * p2*fn3(z)*z^(3,6)*e + @r) / ((3,6) *z ^ ((3,6) - p3)) else z = p2*((p1 - 1) * p2*fn3(z)*z^p1*e + @r) / (p1 * z ^ (p1 - p3)) endif elseif @newttype == "Z4e/y" if @zapper == true z = p2*(((3,6) - 1) * p2*fn3(z)*z^(3,6)*e + @r) / |x-y|*((3,6) *z ^ ((3,6) - p3)) else z = p2*((p1 - 1) * p2*fn3(z)*z^p1*e + @r) /|x-y|*(p1 * z ^ (p1 - p3)) endif elseif @newttype == "MandelNewt" if @zapper == true z = p2*(z)^(3,6) + (c - p3) * fn3(z) + c - p3 * @r else z = p2*(z)^p1 + (c - p3) * fn3(z) + c - p3 * @r endif elseif @newttype == "MandelNewtR" if @zapper == true z = p2*(z)^(3,6) + (c - p3) * fn3(z) + c - p3 + @r else z = p2*(z)^p1 + (c - p3) * fn3(z) + c - p3 + @r endif elseif @newttype == "Simple Z3" if @zapper == true z = p2*(fn3(z)^(3,6)) - p3 + c + @r else z = p2*(fn3(z)^p1) - p3 + c + @r endif elseif @newttype == "Simple Z4" if @zapper == true z = p2*(fn3(z)^((3,6)+1)) - p3 + c+ @r else z = p2*(fn3(z)^(p1+1)) - p3 + c+ @r endif elseif @newttype == "Simple Z5" if @zapper == true z = p2*(fn3(z)^((3,6)+2)) - p3 + c+ @r else z = p2*(fn3(z)^(p1+2)) - p3 + c+ @r endif elseif @newttype == "MandelNewt/" if @zapper == true z = p2*(fn3(z))^(3,6) + (c - p3) * z + c - p3 / ((3,6) * z ^ \ ((3,6) - p3*@r)) else z = p2*(fn3(z))^p1 + (c - p3) * z + c - p3 / (p1 * z ^ \ (p1 - p3*@r)) endif elseif @newttype == "MandelNewtR/" if @zapper == true z = p2*(fn3(z))^(3,6) + (c - p3) * z + c - p3 + @r/ \ ((3,6) * z ^ ((3,6) - p3)) else z = p2*(fn3(z))^p1 + (c - p3) * z + c - p3 + @r/ \ (p1 * z ^ (p1 - p3)) endif elseif @newttype == "Simple Z3/" if @zapper == true z = p2*(fn3(z)^(3,6)) - p3 + c + @r/ ((3,6) * z ^ ((3,6) - p3)) else z = p2*(fn3(z)^p1) - p3 + c + @r/ (p1 * z ^ (p1 - p3)) endif elseif @newttype == "Simple Z4/" if @zapper == true z = p2*(fn3(z)^((3,6)+1)) - p3 + c+ @r/ ((3,6) * z ^ ((3,6) - p3)) else z = p2*(fn3(z)^(p1+1)) - p3 + c+ @r/ (p1 * z ^ (p1 - p3)) endif elseif @newttype == "Simple Z5/" if @zapper == true z = p2*(fn3(z)^((3,6)+2)) - p3 + c+ @r/ ((3,6) * z ^ ((3,6) - p3)) else z = p2*(fn3(z)^(p1+2)) - p3 + c+ @r/ (p1 * z ^ (p1 - p3)) endif elseif @newttype == "Simple Z5/+x" if @zapper == true z = p2*(fn3(z)^((3,6)+2)) - p3 + c+ @r / ((3,6) * z ^ ((3,6) - p3)) + x else z = p2*(fn3(z)^(p1+2)) - p3 + c+ @r / (p1 * z ^ (p1 - p3)) + x endif elseif @newttype == "Newt4";Based off of Ultra Fractal Formulas developed by ;Frederik Slijkerman and Mark Peterson from Fractint formulas. if @zapper == true z = p2*((3,6) * p2*fn3(z)^(3,6) + @r) / ((3,6) * z ^(3+ ((3,6) - p3))) else z = p2*((p1) * p2*fn3(z)^p1 + @r) / (p1 * z ^ (3+(p1 - p3))) endif elseif @newttype == "Newt3" if @zapper == true z = p2*(((3,6) - 1) * p2*fn3(z)^(3,6) + @r) / ((3,6) * z ^ (2+(3,6) - p3)) else z = p2*((p1 - 1) * p2*fn3(z)^p1 + @r) / (p1 * z ^ (2+p1 - p3)) endif elseif @newttype == "Halley";Based off of Ultra Fractal Formulas developed by ;Frederik Slijkerman and Chris Green from Fractint formulas. if @zapper == true z = p2*(z-(3,6) * p2*fn3((z)^(7+(3,6))-z) + @r) / 7*((3,6) * z ^(6+ ((3,6) - p3)-42*z^5*z^7/(14*z^6-2))) else z = p2*((z-p1) * p2*fn3(z)^(7+p1-z) + @r) / 7*((p1 * z ^ (6+(p1 - p3))-42*z^5*z^7/(14*z^6-2))) endif elseif @newttype == "NewtSinExp";Based off of Ultra Fractal Formulas developed by ;Frederik Slijkerman and Chris Green from Fractint formulas. if @zapper == true z = p2*((z-(3,6)*(sin(fn3(z))+exp(z)-1)+ @r)) / exp(z) + cos(z) else z = p2*(z-(p1*(sin(fn3(z))+exp(z)-1)+ @r)) / exp(z) + cos(z) endif elseif @newttype == "CGNewton";Based off of Ultra Fractal Formulas developed by ;Frederik Slijkerman and Chris Green from Fractint formulas. if @zapper == true z = p2*(z-(p1*(fn3(z^3)-#pixel)+ @r)) / 3*fn3(z)^2 else z = p2*(z-((3,6)*(fn3(z^3)-#pixel)+ @r)) / 3*fn3(z)^2 endif endif If @pop == true x = (x - @h )* fn1 (y + fn2 (3*y)) y = (y - @h )* fn1 (x + fn2 (3*x)) z = z + x/p4 + y/p4 endif if @inv == true z = 1/z else z = z endif if @func1 == true z = fn4((z-@p5)*@p6) else z = z endif if @func2 == true z = fn4(@fn5((z-@p5)*@p6)) else z = z endif if @func3 == true z = fn4(@fn5(@fn6((z-@p5)*@p6))) else z = z endif if @func3z == true z = z^2 + fn4(@fn5(@fn6((z-@p5)*@p6))) else z = z endif if @ez == true z = e^z else z = z endif if @zpi == true z = z^#pi else z = z endif if @ztopidivzpi == true z = z^#pi/(z*#pi) else z = z endif if @zpidivztopi == true z = z*#pi/(z^#pi) else z = z endif bailout: |z - zold| >= 0.00001 default: title = "Newton Zapple" maxiter = 100 periodicity = 0 angle = 0.1 heading caption = "Newton Params & Funcs" endheading param newttype caption = "Newton Type Selector" default = 2 enum = "Newton""Newton-""NewtonZ""NewtonZ-Z""NewtonZ+Z"\ "Newton^z""Newton^pz""NewtonX""NewtonY""Z4e""Z4e/y"\ "MandelNewt""MandelNewtR""Simple Z3""NewtonZ+x""NewtonZ+y"\ "Simple Z4""Simple Z5""MandelNewt/""MandelNewtR/""Simple Z3/"\ "Simple Z4/""Simple Z5/""Simple Z5/+x""Newt3""Newt4""Halley"\ "NewtSinExp""CGNewton" endparam func fn3 caption = "Newton Function" default = ident() endfunc bool param inv caption = "Invert Z" default = false endparam heading caption = "Tweaker Functions" endheading bool param func1 caption = "Fn(Z)" default = false endparam func @fn4 caption = "Function 4" default = ident() visible = @func1 == true || @func2 == true\ || @func3 == true || @func3z ==true endfunc bool param func2 caption = "Fn2(Fn1(Z))" default = false endparam func fn5 caption = "Function 5" default = ident() visible = @func2 == true\ || @func3 == true || @func3z == true endfunc bool param func3 caption = "Fn3(Fn2(Fn1(Z)))" default = false endparam func fn6 caption = "Function 6" default = ident() visible = @func3 == true || @func3z == true endfunc bool param func3z;Added caption = "Z+Fn3(Fn2(Fn1(Z)))" default = false endparam param @p5 caption = "Tweaker Param 5" default = (0,0) visible = @func1 == true || @func2 == true\ || @func3 == true endparam param @p6 caption = "Tweaker Param 6" default = (1,0) visible = @func1 == true || @func2 == true\ || @func3 == true endparam heading Caption = "Misc. Constants" endheading bool param ez caption = "Euler times Z" default = false endparam bool param zpi caption = "Pi times Z" default = false endparam bool param ztopidivzpi caption = "Z^Pi/Z*Pi" default = false endparam bool param zpidivztopi caption = "Z*Pi/Z^Pi" default = false endparam heading caption = "Parameters" endheading param r caption = "Root" default = (1,0) hint = "Specifies the root of the equation that is solved. Use larger \ numbers for slower convergence." endparam param p1 caption = "Exponent" default = (3,0) hint = "Specifies the exponent of the equation that is solved by \ Newton's method. Use real numbers (set the imaginary component \ to zero) to obtain classic Newton fractals. Also try 6 as \ imaginary number for very weird form." endparam param p2 caption = "Muliplier" default = 1.0 endparam param p3 caption = "Subtractor" default = 1 endparam heading caption = "Popcorn Addiditive" endheading bool param pop caption = "Popcorn Type" default = false endparam param p4 caption = "PopcornMod" default = 1000 visible = @pop == true endparam func fn1 caption = "1st Popcorn Function" default = sin() visible = @pop == true endfunc func fn2 caption = "2nd Popcorn Function" default = tan() visible = @pop == true endfunc param h caption = "Popcorn Parameter" default = 2.0 ; literature says 0.05 visible = @pop == true endparam bool param zapper caption = "Zapper" default = false endparam heading caption = "If blanks show make \ version=1.0" visible = false endheading param version caption = "Version" default = 2.0 visible = false endparam switch: type = "NewtonZapple" r = #pixel zapper = @zapper version = @version h = @h newttype = @newttype p1 = @p1 p2 = @p2 p3 = @p3 p4 = @p4 p5 = @p5 p6 = @p6 fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 fn4 = @fn4 fn5 = @fn5 pop = @pop inv = @inv func1 = @func1 func2 = @func2 func3 = @func3 func3z = @func3z ez = @ez zpi = @zpi ztopidivzpi = @ztopidivzpi zpidivztopi = @zpidivztopi } Arachnoid { ; Version 2.0 6-14-2004 ; Arachnoid is based off of Spider formulas from Fractint. ; The formulas below are modified from works by Jon Horner ; Spider Julia (Spider1), by Chuck Ebbert's Spider(Spider2). ; and by Ron Barnett's 3RDIMSpider01 (Spider3) ; Bailout choices come from Sean M. Pratz's Bailout ; Galore formula init: z = #pixel c = @p12 if @mode2 == "Spider2" z = #pixel + @p1 c = #pixel elseif @mode2 == "Spider3" z=@p1*real(#pixel)+flip(imag(#pixel)) c=@p4+real(#pixel)+flip(imag(#pixel)*@p1) endif loop: if @mode2 == "Spider1" || @mode2 == "Spider3" z = p2*fn2(z+p4)^(@power) * \ fn2(z + @p7)*@p6 + fn3(c + @p9) c = c* 0.5 + z elseif @mode2 == "Spider2" z = p2*(fn1(z+p4)^(@power) + \ fn2(z + @p6)*@p7 + fn3((c + @p9)/2)) elseif @mode2 == "Spider4" z = p2*(fn1(z+p4)^(@power) + \ fn2(z + @p6)*@p7 + fn3((c + @p9)/2))/z^#pixel c = c + z elseif @mode2 == "Spider5" z = p2*(fn1(z+p4)^(@power)+ \ fn2(z - @p6)*@p7 - fn3((c - @p9)/2))/(z^#pixel) c = c + z*#pixel elseif @mode2 == "Spider6" z = p2*(fn1(z+p4)^(@power) + \ fn2(z - @p6)*@p7 - fn3((c - @p9)/2))/(z^#pixel) c = c + z/#pixel elseif @mode2 == "Spider7" z = p2*(fn1(z+p4)^(@power)/ \ fn2(z - @p6)*@p7 - fn3((c - @p9)/2))/(z^#pixel) c = c + z/#pixel elseif @mode2 == "Spider8" z = p2*(fn1(z+p4)^(@power) + \ fn2(z + @p6)*@p7 + fn3((c - @p9)/2))/(z^#pixel) c = c + (z^c)/#pixel elseif @mode2 == "Spider9" z = p2*(fn1(z+p4)^(@power) + \ fn2(z + @p6)*@p7 + fn3((c + @p9)/2))/(z^#pixel) c = c + z^c/c^#pixel elseif @mode2 == "Spider10" z = p2*(fn1(z+p4)^(@power) + \ fn2(z + @p6)*@p7 + fn3((c + @p9)/2))/z^#pixel^z c = c^z + z^c/c^#pixel endif if @mode == "PseudoMan" endif if @mode == "PseudoJul" z = c = @startseed/z if @scale != 1.0 z = z/@scale endif if @center != (0.0,0.0) z = z + @center endif endif if @inv == true z = 1/z else z = z endif if @spider == true c = c/2 +z else c = c endif if @ez == true z = e^z else z = z endif if @zpi == true z = z^#pi else z = z endif if @ztopidivzpi == true z = z^#pi/(z*#pi) else z = z endif if @zpidivztopi == true z = z*#pi/(z^#pi) else z = z endif if @func1 == true z = @fn4((z-@p10)*@p11) else z = z endif if @func2 == true z = @fn4(@fn5((z-@p10)*@p11)) else z = z endif if @func3 == true z = @fn4(@fn5(@fn6((z-@p10)*@p11))) else z = z endif if @func3z == true z = z^2 + @fn4(@fn5(@fn6((z-@p10)*@p11))) else z = z endif ;======================================================== bailout: (@bailchoice == 0 && |z| <= @bailout) || \ (@bailchoice == 1 && real(sqr(z)) <= @bailout) || \ (@bailchoice == 2 && imag(sqr(z)) <= @bailout) || \ (@bailchoice == 3 && sqr(real(z)) <= @bailout) || \ (@bailchoice == 4 && sqr(imag(z)) <= @bailout) || \ (@bailchoice == 5 && (sqr(real(z)) <= @bailout && sqr(imag(z)) < @bailout)) || \ (@bailchoice == 6 && (sqr(real(z)) <= @bailout || sqr(imag(z)) < @bailout)) || \ (@bailchoice == 7 && (sqr(abs(real(z)) + abs(imag(z))) <= @bailout)) || \ (@bailchoice == 8 && (sqr(real(z) + imag(z)) <= @bailout)) || \ (@bailchoice == 9 && (sqr(real(z) - imag(z)) <= @bailout)) ||\ (@bailchoice == 10 && (sqr(|real(z)| - sqr(|imag(z)|)) <= @bailout)) default: title = "Arachnoid" periodicity = 0 center = (-0.5,0) param bailout caption = "Bailout value" default = 4.0 min = 1.0 endparam param bailchoice caption = "Bailout Choice" default = 0 enum = "|z|" "Real(Z^2)""Imag(Z^2)""Real(Z)^2""Imag(Z)^2"\ "Real & Imag""Real or Imag""Sqr(Abs(Real&Imag)" "Sqr(Real&Imag)"\ "Sqr(Real-Imag)""SqrAbs(Real-Imag)" endparam ;======================================================== heading caption = "Switch Parameters" visible = @show endheading param mode caption = "Current Mode" enum = "PseudoMan""PseudoJul" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "PseudoMan""PseudoJul" default = 1 enabled = false visible = false endparam param @show caption = "Switch Parameters" default = false visible = false endparam float param swscale caption = "Scale" default = 1 visible = @show hint = "Changes the scale of the image in the switch window" endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show hint = "Changes the centering of the image in the switch window" endparam float param scale caption = "Scale Reset" default = 1 visible = @show hint = "If you changed the 'Scale' parmeter while using the switch \ reset this value to 1 after switching for accurate display of the \ magnification value on the Location tab" endparam complex param center caption = "Center Reset" default = (0,0) visible = @show hint = "If you changed the 'Switch Center' parmeter while using the switch \ reset this value to 0,0 after switching for accurate display of the \ center values on the Location tab" endparam ;================================================= param startseed caption = "Startseed" visible = @mode == "PseudoJul" endparam param mode2 caption = "Current Formula" enum = "Spider1""Spider2""Spider3""Spider4"\ "Spider5""Spider6""Spider7""Spider8""Spider9"\ "Spider10" default = 0 endparam heading Caption = "Parameters" endheading param p1 default = (1,0) Caption = "Param 1" endparam param p2 default = (1,0) Caption = "Whole Multiplier" endparam param p4 default = (0,0) Caption = "Adder1" endparam param p5 default = (1,0) Caption = "Divisor1" endparam param p6 default = (1,0) Caption = "Multiplier2" endparam param p7 default = (0.0,0.0) Caption = "Adder2" endparam param p9 default = (0.0,0.0) Caption = "Adder3" endparam param p10 default = (0.0,0.0) Caption = "Func Adder" endparam param p11 default = (1.0,0.0) Caption = "Func Multiplier" endparam param power Caption = "Power" default = (1.0,0.0) endparam param p12 default = (0.00001,0.01) caption = "Spider 2 Param" endparam ;================================== heading Caption = "Functions" endheading func fn1 caption = "Function 1" default = sqr() visible = @mode2 == "Spider2" endfunc func fn2 caption = "Function 2" default = ident() endfunc func fn3 caption = "Function 3" default = ident() endfunc func fn4 caption = "Function 1 of Z" default = ident() endfunc ;====================================== heading Caption = "Misc. Choices" endheading bool param inv caption = "Invert Z" default = false endparam bool param spider caption = "Spider" default = false endparam bool param ez caption = "Euler times Z" default = false endparam bool param zpi caption = "Pi times Z" default = false endparam bool param ztopidivzpi caption = "Z^Pi/Z*Pi" default = false endparam bool param zpidivztopi caption = "Z*Pi/Z^Pi" default = false endparam heading caption = "Z Functions" endheading bool param func1 caption = "Fn(Z)" default = false endparam func fn4 caption = "Function 1 of Z" default = sqr() visible = @func1 == true || @func2 == true\ || @func3 == true || @func3z ==true endfunc bool param func2 caption = "Fn2(Fn1(Z))" default = false endparam func fn5 caption = "Function 2 of Z" default = ident() visible = @func2 == true\ || @func3 == true || @func3z ==true endfunc bool param func3 caption = "Fn3(Fn2(Fn1(Z)))" default = false endparam func fn6 caption = "Function 3 of Z" default = ident() visible = @func3 == true || @func3z ==true endfunc bool param func3z;Added caption = "Z+Fn3(Fn2(Fn1(Z)))" default = false endparam heading caption = "If blanks show make \ version=1.0" visible = false endheading param version caption = "Version" default = 2.0 visible = false endparam switch: type = "Arachnoid" bailout = @bailout inv = @inv fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 fn4 = @fn4 fn7 = @fn7 fn8 = @fn8 fn9 = @fn9 func1 = @func1 func2 = @func2 func3 = @func3 func3z = @func3z p1 = @p1 p2 = @p2 p3 = @p3 p4 = @p4 p5 = @p5 p6 = @p6 p7 = @p7 p8 = @p8 p9 = @p9 p10 = @p10 p11 = @p11 p12 = @p12 fnc = @fnc expC = @expC mode = @switchmode switchmode = @mode center = @swcenter scale = @swscale ztweaker = @ztweaker bailchoice = @bailchoice cchange = @cchange inv = @inv ez = @ez zpi = @zpi ztopidivzpi = @ztopidivzpi zpidivztopi = @zpidivztopi startseed = #pixel version = @version mode2 = @mode2 } WispsandSpirals { ; Affecter mode Formulas based on those in Ultra Fractal 3.04 ; developed by Frederik Slikjerman. Sean M. Pratz's Bailout ; Galore formula was used to develop the bailchoice options. ; Other bailout conditions (types B & C) are based on routines ; suggested by Mark Townsend. init: z = #pixel c = @startseed loop: float x = real(z) float y = imag(z) float a = real(c) float b = imag(c) float g = real(@startseed) float h = imag(@startseed) if @mode2 == "Mandelbrot" z = @startseed c = (#pixel^e + c)/z elseif @mode2 == "Julia" c = @startseed endif if @scale != 1.0 z = z/@scale endif if @center != (0.0,0.0) z = z + @center endif if @ztweaker == "z=orig" z = fn3(z) elseif @ztweaker == "z=z+c" z = fn3(z) + fn4(c) elseif @ztweaker == "z=z+x" z = fn3(z) + fn4(x) elseif @ztweaker == "z=z+y" z = fn3(z) + fn4(y) elseif @ztweaker == "z=z+g" z = fn3(z) + fn4(g) elseif @ztweaker == "z=z*c" z = fn3(z) * fn4(c) elseif @ztweaker == "z=z*x" z = fn3(z) * fn4(x) elseif @ztweaker == "z=z*y" z = fn3(z) * fn4(y) elseif @ztweaker == "z=z*g" z = fn3(z) * fn4(g) elseif @ztweaker == "z=z/c" z = fn3(z) / fn4(c) elseif @ztweaker == "z=z/x" z = fn3(z) / fn4(x) elseif @ztweaker == "z=z/g" z = fn3(z) / fn4(g) elseif @ztweaker == "z=z/c+z" z = fn3(z) / fn4(c+z) elseif @ztweaker == "z=z/x+z" z = fn3(z) / fn4(x) + fn4(z) elseif @ztweaker == "z=z/c+c" z = fn3(z) / fn4(c) + fn4(c) elseif @ztweaker == "z=z/x+c" z = fn3(z) / fn4(x) + fn4(c) elseif @ztweaker == "z=z/g+c" z = fn3(z) / fn4(g) + fn4(c) elseif @ztweaker == "z=z-c" z = fn3(z) - fn4(c) elseif @ztweaker == "z=z-x" z = fn3(z) - fn4(x) elseif @ztweaker == "z=z-g" z = fn3(z) - fn4(g) elseif @ztweaker == "z=c-z" z = fn3(c) - fn4(z) elseif @ztweaker == "z=x-z" z = fn3(x) - fn4(z) elseif @ztweaker == "z=g-z" z = fn3(g) - fn4(z) elseif @ztweaker == "z=z/c-z" z = fn3(z) / fn4(c) - fn4(z) elseif @ztweaker == "z=z/x-z" z = fn3(z) / fn4(x) - fn4(z) elseif @ztweaker == "z=z/g-z" z = fn3(z) / fn4(g) - fn4(z) elseif @ztweaker == "z=z/c-c" z = fn3(z) / fn4(c) - fn4(c) elseif @ztweaker == "z=z/x-c" z = fn3(z) / fn4(x) - fn4(c) elseif @ztweaker == "z=z/g-c" z = fn3(z) / fn4(g) - fn4(c) elseif @ztweaker == "z=z-z/c" z = fn3(z) - fn4(z) / fn4(c) elseif @ztweaker == "z=z-z/x" z = fn3(z) - fn4(z) / fn4(x) elseif @ztweaker == "z=z-z/g" z = fn3(z) - fn4(z) / fn4(g) elseif @ztweaker == "z=c-z/c" z = fn3(c) - fn4(z) / fn4(c) elseif @ztweaker == "z=c-z/g" z = fn3(c) - fn4(z) / fn4(g) elseif @ztweaker == "z=c-z/x" z = fn3(c) - fn4(z) / fn4(x) elseif @ztweaker == "z=c/z" z = fn3(c) / fn4(z) elseif @ztweaker == "z=x/z" z = fn3(x) / fn4(z) elseif @ztweaker == "z*z+c" z = fn3(z) * fn4(z) + fn4(c) elseif @ztweaker == "z*c+z" z = fn3(z) * fn4(c) + fn4(z) elseif @ztweaker == "z=g/z" z = fn3(g) / fn4(z) elseif @ztweaker == "ezz" z = e^fn3(z)* fn4(z) elseif @ztweaker == "ez/z" z = e^fn3(z)/ fn4(z) elseif @ztweaker == "ex/z" z = e^fn3(x)/ fn4(z) elseif @ztweaker == "exz" z = e^fn3(x)* fn4(z) elseif @ztweaker == "ey/z" z = e^fn3(y)/ fn4(z) elseif @ztweaker == "eyz" z = e^fn3(y)* fn4(z) elseif @ztweaker == "z/1-z" z = fn3(z)/(1- fn4(z)) elseif @ztweaker == "z/1-x" z = fn3(z)/(1-fn4(x)) elseif @ztweaker == "z/1-y" z = fn3(z)/(1-fn4(y)) elseif @ztweaker == "zpi" z = fn3(z) ^ #pi elseif @ztweaker == "zpi/z" z = fn3(z) ^ #pi / fn4(z)^2 elseif @ztweaker == "z^pi/z^z" z = fn3(z) ^ #pi / fn4(z^z) elseif @ztweaker == "z/pixel" z = fn4(fn3(z) / #pixel) elseif @ztweaker == "zpixel" z = fn4(fn3(z) * #pixel) elseif @ztweaker == "z^pixel/z+pixel" z = fn3(z) ^ #pixel /fn4(z) + pixel elseif @ztweaker == "ez/zpixel" z = e^fn3(z) /(fn4(z)+ #pixel) elseif @ztweaker == "ez/pixel" z = fn4(e^fn3(z) /#pixel) elseif @ztweaker == "piz/pixel" z = fn4(fn3(z)^#pi / #pixel) elseif @ztweaker == "piz/zpixel" z = fn3(z)^#pi /(fn4(z) + #pixel) elseif @ztweaker == "z+zpixel" z = fn4(fn3(z) + #pixel) elseif @ztweaker == "z-zpixel" z = fn4(fn3(z) - z*#pixel) elseif @ztweaker == "z/zpixel" z = fn3(z) /(fn4(z) + #pixel) elseif @ztweaker == "z/pixelz" z = fn3(z) /#pixel^fn4(z) elseif @ztweaker == "ez/pixel" z = fn4(e^fn3(z)/#pixel) elseif @ztweaker == "c/ez" z = fn3(c / (#e * fn4(z))) elseif @ztweaker == "z+c/g" z = fn3(fn4(z) + c / g ) elseif @ztweaker == "x+z/y+c" z = (fn3(x) + z) / (fn4(y) + c) elseif @ztweaker == "g^z-c" z = fn4(g ^ (fn3(z) )) - c elseif @ztweaker == "z-x+y/x-y" z = fn3(z) - p2 + fn4((x+y)/(x-y)) elseif @ztweaker == "g/c-z" z = fn3(( g )/ (c - fn4(z))) elseif @ztweaker == "g/c-x" z = fn3(( g )/ (c - fn4(x))) elseif @ztweaker == "y+c/g" z = fn3(fn4(y) + c / g ) elseif @ztweaker == "x+y/y+c" z = (fn3(x) + y) / (fn4(y) + c) elseif @ztweaker == "g^y-c" z = fn4(g ^ (fn3(y) )) - c elseif @ztweaker == "y-x+y/x-y" z = fn3(y) - p2 + fn4((x+y)/(x-y)) elseif @ztweaker == "g/c-y" z = fn3(( g )/ (c - fn4(y))) elseif @ztweaker == "c/ex" z = fn3(c / (#e * fn4(x))) elseif @ztweaker == "x+c/g" z = fn3(fn4(x) + c / g ) elseif @ztweaker == "g^x-c" z = fn4(g ^(fn3(x))) - c endif ; "Affector - Loop" for x & y variables. These formulas are ; not exactly the same as the named formulas, but are in essence ; the same as the originals. Liberties have been taken ; by this formula writer to make them compatible with this work. ; Many thanks to Frederik Slijkerman who converted the original ; formulas developed originally for Fractint to be compatible with ; Ultra Fractal. With his permission, I have adapted ; those original formulas for this one. if @mode == "Julia/Mandelbrot" z = z elseif @mode == "Barnsley1" if x >= 0 z = (z - 1) * c elseif x<0 z = (z + 1) * c endif elseif @mode == "Barnsley2" if x * h + g * y >= 0 z = (z - 1) * c elseif x * h + g * y < 0 z = (z + 1) * c endif elseif @mode == "Barnsley3" if x > 0 z = x^2 - y^2 -1 + 2*x * y elseif x <= 0 z = x^2 - y^2 -1 + a*x + 2*x*y + b*x endif elseif @mode == "ComplexMarks" if x >= y z = x^(@spower-1)*z^2 + c + x elseif y > x z = y^(@spower-1)*z^2 + c + y endif elseif @mode == "FrothyBasin" if x >= y z = z^2 - conj(z)*(1 + 1.02871376828*y) + x elseif y > x z = z^2 - conj(z)*(1 + 1.02871376828*y) + y endif elseif @mode == "GingerBread" if x >= y z = 1 - y + |x| elseif y > x z = x endif elseif @mode == "Magnet" if x >= y z = sqr( (z^2 + p1 - 1) / (2*(z-p1)*p2)^(2+ @spower) + p1) + x elseif y > x z = sqr( (z^2 + p1 - 1) / (2*(z-p1)*p2)^(2+ @spower) + p1) + y endif elseif @mode == "Lambda" if x >= y z = @startseed * fn1(z) + x*z elseif y > x z = @startseed * fn1(z) + y*z endif elseif @mode == "Hopalong" if x >= y z = sqrt(abs(p2*z-c)) + |p1 - x| + c + x elseif y > x z = sqrt(abs(p2*z-c)) + |p1 - y| + c + y endif elseif @mode == "Lorenz" if x >= y z = z -c*((z-p1)*p2)^(2+ @spower) + (x-p1*x + p1*y)* (y+p1-y-(z-p1)*p2)^((2+ @spower)*x) + x elseif y > x z = ((z-p1)*p2)^(2+ @spower) -c*((z-p1)*p2)^(2+ @spower) + (x-p1*x + p1*y)* (y+p1-y-z*x) + y endif elseif @mode == "Newton" if x >= y z = (x)*((z-p1)*p2)^(@spower +1) + x + c elseif y > x z = (y)*((z-p1)*p2)^(@spower +1) + y + c endif elseif @mode == "Phoenix" if @spower >= 2 z = z^@spower + a*((z-p1)*p2)^(@spower - 1) + b * y elseif @spower <= -3 z = z^(-@spower) + a * ((z-p1)*p2)^(@spower - 2) + b * y elseif @spower > 3 || @spower < 2 z = z^2 + a + b * y endif elseif @mode == "Quat"; if x >= y z = sqr(z) - sqr(real(z)) - sqr(y) + c elseif y > x z = 2*x*x + flip(2*x*y) +c endif elseif @mode == "Sierpinski" if y > x z = y + 1/(2*x-1) elseif y>=x z = 2*x-1 + 1/(2*y) endif elseif @mode == "Spider" if y > x z = sqr((z-p1)*p2)^(2+ @spower) + c + ((z-p1)*p2)^(2+ @spower) + x elseif y>=x z = sqr((z-p1)*p2)^(2+ @spower) + c + ((z-p1)*p2)^(2+ @spower) + y endif endif if @op == "+" ;Comment "Splash" This yield fish like curves and discontinuous almost ;water diffracted circles z = z^@power /fn1( z ^ fn1(x^3 + y ^3) + fn2(x)^fn2(z) - fn3(27 * y +7) + c ^ z) elseif @op == "-" ;Comment "Caves and Curves" This yields discontinuous cave like formations ; on one hand and curvy almost wispy tendrils on the other. z = z^@power /7* fn1( z ^ fn2(x^3 + y ^3)) - fn3(x)* fn3(z - fn3(y) * c ^ z) elseif @op == "*" ;Comment "Wisps" Similar to the Caves and Curves alternate shapes, these ;come in tendrils and wisps. There are a few spirals as well. z = z^@power * fn1( z ^ fn2(x^3 + y ^3)) - fn3(x)* fn3(z - fn3(y) * c ^ z) elseif @op == "/" ;Comment "Curves and Lines" This yields more curves and lines than the others z = z ^ fn1(@power/z) + fn2(z*fn1(y)) - fn3(fn2(z)/ fn3(x)) + c elseif @op == "^" ;Atan, Floor, Cosh, shows an interesting squared off spiral. Others ;are wispy lines. z = fn1(z^@power +z) +z^fn2(3+ fn1(x^3 - y^3)) + fn3(fn2(x) + fn3(y)^ c) elseif @op == "sin" ;Many dolphin like shapes, manta ray shapes, and other curvy figures z = z^@power + sin( z)^fn1(x^3 - y ^3) + fn2(z) + fn3(x-c) elseif @op == "sinh" ;Triangular shapes, no apparent spirals z = fn1(z^@power ^sinh( z)) +fn2(fn1(x^3 - y^3)) + fn3(fn2(x)) + c elseif @op == "asin" ;Vertical "pod" shape z = fn1(z^@power +asin( z))* z^(3+ fn2(x^3 - z))* fn3(12*x) + c elseif @op == "asinh" ;More curves and swirls - no apparent spirals z = fn1(z^@power) * fn2(asinh(z^c)+ fn1(x^3 - y^3)) + fn2(x) + fn3(y) + c elseif @op == "cos" z = z^@power +cos( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) ;Spirals and curves elseif @op == "cosh" ;Open one side smooth \, one side jagged areas, swilrs, etc. z = fn1(z^@power+cosh(z))*fn1(x^3 - y ^3) + fn2((x) + fn3(y)) + c elseif @op == "acos" z = z^@power +acos( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c) elseif @op == "acosh" z = z^@power +acosh( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c) elseif @op == "tan" ;Many ir|z|ular open areas and swirls z = fn1(z^@power+tan( z))*(x^3 - y^3) + fn2(fn2(x) + fn3(y)) + c elseif @op == "atan" ;Spiral at sin,ident,ident Many arrow head shapes and other irregular patterns z = z^@power*fn1(atan(z))^3 - fn2(x - y^3) + fn3(fn2(z*x)) + c elseif @op == "tanh" z = fn1(z)*@power/tanh(z) + c^fn3(fn2(x)) + y ;Swirls and Curves elseif @op == "atanh" ;Interesting different spirals at sin,ident,ident & sin, tanh, exp z = atanh(z)^fn1(x)^z + y^fn2(x) + z^fn3(y)- c elseif @op == "cotan" ;Sparkle spiral z = z^@power +cotan( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) elseif @op == "cotanh" ;Complex sprays and textures z = z^fn1(z) +fn2(cotanh(@power^z))^fn1(x)*z^y + fn3(x-c) elseif @op == "sqr" ;Ropes and fractured psuedo-spirals z = x+z^@power - y^sqr(z)/fn1(x^3) + fn2(x)^c + fn3(y)/c-z elseif @op == "sqrt" ;Good spirals at cabs,cos, acosh,..flip,..atanh z = z^(@power*sqrt(z)) - fn1(x)^ fn2(y)/fn3(c-x) elseif @op == "log" ; Square Spirals z = z^@power +log( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) elseif @op == "exp" ;Square spirals z = z^@power +exp( z)^(3+ fn1(x^3 - y ^3) + fn2(12*x) + fn3(27 * y +7)- c ) elseif @op == "abs" ;Structural types of shapes and figures - architectural z = fn1(@power*(x)+ fn2(abs(x^3 / y ^c)) * fn3(fn2(12*x)) ^ fn3(27 * y +7)) elseif @op == "cabs" ;Interesting shapes and spirals esp. cosh,,. Best spiral at exp,cosh,ident z = z^@power + cabs(z)^fn1(x) + fn2(y) *fn3(c) elseif @op == "conj" ;Interesting Mountain-like shapes z = fn1(z^@power) + fn1(conj(z))^y+fn2(fn2(x)/fn3(y)) + c elseif @op == "flip" ;Floral "petals" and shapes z = (z-x^c)^@power +flip(c+z)^y+ fn1(c)/fn2(x)^fn3(z-y/z) elseif @op == "ident" ;Spiral at cab, conj, asin, plus other shapes and forms z = z^(z-@power/x) + ident(z-c/y)^x * fn1(c-x+z/y) / (fn2(x-c)\ + fn3(y- c)) elseif @op == "zero" ;Curves and swirls z = z^(z-@power/x) + zero(z)- fn1((z-c/y)^x * fn2(c-x+z/y) / fn3(x-c)) elseif @op == "recip" ;Shark shapes, feather spiral at canj, atanh. ident z = fn3(x^@power*z) + fn2(z^(z-c))/fn1((z)^fn2(x)-fn3(recip(y))) elseif @op == "ceil" ;Many different shapes and lines z = fn1(z)^ceil(y)*fn1(fn2(z-c)*c^x) + y ^ fn3(fn1(x-3)/y)-c elseif @op == "floor" ;Many different shaped spirals ans swirls. Examples log/atanh,idenmt,ident ;and a jagged spiral at sqrt/flip,ident,ident z = z^@power +floor(z)^(fn1(c) + fn2(x) + fn3(y)- c) elseif @op == "trunc" ;Many interesting spirals and fomrs at trunc, (many), ident z = z^@power +fn1(trunc( z)^(fn1(c) * fn2(x)) + fn3(y - c )) elseif @op == "round" ;Covered Hex spiral at acos,ident,ident, great variations at other acos, ;(others), ident. Acos, recip ident is most different. z = z^@power +fn1(round( z)^fn1(y)) * fn2(fn2(x) + fn3(y)- c)/fn3(x/y^c) endif if @inv == true z = 1/z else z = z endif if @zpix == true z = #pixel/z^2 else z = z endif if @func3 == true z = fn4(@fn5(@fn6((z-@p5)*@p6))) else z = z endif if @func3z == true z = z^2 + fn4(@fn5(@fn6((z-@p5)*@p6))) else z = z endif if @ez == true z = e^z else z = z endif if @zpi == true z = z^#pi else z = z endif if @ztopidivzpi == true z = z^#pi/(z*#pi) else z = z endif if @zpidivztopi == true z = z*#pi/(z^#pi) else z = z endif bailout: (@bailchoice == 0 && |z| <= @bailout) || \ (@bailchoice == 1 && real(sqr(z)) <= @bailout) || \ (@bailchoice == 2 && imag(sqr(z)) <= @bailout) || \ (@bailchoice == 3 && sqr(real(z)) <= @bailout) || \ (@bailchoice == 4 && sqr(imag(z)) <= @bailout) || \ (@bailchoice == 5 && (sqr(real(z)) <= @bailout && sqr(imag(z)) < @bailout)) || \ (@bailchoice == 6 && (sqr(real(z)) <= @bailout || sqr(imag(z)) < @bailout)) || \ (@bailchoice == 7 && (sqr(abs(real(z)) + abs(imag(z))) <= @bailout)) || \ (@bailchoice == 8 && (sqr(real(z) + imag(z)) <= @bailout)) default: title = "WispsandSpirals" angle = 0.01 center = (-0.2931114095,-0.198590489) magn = 0.92708333 periodicity = 0 param bailout caption = "Bailout value" default = 4.0 min = 1.0 endparam param power caption = "Power" default = (-1.25,0) endparam heading caption = "Switch Parameters" visible = @show endheading param mode2 caption = "Current Mode" enum = "Mandelbrot""Julia" default = 1 enabled = false endparam param SwitchMode caption = "Switch to" enum = "Mandelbrot""Julia" default = 0 enabled = false visible = false endparam param @show caption = "Switch Parameters" default = false endparam float param swscale caption = "Scale" default = 1 visible = @show hint = "Changes the scale of the image in the switch window" endparam complex param swcenter caption = "Switch Center" default = (0,0) visible = @show hint = "Changes the centering of the image in the switch window" endparam float param scale caption = "Scale Reset" default = 1 visible = @show hint = "If you changed the 'Scale' parmeter while using the switch \ reset this value to 1 after switching for accurate display of the \ magnification value on the Location tab" endparam complex param center caption = "Center Reset" default = (0,0) visible = @show hint = "If you changed the 'Switch Center' parmeter while using the switch \ reset this value to 0,0 after switching for accurate display of the \ center values on the Location tab" endparam heading caption = "Tweaker Functions" endheading bool param func3 caption = "Fn3(Fn2(Fn1(Z)))" default = false endparam bool param func3z;Added caption = "Z+Fn3(Fn2(Fn1(Z)))" default = false endparam func fn4 caption = "Function 4" default = sin() visible = @func3 == true || @func3z ==true endfunc func fn5 caption = "Function 5" default = ident() visible = @func3 == true || @func3z ==true endfunc func fn6 caption = "Function 6" default = ident() visible = @func3 == true || @func3z ==true endfunc bool param func3z;Added caption = "Z+Fn3(Fn2(Fn1(Z)))" default = false endparam param @p5 caption = "Tweaker Param 5" default = (0,0) visible = @func3 == true || @func3z ==true endparam param @p6 caption = "Tweaker Param 6" default = (1,0) visible = @func3 == true || @func3z ==true endparam heading Caption = "Misc. Dabblers" endheading bool param inv caption = "Invert Z" default = false endparam bool param ez caption = "Euler times Z" default = false endparam bool param zpix caption = "Z/Pixel Squared" default = false endparam bool param zpi caption = "Pi times Z" default = false endparam bool param ztopidivzpi caption = "Z^Pi/Z*Pi" default = false endparam bool param zpidivztopi caption = "Z*Pi/Z^Pi" default = false endparam heading caption = "Affectors" endheading param op caption = "Operator" enum = "+""-""*""/""^""sin""sinh""asin""asinh"\ "cos""cosh""acos""acosh""tan""tanh""atan""atanh"\ "cotan""cotanh""sqr""sqrt""log""exp"\ "abs""cabs""conj""flip""ident""zero""recip" \ "ceil""floor""trunc" "round" default = 21 endparam param ztweaker caption = "Z Tweaker" enum = "z=orig""z=z+c""z=z+x""z=z+y""z=z+g"\ "z=z*c""z=z*x""z=z*y""z=z*g""z=z/c""z=z/x""z=z/g"\ "z=z/c+z""z=z/x+z""z=z/c+c""z=z/x+c"\ "z=z/g+c""z=z-c""z=z-x""z=z-g""z=c-z""z=x-z"\ "z=g-z""z=z/c-z""z=z/x-z""z=z/g-z""z=z/c-c""z=z/x-c"\ "z=z/g-c""z=z-z/c""z=z-z/x""z=z-z/g""z=c-z/c"\ "z=c-z/x""z=c-z/g""z=c/z""z=x/z""z=g/z""z*z+c""z*c+z"\ "ezz""ez/z""exz""ex/z""eyz""ey/z""z/1-z""z/1-x""z/1-y"\ "zpi""zpi/z""z^pi/z^z""zpixel""z/pixelz"\ "z/zpixel""z^pixel/z+pixel""ez/zpixel""z/pixel""piz/pixel"\ "piz/zpixel""z-zpixel""ez/pixel""z+zpixel"\ "c/ez""z+c/g""x+z/y+c""g^z-c""z-x+y/x-y""g/c-z"\ "y+c/g""x+y/y+c""g^y-c""y-x+y/x-y""g/c-y"\ "g/c-x""g^x-c""x+c/g""c/ex" default = 0 endparam param mode caption = "Affector Mode" default = 0 enum = "Julia/Mandelbrot""Barnsley1""Barnsley2""Barnsley3""\ ComplexMarks""FrothyBasin""GingerBread""Magnet""lambda"\ "Hopalong""Lorenz""Newton""Phoenix""Quat""Sierpinski"\ "Spider" endparam float param spower caption = "SPower" default = 0 visible = @mode == "Phoenix" || @mode == "Newton"||\ @mode == "Lorenz" ||@mode == "Magnet"|| \ @mode == "ComplexMarks" ||@mode == "Spider" endparam param bailchoice caption = "Bailout Choice" default = 0 enum = "0=|z|" "1=Real(Z^2)""2=Imag(Z^2)""3=Real(Z)^2""4=Imag(Z)^2"\ "5=Real & Imag""6=Real or Imag""7=Sqr(Abs(Real&Imag)" "8=Sqr(Real&Imag)" endparam heading caption = "Functions" endheading func fn1 caption = "Function 1" default = ident() endfunc func fn2 caption = "Function 2" default = ident() endfunc func fn3 caption = "Function 3" default = ident() endfunc heading caption = "Parameters" endheading param startseed caption= "Startseed Parameter" default = (-1.25,0) endparam param p1 caption = "Parameter 1 for Affector" default = (0,0) visible = @mode != "Julia/Mandelbrot" endparam param p2 caption = "Parameter 2 for Affector" default = (1,0) visible = @mode != "Julia/Mandelbrot" endparam Heading caption = "If blanks-set version<2.0" visible = false endheading param version caption = "Version" default = 2.0 visible = false endparam switch: type = "WispsandSpirals" a = @a b = @b bailchoice = @bailchoice bailout = @bailout btype = @btype fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 fn4 = @fn4 fn5 = @fn5 fn6 = @fn6 func1 = @func1 func2 = @func2 func3 = @func3 func3z = @func3z g = @g h = @h inv = @inv op = @op mode = @mode power = @power p1 = @p1 p2 = @p2 spower = @spower startseed = #pixel x = @x y = @y ztweaker = @ztweaker mode2=@switchmode switchmode=@mode2 center=@swcenter scale=@swscale zpix = @zpix } NewJulMan { ; By Dolf De Rovira ; Version 2.0 8-2004 ; Combination of a Newton and Julia/Mandelbrot switch, ; with additional functions. G tweaker from ; Toby Marshall. init: int iter = 0 int i = 0 c = #pixel g = #pixel if @mode2 == "Mandelbrot" z = @startseed c = #pixel endif if @mode2 == "Julia" z = #pixel c = @startseed if @scale != 1.0 z = z/@scale endif if @center != (0.0,0.0) z = z + @center endif endif loop: x = real(z) y = imag(z) If @g =="Pixel" g = #pixel Elseif @g == "Real" g = real(#pixel) Elseif @g == "Imag" g = imag(#pixel) Elseif @g == "Modulus" g = |pixel| Elseif @g == "Atan2" g = atan2(#pixel) Endif z = @fn0(z) zold = z if @formchoice == "1" z = @fn00(@r*z-fn1(z^@p1*c-z*z-1)/fn2(@power*z*z-3*z) + (@cad*c/100)) elseif @formchoice == "2" z = @fn00(@r*z-fn1(z^@p1*c-(z*z-1))/fn2(@power*z*z-3*z) + (@cad*c/100)) elseif @formchoice == "3" z = @fn00(@r*z-fn1(z^@p1*(c-z)*z-1)/fn2(@power*z*z-3*z) + (@cad*c/100)) elseif @formchoice == "4" z = @fn00(@r*z-fn1(z^@p1*c-z*z-1)/fn2(@power*z*z)-3*z + (@cad*c/100)) elseif @formchoice == "5" z = @fn00(@r*z+fn1(z^@p1*c-z*z-1)/fn2(@power*z*z)-3*z + (@cad*c/100)) elseif @formchoice == "6" z = @fn00(@r*z/fn1(z^@p1*c-z*z-1)/fn2(@power*z*z)-3*z + (@cad*c/100)) elseif @formchoice == "7" z = @fn00(@r*z^fn1(z^@p1*c-z*z-1)/fn2(@power*z*z)-3*z + (@cad*c/100)) endif if @itereffect == true iter = iter + 1 x = real(z) + @fn5(real(@startseed)) y = imag(z) + @fn6(imag(@startseed)) newx = y newy = x i = 0 while i < @iterend i = i + 1 newx = y + @fn5(c) newy = x - @fn6(c) endwhile x = x - real(@i1)*@fn5(newx) - imag(@i1)*@fn6(newx) y = y + real(@i1)*@fn5(newy) + imag(@i1)*@fn6(newy) z = x - flip(y) endif if @ztweaker == "z=orig" z = fn3(z) elseif @ztweaker == "z=z*c" z = fn3(z) * fn4(c) elseif @ztweaker == "z=z*x" z = fn3(z) * fn4(x) elseif @ztweaker == "z=z*y" z = fn3(z) * fn4(y) elseif @ztweaker == "z=z/x" z = fn3(z) / fn4(x) elseif @ztweaker == "z=z/g" z = fn3(z) / fn4(g) elseif @ztweaker == "z=z/c-z" z = fn3(z) / fn4(c) - fn4(z) elseif @ztweaker == "z=z/g-z" z = fn3(z) / fn4(g) - fn4(z) elseif @ztweaker == "z=z/x-c" z = fn3(z) / fn4(x) - fn4(c) elseif @ztweaker == "z=x/z" z = fn3(x) / fn4(z) elseif @ztweaker == "z*z+c" z = fn3(z) * fn4(z) + fn4(c) elseif @ztweaker == "z*c+z" z = fn3(z) * fn4(c) + fn4(z) elseif @ztweaker == "z=g/z" z = fn3(g) / fn4(z) elseif @ztweaker == "ezz" z = e^fn3(z)* fn4(z) elseif @ztweaker == "ez/z" z = e^fn3(z)/ fn4(z) elseif @ztweaker == "exz" z = e^fn3(x)* fn4(z) elseif @ztweaker == "eyz" z = e^fn3(y)* fn4(z) elseif @ztweaker == "z/1-z" z = fn3(z)/(1- fn4(z)) elseif @ztweaker == "z/1-x" z = fn3(z)/(1-fn4(x)) elseif @ztweaker == "z/1-y" z = fn3(z)/(1-fn4(y)) elseif @ztweaker == "zpi" z = fn3(z) ^ #pi elseif @ztweaker == "zpi/z" z = fn3(z) ^ #pi / fn4(z)^2 elseif @ztweaker == "z^pi/z^z" z = fn3(z) ^ #pi / fn4(z^z) elseif @ztweaker == "zpixel" z = fn4(fn3(z) * #pixel) elseif @ztweaker == "z^pixel/z+pixel" z = fn3(z) ^ #pixel /fn4(z) + pixel elseif @ztweaker == "ez/zpixel" z = e^fn3(z) /(fn4(z)+ #pixel) elseif @ztweaker == "ez/pixel" z = fn4(e^fn3(z) /#pixel) elseif @ztweaker == "piz/pixel" z = fn4(fn3(z)^#pi / #pixel) elseif @ztweaker == "piz/zpixel" z = fn3(z)^#pi /(fn4(z) + #pixel) elseif @ztweaker == "z-zpixel" z = fn4(fn3(z) - z*#pixel) elseif @ztweaker == "ez/pixel" z = fn4(e^fn3(z)/#pixel) endif if @cchange == "Orig" c = c^@expC elseif @cchange == "Real" c = real(c)^@expC elseif @cchange == "Imag" c = imag(c)^@expC elseif @cchange == "Sign" c = -c^@expC elseif @cchange == "Squared" c = c^2+@expC elseif @cchange == "Exponent" c = e^c^@expC elseif @cchange == "Inverse" c = 1 / c^@expC elseif @cchange == "Inv/Exp" c = 1 / e^c^@expC elseif @cchange == "C/Exp" c = c^@expC / e^c^@expC elseif @cchange == "SQRPixel" c = sqr(c)^@expC/3 elseif @cchange == "CPower" c = c^c^@expC elseif @cchange == "EPower" c = c^(e+c^@expC) elseif @cchange == "ZPower" c = c^z^@expC elseif @cchange == "CPower3" c = c^c^c^@expC elseif @cchange == "CFunction" c = c^@expC^((z-@p2)*@p3)^@fnc(2 + @p4) elseif @cchange == "Function" c = @fnc(c^@expC) endif bailout: |z - zold| >= 0.00001 default: title = "NewJulMan" maxiter = 100 periodicity = 0 center = (0, 0) magn = 1.5 heading caption = "Switch Parameters" endheading param mode2 caption = "Current Mode" enum = "Mandelbrot""Julia" default = 1 enabled = false endparam param SwitchMode caption = "Switch to" enum = "Mandelbrot""Julia" default = 0 enabled = false visible = false endparam param show caption = "Switch Parameters" default = false visible = false endparam float param swscale caption = "Scale" default = 1 hint = "Changes the scale in the switch window" visible = @show && @mode2 == "Mandelbrot" endparam complex param swcenter caption = "Switch Center" default = (0,0) hint = "Changes the center in the switch window" visible = @show && @mode2 == "Mandelbrot" endparam float param scale caption = "Scale Reset" default = 1 hint = "If you changed the 'Scale' value before switching you should \ reset this value to 1 in the Julia for the data in the 'Location' \ tab to be accurate" visible = @show && @mode2 == "Julia" endparam complex param center caption = "Center Reset" default = (0,0) hint = "If you changed the 'Scale' value before switching you should \ reset this value to (0,0) in the Julia for the data in the 'Location' \ tab to be accurate" visible = @show && @mode2 == "Julia" endparam heading caption = "Formula Choice" endheading Param Formchoice enum = "1""2""3""4""5""6""7" default = 0 endparam heading caption = "Functions" endheading func fn00 caption = "Global Function" default = ident() endfunc func fn0 caption = "Main Z Function" default = ident() endfunc func fn1 caption = "Function 1" default = asin() endfunc func fn2 caption = "Function 2" default = ident() endfunc heading caption = "Parameters" endheading bool param itereffect caption = "Iteration Effect" default = false endparam param i1 caption = "Iteration Param 1" default = (-0.3,0.8) visible = @itereffect == true endparam param i2 Caption = "Iteration Param 2" default = 2.0 visible = @itereffect == true endparam param iterend caption = "Iteration Scope" default = 0 visible = @itereffect == true endparam param p1 Caption = "Parameter 1" default = 3.0 endparam param power caption = "Exponent" default = (3,0) endparam param r caption = "Factor" default = (1,0) endparam param startseed Caption = "Startseed" default = (0.2,2.0) endparam param ztweaker caption = "Z Tweaker" enum = "z=orig""z=z*c""z=z*x""z=z*y""z=z/x""z=z/g"\ "z=z/c-z""z=z/g-z""z=z/x-c""z=x/z""z=g/z""z*z+c""z*c+z"\ "ezz""ez/z""exz""eyz""z/1-z""z/1-x""z/1-y"\ "zpi""zpi/z""z^pi/z^z""zpixel""z^pixel/z+pixel"\ "ez/zpixel""piz/pixel""piz/zpixel""z-zpixel""ez/pixel" default = 0 endparam param g caption = "G Tweaker" enum = "Pixel""Real""Imag""Modulus""Atan2" default = 1 endparam heading caption = "C Functions" endheading param cchange caption = "Nuance of C" enum = "Orig""Real""Imag""Sign""Squared"\ "Exponent""Inverse""Inv/Exp""C/Exp"\ "SQRPixel""CPower""EPower""ZPower"\ "CPower3""CFunction""Function" default = 0 endparam func fnc caption = "C Function" default = sinh() visible = @cchange == "Function" ||\ @cchange == "CFunction" endfunc float param expC caption = "Power of C" default = 1.0 endparam param p2 Caption = "CFunction Par.-1" default = 3.0 visible = @cchange == "CFunction" endparam param p3 Caption = "CFunction Par.-2" default = 3.0 visible = @cchange == "CFunction" endparam param p4 Caption = "CFunction Par.-3" default = 3.0 visible = @cchange == "CFunction" endparam param cad caption = "C Factor" default = 0.00 endparam func fn3 caption = "Function 3" default = ident() visible = @ztweaker != "z=orig" endfunc func fn4 caption = "Function 4" default = ident() visible = @ztweaker != "z=orig" endfunc func fn5 caption = "Iter Function 5" default = sqrt() visible = @itereffect == true endfunc func fn6 caption = "Iter Function 6" default = conj() visible = @itereffect == true endfunc Heading caption = "If blanks-set version<2.0" visible = false endheading param version caption = "Version" default = 2.0 visible = false endparam switch: type = "NewJulMan" fn0 = @fn0 fn00 = @fn00 fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 fn4 = @fn4 fn5 = @fn5 fn6 = @fn6 power = @power p1 = @p1 p2 = @p2 p3 = @p3 p4 = @p4 startseed = #pixel ztweaker = @ztweaker r = @r x = @x y = @y g = @g i1 = @i1 i2 = @i2 iterend = @iterend itereffect = @itereffect mode2=@switchmode switchmode=@mode2 center=@swcenter scale=@swscale cchange = @cchange fnc = @fnc expC = @expC formchoice = @formchoice cad = @cad } LatticeMJI{ ; Version 2.0 ; Switchable Mandelbrot Julia with an iterative c value. ; And some of my old favorite tweakers. global: int i = 0 init: z = @startseed c = #pixel oldi = i newi = 0 if @mode2 == "Mandelbrot" ;z = @startseed z = (0.0,0.0) c = #pixel endif if @mode2 == "Julia" z = #pixel c = @startseed if @scale != 1.0 z = z/@scale endif endif loop: z = fn1(z^@power) + fn2(c) + @a newi = oldi + newi c = newi * c oldi = newi g = real(#pixel) x = real(z) if @ztweaker == "z=orig" z = fn3(z) elseif @ztweaker == "z=z*x" z = fn3(z) * fn4(x) elseif @ztweaker == "z=z/g" z = fn3(z) / fn4(g) elseif @ztweaker == "z=z/g-z" z = fn3(z) / fn4(g) - fn4(z) elseif @ztweaker == "z*z+c" z = fn3(z) * fn4(z) + fn4(c) elseif @ztweaker == "ezz" z = e^fn3(z)* fn4(z) elseif @ztweaker == "ez/z" z = e^fn3(z)/ fn4(z) elseif @ztweaker == "z/1-z" z = fn3(z)/(1- fn4(z)) elseif @ztweaker == "zpi" z = fn3(z) ^ #pi elseif @ztweaker == "zpi/z" z = fn3(z) ^ #pi / fn4(z)^2 elseif @ztweaker == "z^pi/z^z" z = fn3(z) ^ #pi / fn4(z^z) elseif @ztweaker == "zpixel" z = fn4(fn3(z) * #pixel) elseif @ztweaker == "z^pixel/z+pixel" z = fn3(z) ^ #pixel /fn4(z) + pixel elseif @ztweaker == "ez/zpixel" z = e^fn3(z) /(fn4(z)+ #pixel) elseif @ztweaker == "piz/pixel" z = fn4(fn3(z)^#pi / #pixel) elseif @ztweaker == "piz/zpixel" z = fn3(z)^#pi /(fn4(z) + #pixel) elseif @ztweaker == "z-zpixel" z = fn4(fn3(z) - z*#pixel) elseif @ztweaker == "ez/pixel" z = fn4(e^fn3(z)/#pixel) endif bailout: |z| <= @bailout default: title = "LatticeMJI" magn = 0.75 center = (0, 0) periodicity = 0 heading caption = "Switch Parameters" endheading param mode2 caption = "Current Mode" enum = "Mandelbrot""Julia" default = 0 enabled = false endparam param SwitchMode caption = "Switch to" enum = "Mandelbrot""Julia" default = 1 enabled = false visible = false endparam param show caption = "Switch Parameters" default = false visible = false endparam float param swscale caption = "Scale" default = 1 hint = "Changes the scale in the switch window" visible = @show && @mode2 == "Mandelbrot" endparam complex param swcenter caption = "Switch Center" default = (0,0) hint = "Changes the center in the switch window" visible = @show && @mode2 == "Mandelbrot" endparam float param scale caption = "Scale Reset" default = 1 hint = "If you changed the 'Scale' value before switching you should \ reset this value to 1 in the Julia for the data in the 'Location' \ tab to be accurate" visible = @show && @mode2 == "Julia" endparam complex param center caption = "Center Reset" default = (0,0) hint = "If you changed the 'Scale' value before switching you should \ reset this value to (0,0) in the Julia for the data in the 'Location' \ tab to be accurate" visible = @show && @mode2 == "Julia" endparam heading caption = "Parameters" endheading param startseed caption = "Start/Seed" default = (0,0) endparam param power caption = "Power" default = (2,0) hint = "This defines the power of the Mandelbrot set. Use (2,0) \ for the standard Mandelbrot set." endparam param a caption = "Parameter Adjuster" default = 0.0 endparam float param bailout caption = "Bailout value" default = 4.0 min = 0 endparam param ztweaker caption = "Z Tweaker" enum = "z=orig""z=z*x""z=z/g""z=z/g-z""z=g/z""z*z+c"\ "ezz""ez/z""z/1-z""zpi""zpi/z""z^pi/z^z""zpixel"\ "z^pixel/z+pixel""ez/zpixel""piz/pixel"\ "piz/zpixel""z-zpixel""ez/pixel" default = 0 endparam func fn1 caption = "Function 1" default = tan() endfunc func fn2 caption = "Function 2" default = ident() endfunc func fn3 caption = "Function 3" default = ident() visible = @ztweaker != "z=orig" endfunc func fn4 caption = "Function 4" default = ident() visible = @ztweaker != "z=orig" endfunc param version caption = "Version" default = 2.0 visible = false endparam switch: type = "LatticeMJI" power = @power bailout = @bailout a = @a b = @b g = @g x = @x fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 fn4 = @fn4 startseed = #pixel mode2=@switchmode switchmode=@mode2 center=@swcenter scale=@swscale ztweaker = @ztweaker version = @version }