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: z = (1 * 3 - (p4 )^ ((fn1 ( 3 * z * p2 )- ((fn2 ( 4 ^ \ (fn1 ( 3 - (3 - (z / p1 )+ #random ))))))))) + (p3)*fn1(c) 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 seed caption = "Seed" default = (-1.25,0) visible = @p3 < 0 || @p3 > 0 endparam heading caption = "Functions" endheading func fn1 caption = "Function 1" default = recip() endfunc func fn2 caption = "Function 2" default = trunc() endfunc float param bailout caption = "Bail-out value" hint = "This is the bail-out value" default = 8.9999999999999 endparam } ========================================================== drandom2 { ; A Randomly Generated Fractal Formula ; 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: z = z ^ z + fn1 ( p3 / (z ^ fn2 ( 3 + (z - p5 )+ \ (p6 )+ p4 )+ 3 ^ 4 )) + fn1(p2) * fn2(c) bailout: |z| <= @bailout default: title = "drandom2" periodicity = 0 param p2 caption = "C Multiplier" 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 = (1,0) endparam complex param p6 caption = "Param 6" default = (1,0) endparam param seed caption = "Seed" default = (-1.25,0) visible = @p2 < 0 || @p2 > 0 endparam heading caption = "Functions" endheading func fn1 caption = "Function 1" default = ident() endfunc func fn2 caption = "Function 2" default = ident() endfunc float param bailout caption = "Bail-out value" hint = "This is the bail-out value" default = 4.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 Fracta (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 @ztweaker == "z=orig" z = z elseif @ztweaker == "z=z+x" z = fn1(z) + fn2(x) elseif @ztweaker == "z=z+y" z = fn1(z) + fn2(y) 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(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 == "ey/z" 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)) endif if @cchange == "Orig" c = c elseif @cchange == "Squared" c = c^2+@expC elseif @cchange == "Exponent" c = e^c^@expC elseif @cchange == "Inv/Exp" c = 1 / e^c^@expC elseif @cchange == "SQRPixel" c = sqr(pixel)/3 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 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 param seed caption= "Julia seed" default = (0,0) endparam heading caption = "Functions" endheading func fn1 caption = "Function 1" default = sqr() endfunc func fn2 caption = "Function 2" default = round() endfunc param ztweaker caption = "Z Tweaker" enum = "z=orig""z=z+x""z=z+y""z=z-x""z=z-g"\ "z*z+c""z*c+z""ezz""ez/z""ey/z"\ "z/1-z""z/1-x""z/1-y" default = 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 cchange caption = "Nuance of C" enum = "Orig""Squared""Exponent""Inv/Exp""SQRPixel" default = 0 endparam float param expC caption = "Power of C" default = 1.0 endparam switch: type = "JosephMandelbrot" p1 = #pixel p2 = @p2 bailout = @bailout fn1 = @fn1 fn2 = @fn2 op = @op ztweaker = @ztweaker x = @x y = @y g = @g expC = @expC bailchoice = @bailchoice cchange = @cchange } JosephMandelbrot{ ; 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 Fracta (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(@seed) if @cchange == "Orig" c = c elseif @cchange == "Squared" c = c^2+@expC elseif @cchange == "Exponent" c = e^c^@expC elseif @cchange == "Inv/Exp" c = 1 / e^c^@expC elseif @cchange == "SQRPixel" c = sqr(pixel)/3 endif if @ztweaker == "z=orig" z = z elseif @ztweaker == "z=z+x" z = fn1(z) + fn2(x) elseif @ztweaker == "z=z+y" z = fn1(z) + fn2(y) 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(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 == "ey/z" 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)) 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 int param bailout caption = "Bailout value" default = 16 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 complex param p1 caption = "Param 1" default = (0,0) endparam complex param p2 caption = "Param 2" default = (0,0) endparam heading caption = "Functions" endheading func fn1 caption = "Function 1" default = exp() endfunc func fn2 caption = "Function 2" default = tanh() endfunc param ztweaker caption = "Z Tweaker" enum = "z=orig""z=z+x""z=z+y""z=z-x""z=z-g"\ "z*z+c""z*c+z""ezz""ez/z""ey/z"\ "z/1-z""z/1-x""z/1-y" default = 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 cchange caption = "Nuance of C" enum = "Orig""Squared""Exponent""Inv/Exp""SQRPixel" default = 0 endparam float param expC caption = "Power of C" default = 1.0 endparam switch: type = "JosephJulia" p1 = @p1 p2 = @p2 seed = #pixel bailout = @bailout fn1 = @fn1 fn2 = @fn2 op = @op ztweaker = @ztweaker bailchoice = @bailchoice expC = @expC ccahnge = @cchange } ============================================================== JuliaPlus4 { ; Version 2.0 Added ztweaker ; By Dolf De Rovira With help from Toby Marsahll 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 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: |z| <= @bailout default: title = "Julia Plus 4" periodicity = 0 param bailout caption = "Bailout value" default = 4.0 min = 1.0 endparam param seed caption= "Julia seed" default = (-1.25,0) endparam param power caption = "Power" default = (2,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" 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 switch: type = "MandelbrotPlus4" bailout = bailout op = @op fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 power = #pixel ztweaker = @ztweaker } ============================================================= 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(@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 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: |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 start caption= "Start" default = (1,0) endparam param power caption = "Power" default = (2,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" default = 0 endparam heading caption = "Functions" endheading func fn1 caption = "Function 1" default = sqr() endfunc func fn2 caption = "Function 2" default = ident() endfunc func fn3 caption = "Function 3" default = ident() endfunc switch: type = "JuliaPlus4" seed = pixel bailout = @bailout fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 op = @op power = @power ztweaker = @ztweaker } ============================================================= 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 @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 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 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 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 } ======================================================== 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 @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 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 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 switch: type = "Julia21804" p3 = @p3 p4 = #pixel p5 = @p5 p6 = @p6 bailout = @bailout fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 fn4 = @fn4 op = @op } 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) if @mode == true x = real(c) y = imag(c) endif loop: 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: |z| <= @bailout default: title = "Spirogenesis-JuliaVariant" angle = 270.001 periodicity = 0 param bailout caption = "Bailout value" default = 4.0 min = 1.0 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 heading caption = "Functions" endheading func fn1 caption = "Function 1" default = ident() endfunc func fn2 caption = "Function 2" default = ident() endfunc func fn3 caption = "Function 3" default = ident() endfunc switch: type = "MandelbrotVariant" bailout = bailout op = @op fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 power = #pixel mode = @mode } 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) loop: 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: |z| <= @bailout default: title = "Spirogenesis-MandelbrotVariant" periodicity = 0 angle = 270.001 heading caption = "Parameters" endheading int param bailout caption = "Bailout value" default = 32 min = 1 max = 122 endparam 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 heading caption = "Functions" endheading func fn1 caption = "Function 1" default = sin() endfunc func fn2 caption = "Function 2" default = ident() endfunc func fn3 caption = "Function 3" default = ident() endfunc switch: type = "JuliaVariant" seed = pixel bailout = @bailout fn1 = @fn1 fn2 = @fn2 fn3 = @fn3 op = @op power = @power mode = @mode } SaddleReignsJulia { ; Saddle Inspired Julia ; By Dolf De Rovira Original Date 5-20-04 ; Version 3.4 Expanded zweaker. ; 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 orginal 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 == "fn(z^(2+power))" z = z elseif @style == "fn(x-y)" z = fn1((z-p1)*p2) + fn2(x-y) - c elseif @style == "(fn(y-x))" z = fn1((z-p1)*p2)+ fn2(y-x) - c elseif @style =="(fn(x^2-y^2))" z = fn1(z-p1)*p2 + fn2(y^2-x^2) - c elseif @style == "fn(y-x)" z = fn1(z-p1)*p2+ fn2(y-x) - c elseif @style =="fn(x^2-y^2)" z = fn1(z-p1)*p2+ fn2(y^2-x^2) - 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 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 = 100 visible = false 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 = "fn(z^(2+power))""fn(x-y)""fn(y-x)"\ "fn(x^2-y^2)""(fn(y-x))" "(fn(x^2-y^2))" 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 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" 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 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 } 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 == "fn(z^(2+power))" z = z elseif @style == "fn(x-y)" z = fn1((z-p1)*p2) + fn2(x-y) - c elseif @style == "(fn(y-x))" z = fn1((z-p1)*p2)+ fn2(y-x) - c elseif @style =="(fn(x^2-y^2))" z = fn1(z-p1)*p2 + fn2(y^2-x^2) - c elseif @style == "fn(y-x)" z = fn1(z-p1)*p2+ fn2(y-x) - c elseif @style =="fn(x^2-y^2)" z = fn1(z-p1)*p2+ fn2(y^2-x^2) - 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=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*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 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 == "+" ;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 visible = false 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 = "fn(z^(2+power))""fn(x-y)""fn(y-x)"\ "fn(x^2-y^2)""(fn(y-x))" "(fn(x^2-y^2))" 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" 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 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 } Mandelbrot/Julia100{ ; By Dolf De Rovira Origianlly 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, Affector 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 visible = false endparam heading caption = "Functions" endheading func fn1 caption = "Function 1" default = ident() endfunc func fn2 caption = "Function 2" default = ident() endfunc func fn3 caption = "Function 3" default = ident() endfunc func fn4 caption = "Function 4" default = ident() endfunc 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 which 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, baliout, 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 orginal 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 wasadapted 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 comverted the orignal ; 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 }