jam-ftriangular { ; jam 010601 ; The "polygonal functions" are functions I defined using power series ; whose coefficients are based on the polygonal (figurate) numbers. ; The triangular numbers are 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... ; The square numbers are 1, 4, 9, 16, ... ; The pentagonal numbers are 1, 5, 12, 22, 35, 51, 70, ... ; I defined four flavors of each function, depending on whether the polygonal ; numbers are used as is (g-functions) or as their factorials (f-functions), ; and whether or not the terms in the series alternate in sign, for example: ; ftriangular(z) = z + z^3/3! + z^6/6! + z^10/10! + z^15/15! +... ; gtriangular(z) = z + z^3/3 + z^6/6 + z^10/10 + z^15/15 +... ; altftriangular(z) = z - z^3/3! + z^6/6! - z^10/10! + z^15/15! -... ; altgtriangular(z) = z - z^3/3 + z^6/6 - z^10/10 + z^15/15 -... global: float factorial3 = 6.0 float factorial6 = 720.0 float factorial10 = 3628800.0 float factorial15 = 1.307674368000e12 float factorial21 = 5.1090942171709440000e19 complex c3 = 1/factorial3, complex c6 = 1/factorial6, complex c10 = 1/factorial10 complex c15 = 1/factorial15, complex c21 = 1/factorial21 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z3 = z*z*z, z6 = z3*z3, z10 = z6*z3*z, z15 = z6*z6*z3, z21 = z15*z6 z = z + c3*z3 + c6*z6 + c10*z10 + c15*z15 + c21*z21 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z+jc bailout: |z| < @bail default: title = "TriangFunc1" center = (0,0) maxiter = 200 periodicity = 0 method = multipass param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the polygonal function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-ftriangular-J" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower jconstant = #pixel bail = bail } jam-ftriangular-J { ; jam 010601 ; The "polygonal functions" are functions I defined using power series ; whose coefficients are based on the polygonal (figurate) numbers. ; The triangular numbers are 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... ; The square numbers are 1, 4, 9, 16, ... ; The pentagonal numbers are 1, 5, 12, 22, 35, 51, 70, ... ; I defined four flavors of each function, depending on whether the polygonal ; numbers are used as is (g-functions) or as their factorials (f-functions), ; and whether or not the terms in the series alternate in sign, for example: ; ftriangular(z) = z + z^3/3! + z^6/6! + z^10/10! + z^15/15! +... ; gtriangular(z) = z + z^3/3 + z^6/6 + z^10/10 + z^15/15 +... ; altftriangular(z) = z - z^3/3! + z^6/6! - z^10/10! + z^15/15! -... ; altgtriangular(z) = z - z^3/3 + z^6/6 - z^10/10 + z^15/15 -... global: float factorial3 = 6.0 float factorial6 = 720.0 float factorial10 = 3628800.0 float factorial15 = 1.307674368000e12 float factorial21 = 5.1090942171709440000e19 complex c3 = 1/factorial3, complex c6 = 1/factorial6, complex c10 = 1/factorial10 complex c15 = 1/factorial15, complex c21 = 1/factorial21 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z3 = z*z*z, z6 = z3*z3, z10 = z6*z3*z, z15 = z6*z6*z3, z21 = z15*z6 z = z + c3*z3 + c6*z6 + c10*z10 + c15*z15 + c21*z21 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z+jc bailout: |z| < @bail default: title = "TriangFunc1 Julia" center = (0,0) maxiter = 200 periodicity = 0 method = multipass param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-ftriangular" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower perturbation = #pixel bail = bail } jam-altftriangular { ; jam 010601 ; The "polygonal functions" are functions I defined using power series ; whose coefficients are based on the polygonal (figurate) numbers. ; The triangular numbers are 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... ; The square numbers are 1, 4, 9, 16, ... ; The pentagonal numbers are 1, 5, 12, 22, 35, 51, 70, ... ; I defined four flavors of each function, depending on whether the polygonal ; numbers are used as is (g-functions) or as their factorials (f-functions), ; and whether or not the terms in the series alternate in sign, for example: ; ftriangular(z) = z + z^3/3! + z^6/6! + z^10/10! + z^15/15! +... ; gtriangular(z) = z + z^3/3 + z^6/6 + z^10/10 + z^15/15 +... ; altftriangular(z) = z - z^3/3! + z^6/6! - z^10/10! + z^15/15! -... ; altgtriangular(z) = z - z^3/3 + z^6/6 - z^10/10 + z^15/15 -... global: float factorial3 = 6.0 float factorial6 = 720.0 float factorial10 = 3628800.0 float factorial15 = 1.307674368000e12 float factorial21 = 5.1090942171709440000e19 complex c3 = -1/factorial3, complex c6 = 1/factorial6, complex c10 = -1/factorial10 complex c15 = 1/factorial15, complex c21 = -1/factorial21 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z3 = z*z*z, z6 = z3*z3, z10 = z6*z3*z, z15 = z6*z6*z3, z21 = z15*z6 z = z + c3*z3 + c6*z6 + c10*z10 + c15*z15 + c21*z21 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z+jc bailout: |z| < @bail default: title = "TriangAltFunc1" center = (0,0) maxiter = 200 periodicity = 0 method = multipass param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-altftriangular-J" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower jconstant = #pixel bail = bail } jam-altftriangular-J { ; jam 010601 ; The "polygonal functions" are functions I defined using power series ; whose coefficients are based on the polygonal (figurate) numbers. ; The triangular numbers are 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... ; The square numbers are 1, 4, 9, 16, ... ; The pentagonal numbers are 1, 5, 12, 22, 35, 51, 70, ... ; I defined four flavors of each function, depending on whether the polygonal ; numbers are used as is (g-functions) or as their factorials (f-functions), ; and whether or not the terms in the series alternate in sign, for example: ; ftriangular(z) = z + z^3/3! + z^6/6! + z^10/10! + z^15/15! +... ; gtriangular(z) = z + z^3/3 + z^6/6 + z^10/10 + z^15/15 +... ; altftriangular(z) = z - z^3/3! + z^6/6! - z^10/10! + z^15/15! -... ; altgtriangular(z) = z - z^3/3 + z^6/6 - z^10/10 + z^15/15 -... global: float factorial3 = 6.0 float factorial6 = 720.0 float factorial10 = 3628800.0 float factorial15 = 1.307674368000e12 float factorial21 = 5.1090942171709440000e19 complex c3 = -1/factorial3, complex c6 = 1/factorial6, complex c10 = -1/factorial10 complex c15 = 1/factorial15, complex c21 = -1/factorial21 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z3 = z*z*z, z6 = z3*z3, z10 = z6*z3*z, z15 = z6*z6*z3, z21 = z15*z6 z = z + c3*z3 + c6*z6 + c10*z10 + c15*z15 + c21*z21 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z+jc bailout: |z| < @bail default: title = "TriangAltFunc1 Julia" center = (0,0) maxiter = 200 periodicity = 0 method = multipass param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-altftriangular" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower perturbation = #pixel bail = bail } jam-gtriangular { ; jam 010601 ; The "polygonal functions" are functions I defined using power series ; whose coefficients are based on the polygonal (figurate) numbers. ; The triangular numbers are 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... ; The square numbers are 1, 4, 9, 16, ... ; The pentagonal numbers are 1, 5, 12, 22, 35, 51, 70, ... ; I defined four flavors of each function, depending on whether the polygonal ; numbers are used as is (g-functions) or as their factorials (f-functions), ; and whether or not the terms in the series alternate in sign, for example: ; ftriangular(z) = z + z^3/3! + z^6/6! + z^10/10! + z^15/15! +... ; gtriangular(z) = z + z^3/3 + z^6/6 + z^10/10 + z^15/15 +... ; altftriangular(z) = z - z^3/3! + z^6/6! - z^10/10! + z^15/15! -... ; altgtriangular(z) = z - z^3/3 + z^6/6 - z^10/10 + z^15/15 -... global: complex c3 = 1/3, complex c6 = 1/6, complex c10 = 0.1 complex c15 = 1/15, complex c21 = 1/21 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z3 = z*z*z, z6 = z3*z3, z10 = z6*z3*z, z15 = z6*z6*z3, z21 = z15*z6 z = z + c3*z3 + c6*z6 + c10*z10 + c15*z15 + c21*z21 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "TriangFunc2" center = (0,0) maxiter = 200 periodicity = 0 method = multipass param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-gtriangular-J" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower jconstant = #pixel bail = bail } jam-gtriangular-J { ; jam 010601 ; The "polygonal functions" are functions I defined using power series ; whose coefficients are based on the polygonal (figurate) numbers. ; The triangular numbers are 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... ; The square numbers are 1, 4, 9, 16, ... ; The pentagonal numbers are 1, 5, 12, 22, 35, 51, 70, ... ; I defined four flavors of each function, depending on whether the polygonal ; numbers are used as is (g-functions) or as their factorials (f-functions), ; and whether or not the terms in the series alternate in sign, for example: ; ftriangular(z) = z + z^3/3! + z^6/6! + z^10/10! + z^15/15! +... ; gtriangular(z) = z + z^3/3 + z^6/6 + z^10/10 + z^15/15 +... ; altftriangular(z) = z - z^3/3! + z^6/6! - z^10/10! + z^15/15! -... ; altgtriangular(z) = z - z^3/3 + z^6/6 - z^10/10 + z^15/15 -... global: complex c3 = 1/3, complex c6 = 1/6, complex c10 = 0.1 complex c15 = 1/15, complex c21 = 1/21 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z3 = z*z*z, z6 = z3*z3, z10 = z6*z3*z, z15 = z6*z6*z3, z21 = z15*z6 z = z + c3*z3 + c6*z6 + c10*z10 + c15*z15 + c21*z21 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "TriangFunc2 Julia" center = (0,0) maxiter = 200 periodicity = 0 method = multipass param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-gtriangular" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower perturbation = #pixel bail = bail } jam-altgtriangular { ; jam 010601 ; The "polygonal functions" are functions I defined using power series ; whose coefficients are based on the polygonal (figurate) numbers. ; The triangular numbers are 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... ; The square numbers are 1, 4, 9, 16, ... ; The pentagonal numbers are 1, 5, 12, 22, 35, 51, 70, ... ; I defined four flavors of each function, depending on whether the polygonal ; numbers are used as is (g-functions) or as their factorials (f-functions), ; and whether or not the terms in the series alternate in sign, for example: ; ftriangular(z) = z + z^3/3! + z^6/6! + z^10/10! + z^15/15! +... ; gtriangular(z) = z + z^3/3 + z^6/6 + z^10/10 + z^15/15 +... ; altftriangular(z) = z - z^3/3! + z^6/6! - z^10/10! + z^15/15! -... ; altgtriangular(z) = z - z^3/3 + z^6/6 - z^10/10 + z^15/15 -... global: complex c3 = -1/3, complex c6 = 1/6, complex c10 = -0.1 complex c15 = 1/15, complex c21 = -1/21 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z3 = z*z*z, z6 = z3*z3, z10 = z6*z3*z, z15 = z6*z6*z3, z21 = z15*z6 z = z + c3*z3 + c6*z6 + c10*z10 + c15*z15 + c21*z21 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "TriangAltFunc2" center = (0,0) maxiter = 200 periodicity = 0 method = multipass param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-altgtriangular-J" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower jconstant = #pixel bail = bail } jam-altgtriangular-J { ; jam 010601 ; The "polygonal functions" are functions I defined using power series ; whose coefficients are based on the polygonal (figurate) numbers. ; The triangular numbers are 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... ; The square numbers are 1, 4, 9, 16, ... ; The pentagonal numbers are 1, 5, 12, 22, 35, 51, 70, ... ; I defined four flavors of each function, depending on whether the polygonal ; numbers are used as is (g-functions) or as their factorials (f-functions), ; and whether or not the terms in the series alternate in sign, for example: ; ftriangular(z) = z + z^3/3! + z^6/6! + z^10/10! + z^15/15! +... ; gtriangular(z) = z + z^3/3 + z^6/6 + z^10/10 + z^15/15 +... ; altftriangular(z) = z - z^3/3! + z^6/6! - z^10/10! + z^15/15! -... ; altgtriangular(z) = z - z^3/3 + z^6/6 - z^10/10 + z^15/15 -... global: complex c3 = -1/3, complex c6 = 1/6, complex c10 = -0.1 complex c15 = 1/15, complex c21 = -1/21 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z3 = z*z*z, z6 = z3*z3, z10 = z6*z3*z, z15 = z6*z6*z3, z21 = z15*z6 z = z + c3*z3 + c6*z6 + c10*z10 + c15*z15 + c21*z21 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "TriangAltFunc2 Julia" center = (0,0) maxiter = 200 periodicity = 0 method = multipass param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-altgtriangular" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower perturbation = #pixel bail = bail } jam-fsquare { ; jam 010601 ; The "polygonal functions" are functions I defined using power series ; whose coefficients are based on the polygonal (figurate) numbers. ; The triangular numbers are 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... ; The square numbers are 1, 4, 9, 16, ... ; The pentagonla numbers are 1, 5, 12, 22, 35, 51, 70, ... ; I defined four flavors of each function, depending on whether the polygonal ; numbers are used as is (g-functions) or as their factorials (f-functions), ; and whether or not the terms in the series alternate in sign, for example: ; ftriangular(z) = z + z^3/3! + z^6/6! + z^10/10! + z^15/15! +... ; gtriangular(z) = z + z^3/3 + z^6/6 + z^10/10 + z^15/15 +... ; altftriangular(z) = z - z^3/3! + z^6/6! - z^10/10! + z^15/15! -... ; altgtriangular(z) = z - z^3/3 + z^6/6 - z^10/10 + z^15/15 -... global: float factorial4 = 24.0 float factorial9 = 362880 float factorial16 = 2.0922789888000e13 float factorial25 = 1.5511210043330985984e25 complex c4 = 1/factorial4, complex c9 = 1/factorial9 complex c16 = 1/factorial16, complex c25 = 1/factorial25 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z2 = z*z, z4 = z2*z2, z9 = z4*z4*z, z16 = z9*z4*z2*z, z25 = z9*z16 z = z + c4*z4 + c9*z9 + c16*z16 + c25*z25 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "SquareFunc1" center = (0,0) maxiter = 200 periodicity = 0 method = multipass param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-fsquare-J" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower jconstant = #pixel bail = bail } jam-fsquare-J { ; jam 010601 ; The "polygonal functions" are functions I defined using power series ; whose coefficients are based on the polygonal (figurate) numbers. ; The triangular numbers are 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... ; The square numbers are 1, 4, 9, 16, ... ; The pentagonal numbers are 1, 5, 12, 22, 35, 51, 70, ... ; I defined four flavors of each function, depending on whether the polygonal ; numbers are used as is (g-functions) or as their factorials (f-functions), ; and whether or not the terms in the series alternate in sign, for example: ; ftriangular(z) = z + z^3/3! + z^6/6! + z^10/10! + z^15/15! +... ; gtriangular(z) = z + z^3/3 + z^6/6 + z^10/10 + z^15/15 +... ; altftriangular(z) = z - z^3/3! + z^6/6! - z^10/10! + z^15/15! -... ; altgtriangular(z) = z - z^3/3 + z^6/6 - z^10/10 + z^15/15 -... global: float factorial4 = 24.0 float factorial9 = 362880 float factorial16 = 2.0922789888000e13 float factorial25 = 1.5511210043330985984e25 complex c4 = 1/factorial4, complex c9 = 1/factorial9 complex c16 = 1/factorial16, complex c25 = 1/factorial25 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z2 = z*z, z4 = z2*z2, z9 = z4*z4*z, z16 = z9*z4*z2*z, z25 = z9*z16 z = z + c4*z4 + c9*z9 + c16*z16 + c25*z25 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "SquareFunc1 Julia" center = (0,0) maxiter = 200 periodicity = 0 method = multipass param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-fsquare" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower perturbation = #pixel bail = bail } jam-altfsquare { ; jam 010601 ; The "polygonal functions" are functions I defined using power series ; whose coefficients are based on the polygonal (figurate) numbers. ; The triangular numbers are 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... ; The square numbers are 1, 4, 9, 16, ... ; The pentagonal numbers are 1, 5, 12, 22, 35, 51, 70, ... ; I defined four flavors of each function, depending on whether the polygonal ; numbers are used as is (g-functions) or as their factorials (f-functions), ; and whether or not the terms in the series alternate in sign, for example: ; ftriangular(z) = z + z^3/3! + z^6/6! + z^10/10! + z^15/15! +... ; gtriangular(z) = z + z^3/3 + z^6/6 + z^10/10 + z^15/15 +... ; altftriangular(z) = z - z^3/3! + z^6/6! - z^10/10! + z^15/15! -... ; altgtriangular(z) = z - z^3/3 + z^6/6 - z^10/10 + z^15/15 -... global: float factorial4 = 24.0 float factorial9 = 362880 float factorial16 = 2.0922789888000e13 float factorial25 = 1.5511210043330985984e25 complex c4 = -1/factorial4, complex c9 = 1/factorial9 complex c16 = -1/factorial16, complex c25 = 1/factorial25 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z2 = z*z, z4 = z2*z2, z9 = z4*z4*z, z16 = z9*z4*z2*z, z25 = z9*z16 z = z + c4*z4 + c9*z9 + c16*z16 + c25*z25 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "SquareAltFunc1" center = (0,0) maxiter = 200 periodicity = 0 method = multipass param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-altfsquare-J" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower jconstant = #pixel bail = bail } jam-altfsquare-J { ; jam 010601 ; The "polygonal functions" are functions I defined using power series ; whose coefficients are based on the polygonal (figurate) numbers. ; The triangular numbers are 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... ; The square numbers are 1, 4, 9, 16, ... ; The pentagonal numbers are 1, 5, 12, 22, 35, 51, 70, ... ; I defined four flavors of each function, depending on whether the polygonal ; numbers are used as is (g-functions) or as their factorials (f-functions), ; and whether or not the terms in the series alternate in sign, for example: ; ftriangular(z) = z + z^3/3! + z^6/6! + z^10/10! + z^15/15! +... ; gtriangular(z) = z + z^3/3 + z^6/6 + z^10/10 + z^15/15 +... ; altftriangular(z) = z - z^3/3! + z^6/6! - z^10/10! + z^15/15! -... ; altgtriangular(z) = z - z^3/3 + z^6/6 - z^10/10 + z^15/15 -... global: float factorial4 = 24.0 float factorial9 = 362880 float factorial16 = 2.0922789888000e13 float factorial25 = 1.5511210043330985984e25 complex c4 = -1/factorial4, complex c9 = 1/factorial9 complex c16 = -1/factorial16, complex c25 = 1/factorial25 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z2 = z*z, z4 = z2*z2, z9 = z4*z4*z, z16 = z9*z4*z2*z, z25 = z9*z16 z = z + c4*z4 + c9*z9 + c16*z16 + c25*z25 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "SquareAltFunc1 Julia" center = (0,0) maxiter = 200 periodicity = 0 method = multipass param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-altfsquare" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower perturbation = #pixel bail = bail } jam-gsquare { ; jam 010601 ; The "polygonal functions" are functions I defined using power series ; whose coefficients are based on the polygonal (figurate) numbers. ; The triangular numbers are 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... ; The square numbers are 1, 4, 9, 16, ... ; The pentagonal numbers are 1, 5, 12, 22, 35, 51, 70, ... ; I defined four flavors of each function, depending on whether the polygonal ; numbers are used as is (g-functions) or as their factorials (f-functions), ; and whether or not the terms in the series alternate in sign, for example: ; ftriangular(z) = z + z^3/3! + z^6/6! + z^10/10! + z^15/15! +... ; gtriangular(z) = z + z^3/3 + z^6/6 + z^10/10 + z^15/15 +... ; altftriangular(z) = z - z^3/3! + z^6/6! - z^10/10! + z^15/15! -... ; altgtriangular(z) = z - z^3/3 + z^6/6 - z^10/10 + z^15/15 -... global: complex c4 = 0.25, complex c9 = 1/9 complex c16 = 1/16, complex c25 = 0.04 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z2 = z*z, z4 = z2*z2, z9 = z4*z4*z, z16 = z9*z4*z2*z, z25 = z9*z16 z = z + c4*z4 + c9*z9 + c16*z16 + c25*z25 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "SquareFunc2" center = (0,0) maxiter = 200 periodicity = 0 method = multipass param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-gsquare-J" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower jconstant = #pixel bail = bail } jam-gsquare-J { ; jam 010601 ; The "polygonal functions" are functions I defined using power series ; whose coefficients are based on the polygonal (figurate) numbers. ; The triangular numbers are 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... ; The square numbers are 1, 4, 9, 16, ... ; The pentagonal numbers are 1, 5, 12, 22, 35, 51, 70, ... ; I defined four flavors of each function, depending on whether the polygonal ; numbers are used as is (g-functions) or as their factorials (f-functions), ; and whether or not the terms in the series alternate in sign, for example: ; ftriangular(z) = z + z^3/3! + z^6/6! + z^10/10! + z^15/15! +... ; gtriangular(z) = z + z^3/3 + z^6/6 + z^10/10 + z^15/15 +... ; altftriangular(z) = z - z^3/3! + z^6/6! - z^10/10! + z^15/15! -... ; altgtriangular(z) = z - z^3/3 + z^6/6 - z^10/10 + z^15/15 -... global: complex c4 = 0.25, complex c9 = 1/9 complex c16 = 1/16, complex c25 = 0.04 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z2 = z*z, z4 = z2*z2, z9 = z4*z4*z, z16 = z9*z4*z2*z, z25 = z9*z16 z = z + c4*z4 + c9*z9 + c16*z16 + c25*z25 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "SquareFunc2 Julia" center = (0,0) maxiter = 200 periodicity = 0 method = multipass param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-gsquare" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower perturbation = #pixel bail = bail } jam-altgsquare { ; jam 010601 ; The "polygonal functions" are functions I defined using power series ; whose coefficients are based on the polygonal (figurate) numbers. ; The triangular numbers are 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... ; The square numbers are 1, 4, 9, 16, ... ; The pentagonal numbers are 1, 5, 12, 22, 35, 51, 70, ... ; I defined four flavors of each function, depending on whether the polygonal ; numbers are used as is (g-functions) or as their factorials (f-functions), ; and whether or not the terms in the series alternate in sign, for example: ; ftriangular(z) = z + z^3/3! + z^6/6! + z^10/10! + z^15/15! +... ; gtriangular(z) = z + z^3/3 + z^6/6 + z^10/10 + z^15/15 +... ; altftriangular(z) = z - z^3/3! + z^6/6! - z^10/10! + z^15/15! -... ; altgtriangular(z) = z - z^3/3 + z^6/6 - z^10/10 + z^15/15 -... global: complex c4 = -0.25, complex c9 = 1/9 complex c16 = -1/16, complex c25 = 0.04 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z2 = z*z, z4 = z2*z2, z9 = z4*z4*z, z16 = z9*z4*z2*z, z25 = z9*z16 z = z + c4*z4 + c9*z9 + c16*z16 + c25*z25 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "SquareAltFunc2" center = (0,0) maxiter = 200 periodicity = 0 method = multipass param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-altgsquare-J" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower jconstant = #pixel bail = bail } jam-altgsquare-J { ; jam 010601 ; The "polygonal functions" are functions I defined using power series ; whose coefficients are based on the polygonal (figurate) numbers. ; The triangular numbers are 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... ; The square numbers are 1, 4, 9, 16, ... ; The pentagonal numbers are 1, 5, 12, 22, 35, 51, 70, ... ; I defined four flavors of each function, depending on whether the polygonal ; numbers are used as is (g-functions) or as their factorials (f-functions), ; and whether or not the terms in the series alternate in sign, for example: ; ftriangular(z) = z + z^3/3! + z^6/6! + z^10/10! + z^15/15! +... ; gtriangular(z) = z + z^3/3 + z^6/6 + z^10/10 + z^15/15 +... ; altftriangular(z) = z - z^3/3! + z^6/6! - z^10/10! + z^15/15! -... ; altgtriangular(z) = z - z^3/3 + z^6/6 - z^10/10 + z^15/15 -... global: complex c4 = -0.25, complex c9 = 1/9 complex c16 = -1/16, complex c25 = 0.04 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z2 = z*z, z4 = z2*z2, z9 = z4*z4*z, z16 = z9*z4*z2*z, z25 = z9*z16 z = z + c4*z4 + c9*z9 + c16*z16 + c25*z25 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "SquareAltFunc2 Julia" center = (0,0) maxiter = 200 periodicity = 0 method = multipass param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-altgsquare" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower perturbation = #pixel bail = bail } jam-fpentagonal { ; jam 010601 ; The "polygonal functions" are functions I defined using power series ; whose coefficients are based on the polygonal (figurate) numbers. ; The triangular numbers are 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... ; The square numbers are 1, 4, 9, 16, ... ; The pentagonal numbers are 1, 5, 12, 22, 35, 51, 70, ... ; I defined four flavors of each function, depending on whether the polygonal ; numbers are used as is (g-functions) or as their factorials (f-functions), ; and whether or not the terms in the series alternate in sign, for example: ; ftriangular(z) = z + z^3/3! + z^6/6! + z^10/10! + z^15/15! +... ; gtriangular(z) = z + z^3/3 + z^6/6 + z^10/10 + z^15/15 +... ; altftriangular(z) = z - z^3/3! + z^6/6! - z^10/10! + z^15/15! -... ; altgtriangular(z) = z - z^3/3 + z^6/6 - z^10/10 + z^15/15 -... global: float factorial5 = 120.0 float factorial12 = 4.79001600e08 float factorial22 = 1.12400072777760768e21 float factorial35 = 1.0333147966386144929666651337523e+40 complex c5 = 1/factorial5, complex c12 = 1/factorial12 complex c22 = 1/factorial22, complex c35 = 1/factorial35 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z2 = z*z, z4 = z2*z2, z5 = z4*z, z12 = z5*z5*z2, z22 = z5*z12*z5, z35 = z22*z12*z z = z + c5*z5 + c12*z12 + c22*z22 + c35*z35 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "PentagonalFunc1" center = (0,0) maxiter = 200 periodicity = 0 method = multipass param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-fpentagonal-J" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower jconstant = #pixel bail = bail } jam-fpentagonal-J { ; jam 010601 ; The "polygonal functions" are functions I defined using power series ; whose coefficients are based on the polygonal (figurate) numbers. ; The triangular numbers are 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... ; The square numbers are 1, 4, 9, 16, ... ; The pentagonal numbers are 1, 5, 12, 22, 35, 51, 70, ... ; I defined four flavors of each function, depending on whether the polygonal ; numbers are used as is (g-functions) or as their factorials (f-functions), ; and whether or not the terms in the series alternate in sign, for example: ; ftriangular(z) = z + z^3/3! + z^6/6! + z^10/10! + z^15/15! +... ; gtriangular(z) = z + z^3/3 + z^6/6 + z^10/10 + z^15/15 +... ; altftriangular(z) = z - z^3/3! + z^6/6! - z^10/10! + z^15/15! -... ; altgtriangular(z) = z - z^3/3 + z^6/6 - z^10/10 + z^15/15 -... global: float factorial5 = 120.0 float factorial12 = 4.79001600e08 float factorial22 = 1.12400072777760768e21 float factorial35 = 1.0333147966386144929666651337523e+40 complex c5 = 1/factorial5, complex c12 = 1/factorial12 complex c22 = 1/factorial22, complex c35 = 1/factorial35 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z2 = z*z, z4 = z2*z2, z5 = z4*z, z12 = z5*z5*z2, z22 = z5*z12*z5, z35 = z22*z12*z z = z + c5*z5 + c12*z12 + c22*z22 + c35*z35 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "PentagonalFunc1 Julia" center = (0,0) maxiter = 200 periodicity = 0 method = multipass param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-fpentagonal" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower perturbation = #pixel bail = bail } jam-altfpentagonal { ; jam 010601 ; The "polygonal functions" are functions I defined using power series ; whose coefficients are based on the polygonal (figurate) numbers. ; The triangular numbers are 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... ; The square numbers are 1, 4, 9, 16, ... ; The pentagonal numbers are 1, 5, 12, 22, 35, 51, 70, ... ; I defined four flavors of each function, depending on whether the polygonal ; numbers are used as is (g-functions) or as their factorials (f-functions), ; and whether or not the terms in the series alternate in sign, for example: ; ftriangular(z) = z + z^3/3! + z^6/6! + z^10/10! + z^15/15! +... ; gtriangular(z) = z + z^3/3 + z^6/6 + z^10/10 + z^15/15 +... ; altftriangular(z) = z - z^3/3! + z^6/6! - z^10/10! + z^15/15! -... ; altgtriangular(z) = z - z^3/3 + z^6/6 - z^10/10 + z^15/15 -... global: float factorial5 = 120.0 float factorial12 = 4.79001600e08 float factorial22 = 1.12400072777760768e21 float factorial35 = 1.0333147966386144929666651337523e+40 complex c5 = -1/factorial5, complex c12 = 1/factorial12 complex c22 = -1/factorial22, complex c35 = 1/factorial35 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z2 = z*z, z4 = z2*z2, z5 = z4*z, z12 = z5*z5*z2, z22 = z5*z12*z5, z35 = z22*z12*z z = z + c5*z5 + c12*z12 + c22*z22 + c35*z35 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "PentagonalAltFunc1" center = (0,0) maxiter = 200 periodicity = 0 method = multipass param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-altfpentagonal-J" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower jconstant = #pixel bail = bail } jam-altfpentagonal-J { ; jam 010601 ; The "polygonal functions" are functions I defined using power series ; whose coefficients are based on the polygonal (figurate) numbers. ; The triangular numbers are 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... ; The square numbers are 1, 4, 9, 16, ... ; The pentagonal numbers are 1, 5, 12, 22, 35, 51, 70, ... ; I defined four flavors of each function, depending on whether the polygonal ; numbers are used as is (g-functions) or as their factorials (f-functions), ; and whether or not the terms in the series alternate in sign, for example: ; ftriangular(z) = z + z^3/3! + z^6/6! + z^10/10! + z^15/15! +... ; gtriangular(z) = z + z^3/3 + z^6/6 + z^10/10 + z^15/15 +... ; altftriangular(z) = z - z^3/3! + z^6/6! - z^10/10! + z^15/15! -... ; altgtriangular(z) = z - z^3/3 + z^6/6 - z^10/10 + z^15/15 -... global: float factorial5 = 120.0 float factorial12 = 4.79001600e08 float factorial22 = 1.12400072777760768e21 float factorial35 = 1.0333147966386144929666651337523e+40 complex c5 = -1/factorial5, complex c12 = 1/factorial12 complex c22 = -1/factorial22, complex c35 = 1/factorial35 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z2 = z*z, z4 = z2*z2, z5 = z4*z, z12 = z5*z5*z2, z22 = z5*z12*z5, z35 = z22*z12*z z = z + c5*z5 + c12*z12 + c22*z22 + c35*z35 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "PentagonalAltFunc1 Julia" center = (0,0) maxiter = 200 periodicity = 0 method = multipass param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-altfpentagonal" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower perturbation = #pixel bail = bail } jam-gpentagonal { ; jam 010601 ; The "polygonal functions" are functions I defined using power series ; whose coefficients are based on the polygonal (figurate) numbers. ; The triangular numbers are 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... ; The square numbers are 1, 4, 9, 16, ... ; The pentagonal numbers are 1, 5, 12, 22, 35, 51, 70, ... ; I defined four flavors of each function, depending on whether the polygonal ; numbers are used as is (g-functions) or as their factorials (f-functions), ; and whether or not the terms in the series alternate in sign, for example: ; ftriangular(z) = z + z^3/3! + z^6/6! + z^10/10! + z^15/15! +... ; gtriangular(z) = z + z^3/3 + z^6/6 + z^10/10 + z^15/15 +... ; altftriangular(z) = z - z^3/3! + z^6/6! - z^10/10! + z^15/15! -... ; altgtriangular(z) = z - z^3/3 + z^6/6 - z^10/10 + z^15/15 -... global: complex c5 = 0.2, complex c12 = 1/12 complex c22 = 1/22, complex c35 = 1/35 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z2 = z*z, z4 = z2*z2, z5 = z4*z, z12 = z5*z5*z2, z22 = z5*z12*z5, z35 = z22*z12*z z = z + c5*z5 + c12*z12 + c22*z22 + c35*z35 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "PentagonalFunc2" center = (0,0) maxiter = 200 periodicity = 0 method = multipass param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-gpentagonal-J" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower jconstant = #pixel bail = bail } jam-gpentagonal-J { ; jam 010601 ; The "polygonal functions" are functions I defined using power series ; whose coefficients are based on the polygonal (figurate) numbers. ; The triangular numbers are 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... ; The square numbers are 1, 4, 9, 16, ... ; The pentagonal numbers are 1, 5, 12, 22, 35, 51, 70, ... ; I defined four flavors of each function, depending on whether the polygonal ; numbers are used as is (g-functions) or as their factorials (f-functions), ; and whether or not the terms in the series alternate in sign, for example: ; ftriangular(z) = z + z^3/3! + z^6/6! + z^10/10! + z^15/15! +... ; gtriangular(z) = z + z^3/3 + z^6/6 + z^10/10 + z^15/15 +... ; altftriangular(z) = z - z^3/3! + z^6/6! - z^10/10! + z^15/15! -... ; altgtriangular(z) = z - z^3/3 + z^6/6 - z^10/10 + z^15/15 -... global: complex c5 = 0.2, complex c12 = 1/12 complex c22 = 1/22, complex c35 = 1/35 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z2 = z*z, z4 = z2*z2, z5 = z4*z, z12 = z5*z5*z2, z22 = z5*z12*z5, z35 = z22*z12*z z = z + c5*z5 + c12*z12 + c22*z22 + c35*z35 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "PentagonalFunc2 Julia" center = (0,0) maxiter = 200 periodicity = 0 method = multipass param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-gpentagonal" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower perturbation = #pixel bail = bail } jam-altgpentagonal { ; jam 010601 ; The "polygonal functions" are functions I defined using power series ; whose coefficients are based on the polygonal (figurate) numbers. ; The triangular numbers are 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... ; The square numbers are 1, 4, 9, 16, ... ; The pentagonal numbers are 1, 5, 12, 22, 35, 51, 70, ... ; I defined four flavors of each function, depending on whether the polygonal ; numbers are used as is (g-functions) or as their factorials (f-functions), ; and whether or not the terms in the series alternate in sign, for example: ; ftriangular(z) = z + z^3/3! + z^6/6! + z^10/10! + z^15/15! +... ; gtriangular(z) = z + z^3/3 + z^6/6 + z^10/10 + z^15/15 +... ; altftriangular(z) = z - z^3/3! + z^6/6! - z^10/10! + z^15/15! -... ; altgtriangular(z) = z - z^3/3 + z^6/6 - z^10/10 + z^15/15 -... global: complex c5 = -0.2, complex c12 = 1/12 complex c22 = -1/22, complex c35 = 1/35 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z2 = z*z, z4 = z2*z2, z5 = z4*z, z12 = z5*z5*z2, z22 = z5*z12*z5, z35 = z22*z12*z z = z + c5*z5 + c12*z12 + c22*z22 + c35*z35 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "PentagonalAltFunc2" center = (0,0) maxiter = 200 periodicity = 0 method = multipass param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-altgpentagonal-J" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower jconstant = #pixel bail = bail } jam-altgpentagonal-J { ; jam 010601 ; The "polygonal functions" are functions I defined using power series ; whose coefficients are based on the polygonal (figurate) numbers. ; The triangular numbers are 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ... ; The square numbers are 1, 4, 9, 16, ... ; The pentagonal numbers are 1, 5, 12, 22, 35, 51, 70, ... ; I defined four flavors of each function, depending on whether the polygonal ; numbers are used as is (g-functions) or as their factorials (f-functions), ; and whether or not the terms in the series alternate in sign, for example: ; ftriangular(z) = z + z^3/3! + z^6/6! + z^10/10! + z^15/15! +... ; gtriangular(z) = z + z^3/3 + z^6/6 + z^10/10 + z^15/15 +... ; altftriangular(z) = z - z^3/3! + z^6/6! - z^10/10! + z^15/15! -... ; altgtriangular(z) = z - z^3/3 + z^6/6 - z^10/10 + z^15/15 -... global: complex c5 = -0.2, complex c12 = 1/12 complex c22 = -1/22, complex c35 = 1/35 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z2 = z*z, z4 = z2*z2, z5 = z4*z, z12 = z5*z5*z2, z22 = z5*z12*z5, z35 = z22*z12*z z = z + c5*z5 + c12*z12 + c22*z22 + c35*z35 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "PentagonalAltFunc2 Julia" center = (0,0) maxiter = 200 periodicity = 0 method = multipass param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-altgpentagonal" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower perturbation = #pixel bail = bail } jam-bernoulli2 { ; jam 010706 ; second order Bernoulli polynomial global: float sixth = 1/6 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z = sixth - z + z*z if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(2) Bernoulli Polynomial" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-bernoulli2-J" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower jconstant = #pixel bail = bail } jam-bernoulli2-J { ; jam 010706 ; second order Bernoulli polynomial global: float sixth = 1/6 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z = sixth - z + z*z if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(2) Bernoulli Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-bernoulli2" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } jam-bernoulli3 { ; jam 010706 ; third order Bernoulli polynomial init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z z = 0.5*z - 1.5*z2 + z2*z if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(3) Bernoulli Polynomial" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-bernoulli3-J" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower jconstant = #pixel bail = bail } jam-bernoulli3-J { ; jam 010706 ; third order Bernoulli polynomial init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z z = 0.5*z - 1.5*z2 + z2*z if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend bailout: |z| < @bail default: title = "O(3) Bernoulli Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-bernoulli3" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } jam-bernoulli4 { ; jam 010706 ; fourth order Bernoulli polynomial global: float thirtieth = -1/30 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z z = thirtieth + z2 - 2*z2*z + z2*z2 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(4) Bernoulli Polynomial" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-bernoulli4-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } jam-bernoulli4-J { ; jam 010706 ; fourth order Bernoulli polynomial global: float thirtieth = -1/30 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z z = thirtieth + z2 - 2*z2*z + z2*z2 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(4) Bernoulli Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-bernoulli4" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } jam-bernoulli5 { ; jam 010706 ; fifth order Bernoulli polynomial global: float sixth = -1/6, float fivethirds = 5/3 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z z = sixth*z + fivethirds*z3 - 2.5*z2*z2 + z2*z3 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(5) Bernoulli Polynomial" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-bernoulli5-J" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower jconstant = #pixel bail = bail } jam-bernoulli5-J { ; jam 010706 ; fifth order Bernoulli polynomial global: float sixth = -1/6, float fivethirds = 5/3 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z z = sixth*z + fivethirds*z3 - 2.5*z2*z2 + z2*z3 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(5) Bernoulli Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-bernoulli5" perturbation = #pixel blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower bail = bail } jam-bernoulli6 { ; jam 010706 ; sixth order Bernoulli polynomial global: float fortysecond = 1/42 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z z = fortysecond - 0.5*z2 + 2.5*z2*z2 - 3*z2*z3 + z3*z3 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(6) Bernoulli Polynomial" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-bernoulli6-J" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower jconstant = #pixel bail = bail } jam-bernoulli6-J { ; jam 010706 ; sixth order Bernoulli polynomial global: float fortysecond = 1/42 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z z = fortysecond - 0.5*z2 + 2.5*z2*z2 - 3*z2*z3 + z3*z3 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(6) Bernoulli Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-bernoulli6" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } jam-bernoulli7 { ; jam 010706 ; seventh order Bernoulli polynomial global: float sixth = 1/6, float sevensixths = -7*sixth init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z4 = z2*z2 z = sixth*z + sevensixths*z3 + 3.5*z2*z3 - 3.5*z3*z3 + z4*z3 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(7) Bernoulli Polynomial" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-bernoulli7-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } jam-bernoulli7-J { ; jam 010706 ; seventh order Bernoulli polynomial global: float sixth = 1/6, float sevensixths = -7*sixth init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z4 = z2*z2 z = sixth*z + sevensixths*z3 + 3.5*z2*z3 - 3.5*z3*z3 + z4*z3 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(7) Bernoulli Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-bernoulli7" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower perturbation = #pixel bail = bail } jam-bernoulli8 { ; jam 010706 ; eighth order Bernoulli polynomial global: float thirtieth = -1/30, float twothirds = 2/3, float seventhirds = -7/3, float fourteenthirds = 14/3 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z4 = z2*z2 z = thirtieth + twothirds*z2 + seventhirds*z4 + fourteenthirds*z3*z3 - 4*z3*z4 + z4*z4 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(8) Bernoulli Polynomial" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-bernoulli8-J" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower jconstant = #pixel bail = bail } jam-bernoulli8-J { ; jam 010706 ; eighth order Bernoulli polynomial global: float thirtieth = -1/30, float twothirds = 2/3, float seventhirds = -7/3, float fourteenthirds = 14/3 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z4 = z2*z2 z = thirtieth + twothirds*z2 + seventhirds*z4 + fourteenthirds*z3*z3 - 4*z3*z4 + z4*z4 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(8) Bernoulli Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-bernoulli8" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower perturbation = #pixel bail = bail } jam-bernoulli9 { ; jam 010706 ; ninth order Bernoulli polynomial init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z4 = z2*z2, complex z5 = z4 * z z = -0.3*z + 2*z3 - 4.2*z5 + 6*z3*z4 - 4.5*z4*z4 + z5*z4 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(9) Bernoulli Polynomial" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-bernoulli9-J" jconstant = #pixel blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower bail = bail } jam-bernoulli9-J { ; jam 010706 ; ninth order Bernoulli polynomial init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z4 = z2*z2, complex z5 = z4 * z z = -0.3*z + 2*z3 - 4.2*z5 + 6*z3*z4 - 4.5*z4*z4 + z5*z4 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(9) Bernoulli Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-bernoulli9" perturbation = #pixel blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower bail = bail } jam-bernoulli10 { ; jam 010706 ; tenth order Bernoulli polynomial global: float fivesixtysixths = 5/66 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z4 = z2*z2, complex z5 = z4 * z z = fivesixtysixths - 1.5*z2 + 5*z4 - 7*z3*z3 + 7.5*z4*z4 - 5*z5*z4 + z5*z5 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(10) Bernoulli Polynomial" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-bernoulli10-J" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower jconstant = #pixel bail = bail } jam-bernoulli10-J { ; jam 010706 ; tenth order Bernoulli polynomial global: float fivesixtysixths = 5/66 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z4 = z2*z2, complex z5 = z4 * z z = fivesixtysixths - 1.5*z2 + 5*z4 - 7*z3*z3 + 7.5*z4*z4 - 5*z5*z4 + z5*z5 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(10) Bernoulli Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-bernoulli10" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower perturbation = #pixel bail = bail } jam-bernoulli11 { ; jam 010706 ; eleventh order Bernoulli polynomial global: float fivesixths = 5/6, float fiftyfivesixths = 11*fivesixths init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z4 = z2*z2, complex z5 = z4 * z, complex z10 = z5*z5 z = fivesixths*z - 5.5*z3 + 11*z5 - 11*z3*z4 + fiftyfivesixths*z4*z5 - 5.5*z10 + z10*z if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(11) Bernoulli Polynomial" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-bernoulli11-J" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower jconstant = #pixel bail = bail } jam-bernoulli11-J { ; jam 010706 ; eleventh order Bernoulli polynomial global: float fivesixths = 5/6, float fiftyfivesixths = 11*fivesixths init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z4 = z2*z2, complex z5 = z4 * z, complex z10 = z5*z5 z = fivesixths*z - 5.5*z3 + 11*z5 - 11*z3*z4 + fiftyfivesixths*z4*z5 - 5.5*z10 + z10*z if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(11) Bernoulli Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-bernoulli11" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower perturbation = #pixel bail = bail } jam-bernoulli12 { ; jam 010706 ; twelveth order Bernoulli polynomial global: float c1 = -691/2730 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z4 = z2*z2, complex z5 = z4 * z, complex z6 = z3 * z3 z = c1 + 5*z2 - 16.5*z4 + 22*z6 - 16.5*z4*z4 + 11*z5*z5 - 6*z6*z5 + z6*z6 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(12) Bernoulli Polynomial" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-bernoulli12-J" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower jconstant = #pixel bail = bail } jam-bernoulli12-J { ; jam 010706 ; twelveth order Bernoulli polynomial global: float c1 = -691/2730 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z4 = z2*z2, complex z5 = z4 * z, complex z6 = z3 * z3 z = c1 + 5*z2 - 16.5*z4 + 22*z6 - 16.5*z4*z4 + 11*z5*z5 - 6*z6*z5 + z6*z6 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(12) Bernoulli Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-bernoulli12" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower perturbation = #pixel bail = bail } erf { ; jam 010604 ; Error function ; erf(z) = 2/sqrt(pi) * INTEGRAL[ e^-z^2 dz ] ; Series expansion to 6 terms. global: complex twobyrtpi = 2/( sqrt( #pi ) ) complex c3 = -1/3, complex c5 = 0.1, complex c7 = -1/42, complex c9 = 1/216 complex c11 = -1/1320 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z5 = z3*z2, complex z7 = z5*z2, complex z9 = z7*z2, complex z11 = z9*z2 z = twobyrtpi * ( z + c3*z3 + c5*z5 + c7*z7 + c9*z9 + c11*z11 ) if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Erf" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "erf-J" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower jconstant = #pixel bail = bail } erf-J { ; jam 010604 ; Error function ; erf(z) = 2/sqrt(pi) * INTEGRAL[ e^-z^2 dz ] ; Series expansion to 6 terms. global: complex twobyrtpi = 2/( sqrt( #pi ) ) complex c3 = -1/3, complex c5 = 0.1, complex c7 = -1/42, complex c9 = 1/216 complex c11 = -1/1320 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z5 = z3*z2, complex z7 = z5*z2, complex z9 = z7*z2, complex z11 = z9*z2 z = twobyrtpi * ( z + c3*z3 + c5*z5 + c7*z7 + c9*z9 + c11*z11 ) if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Erf Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "erf" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower perturbation = #pixel bail = bail } jam-exp1 { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( z ) + jc bailout: |z| < @bail default: title = "Exp" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp1-J" jconstant = #pixel bail = bail } jam-exp1-J { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( z ) + jc bailout: |z| < @bail default: title = "Exp Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp1" perturbation = #pixel bail = bail } jam-exp2 { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( -z ) + jc bailout: |z| < @bail default: title = "Exp(-z)" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp2-J" jconstant = #pixel bail = bail } jam-exp2-J { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( -z ) + jc bailout: |z| < @bail default: title = "Exp(-z) Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp2" perturbation = #pixel bail = bail } jam-exp3 { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( z*z ) + jc bailout: |z| < @bail default: title = "Exp(z^2)" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp3-J" jconstant = #pixel bail = bail } jam-exp3-J { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( z*z ) + jc bailout: |z| < @bail default: title = "Exp(z^2) Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp3" perturbation = #pixel bail = bail } jam-exp4 { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( -z*z ) + jc bailout: |z| < @bail default: title = "Exp(-z2)" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp4-J" jconstant = #pixel bail = bail } jam-exp4-J { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( -z*z ) + jc bailout: |z| < @bail default: title = "Exp(-z2) Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp4" perturbation = #pixel bail = bail } jam-exp5 { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( 1/z ) + jc bailout: |z| < @bail default: title = "Exp(1/z)" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp5-J" jconstant = #pixel bail = bail } jam-exp5-J { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( 1/z ) + jc bailout: |z| < @bail default: title = "Exp(1/z) Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp5" perturbation = #pixel bail = bail } jam-exp6 { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( -1/z ) + jc bailout: |z| < @bail default: title = "Exp(-1/z)" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp6-J" jconstant = #pixel bail = bail } jam-exp6-J { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( -1/z ) + jc bailout: |z| < @bail default: title = "Exp(-1/z) Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp6" perturbation = #pixel bail = bail } jam-exp7 { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( 1/(z*z) ) + jc bailout: |z| < @bail default: title = "Exp(1/z2)" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp7-J" jconstant = #pixel bail = bail } jam-exp7-J { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( 1/(z*z) ) + jc bailout: |z| < @bail default: title = "Exp(1/z2) Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp7" perturbation = #pixel bail = bail } jam-exp8 { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( -1/(z*z) ) + jc bailout: |z| < @bail default: title = "Exp(-1/z2)" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp8-J" jconstant = #pixel bail = bail } jam-exp8-J { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( -1/(z*z) ) + jc bailout: |z| < @bail default: title = "Exp(-1/z2) Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp8" perturbation = #pixel bail = bail } jam-exp9 { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( z + jc ) + jc bailout: |z| < @bail default: title = "Exp2jc" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp9-J" jconstant = #pixel bail = bail } jam-exp9-J { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( z + jc ) + jc bailout: |z| < @bail default: title = "Exp2jc Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp9" perturbation = #pixel bail = bail } jam-exp10 { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( -z + jc ) + jc bailout: |z| < @bail default: title = "Exp2jc(-z)" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp10-J" jconstant = #pixel bail = bail } jam-exp10-J { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( -z + jc ) + jc bailout: |z| < @bail default: title = "Exp2jc(-z) Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp10" perturbation = #pixel bail = bail } jam-exp11 { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( z*z + jc ) + jc bailout: |z| < @bail default: title = "Exp2jc(z^2)" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp11-J" jconstant = #pixel bail = bail } jam-exp11-J { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( z*z + jc ) + jc bailout: |z| < @bail default: title = "Exp2jc(z^2) Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp11" perturbation = #pixel bail = bail } jam-exp12 { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( -z*z + jc ) + jc bailout: |z| < @bail default: title = "Exp2jc(-z2)" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp12-J" jconstant = #pixel bail = bail } jam-exp12-J { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( -z*z + jc ) + jc bailout: |z| < @bail default: title = "Exp2jc(-z2) Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp12" perturbation = #pixel bail = bail } jam-exp13 { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( 1/z + jc ) + jc bailout: |z| < @bail default: title = "Exp2jc(1/z)" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp13-J" jconstant = #pixel bail = bail } jam-exp13-J { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( 1/z + jc ) + jc bailout: |z| < @bail default: title = "Exp2jc(1/z) Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp13" perturbation = #pixel bail = bail } jam-exp14 { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( -1/z + jc ) + jc bailout: |z| < @bail default: title = "Exp2jc(-1/z)" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp14-J" jconstant = #pixel bail = bail } jam-exp14-J { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( -1/z + jc ) + jc bailout: |z| < @bail default: title = "Exp2jc(-1/z) Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp14" perturbation = #pixel bail = bail } jam-exp15 { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( 1/(z*z) + jc ) + jc bailout: |z| < @bail default: title = "Exp2jc(1/z2)" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp15-J" jconstant = #pixel bail = bail } jam-exp15-J { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( 1/(z*z) + jc ) + jc bailout: |z| < @bail default: title = "Exp2jc(1/z2) Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp15" perturbation = #pixel bail = bail } jam-exp16 { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( -1/(z*z) + jc ) + jc bailout: |z| < @bail default: title = "Exp2jc(-1/z2)" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp16-J" jconstant = #pixel bail = bail } jam-exp16-J { ; jam 010806 ; Simple exponential function init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = exp( -1/(z*z) + jc ) + jc bailout: |z| < @bail default: title = "Exp2jc(-1/z2) Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-exp16" perturbation = #pixel bail = bail } jam-ExpIntE1 { ; jam 010813 ; The exponential integral E1(z) global: float euler = -0.5772156649015328 float c2 = -0.25, float c3 = 1/18, float c4 = -1/96, float c5 = 1/600 float c6 = -1/4320, float c7 = 1/35280, float c8 = -1/322560, float c9 = 1/3265920 float c10 = -1/36288000, float c11 = 1/439084800, float c12 = -1/(5.7480192e9) init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z, complex z5 = z4*z complex z6 = z5*z, complex z7 = z6*z, complex z8 = z7*z complex z9 = z8*z, complex z10 = z9*z, complex z11 = z10*z, complex z12 = z11*z z = euler - log(z) + z + c2*z2 + c3*z3 + c4*z4 + c5*z5 + c6*z6 + c7*z7 + c8*z8 + \ c9*z9 + c10*z10 + c11*z11 + c12*z12 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "E1(z) Exponential Integral" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (1,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 4.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-ExpIntE1-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } jam-ExpIntE1-J { ; jam 010813 ; The exponential integral E1(z) global: float euler = -0.5772156649015328 float c2 = -0.25, float c3 = 1/18, float c4 = -1/96, float c5 = 1/600 float c6 = -1/4320, float c7 = 1/35280, float c8 = -1/322560, float c9 = 1/3265920 float c10 = -1/36288000, float c11 = 1/439084800, float c12 = -1/(5.7480192e9) init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z, complex z5 = z4*z complex z6 = z5*z, complex z7 = z6*z, complex z8 = z7*z complex z9 = z8*z, complex z10 = z9*z, complex z11 = z10*z, complex z12 = z11*z z = euler - log(z) + z + c2*z2 + c3*z3 + c4*z4 + c5*z5 + c6*z6 + c7*z7 + c8*z8 + \ c9*z9 + c10*z10 + c11*z11 + c12*z12 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "E1(z) Exp Int Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (1,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 4.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-ExpIntE1" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } jam-ExpIntE2 { ; jam 010813 ; The exponential integral E2(z) global: float OneMinusEuler = 0.4227843350984672 float c2 = -0.5, float c3 = 1/12, float c4 = -1/72, float c5 = 1/480 float c6 = -1/3600, float c7 = 1/30240, float c8 = -1/282240 float c9 = 1/2903040, float c10 = -1/32659200, float c11 = 1/399168000 float c12 = -1/5.2690176e9 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z, complex z5 = z4*z complex z6 = z5*z, complex z7 = z6*z, complex z8 = z7*z complex z9 = z8*z, complex z10 = z9*z, complex z11 = z10*z, complex z12 = z11*z z = 1.0 + z*log(z) + z*OneMinusEuler + c2*z2 + c3*z3 + c4*z4 + c5*z5 \ + c6*z6 + c7*z7 + c8*z8 + c9*z9 + c10*z10 + c11*z11 + c12*z12 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "E2(z) Exponential Integral" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (1,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 4.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-ExpIntE2-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } jam-ExpIntE2-J { ; jam 010813 ; The exponential integral E2(z) global: float OneMinusEuler = 0.4227843350984672 float c2 = -0.5, float c3 = 1/12, float c4 = -1/72, float c5 = 1/480 float c6 = -1/3600, float c7 = 1/30240, float c8 = -1/282240 float c9 = 1/2903040, float c10 = -1/32659200, float c11 = 1/399168000 float c12 = -1/5.2690176e9 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z, complex z5 = z4*z complex z6 = z5*z, complex z7 = z6*z, complex z8 = z7*z complex z9 = z8*z, complex z10 = z9*z, complex z11 = z10*z, complex z12 = z11*z z = 1.0 + z*log(z) + z*OneMinusEuler + c2*z2 + c3*z3 + c4*z4 + c5*z5 \ + c6*z6 + c7*z7 + c8*z8 + c9*z9 + c10*z10 + c11*z11 + c12*z12 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "E2(z) ExpInt Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (1,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 4.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-ExpIntE2" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } jam-ExpIntE3 { ; jam 010813 ; The exponential integral E3(z) global: float ThreehalvesMinusEuler = 0.9227843350984672 float c2 = 0.5, float c3 = 1/6, float c4 = -1/48, float c5 = 1/360 float c6 = -1/2880, float c7 = 1/25200, float c8 = -1/241920 float c9 = 1/2540160, float c10 = -1/29030400, float c11 = 1/359251200 float c12 = -1/4.790016e9 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z, complex z5 = z4*z complex z6 = z5*z, complex z7 = z6*z, complex z8 = z7*z complex z9 = z8*z, complex z10 = z9*z, complex z11 = z10*z, complex z12 = z11*z z = (c2*z2) * (ThreehalvesMinusEuler - log(z)) + 0.5 - z + c3*z3 + c4*z4 + c5*z5 \ + c6*z6 + c7*z7 + c8*z8 + c9*z9 + c10*z10 + c11*z11 + c12*z12 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "E3(z) Exponential Integral" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (1,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 4.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-ExpIntE3-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } jam-ExpIntE3-J { ; jam 010813 ; The exponential integral E3(z) global: float ThreehalvesMinusEuler = 0.9227843350984672 float c2 = 0.5, float c3 = 1/6, float c4 = -1/48, float c5 = 1/360 float c6 = -1/2880, float c7 = 1/25200, float c8 = -1/241920 float c9 = 1/2540160, float c10 = -1/29030400, float c11 = 1/359251200 float c12 = -1/4.790016e9 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z, complex z5 = z4*z complex z6 = z5*z, complex z7 = z6*z, complex z8 = z7*z complex z9 = z8*z, complex z10 = z9*z, complex z11 = z10*z, complex z12 = z11*z z = (c2*z2) * (ThreehalvesMinusEuler - log(z)) + 0.5 - z + c3*z3 + c4*z4 + c5*z5 \ + c6*z6 + c7*z7 + c8*z8 + c9*z9 + c10*z10 + c11*z11 + c12*z12 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "E3(z) ExpInt Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (1,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 4.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-ExpIntE3" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } jam-ExpIntE4 { ; jam 010813 ; The exponential integral E4(z) global: float PsiEuler = 1.2561176684318005, float third = 1/3 float c2 = 0.5, float c3 = -1/6, float c4 = -1/24, float c5 = 1/240 float c6 = -1/2160, float c7 = 1/20160, float c8 = -1/201600 float c9 = 1/2177280, float c10 = -1/25401600, float c11 = 1/319334400 float c12 = -1/4.3110144e9, float c1 = -0.5 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z, complex z5 = z4*z complex z6 = z5*z, complex z7 = z6*z, complex z8 = z7*z complex z9 = z8*z, complex z10 = z9*z, complex z11 = z10*z, complex z12 = z11*z z = (c3*z3) * (PsiEuler - log(z)) + third + c1*z + c2*z2 + c4*z4 + c5*z5 \ + c6*z6 + c7*z7 + c8*z8 + c9*z9 + c10*z10 + c11*z11 + c12*z12 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "E4(z) Exponential Integral" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (1,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 4.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-ExpIntE4-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } jam-ExpIntE4-J { ; jam 010813 ; The exponential integral E4(z) global: float PsiEuler = 1.2561176684318005, float third = 1/3 float c2 = 0.5, float c3 = -1/6, float c4 = -1/24, float c5 = 1/240 float c6 = -1/2160, float c7 = 1/20160, float c8 = -1/201600 float c9 = 1/2177280, float c10 = -1/25401600, float c11 = 1/319334400 float c12 = -1/4.3110144e9, float c1 = -0.5 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z, complex z5 = z4*z complex z6 = z5*z, complex z7 = z6*z, complex z8 = z7*z complex z9 = z8*z, complex z10 = z9*z, complex z11 = z10*z, complex z12 = z11*z z = (c3*z3) * (PsiEuler - log(z)) + third + c1*z + c2*z2 + c4*z4 + c5*z5 \ + c6*z6 + c7*z7 + c8*z8 + c9*z9 + c10*z10 + c11*z11 + c12*z12 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "E4(z) ExpInt Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (1,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 4.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-ExpIntE4" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } jam-ExpIntEi { ; jam 010815 ; The exponential integral Ei(z) global: float euler = 0.5772156649015328 float c2 = 0.25, float c3 = 1/18, float c4 = 1/96, float c5 = 1/600 float c6 = 1/4320, float c7 = 1/35280, float c8 = 1/322560, float c9 = 1/3265920 float c10 = 1/36288000, float c11 = 1/439084800, float c12 = 1/(5.7480192e9) init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z, complex z5 = z4*z complex z6 = z5*z, complex z7 = z6*z, complex z8 = z7*z complex z9 = z8*z, complex z10 = z9*z, complex z11 = z10*z, complex z12 = z11*z z = euler + log(z) + z + c2*z2 + c3*z3 + c4*z4 + c5*z5 + c6*z6 + c7*z7 + c8*z8 + \ c9*z9 + c10*z10 + c11*z11 + c12*z12 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Ei(z) Exponential Integral" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0.25,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-ExpIntEi-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } jam-ExpIntEi-J { ; jam 010815 ; The exponential integral Ei(z) global: float euler = 0.5772156649015328 float c2 = 0.25, float c3 = 1/18, float c4 = 1/96, float c5 = 1/600 float c6 = 1/4320, float c7 = 1/35280, float c8 = 1/322560, float c9 = 1/3265920 float c10 = 1/36288000, float c11 = 1/439084800, float c12 = 1/(5.7480192e9) init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z, complex z5 = z4*z complex z6 = z5*z, complex z7 = z6*z, complex z8 = z7*z complex z9 = z8*z, complex z10 = z9*z, complex z11 = z10*z, complex z12 = z11*z z = euler + log(z) + z + c2*z2 + c3*z3 + c4*z4 + c5*z5 + c6*z6 + c7*z7 + c8*z8 + \ c9*z9 + c10*z10 + c11*z11 + c12*z12 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Ei(z) ExpInt Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0.25,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-ExpIntEi" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } secman { ; simple secant function Mandelbrot ; jam 010704 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = 1/cos(z) + jc bailout: |z| < @bail default: title = "Secant" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "secman-J" jconstant = #pixel bail = bail } secman-J { ; simple secant function Mandelbrot ; jam 010704 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = 1/cos(z) + jc bailout: |z| < @bail default: title = "Secant Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "secman" perturbation = #pixel bail = bail } zsecman { ; simple secant function Mandelbrot ; jam 010704 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = z/cos(z) + jc bailout: |z| < @bail default: title = "ZSecant" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsecman-J" jconstant = #pixel bail = bail } zsecman-J { ; simple secant function Mandelbrot ; jam 010704 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = z/cos(z) + jc bailout: |z| < @bail default: title = "ZSecant Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsecman" perturbation = #pixel bail = bail } z2secman { ; secant function Mandelbrot ; jam 010704 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z z = z2/cos(z2) + jc bailout: |z| < @bail default: title = "Z2Secant" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "z2secman-J" jconstant = #pixel bail = bail } z2secman-J { ; secant function Mandelbrot ; jam 010704 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z z = z2/cos(z2) + jc bailout: |z| < @bail default: title = "Z2Secant Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "z2secman" perturbation = #pixel bail = bail } z3secman { ; secant function Mandelbrot ; jam 010704 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z3 = z*z*z z = z3/cos(z3) + jc bailout: |z| < @bail default: title = "Z3Secant" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "z3secman-J" jconstant = #pixel bail = bail } z3secman-J { ; secant function Mandelbrot ; jam 010704 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z3 = z*z*z z = z3/cos(z3) + jc bailout: |z| < @bail default: title = "Z3Secant Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "z3secman" perturbation = #pixel bail = bail } zsecmanV2 { ; secant function Mandelbrot ; jam 010704 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = z/cos(z + jc) + jc bailout: |z| < @bail default: title = "ZSecantV2" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsecmanV2-J" jconstant = #pixel bail = bail } zsecmanV2-J { ; secant function Mandelbrot ; jam 010704 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = z/cos(z + jc) + jc bailout: |z| < @bail default: title = "ZSecantV2 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsecmanV2" perturbation = #pixel bail = bail } z2secmanV2 { ; secant function Mandelbrot ; jam 010704 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z z = z2/cos(z2 + jc) + jc bailout: |z| < @bail default: title = "Z2SecantV2" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "z2secmanV2-J" jconstant = #pixel bail = bail } z2secmanV2-J { ; secant function Mandelbrot ; jam 010704 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z z = z2/cos(z2 + jc) + jc bailout: |z| < @bail default: title = "Z2SecantV2 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "z2secmanV2" perturbation = #pixel bail = bail } z3secmanV2 { ; secant function Mandelbrot ; jam 010704 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z3 = z*z*z z = z3/cos(z3 + jc) + jc bailout: |z| < @bail default: title = "Z3SecantV2" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "z3secmanV2-J" jconstant = #pixel bail = bail } z3secmanV2-J { ; secant function Mandelbrot ; jam 010704 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z3 = z*z*z z = z3/cos(z3 + jc) + jc bailout: |z| < @bail default: title = "Z3SecantV2 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "z3secmanV2" perturbation = #pixel bail = bail } sinman { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = sin(z) + jc bailout: |z| < @bail default: title = "Sine Mandelbrot" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "sinman-J" jconstant = #pixel bail = bail } sinman-J { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = sin(z) + jc bailout: |z| < @bail default: title = "Sine Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "sinman" perturbation = #pixel bail = bail } zsinman { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = z*sin(z) + jc bailout: |z| < @bail default: title = "zSinman" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinman-J" jconstant = #pixel bail = bail } zsinman-J { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = z*sin(z) + jc bailout: |z| < @bail default: title = "zSinman Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinman" perturbation = #pixel bail = bail } zsinmanX2 { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = z*sin(z)*sin(2*z) + jc bailout: |z| < @bail default: title = "zSinmanX2" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX2-J" jconstant = #pixel bail = bail } zsinmanX2-J { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = z*sin(z)*sin(2*z) + jc bailout: |z| < @bail default: title = "zSinmanX2 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX2" perturbation = #pixel bail = bail } zsinmanX2+ { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = z*sin(z+jc)*sin(2*z+jc) + jc bailout: |z| < @bail default: title = "zSinmanX2+" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX2+-J" jconstant = #pixel bail = bail } zsinmanX2+-J { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = z*sin(z+jc)*sin(2*z+jc) + jc bailout: |z| < @bail default: title = "zSinmanX2+ Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX2+" perturbation = #pixel bail = bail } sinman+ { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = sin(z+jc) + jc bailout: |z| < @bail default: title = "Sinman+" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "sinman+-J" jconstant = #pixel bail = bail } sinman+-J { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = sin(z+jc) + jc bailout: |z| < @bail default: title = "Sinman+ Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "sinman+" perturbation = #pixel bail = bail } zsinman+ { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = z*sin(z+jc) + jc bailout: |z| < @bail default: title = "zSinman+" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinman+-J" jconstant = #pixel bail = bail } zsinman+-J { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = z*sin(z+jc) + jc bailout: |z| < @bail default: title = "zSinman+ Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinman+" perturbation = #pixel bail = bail } zsinmanX3 { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = z*sin(z)*sin(2*z)*sin(3*z) + jc bailout: |z| < @bail default: title = "zSinmanX3" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX3-J" jconstant = #pixel bail = bail } zsinmanX3-J { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = z*sin(z)*sin(2*z)*sin(3*z) + jc bailout: |z| < @bail default: title = "zSinmanX3 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX3" perturbation = #pixel bail = bail } zsinmanX3+ { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = z*sin(z+jc)*sin(2*z+jc)*sin(3*z+jc) + jc bailout: |z| < @bail default: title = "zSinmanX3+" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX3+-J" jconstant = #pixel bail = bail } zsinmanX3+-J { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = z*sin(z+jc)*sin(2*z+jc)*sin(3*z+jc) + jc bailout: |z| < @bail default: title = "zSinmanX3+ Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX3+" perturbation = #pixel bail = bail } sinmanX3 { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = sin(z)*sin(2*z)*sin(3*z) + jc bailout: |z| < @bail default: title = "SinmanX3" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "sinmanX3-J" jconstant = #pixel bail = bail } sinmanX3-J { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = sin(z)*sin(2*z)*sin(3*z) + jc bailout: |z| < @bail default: title = "SinmanX3 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "sinmanX3" perturbation = #pixel bail = bail } sinmanX3+ { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = sin(z+jc)*sin(2*z+jc)*sin(3*z+jc) + jc bailout: |z| < @bail default: title = "SinmanX3+" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "sinmanX3+-J" jconstant = #pixel bail = bail } sinmanX3+-J { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = sin(z+jc)*sin(2*z+jc)*sin(3*z+jc) + jc bailout: |z| < @bail default: title = "SinmanX3+ Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "sinmanX3+" perturbation = #pixel bail = bail } zsinmanX4 { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = z*sin(z)*sin(2*z)*sin(3*z)*sin(4*z) + jc bailout: |z| < @bail default: title = "zSinmanX4" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX4-J" jconstant = #pixel bail = bail } zsinmanX4-J { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = z*sin(z)*sin(2*z)*sin(3*z)*sin(4*z) + jc bailout: |z| < @bail default: title = "zSinmanX4 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX4" perturbation = #pixel bail = bail } zsinmanX4+ { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = z*sin(z+jc)*sin(2*z+jc)*sin(3*z+jc)*sin(4*z+jc) + jc bailout: |z| < @bail default: title = "zSinmanX4+" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX4+-J" jconstant = #pixel bail = bail } zsinmanX4+-J { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = z*sin(z+jc)*sin(2*z+jc)*sin(3*z+jc)*sin(4*z+jc) + jc bailout: |z| < @bail default: title = "zSinmanX4+ Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX4+" perturbation = #pixel bail = bail } zsinmanX5 { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = z*sin(z)*sin(2*z)*sin(3*z)*sin(4*z)*sin(5*z) + jc bailout: |z| < @bail default: title = "zSinmanX5" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX5-J" jconstant = #pixel bail = bail } zsinmanX5-J { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = z*sin(z)*sin(2*z)*sin(3*z)*sin(4*z)*sin(5*z) + jc bailout: |z| < @bail default: title = "zSinmanX5 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX5" perturbation = #pixel bail = bail } zsinmanX5+ { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = z*sin(z+jc)*sin(2*z+jc)*sin(3*z+jc)*sin(4*z+jc)*sin(5*z+jc) + jc bailout: |z| < @bail default: title = "zSinmanX5+" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX5+-J" jconstant = #pixel bail = bail } zsinmanX5+-J { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = z*sin(z+jc)*sin(2*z+jc)*sin(3*z+jc)*sin(4*z+jc)*sin(5*z+jc) + jc bailout: |z| < @bail default: title = "zSinmanX5+ Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX5+" perturbation = #pixel bail = bail } zsinmanX2alt+ { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex zsum = z+jc z = z*sin(zsum)*sin(2*zsum) + jc bailout: |z| < @bail default: title = "zSinmanX2Alt+" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX2alt+-J" jconstant = #pixel bail = bail } zsinmanX2alt+-J { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex zsum = z+jc z = z*sin(zsum)*sin(2*zsum) + jc bailout: |z| < @bail default: title = "zSinmanX2Alt+ Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX2alt+" perturbation = #pixel bail = bail } zsinmanX3alt+ { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex zsum = z+jc z = z*sin(zsum)*sin(2*(zsum))*sin(3*(zsum)) + jc bailout: |z| < @bail default: title = "zSinmanX3Alt+" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX3alt+-J" jconstant = #pixel bail = bail } zsinmanX3alt+-J { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex zsum = z+jc z = z*sin(zsum)*sin(2*(zsum))*sin(3*(zsum)) + jc bailout: |z| < @bail default: title = "zSinmanX3Alt+ Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX3alt+" perturbation = #pixel bail = bail } zsinmanX4alt+ { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex zsum = z+jc z = z*sin(zsum)*sin(2*zsum)*sin(3*zsum)*sin(4*zsum) + jc bailout: |z| < @bail default: title = "zSinmanX4Alt+" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX4alt+-J" jconstant = #pixel bail = bail } zsinmanX4alt+-J { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex zsum = z+jc z = z*sin(zsum)*sin(2*zsum)*sin(3*zsum)*sin(4*zsum) + jc bailout: |z| < @bail default: title = "zSinmanX4Alt+ Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX4alt+" perturbation = #pixel bail = bail } zsinmanX5alt+ { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex zsum = z+jc z = z*sin(zsum)*sin(2*zsum)*sin(3*zsum)*sin(4*zsum)*sin(5*zsum) + jc bailout: |z| < @bail default: title = "zSinmanX5Alt+" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX5alt+-J" jconstant = #pixel bail = bail } zsinmanX5alt+-J { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex zsum = z+jc z = z*sin(zsum)*sin(2*zsum)*sin(3*zsum)*sin(4*zsum)*sin(5*zsum) + jc bailout: |z| < @bail default: title = "zSinmanX5Alt+ Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX5alt+" perturbation = #pixel bail = bail } zsinmanX5power+ { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z, complex z5 = z4*z z = z*sin(z+jc)*sin(2*(z2+jc))*sin(3*(z3+jc))*sin(4*(z4+jc))*sin(5*(z5+jc)) + jc bailout: |z| < @bail default: title = "zSinmanX5Power+" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX5power+-J" jconstant = #pixel bail = bail } zsinmanX5power+-J { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z, complex z5 = z4*z z = z*sin(z+jc)*sin(2*(z2+jc))*sin(3*(z3+jc))*sin(4*(z4+jc))*sin(5*(z5+jc)) + jc bailout: |z| < @bail default: title = "zSinmanX5Power+ Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "zsinmanX5power+" perturbation = #pixel bail = bail } z2sinmanX5power+ { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z, complex z5 = z4*z z = z2*sin(z+jc)*sin(2*(z2+jc))*sin(3*(z3+jc))*sin(4*(z4+jc))*sin(5*(z5+jc)) + jc bailout: |z| < @bail default: title = "zSinmanX5Power+" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "z2sinmanX5power+-J" jconstant = #pixel bail = bail } z2sinmanX5power+-J { ; simple sine function Mandelbrot study ; jam 010525 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z, complex z5 = z4*z z = z2*sin(z+jc)*sin(2*(z2+jc))*sin(3*(z3+jc))*sin(4*(z4+jc))*sin(5*(z5+jc)) + jc bailout: |z| < @bail default: title = "zSinmanX5Power+ Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "z2sinmanX5power+" perturbation = #pixel bail = bail } cosecant { ; simple cosecant function Mandelbrot ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = 1/sin(z) + jc bailout: |z| < @bail default: title = "Cosecant" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (1,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 4.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "cosecant-J" jconstant = #pixel bail = bail } cosecant-J { ; simple cosecant function Mandelbrot ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = 1/sin(z) + jc bailout: |z| < @bail default: title = "Cosecant Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (1,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 4.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "cosecant" perturbation = #pixel bail = bail } arccot { ; simple arccotangent function Mandelbrot ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = atan(1/z) + jc bailout: |z| < @bail default: title = "Arccotangent" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0.25,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 4.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "arccot-J" jconstant = #pixel bail = bail } arccot-J { ; simple arccotangent function Mandelbrot ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = atan(1/z) + jc bailout: |z| < @bail default: title = "Arccotangent Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0.25,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 4.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "arccot" perturbation = #pixel bail = bail } arcsec { ; simple arcsecant function Mandelbrot ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = acos(1/z) + jc bailout: |z| < @bail default: title = "Arcsecant" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0.75,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 4.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "arcsec-J" jconstant = #pixel bail = bail } arcsec-J { ; simple arcsecant function Mandelbrot ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = acos(1/z) + jc bailout: |z| < @bail default: title = "Arcsecant Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0.75,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 4.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "arcsec" perturbation = #pixel bail = bail } arccsc { ; simple arccosecant function Mandelbrot ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = asin(1/z) + jc bailout: |z| < @bail default: title = "Arccosecant" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (1,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 4.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "arccsc-J" jconstant = #pixel bail = bail } arccsc-J { ; simple arccosecant function Mandelbrot ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = asin(1/z) + jc bailout: |z| < @bail default: title = "Arccosecant Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (1,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 4.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "arccsc" perturbation = #pixel bail = bail } cosine { ; simple cosine function Mandelbrot ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = cos(z) + jc bailout: |z| < @bail default: title = "Cosine" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "cosine-J" jconstant = #pixel bail = bail } cosine-J { ; simple cosine function Mandelbrot ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = cos(z) + jc bailout: |z| < @bail default: title = "Cosine Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "cosine" perturbation = #pixel bail = bail } tangent { ; simple tangent function Mandelbrot ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = tan(z) + jc bailout: |z| < @bail default: title = "Tangent" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "tangent-J" jconstant = #pixel bail = bail } tangent-J { ; simple tangent function Mandelbrot ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = tan(z) + jc bailout: |z| < @bail default: title = "Tangent Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "tangent" perturbation = #pixel bail = bail } cotangent { ; simple cotangent function Mandelbrot ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = cotan(z) + jc bailout: |z| < @bail default: title = "Cotangent" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0.5,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "cotangent-J" jconstant = #pixel bail = bail } cotangent-J { ; simple cotangent function Mandelbrot ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = cotan(z) + jc bailout: |z| < @bail default: title = "Cotangent Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0.5,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "cotangent" perturbation = #pixel bail = bail } arcsin { ; simple arcsine function Mandelbrot ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = asin(z) + jc bailout: |z| < @bail default: title = "Arcsine" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0.1,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 4.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "arcsin-J" jconstant = #pixel bail = bail } arcsin-J { ; simple arcsine function Mandelbrot ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = asin(z) + jc bailout: |z| < @bail default: title = "Arcsine Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0.1,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 4.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "arcsin" perturbation = #pixel bail = bail } arccos { ; simple arccosine function Mandelbrot ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = acos(z) + jc bailout: |z| < @bail default: title = "Arccosine" center = (-1,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 4.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "arccos-J" jconstant = #pixel bail = bail } arccos-J { ; simple arccosine function Mandelbrot ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = acos(z) + jc bailout: |z| < @bail default: title = "Arccosine Julia" center = (-1,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 4.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "arccos" perturbation = #pixel bail = bail } arctan { ; simple arctangent function Mandelbrot ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = atan(z) + jc bailout: |z| < @bail default: title = "Arctangent" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0.5,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 4.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "arctan-J" jconstant = #pixel bail = bail } arctan-J { ; simple arctangent function Mandelbrot ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = atan(z) + jc bailout: |z| < @bail default: title = "Arctangent Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0.5,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 4.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "arctan" perturbation = #pixel bail = bail } sinesquare { ; simple (sin(z))^2 function Mandelbrot ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = ( sin(z) )^2 + jc bailout: |z| < @bail default: title = "Sine Squared" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "sinesquare-J" jconstant = #pixel bail = bail } sinesquare-J { ; simple (sin(z))^2 function Mandelbrot ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = ( sin(z) )^2 + jc bailout: |z| < @bail default: title = "Sine Squared Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "sinesquare" perturbation = #pixel bail = bail } sinz/z { ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = ( sin(z) )/z + jc bailout: |z| < @bail default: title = "Sin(z)/z" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "sinz/z-J" jconstant = #pixel bail = bail } sinz/z-J { ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = ( sin(z) )/z + jc bailout: |z| < @bail default: title = "Sin(z)/z Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "sinz/z" perturbation = #pixel bail = bail } cot/z { ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = (cotan(z))/z + jc bailout: |z| < @bail default: title = "Cotan/z" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0.5,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "cot/z-J" jconstant = #pixel bail = bail } cot/z-J { ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = (cotan(z))/z + jc bailout: |z| < @bail default: title = "Cotan/z Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0.5,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "cot/z" perturbation = #pixel bail = bail } cot(z2)/z2 { ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z z = (cotan(z2))/z2 + jc bailout: |z| < @bail default: title = "CotanZ2/z2" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (1,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "cot(z2)/z2-J" jconstant = #pixel bail = bail } cot(z2)/z2-J { ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z z = (cotan(z2))/z2 + jc bailout: |z| < @bail default: title = "CotanZ2/z2 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (1,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "cot(z2)/z2" perturbation = #pixel bail = bail } cot/z-V2 { ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = (cotan( z+jc ))/z + jc bailout: |z| < @bail default: title = "Cotan/z V2" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0.5,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "cot/z-V2-J" jconstant = #pixel bail = bail } cot/z-V2-J { ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = (cotan( z+jc ))/z + jc bailout: |z| < @bail default: title = "Cotan/z V2 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0.5,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "cot/z-V2" perturbation = #pixel bail = bail } cot(z2)/z2-V2 { ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z z = (cotan( z2+jc ))/z2 + jc bailout: |z| < @bail default: title = "CotanZ2/z2 V2" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (1,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "cot(z2)/z2-V2-J" jconstant = #pixel bail = bail } cot(z2)/z2-V2-J { ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z z = (cotan( z2+jc ))/z2 + jc bailout: |z| < @bail default: title = "CotanZ2/z2 V2 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (1,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "cot(z2)/z2-V2" perturbation = #pixel bail = bail } cot(z2)*z2 { ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z z = z2*cotan( z2 ) + jc bailout: |z| < @bail default: title = "Z2*CotanZ2" center = (0,0) maxiter = 250 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "cot(z2)*z2-J" jconstant = #pixel bail = bail } cot(z2)*z2-J { ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z z = z2*cotan( z2 ) + jc bailout: |z| < @bail default: title = "Z2*CotanZ2 Julia" center = (0,0) maxiter = 250 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "cot(z2)*z2" perturbation = #pixel bail = bail } cotangent2 { ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = (cotan(z))^2 + jc bailout: |z| < @bail default: title = "Cotangent^2" center = (0,0) maxiter = 250 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0.5,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "cotangent2-J" jconstant = #pixel bail = bail } cotangent2-J { ; jam 010714 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = (cotan(z))^2 + jc bailout: |z| < @bail default: title = "Cotangent^2 Julia" center = (0,0) maxiter = 250 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0.5,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "cotangent2" perturbation = #pixel bail = bail } secantseries { ; simple secant function Mandelbrot ; jam 010716 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = 2*z, complex z3 = 3*z, complex z4 = 4*z, complex z5 = 5*z z = @coeff1/cos(z) + @coeff2/cos(z2) + @coeff3/cos(z3) + @coeff4/cos(z4) + @coeff5/cos(z5) + jc bailout: |z| < @bail default: title = "Secant Series" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff1 caption = "1st Coefficient" default = 1 endparam param coeff2 caption = "2nd Coefficient" default = 1 endparam param coeff3 caption = "3rd Coefficient" default = 1 endparam param coeff4 caption = "4th Coefficient" default = 1 endparam param coeff5 caption = "5th Coefficient" default = 1 endparam switch: type = "secantseries-J" jconstant = #pixel bail = bail coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 coeff5 = coeff5 } secantseries-J { ; simple secant function Mandelbrot ; jam 010716 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = 2*z, complex z3 = 3*z, complex z4 = 4*z, complex z5 = 5*z z = @coeff1/cos(z) + @coeff2/cos(z2) + @coeff3/cos(z3) + @coeff4/cos(z4) + @coeff5/cos(z5) + jc bailout: |z| < @bail default: title = "Secant Series Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff1 caption = "1st Coefficient" default = 1 endparam param coeff2 caption = "2nd Coefficient" default = 1 endparam param coeff3 caption = "3rd Coefficient" default = 1 endparam param coeff4 caption = "4th Coefficient" default = 1 endparam param coeff5 caption = "5th Coefficient" default = 1 endparam switch: type = "secantseries" perturbation = #pixel bail = bail coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 coeff5 = coeff5 } Bessel0 { ; Order 0 Bessell function of the 1st kind, J0(z) ; jam 010612 global: complex c4 = 1/64, complex c6 = -1/2304, complex c8 = 1/147456 complex c10 = -1/14745600, complex c12 = 1/2123366400 complex c14 = -1/4.16179814400E11, complex c16 = 1/1.06542032486400E14 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z4 = z2*z2, complex z6 = z4*z2, complex z8 = z6*z2 complex z10 = z8*z2, complex z12 = z10*z2, complex z14 = z12*z2, complex z16 = z14*z2 z = 1 - 0.25*z2 + c4*z4 + c6*z6 + c8*z8 + c10*z10 + c12*z12 + c14*z14 + c16*z16 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Bessell 0 Order" center = (0,0) maxiter = 200 method = multipass periodicity = 0 magn = 0.5 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam switch: type = "Bessel0-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Bessel0-J { ; Order 0 Bessell function of the 1st kind, J0(z) ; jam 010720 global: complex c4 = 1/64, complex c6 = -1/2304, complex c8 = 1/147456 complex c10 = -1/14745600, complex c12 = 1/2123366400 complex c14 = -1/4.16179814400E11, complex c16 = 1/1.06542032486400E14 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z4 = z2*z2, complex z6 = z4*z2, complex z8 = z6*z2 complex z10 = z8*z2, complex z12 = z10*z2, complex z14 = z12*z2, complex z16 = z14*z2 z = 1 - 0.25*z2 + c4*z4 + c6*z6 + c8*z8 + c10*z10 + c12*z12 + c14*z14 + c16*z16 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Bessell 0 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 magn = 0.5 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam switch: type = "Bessel0" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Bessel1 { ; Order 1 Bessell function of the 1st kind, J1(z) ; jam 010612 global: complex c3 = -1/16, complex c5 = 1/384, complex c7 = -1/18432 complex c9 = 1/1474560, complex c11 = -1/176947200 complex c13 = 1/2.9727129600E10, complex c15 = -1/6.658877030400E12 complex c17 = 1/1.917756584755200E15 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z5 = z3*z2, complex z7 = z5*z2, complex z9 = z7*z2 complex z11 = z9*z2, complex z13 = z11*z2, complex z15 = z13*z2, complex z17 = z15*z2 z = 0.5*z + c3*z3 + c5*z5 + c7*z7 + c9*z9 + c11*z11 + c13*z13 + c15*z15 + c17*z17 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Bessell 1st Order" center = (0,0) maxiter = 200 method = multipass periodicity = 0 magn = 0.25 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam switch: type = "Bessel1-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Bessel1-J { ; Order 1 Bessell function of the 1st kind, J1(z) ; jam 010720 global: complex c3 = -1/16, complex c5 = 1/384, complex c7 = -1/18432 complex c9 = 1/1474560, complex c11 = -1/176947200 complex c13 = 1/2.9727129600E10, complex c15 = -1/6.658877030400E12 complex c17 = 1/1.917756584755200E15 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z5 = z3*z2, complex z7 = z5*z2, complex z9 = z7*z2 complex z11 = z9*z2, complex z13 = z11*z2, complex z15 = z13*z2, complex z17 = z15*z2 z = 0.5*z + c3*z3 + c5*z5 + c7*z7 + c9*z9 + c11*z11 + c13*z13 + c15*z15 + c17*z17 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Bessell 1st Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 magn = 0.25 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam switch: type = "Bessel1" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Bessel2 { ; Order 2 Bessell function of the 1st kind, J2(z) ; jam 010612 global: complex c2 = 1/8 complex c4 = -1/96, complex c6 = 1/3072, complex c8 = -1/184320 complex c10 = 1/17694720, complex c12 = -1/2.477260800E9 complex c14 = 1/4.75634073600E11, complex c16 = -1/1.19859786547200E14 complex c18 = 1/3.8355131695104000E16 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z4 = z2*z2, complex z6 = z4*z2, complex z8 = z6*z2 complex z10 = z8*z2, complex z12 = z10*z2, complex z14 = z12*z2, complex z16 = z14*z2 complex z18 = z16*z2 z = 1 + c2*z2 + c4*z4 + c6*z6 + c8*z8 + c10*z10 + c12*z12 + c14*z14 + c16*z16 + c18*z18 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Bessell 2nd Order" center = (0,0) maxiter = 200 method = multipass periodicity = 0 magn = 0.25 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam switch: type = "Bessel2-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Bessel2-J { ; Order 2 Bessell function of the 1st kind, J2(z) ; jam 010720 global: complex c2 = 1/8 complex c4 = -1/96, complex c6 = 1/3072, complex c8 = -1/184320 complex c10 = 1/17694720, complex c12 = -1/2.477260800E9 complex c14 = 1/4.75634073600E11, complex c16 = -1/1.19859786547200E14 complex c18 = 1/3.8355131695104000E16 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z4 = z2*z2, complex z6 = z4*z2, complex z8 = z6*z2 complex z10 = z8*z2, complex z12 = z10*z2, complex z14 = z12*z2, complex z16 = z14*z2 complex z18 = z16*z2 z = 1 + c2*z2 + c4*z4 + c6*z6 + c8*z8 + c10*z10 + c12*z12 + c14*z14 + c16*z16 + c18*z18 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Bessell 2nd Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 magn = 0.25 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam switch: type = "Bessel2" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Bessel3 { ; Order 3 Bessell function of the 1st kind, J3(z) ; jam 010612 global: complex c3 = 1/48, complex c5 = -1/768, complex c7 = 1/30720 complex c9 = -1/2211840, complex c11 = 1/247726080 complex c13 = -1/3.9636172800E10, complex c15 = 1/8.508565094400E12 complex c17 = -1/2.382398226432000E15 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z5 = z3*z2, complex z7 = z5*z2, complex z9 = z7*z2 complex z11 = z9*z2, complex z13 = z11*z2, complex z15 = z13*z2, complex z17 = z15*z2 z = c3*z3 + c5*z5 + c7*z7 + c9*z9 + c11*z11 + c13*z13 + c15*z15 + c17*z17 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Bessell 3rd Order" center = (0,0) maxiter = 200 method = multipass periodicity = 0 magn = 0.25 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam switch: type = "Bessel3-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Bessel3-J { ; Order 3 Bessell function of the 1st kind, J3(z) ; jam 010720 global: complex c3 = 1/48, complex c5 = -1/768, complex c7 = 1/30720 complex c9 = -1/2211840, complex c11 = 1/247726080 complex c13 = -1/3.9636172800E10, complex c15 = 1/8.508565094400E12 complex c17 = -1/2.382398226432000E15 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z5 = z3*z2, complex z7 = z5*z2, complex z9 = z7*z2 complex z11 = z9*z2, complex z13 = z11*z2, complex z15 = z13*z2, complex z17 = z15*z2 z = c3*z3 + c5*z5 + c7*z7 + c9*z9 + c11*z11 + c13*z13 + c15*z15 + c17*z17 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Bessell 3rd Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 magn = 0.25 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam switch: type = "Bessel3" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Bessel4 { ; Order 4 Bessell function of the 1st kind, J4(z) ; jam 010612 global: complex c4 = 1/384, complex c6 = -1/7680, complex c8 = 1/368640 complex c10 = -1/30965760, complex c12 = 1/3963617280E9 complex c14 = -1/7.13451110400E11, complex c16 = 1/1.71228266496000E14 complex c18 = -1/5.2738306080768000E16 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z4 = z2*z2, complex z6 = z4*z2, complex z8 = z6*z2 complex z10 = z8*z2, complex z12 = z10*z2, complex z14 = z12*z2, complex z16 = z14*z2 complex z18 = z16*z2 z = c4*z4 + c6*z6 + c8*z8 + c10*z10 + c12*z12 + c14*z14 + c16*z16 + c18*z18 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Bessell 4th Order" center = (0,0) maxiter = 200 method = multipass periodicity = 0 magn = 0.25 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam switch: type = "Bessel4-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Bessel4-J { ; Order 4 Bessell function of the 1st kind, J4(z) ; jam 010720 global: complex c4 = 1/384, complex c6 = -1/7680, complex c8 = 1/368640 complex c10 = -1/30965760, complex c12 = 1/3963617280E9 complex c14 = -1/7.13451110400E11, complex c16 = 1/1.71228266496000E14 complex c18 = -1/5.2738306080768000E16 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z4 = z2*z2, complex z6 = z4*z2, complex z8 = z6*z2 complex z10 = z8*z2, complex z12 = z10*z2, complex z14 = z12*z2, complex z16 = z14*z2 complex z18 = z16*z2 z = c4*z4 + c6*z6 + c8*z8 + c10*z10 + c12*z12 + c14*z14 + c16*z16 + c18*z18 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Bessell 4th Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 magn = 0.25 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam switch: type = "Bessel4" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Bessel5 { ; Order 5 Bessell function of the 1st kind, J5(z) ; jam 010612 global: complex c5 = 1/3840, complex c7 = -1/92160 complex c9 = 1/5160960, complex c11 = -1/495452160 complex c13 = 1/7.1345111040E10, complex c15 = -1/1.4269022208000E13 complex c17 = 1/3.767021862912000E15 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z5 = z3*z2, complex z7 = z5*z2, complex z9 = z7*z2 complex z11 = z9*z2, complex z13 = z11*z2, complex z15 = z13*z2, complex z17 = z15*z2 z = c5*z5 + c7*z7 + c9*z9 + c11*z11 + c13*z13 + c15*z15 + c17*z17 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Bessell 5th Order" center = (0,0) maxiter = 200 method = multipass periodicity = 0 magn = 0.25 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam switch: type = "Bessel5-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Bessel5-J { ; Order 5 Bessell function of the 1st kind, J5(z) ; jam 010720 global: complex c5 = 1/3840, complex c7 = -1/92160 complex c9 = 1/5160960, complex c11 = -1/495452160 complex c13 = 1/7.1345111040E10, complex c15 = -1/1.4269022208000E13 complex c17 = 1/3.767021862912000E15 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z3 = z2*z, complex z5 = z3*z2, complex z7 = z5*z2, complex z9 = z7*z2 complex z11 = z9*z2, complex z13 = z11*z2, complex z15 = z13*z2, complex z17 = z15*z2 z = c5*z5 + c7*z7 + c9*z9 + c11*z11 + c13*z13 + c15*z15 + c17*z17 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Bessell 5th Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 magn = 0.25 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam switch: type = "Bessel5" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Bessel6 { ; Order 6 Bessell function of the 1st kind, J6(z) ; jam 010612 global: complex c6 = 1/46080, complex c8 = -1/1290240 complex c10 = 1/82575360, complex c12 = -1/8.918138880E9 complex c14 = 1/1.426902220800E11, complex c16 = -1/3.13918488576000E14 complex c18 = 1/9.0408524709888000E16 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z4 = z2*z2, complex z6 = z4*z2, complex z8 = z6*z2 complex z10 = z8*z2, complex z12 = z10*z2, complex z14 = z12*z2, complex z16 = z14*z2 complex z18 = z16*z2 z = c6*z6 + c8*z8 + c10*z10 + c12*z12 + c14*z14 + c16*z16 + c18*z18 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Bessell 6th Order" center = (0,0) maxiter = 200 method = multipass periodicity = 0 magn = 0.25 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam switch: type = "Bessel6-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Bessel6-J { ; Order 6 Bessell function of the 1st kind, J6(z) ; jam 010720 global: complex c6 = 1/46080, complex c8 = -1/1290240 complex c10 = 1/82575360, complex c12 = -1/8.918138880E9 complex c14 = 1/1.426902220800E11, complex c16 = -1/3.13918488576000E14 complex c18 = 1/9.0408524709888000E16 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z complex z2 = z*z, complex z4 = z2*z2, complex z6 = z4*z2, complex z8 = z6*z2 complex z10 = z8*z2, complex z12 = z10*z2, complex z14 = z12*z2, complex z16 = z14*z2 complex z18 = z16*z2 z = c6*z6 + c8*z8 + c10*z10 + c12*z12 + c14*z14 + c16*z16 + c18*z18 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Bessell 6th Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 magn = 0.25 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam switch: type = "Bessel6" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Bessel[1/5] { ; Order 1/5 Bessell function of the 1st kind, J[1/5](z), to 6 terms ; jam 010707 ; J[1/5](z) = SUM[p=0,1,...] { (-1)^p * z^(2p + 1/5) / ( p! * (p + 1/5)! * 2^(2p + 1/5) ) }. ; (1/5)! = Gamma(6/5) = 0.9181687423997606..., (6/5)! = (6/5)*Gamma(6/5) = 1.1018024908797127..., etc. ; (1/2)^(1/5) = 0.87055056329612413913627001..., (1/2)^(11/5) = [(1/2)^(1/5)]^11, etc. ; coeff1 = [ (1/2)^(1/5) ] / (1/5)!, etc. global: complex onefifth = 1/5, complex elevenfifths = 11*onefifth, complex twentyonefifths = 21*onefifth complex thirtyonefifths = 31*onefifth, complex fortyonefifths = 41*onefifth, complex fiftyonefifths = 51*onefifth complex coeff1 = 0.94813787825189977, complex coeff2 = 0.19752872463581245 complex coeff3 = 0.022446445981342325, complex coeff4 = 0.0017536285922923691 complex coeff5 = 1.0438265430311721e-4, complex coeff6 = 5.0183968414960198e-6 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z = coeff1 * z^onefifth - coeff2 * z^elevenfifths + coeff3 * z^twentyonefifths - coeff4 * z^thirtyonefifths \ + coeff5 * z^fortyonefifths - coeff6 * z^fiftyonefifths if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(1/5) Bessell Function" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam switch: type = "Bessel[1/5]-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Bessel[1/5]-J { ; Order 1/5 Bessell function of the 1st kind, J[1/5](z), to 6 terms ; jam 010720 ; J[1/5](z) = SUM[p=0,1,...] { (-1)^p * z^(2p + 1/5) / ( p! * (p + 1/5)! * 2^(2p + 1/5) ) }. ; (1/5)! = Gamma(6/5) = 0.9181687423997606..., (6/5)! = (6/5)*Gamma(6/5) = 1.1018024908797127..., etc. ; (1/2)^(1/5) = 0.87055056329612413913627001..., (1/2)^(11/5) = [(1/2)^(1/5)]^11, etc. ; coeff1 = [ (1/2)^(1/5) ] / (1/5)!, etc. global: complex onefifth = 1/5, complex elevenfifths = 11*onefifth, complex twentyonefifths = 21*onefifth complex thirtyonefifths = 31*onefifth, complex fortyonefifths = 41*onefifth, complex fiftyonefifths = 51*onefifth complex coeff1 = 0.94813787825189977, complex coeff2 = 0.19752872463581245 complex coeff3 = 0.022446445981342325, complex coeff4 = 0.0017536285922923691 complex coeff5 = 1.0438265430311721e-4, complex coeff6 = 5.0183968414960198e-6 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z = coeff1 * z^onefifth - coeff2 * z^elevenfifths + coeff3 * z^twentyonefifths - coeff4 * z^thirtyonefifths \ + coeff5 * z^fortyonefifths - coeff6 * z^fiftyonefifths if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(1/5) Bessell Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam switch: type = "Bessel[1/5]" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Bessel[2/5] { ; Order 2/5 Bessell function of the 1st kind, J[2/5](z), to 6 terms ; jam 010708 ; J[2/5](z) = SUM[p=0,1,...] { (-1)^p * z^(2p + 2/5) / ( p! * (p + 2/5)! * 2^(2p + 2/5) ) }. ; (2/5)! = Gamma(7/5) = 0.88726381750200101..., (7/5)! = (7/5)*Gamma(7/5) = 1.2421693445028014..., etc. ; (1/2)^(2/5) = 0.75785828325519904117362990065322..., etc. ; coeff1 = [ (1/2)^(2/5) ] / (2/5)!, etc. global: complex twofifths = 0.4, complex twelvefifths = 6*twofifths, complex twentytwofifths = 11*twofifths complex thirtytwofifths = 16*twofifths, complex fortytwofifths = 21*twofifths, complex fiftytwofifths = 26*twofifths complex coeff1 = 0.85415213412947483, complex coeff2 = 0.15252716680883479 complex coeff3 = 0.015888246542586957, complex coeff4 = 0.0011682534222490409 complex coeff5 = 6.6378035355059147e-5, complex coeff6 = 3.0730571923638494e-6 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z = coeff1 * z^twofifths - coeff2 * z^twelvefifths + coeff3 * z^twentytwofifths - coeff4 * z^thirtytwofifths \ + coeff5 * z^fortytwofifths - coeff6 * z^fiftytwofifths if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(2/5) Bessell Function" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam switch: type = "Bessel[2/5]-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Bessel[2/5]-J { ; Order 2/5 Bessell function of the 1st kind, J[2/5](z), to 6 terms ; jam 010720 ; J[2/5](z) = SUM[p=0,1,...] { (-1)^p * z^(2p + 2/5) / ( p! * (p + 2/5)! * 2^(2p + 2/5) ) }. ; (2/5)! = Gamma(7/5) = 0.88726381750200101..., (7/5)! = (7/5)*Gamma(7/5) = 1.2421693445028014..., etc. ; (1/2)^(2/5) = 0.75785828325519904117362990065322..., etc. ; coeff1 = [ (1/2)^(2/5) ] / (2/5)!, etc. global: complex twofifths = 0.4, complex twelvefifths = 6*twofifths, complex twentytwofifths = 11*twofifths complex thirtytwofifths = 16*twofifths, complex fortytwofifths = 21*twofifths, complex fiftytwofifths = 26*twofifths complex coeff1 = 0.85415213412947483, complex coeff2 = 0.15252716680883479 complex coeff3 = 0.015888246542586957, complex coeff4 = 0.0011682534222490409 complex coeff5 = 6.6378035355059147e-5, complex coeff6 = 3.0730571923638494e-6 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z = coeff1 * z^twofifths - coeff2 * z^twelvefifths + coeff3 * z^twentytwofifths - coeff4 * z^thirtytwofifths \ + coeff5 * z^fortytwofifths - coeff6 * z^fiftytwofifths if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "O(2/5) Bessell Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam switch: type = "Bessel[2/5]" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Gamma1 { ; jam 010616 ; first order Gamma function ; translated from Jim Muth's old Fractint formula global: float twopi = 6.283185307179586476925286766559 float sqttwopi = sqrt( twopi ) init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z = sqttwopi * (z^( z - 0.5 )) * exp( -z ) if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "GammaFn 1st Order" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "Gamma1-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Gamma1-J { ; jam 010616 ; first order Gamma function global: float twopi = 6.283185307179586476925286766559 float sqttwopi = sqrt( twopi ) init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z = sqttwopi * (z^( z - 0.5 )) * exp( -z ) if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "GammaFn 1st Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "Gamma1" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } sinh(phi+z)^phi { ; jam 010711 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex phi = (1.6180339887498948482045868, 0) loop: z = ( sinh( phi+z ) )^phi + jc bailout: |z| < @bail default: title = "Sinh(phi+z)^phi" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "sinh(phi+z)^phi-J" jconstant = #pixel bail = bail } sinh(phi+z)^phi-J { ; jam 010711 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex phi = (1.6180339887498948482045868, 0) loop: z = ( sinh( phi+z ) )^phi + jc bailout: |z| < @bail default: title = "Sinh(phi+z)^phi Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "sinh(phi+z)^phi" perturbation = #pixel bail = bail } sinh(phi*z)^phi { ; jam 010711 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex phi = (1.6180339887498948482045868, 0) loop: z = ( sinh( phi*z ) )^phi + jc bailout: |z| < @bail default: title = "Sinh(phi*z)^phi" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "sinh(phi*z)^phi-J" jconstant = #pixel bail = bail } sinh(phi*z)^phi-J { ; jam 010711 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex phi = (1.6180339887498948482045868, 0) loop: z = ( sinh( phi*z ) )^phi + jc bailout: |z| < @bail default: title = "Sinh(phi*z)^phi Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "sinh(phi*z)^phi" perturbation = #pixel bail = bail } Laguerre2 { ; 2nd order Laguerre polynomial ; jam 010521 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z = 0.5*( z*(z - 4) + 2 ) if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Laguerre 2nd Order" center = (1.5,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam switch: type = "Laguerre2-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Laguerre2-J { ; 2nd order Laguerre polynomial ; jam 010521 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z = 0.5*( z*(z - 4) + 2 ) if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Laguerre 2nd Julia" center = (1.5,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam switch: type = "Laguerre2" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Laguerre3 { ; 3rd order Laguerre polynomial ; jam 010521 global: complex sixth = 1/6 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z = sixth * ( z* ( z*( -z + 9 ) - 18 ) + 6 ) if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Laguerre 3rd Order" center = (1.5,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam switch: type = "Laguerre3-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Laguerre3-J { ; 3rd order Laguerre polynomial ; jam 010521 global: complex sixth = 1/6 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z = sixth * ( z* ( z*( -z + 9 ) - 18 ) + 6 ) if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Laguerre 3rd Julia" center = (1.5,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam switch: type = "Laguerre3" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Laguerre4 { ; 4th order Laguerre polynomial ; jam 010521 global: complex twentyfourth = 1/24 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z = twentyfourth * ( z* (z* (z* (z - 16) + 72 ) - 96 ) + 24 ) if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Laguerre 4th Order" center = (1.5,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam switch: type = "Laguerre4-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Laguerre4-J { ; 4th order Laguerre polynomial ; jam 010521 global: complex twentyfourth = 1/24 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z = twentyfourth * ( z* (z* (z* (z - 16) + 72 ) - 96 ) + 24 ) if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Laguerre 4th Julia" center = (1.5,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam switch: type = "Laguerre4" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Laguerre5 { ; 5th order Laguerre polynomial ; jam 010521 global: complex onetwentieth = 1/120 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z = onetwentieth * ( z* (z* (z* (z* (-z + 25) - 200 ) + 600 ) - 600 ) + 120 ) if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Laguerre 5th Order" center = (1.5,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam switch: type = "Laguerre5-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Laguerre5-J { ; 5th order Laguerre polynomial ; jam 010521 global: complex onetwentieth = 1/120 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z = onetwentieth * ( z* (z* (z* (z* (-z + 25) - 200 ) + 600 ) - 600 ) + 120 ) if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Laguerre 5th Julia" center = (1.5,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam switch: type = "Laguerre5" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Laguerre6 { ; 6th order Laguerre polynomial ; jam 010521 global: complex seventwentieth = 1/720 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z = seventwentieth * ( z* (z* (z* (z* (z* (z - 36) + 450 ) - 2400 ) + 5400 ) - 4320 ) + 720 ) if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Laguerre 6th Order" center = (1.5,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam switch: type = "Laguerre6-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Laguerre6-J { ; 6th order Laguerre polynomial ; jam 010521 global: complex seventwentieth = 1/720 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z = seventwentieth * ( z* (z* (z* (z* (z* (z - 36) + 450 ) - 2400 ) + 5400 ) - 4320 ) + 720 ) if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Laguerre 6th Julia" center = (1.5,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam switch: type = "Laguerre6" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Laguerre7 { ; 7th order Laguerre polynomial ; jam 010707 global: complex fiftyfortieth = 1/5040 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z = fiftyfortieth * ( z* (z* (z* (z* (z* (z* (-z + 49 ) - 882 ) + 7350 ) - 29400 ) + 52920 ) - 35280 ) + 5040 ) if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Laguerre 7th Order" center = (1.5,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam switch: type = "Laguerre7-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Laguerre7-J { ; 7th order Laguerre polynomial ; jam 010707 global: complex fiftyfortieth = 1/5040 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z = fiftyfortieth * ( z* (z* (z* (z* (z* (z* (-z + 49 ) - 882 ) + 7350 ) - 29400 ) + 52920 ) - 35280 ) + 5040 ) if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Laguerre 7th Julia" center = (1.5,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam switch: type = "Laguerre7" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Laguerre8 { ; 8th order Laguerre polynomial ; jam 010707 global: complex coeff = 1/40320 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z = coeff * ( z* (z* (z* (z* (z* (z* (z* (z - 64 ) + 1568 ) - 18816 ) + 117600 ) - 376320 ) + 564480 ) - 322560 ) + 40320 ) if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Laguerre 8th Order" center = (1.5,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam switch: type = "Laguerre8-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Laguerre8-J { ; 8th order Laguerre polynomial ; jam 010707 global: complex coeff = 1/40320 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z = coeff * ( z* (z* (z* (z* (z* (z* (z* (z - 64 ) + 1568 ) - 18816 ) + 117600 ) - 376320 ) + 564480 ) - 322560 ) + 40320 ) if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Laguerre 8th Julia" center = (1.5,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam switch: type = "Laguerre8" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Laguerre9 { ; 9th order Laguerre polynomial ; jam 010707 global: complex coeff = 1/362880 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z = coeff * ( z* (z* (z* (z* (z* (z* (z* (z* (-z + 81 ) - 2592 ) + 42336 ) - 381024 ) + 1905120 ) - 5080320 ) + 6531840 ) \ - 3265920 ) + 362880 ) if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Laguerre 9th Order" center = (1.5,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam switch: type = "Laguerre9-J" jconstant = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } Laguerre9-J { ; 9th order Laguerre polynomial ; jam 010707 global: complex coeff = 1/362880 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) loop: zblend = z z = coeff * ( z* (z* (z* (z* (z* (z* (z* (z* (-z + 81 ) - 2592 ) + 42336 ) - 381024 ) + 1905120 ) - 5080320 ) + 6531840 ) \ - 3265920 ) + 362880 ) if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Laguerre 9th Julia" center = (1.5,0) maxiter = 200 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam switch: type = "Laguerre9" perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower } quadratic1 { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = ( @coeff2 * (z*z) ) + ( @coeff1 * z ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenQuadratic 1" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam switch: type = "quadratic1-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 } quadratic1-J { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = ( @coeff2 * (z*z) ) + ( @coeff1 * z ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenQuadratic 1 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam switch: type = "quadratic1" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 } quadratic2 { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = ( @coeff2 * (z*z + jc) ) + ( @coeff1 * (z + jc) ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenQuadratic 2" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam switch: type = "quadratic2-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 } quadratic2-J { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = ( @coeff2 * (z*z + jc) ) + ( @coeff1 * (z + jc) ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenQuadratic 2 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam switch: type = "quadratic2" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 } quadratic3 { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex zsum = z+jc z = ( @coeff2 * zsum*zsum ) + ( @coeff1 * zsum ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenQuadratic 3" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam switch: type = "quadratic3-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 } quadratic3-J { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex zsum = z+jc z = ( @coeff2 * zsum*zsum ) + ( @coeff1 * zsum ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenQuadratic 3 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam switch: type = "quadratic3" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 } quadratic1A { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = ( @coeff2 * (z*z) ) + ( @coeff1 * z ) + ( @coeff0*jc ) bailout: |z| < @bail default: title = "GenQuadratic 1A" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam switch: type = "quadratic1A-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 } quadratic1A-J { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = ( @coeff2 * (z*z) ) + ( @coeff1 * z ) + ( @coeff0*jc ) bailout: |z| < @bail default: title = "GenQuadratic 1A Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam switch: type = "quadratic1A" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 } quadratic2A { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = ( @coeff2 * (z*z + jc) ) + ( @coeff1 * (z + jc) ) + ( @coeff0*(1+jc) ) + jc bailout: |z| < @bail default: title = "GenQuadratic 2A" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam switch: type = "quadratic2A-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 } quadratic2A-J { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = ( @coeff2 * (z*z + jc) ) + ( @coeff1 * (z + jc) ) + ( @coeff0*(1+jc) ) + jc bailout: |z| < @bail default: title = "GenQuadratic 2A Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam switch: type = "quadratic2A" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 } linear1 { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = ( @coeff1 * z ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenLinear 1" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam switch: type = "linear1-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 } linear1-J { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = ( @coeff1 * z ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenLinear 1 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam switch: type = "linear1" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 } linear2 { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = ( @coeff1 * (z + jc) ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenLinear 2" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam switch: type = "linear2-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 } linear2-J { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = ( @coeff1 * (z + jc) ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenLinear 2 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam switch: type = "linear2" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 } linear1A { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = ( @coeff1 * z ) + ( @coeff0*jc ) bailout: |z| < @bail default: title = "GenLinear 1A" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam switch: type = "linear1A-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 } linear1A-J { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = ( @coeff1 * z ) + ( @coeff0*jc ) bailout: |z| < @bail default: title = "GenLinear 1A Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam switch: type = "linear1A" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 } linear2A { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = ( @coeff1 * (z+jc) ) + ( @coeff0*(1+jc) ) + jc bailout: |z| < @bail default: title = "GenLinear 2A" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam switch: type = "linear2A-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 } linear2A-J { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: z = ( @coeff1 * (z+jc) ) + ( @coeff0*(1+jc) ) + jc bailout: |z| < @bail default: title = "GenLinear 2A Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam switch: type = "linear2A" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 } cubic1 { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z z = ( @coeff3 * z2*z ) + ( @coeff2 * (z2) ) + ( @coeff1 * z ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenCubic 1" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam switch: type = "cubic1-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 } cubic1-J { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z z = ( @coeff3 * z2*z ) + ( @coeff2 * (z2) ) + ( @coeff1 * z ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenCubic 1 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam switch: type = "cubic1" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 } cubic2 { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z z = ( @coeff3 * (z2*z+jc) ) + ( @coeff2 * (z2 + jc) ) + ( @coeff1 * (z + jc) ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenCubic 2" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam switch: type = "cubic2-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 } cubic2-J { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z z = ( @coeff3 * (z2*z+jc) ) + ( @coeff2 * (z2 + jc) ) + ( @coeff1 * (z + jc) ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenCubic 2 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam switch: type = "cubic2" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 } cubic3 { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex zsum = z+jc, complex zsumsq = zsum*zsum z = ( @coeff3 * zsumsq*zsum ) + ( @coeff2 * zsumsq ) + ( @coeff1 * zsum ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenCubic 3" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam switch: type = "cubic3-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 } cubic3-J { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex zsum = z+jc, complex zsumsq = zsum*zsum z = ( @coeff3 * zsumsq*zsum ) + ( @coeff2 * zsumsq ) + ( @coeff1 * zsum ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenCubic 3 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam switch: type = "cubic3" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 } cubic1A { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z z = ( @coeff3 * z2*z ) + ( @coeff2 * (z2) ) + ( @coeff1 * z ) + ( @coeff0*jc ) bailout: |z| < @bail default: title = "GenCubic 1A" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam switch: type = "cubic1A-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 } cubic1A-J { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z z = ( @coeff3 * z2*z ) + ( @coeff2 * (z2) ) + ( @coeff1 * z ) + ( @coeff0*jc ) bailout: |z| < @bail default: title = "GenCubic 1A Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam switch: type = "cubic1A" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 } cubic2A { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z z = ( @coeff3 * (z2*z + jc) ) + ( @coeff2 * (z2 + jc) ) + ( @coeff1 * (z + jc) ) + ( @coeff0*(1+jc) ) + jc bailout: |z| < @bail default: title = "GenCubic 2A" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam switch: type = "cubic2A-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 } cubic2A-J { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z z = ( @coeff3 * (z2*z + jc) ) + ( @coeff2 * (z2 + jc) ) + ( @coeff1 * (z + jc) ) + ( @coeff0*(1+jc) ) + jc bailout: |z| < @bail default: title = "GenCubic 2A Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam switch: type = "cubic2A" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 } quartic1 { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z z = ( @coeff4 * z3*z ) + ( @coeff3 * z3 ) + ( @coeff2 * z2 ) + ( @coeff1 * z ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenQuartic 1" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam switch: type = "quartic1-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 } quartic1-J { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z z = ( @coeff4 * z3*z ) + ( @coeff3 * z3 ) + ( @coeff2 * z2 ) + ( @coeff1 * z ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenQuartic 1 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam switch: type = "quartic1" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 } funcXquartic1 { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex oldz = z complex z2 = z*z, complex z3 = z2*z z = ( @coeff4 * z3*z ) + ( @coeff3 * z3 ) + ( @coeff2 * z2 ) + ( @coeff1 * z ) + ( @coeff0 ) + jc z = @multiplier(oldz) * z +jc bailout: |z| < @bail default: title = "Fn*Quartic1" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam func multiplier caption = "Function Multiplier" default = sin() hint = "Function will be multiplied by polynomial value" endfunc switch: type = "funcXquartic1-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 multiplier = multiplier } funcXquartic1-J { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex oldz = z complex z2 = z*z, complex z3 = z2*z z = ( @coeff4 * z3*z ) + ( @coeff3 * z3 ) + ( @coeff2 * z2 ) + ( @coeff1 * z ) + ( @coeff0 ) + jc z = @multiplier(oldz) * z +jc bailout: |z| < @bail default: title = "Fn*Quartic1 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam func multiplier caption = "Function Multiplier" default = sin() hint = "Function will be multiplied by polynomial value" endfunc switch: type = "funcXquartic1" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 multiplier = multiplier } quartic2 { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z z = ( @coeff4 * (z3*z+jc) ) + ( @coeff3 * (z3+jc) ) + ( @coeff2 * (z2 + jc) ) + ( @coeff1 * (z + jc) ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenQuartic 2" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam switch: type = "quartic2-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 } quartic2-J { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z z = ( @coeff4 * (z3*z+jc) ) + ( @coeff3 * (z3+jc) ) + ( @coeff2 * (z2 + jc) ) + ( @coeff1 * (z + jc) ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenQuartic 2 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam switch: type = "quartic2" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 } quartic3 { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex zsum = z+jc, complex zsumsq = zsum*zsum, zsum3 = zsum*zsumsq z = ( @coeff4 * (zsum3*zsum) ) + ( @coeff3 * zsum3 ) + ( @coeff2 * zsumsq ) + ( @coeff1 * zsum ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenQuartic 3" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam switch: type = "quartic3-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 } quartic3-J { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex zsum = z+jc, complex zsumsq = zsum*zsum, zsum3 = zsum*zsumsq z = ( @coeff4 * (zsum3*zsum) ) + ( @coeff3 * zsum3 ) + ( @coeff2 * zsumsq ) + ( @coeff1 * zsum ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenQuartic 3 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam switch: type = "quartic3" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 } quartic1A { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z z = ( @coeff4 * z3*z ) + ( @coeff3 * z3 ) + ( @coeff2 * z2 ) + ( @coeff1 * z ) + ( @coeff0*jc ) bailout: |z| < @bail default: title = "GenQuartic 1A" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam switch: type = "quartic1A-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 } quartic1A-J { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z z = ( @coeff4 * z3*z ) + ( @coeff3 * z3 ) + ( @coeff2 * z2 ) + ( @coeff1 * z ) + ( @coeff0*jc ) bailout: |z| < @bail default: title = "GenQuartic 1A Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam switch: type = "quartic1A" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 } quartic2A { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z z = ( @coeff4 * (z3*z+jc) ) + ( @coeff3 * (z3+jc) ) + ( @coeff2 * (z2 + jc) ) + ( @coeff1 * (z + jc) ) + ( @coeff0 * (1+jc) ) + jc bailout: |z| < @bail default: title = "GenQuartic 2A" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam switch: type = "quartic2A-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 } quartic2A-J { ; jam 010522 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z z = ( @coeff4 * (z3*z+jc) ) + ( @coeff3 * (z3+jc) ) + ( @coeff2 * (z2 + jc) ) + ( @coeff1 * (z + jc) ) + ( @coeff0 * (1+jc) ) + jc bailout: |z| < @bail default: title = "GenQuartic 2A Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam switch: type = "quartic2A" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 } quintic1 { ; jam 010524 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z z = ( @coeff5 * z4*z ) + ( @coeff4 * z4 ) + ( @coeff3 * z3 ) + ( @coeff2 * z2 ) + ( @coeff1 * z ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenQuintic 1" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff5 caption = "Z^5 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter sixth coefficient" endparam switch: type = "quintic1-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 coeff5 = coeff5 } quintic1-J { ; jam 010524 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z z = ( @coeff5 * z4*z ) + ( @coeff4 * z4 ) + ( @coeff3 * z3 ) + ( @coeff2 * z2 ) + ( @coeff1 * z ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenQuintic 1 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff5 caption = "Z^5 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter sixth coefficient" endparam switch: type = "quintic1" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 coeff5 = coeff5 } quintic2 { ; jam 010524 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z z = ( @coeff5 * (z4*z+jc) ) + ( @coeff4 * (z4+jc) ) + ( @coeff3 * (z3 + jc) ) + ( @coeff2 * (z2 + jc) ) + ( @coeff1 * (z + jc) ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenQuintic 2" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff5 caption = "Z^5 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter sixth coefficient" endparam switch: type = "quintic2-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 coeff5 = coeff5 } quintic2-J { ; jam 010524 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z z = ( @coeff5 * (z4*z+jc) ) + ( @coeff4 * (z4+jc) ) + ( @coeff3 * (z3 + jc) ) + ( @coeff2 * (z2 + jc) ) + ( @coeff1 * (z + jc) ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenQuintic 2 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff5 caption = "Z^5 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter sixth coefficient" endparam switch: type = "quintic2" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 coeff5 = coeff5 } quintic3 { ; jam 010524 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex zsum = z+jc, complex zsumsq = zsum*zsum, complex zsum3 = zsum*zsumsq, complex zsum4 = zsum*zsum3 z = ( @coeff5 * (zsum4*zsum) ) + ( @coeff4 * zsum4 ) + ( @coeff3 * zsum3 ) + ( @coeff2 * zsumsq ) + ( @coeff1 * zsum ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenQuintic 3" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff5 caption = "Z^5 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter sixth coefficient" endparam switch: type = "quintic3-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 coeff5 = coeff5 } quintic3-J { ; jam 010524 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex zsum = z+jc, complex zsumsq = zsum*zsum, complex zsum3 = zsum*zsumsq, complex zsum4 = zsum*zsum3 z = ( @coeff5 * (zsum4*zsum) ) + ( @coeff4 * zsum4 ) + ( @coeff3 * zsum3 ) + ( @coeff2 * zsumsq ) + ( @coeff1 * zsum ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenQuintic 3 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff5 caption = "Z^5 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter sixth coefficient" endparam switch: type = "quintic3" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 coeff5 = coeff5 } quintic1A { ; jam 010524 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z z = ( @coeff5 * z4*z ) + ( @coeff4 * z4 ) + ( @coeff3 * z3 ) + ( @coeff2 * z2 ) + ( @coeff1*z ) + ( @coeff0*jc ) bailout: |z| < @bail default: title = "GenQuintic 1A" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff5 caption = "Z^5 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter sixth coefficient" endparam switch: type = "quintic1A-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 coeff5 = coeff5 } quintic1A-J { ; jam 010524 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z z = ( @coeff5 * z4*z ) + ( @coeff4 * z4 ) + ( @coeff3 * z3 ) + ( @coeff2 * z2 ) + ( @coeff1*z ) + ( @coeff0*jc ) bailout: |z| < @bail default: title = "GenQuintic 1A Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff5 caption = "Z^5 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter sixth coefficient" endparam switch: type = "quintic1A" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 coeff5 = coeff5 } quintic2A { ; jam 010524 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z z = ( @coeff5 * (z4*z+jc) ) + ( @coeff4 * (z4+jc) ) + ( @coeff3 * (z3 + jc) ) + ( @coeff2 * (z2 + jc) ) + ( @coeff1 * (z + jc) ) + ( @coeff0 * (1+jc) ) + jc bailout: |z| < @bail default: title = "GenQuintic 2A" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff5 caption = "Z^5 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter sixth coefficient" endparam switch: type = "quintic2A-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 coeff5 = coeff5 } quintic2A-J { ; jam 010524 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z z = ( @coeff5 * (z4*z+jc) ) + ( @coeff4 * (z4+jc) ) + ( @coeff3 * (z3 + jc) ) + ( @coeff2 * (z2 + jc) ) + ( @coeff1 * (z + jc) ) + ( @coeff0 * (1+jc) ) + jc bailout: |z| < @bail default: title = "GenQuintic 2A Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff5 caption = "Z^5 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter sixth coefficient" endparam switch: type = "quintic2A" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 coeff5 = coeff5 } quintic2A-func { ; jam 010524 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z z = ( @coeff5 * @func5(z) * (z4*z+jc) ) + ( @coeff4 * @func4(z) * (z4+jc) ) + ( @coeff3 * @func3(z) * (z3 + jc) ) + ( @coeff2 * @func2(z) * (z2 + jc) ) + ( @coeff1 * @func1(z) * (z + jc) ) + ( @coeff0 * @func0(z) * (1+jc) ) + jc bailout: |z| < @bail default: title = "Fn*Quintic 2A" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam func func5 caption = "Z^5 Multiplier" default = sin() hint = "Enter first function" endfunc func func4 caption = "Z^4 Multiplier" default = zero() hint = "Enter second function" endfunc func func3 caption = "Z^3 Multiplier" default = zero() hint = "Enter third function" endfunc func func2 caption = "Z^2 Multiplier" default = zero() hint = "Enter fourth function" endfunc func func1 caption = "Z^1 Multiplier" default = zero() hint = "Enter fifth function" endfunc func func0 caption = "Z^0 Multiplier" default = zero() hint = "Enter sixth function" endfunc param coeff5 caption = "Z^5 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter sixth coefficient" endparam switch: type = "quintic2A-func-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 coeff5 = coeff5 func0 = func0 func1 = func1 func2 = func2 func3 = func3 func4 = func4 func5 = func5 } quintic2A-func-J { ; jam 010524 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z z = ( @coeff5 * @func5(z) * (z4*z+jc) ) + ( @coeff4 * @func4(z) * (z4+jc) ) + ( @coeff3 * @func3(z) * (z3 + jc) ) + ( @coeff2 * @func2(z) * (z2 + jc) ) + ( @coeff1 * @func1(z) * (z + jc) ) + ( @coeff0 * @func0(z) * (1+jc) ) + jc bailout: |z| < @bail default: title = "Fn*Quintic 2A Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam func func5 caption = "Z^5 Multiplier" default = sin() hint = "Enter first function" endfunc func func4 caption = "Z^4 Multiplier" default = zero() hint = "Enter second function" endfunc func func3 caption = "Z^3 Multiplier" default = zero() hint = "Enter third function" endfunc func func2 caption = "Z^2 Multiplier" default = zero() hint = "Enter fourth function" endfunc func func1 caption = "Z^1 Multiplier" default = zero() hint = "Enter fifth function" endfunc func func0 caption = "Z^0 Multiplier" default = zero() hint = "Enter sixth function" endfunc param coeff5 caption = "Z^5 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter sixth coefficient" endparam switch: type = "quintic2A-func" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 coeff5 = coeff5 func0 = func0 func1 = func1 func2 = func2 func3 = func3 func4 = func4 func5 = func5 } sextic1 { ; jam 010524 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z, complex z5 = z4*z z = ( @coeff6 * z5*z ) + ( @coeff5 * z5 ) + ( @coeff4 * z4 ) + ( @coeff3 * z3 ) + ( @coeff2 * z2 ) + ( @coeff1 * z ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenSextic 1" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff6 caption = "Z^6 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff5 caption = "Z^5 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter sixth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter seventh coefficient" endparam switch: type = "sextic1-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 coeff5 = coeff5 coeff6 = coeff6 } sextic1-J { ; jam 010524 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z, complex z5 = z4*z z = ( @coeff6 * z5*z ) + ( @coeff5 * z5 ) + ( @coeff4 * z4 ) + ( @coeff3 * z3 ) + ( @coeff2 * z2 ) + ( @coeff1 * z ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenSextic 1 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff6 caption = "Z^6 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff5 caption = "Z^5 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter sixth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter seventh coefficient" endparam switch: type = "sextic1" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 coeff5 = coeff5 coeff6 = coeff6 } sextic2 { ; jam 010524 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z, complex z5 = z4*z z = ( @coeff6 * (z5*z+jc) ) + ( @coeff5 * (z5+jc) ) + ( @coeff4 * (z4 + jc) ) + ( @coeff3 * (z3 + jc) ) + ( @coeff2 * (z2 + jc) ) + ( @coeff1 * (z+jc) ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenSextic 2" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff6 caption = "Z^6 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff5 caption = "Z^5 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter sixth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter seventh coefficient" endparam switch: type = "sextic2-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 coeff5 = coeff5 coeff6 = coeff6 } sextic2-J { ; jam 010524 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z, complex z5 = z4*z z = ( @coeff6 * (z5*z+jc) ) + ( @coeff5 * (z5+jc) ) + ( @coeff4 * (z4 + jc) ) + ( @coeff3 * (z3 + jc) ) + ( @coeff2 * (z2 + jc) ) + ( @coeff1 * (z+jc) ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenSextic 2 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff6 caption = "Z^6 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff5 caption = "Z^5 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter sixth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter seventh coefficient" endparam switch: type = "sextic2" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 coeff5 = coeff5 coeff6 = coeff6 } sextic3 { ; jam 010524 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex zsum = z+jc, complex zsumsq = zsum*zsum, complex zsum3 = zsum*zsumsq complex zsum4 = zsum*zsum3, complex zsum5 = zsum4*zsum z = ( @coeff6 * (zsum5*zsum) ) + ( @coeff5 * zsum5 ) + ( @coeff4 * zsum4 ) + ( @coeff3 * zsum3 ) + ( @coeff2 * zsumsq ) + ( @coeff1 * zsum ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenSextic 3" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff6 caption = "Z^6 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff5 caption = "Z^5 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter sixth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter seventh coefficient" endparam switch: type = "sextic3-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 coeff5 = coeff5 coeff6 = coeff6 } sextic3-J { ; jam 010524 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex zsum = z+jc, complex zsumsq = zsum*zsum, complex zsum3 = zsum*zsumsq complex zsum4 = zsum*zsum3, complex zsum5 = zsum4*zsum z = ( @coeff6 * (zsum5*zsum) ) + ( @coeff5 * zsum5 ) + ( @coeff4 * zsum4 ) + ( @coeff3 * zsum3 ) + ( @coeff2 * zsumsq ) + ( @coeff1 * zsum ) + ( @coeff0 ) + jc bailout: |z| < @bail default: title = "GenSextic 3 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff6 caption = "Z^6 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff5 caption = "Z^5 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter sixth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter seventh coefficient" endparam switch: type = "sextic3" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 coeff5 = coeff5 coeff6 = coeff6 } sextic1A { ; jam 010524 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z, complex z5 = z4*z z = ( @coeff6 * z5*z ) + ( @coeff5 * z5 ) + ( @coeff4 * z4 ) + ( @coeff3 * z3 ) + ( @coeff2 * z2 ) + ( @coeff1 * z ) + ( @coeff0*jc ) bailout: |z| < @bail default: title = "GenSextic 1A" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff6 caption = "Z^6 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff5 caption = "Z^5 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter sixth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter seventh coefficient" endparam switch: type = "sextic1A-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 coeff5 = coeff5 coeff6 = coeff6 } sextic1A-J { ; jam 010524 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z, complex z5 = z4*z z = ( @coeff6 * z5*z ) + ( @coeff5 * z5 ) + ( @coeff4 * z4 ) + ( @coeff3 * z3 ) + ( @coeff2 * z2 ) + ( @coeff1 * z ) + ( @coeff0*jc ) bailout: |z| < @bail default: title = "GenSextic 1A Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff6 caption = "Z^6 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff5 caption = "Z^5 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter sixth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter seventh coefficient" endparam switch: type = "sextic1A" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 coeff5 = coeff5 coeff6 = coeff6 } sextic2A { ; jam 010524 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z, complex z5 = z4*z z = ( @coeff6 * (z5*z+jc) ) + ( @coeff5 * (z5+jc) ) + ( @coeff4 * (z4 + jc) ) + ( @coeff3 * (z3 + jc) ) + ( @coeff2 * (z2 + jc) ) + ( @coeff1 * (z + jc) ) + ( @coeff0 * (1+jc) ) + jc bailout: |z| < @bail default: title = "GenSextic 2A" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff6 caption = "Z^6 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff5 caption = "Z^5 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter sixth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter seventh coefficient" endparam switch: type = "sextic2A-J" jconstant = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 coeff5 = coeff5 coeff6 = coeff6 } sextic2A-J { ; jam 010524 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif loop: complex z2 = z*z, complex z3 = z2*z, complex z4 = z3*z, complex z5 = z4*z z = ( @coeff6 * (z5*z+jc) ) + ( @coeff5 * (z5+jc) ) + ( @coeff4 * (z4 + jc) ) + ( @coeff3 * (z3 + jc) ) + ( @coeff2 * (z2 + jc) ) + ( @coeff1 * (z + jc) ) + ( @coeff0 * (1+jc) ) + jc bailout: |z| < @bail default: title = "GenSextic 2A Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param coeff6 caption = "Z^6 Coefficient" default = (1.0, 0) hint = "Enter first coefficient" endparam param coeff5 caption = "Z^5 Coefficient" default = (1.0, 0) hint = "Enter second coefficient" endparam param coeff4 caption = "Z^4 Coefficient" default = (1.0, 0) hint = "Enter third coefficient" endparam param coeff3 caption = "Z^3 Coefficient" default = (1.0, 0) hint = "Enter fourth coefficient" endparam param coeff2 caption = "Z^2 Coefficient" default = (1.0, 0) hint = "Enter fifth coefficient" endparam param coeff1 caption = "Z^1 Coefficient" default = (1.0, 0) hint = "Enter sixth coefficient" endparam param coeff0 caption = "Z^0 Coefficient" default = (1.0, 0) hint = "Enter seventh coefficient" endparam switch: type = "sextic2A" perturbation = #pixel bail = bail coeff0 = coeff0 coeff1 = coeff1 coeff2 = coeff2 coeff3 = coeff3 coeff4 = coeff4 coeff5 = coeff5 coeff6 = coeff6 } jam-CircleShifts { ; jam 010906 ; Mandelbrot formula changes according to whether #z ; falls within or without a user-defined circle. ; Formula iterated is z = f( g(z)^power ) + h( pixel ) ; General idea inspired by a sam.ufm formula... init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex center = @centr, float radius = @rad ; circle center, radius int iter = 0, int remainder = 0, bool flip = TRUE ; for flipping loop: if @flipmode iter = iter + 1 remainder = iter % @fliprate if ( remainder == 0 ) flip = !flip endif ; remainder endif ; flipmode if flip ; Center z at the circle center and compare its magnitude to the circle radius if ( cabs( z - center ) <= radius ) ; inside circle or on circumference z = @inz2func( @inz1func(z)^@inpower ) + @inpfunc( jc ) else z = @outz2func( @outz1func(z)^@outpower ) + @outpfunc( jc ) endif ; cabs else ; Center z at the circle center and compare its magnitude to the circle radius if ( cabs( z - center ) <= radius ) ; inside circle or on circumference z = @outz2func( @outz1func(z)^@outpower ) + @outpfunc( jc ) else z = @inz2func( @inz1func(z)^@inpower ) + @inpfunc( jc ) endif ; cabs endif ; flip bailout: |z| < @bail default: title = "Circle Shifts" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param centr caption = "Circle Center" default = (0,0) hint = "Where is the circle located?" endparam param rad caption = "Circle Radius" default = 1.0 hint = "How big is the circle? Radius determines inside/outside formula shift" endparam param inpower caption = "Inside Exponent" default = (2,0) hint = "This parameter is the Mandelbrot power used on iterations when \ z falls inside the circle" endparam param outpower caption = "Outside Exponent" default = (3,0) hint = "This parameter is the Mandelbrot power used on iterations when \ z falls outside the circle" endparam param flipmode caption = "Flip Mode?" default = FALSE hint = "If enabled, the inside and outside parameters will reverse every \ N iterations; N is set by parameter 'Flip Rate'" endparam param fliprate caption = "Flip Rate" default = 5 min = 1 hint = "Number of iterations to skip before reversing inside/outside parameters; \ only active if parameter 'Flip Mode' is enabled" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam func inz1func caption = "Inside f(z)" default = ident() hint = "Optional function of z prior to exponentiation when inside circle" endfunc func inz2func caption = "Inside f(z^power)" default = ident() hint = "Optional function of z^power (post exponentiation) when inside circle" endfunc func inpfunc caption = "Inside p Function" default = ident() hint = "Optional function of #pixel when inside circle" endfunc func outz1func caption = "Outside f(z)" default = ident() hint = "Optional function of z prior to exponentiation when outside circle" endfunc func outz2func caption = "Outside f(z^power)" default = ident() hint = "Optional function of z^power (post exponentiation) when outside circle" endfunc func outpfunc caption = "Outside p Function" default = ident() hint = "Optional function of #pixel when outside circle" endfunc switch: type = "jam-CircleShifts-J" jconstant = #pixel bail = bail centr = centr rad = rad flipmode = flipmode fliprate = fliprate inpower = inpower outpower = outpower inz1func = inz1func inpfunc = inpfunc outz1func = outz1func outpfunc = outpfunc inz2func = inz2func outz2func = outz2func } jam-CircleShifts-J { ; jam 010906 ; Mandelbrot formula changes according to whether #z ; falls within or without a user-defined circle. ; Formula iterated is z = f( g(z)^power ) + h( pixel ) ; General idea inspired by a sam.ufm formula... init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex center = @centr, float radius = @rad ; circle center, radius int iter = 0, int remainder = 0, bool flip = TRUE ; for flipping loop: if @flipmode iter = iter + 1 remainder = iter % @fliprate if ( remainder == 0 ) flip = !flip endif ; remainder endif ; flipmode if flip ; Center z at the circle center and compare its magnitude to the circle radius if ( cabs( z - center ) <= radius ) ; inside circle or on circumference z = @inz2func( @inz1func(z)^@inpower ) + @inpfunc( jc ) else z = @outz2func( @outz1func(z)^@outpower ) + @outpfunc( jc ) endif ; cabs else ; Center z at the circle center and compare its magnitude to the circle radius if ( cabs( z - center ) <= radius ) ; inside circle or on circumference z = @outz2func( @outz1func(z)^@outpower ) + @outpfunc( jc ) else z = @inz2func( @inz1func(z)^@inpower ) + @inpfunc( jc ) endif ; cabs endif ; flip bailout: |z| < @bail default: title = "Circle Shifts Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param centr caption = "Circle Center" default = (0,0) hint = "Where is the circle located?" endparam param rad caption = "Circle Radius" default = 1.0 hint = "How big is the circle? Radius determines inside/outside formula shift" endparam param inpower caption = "Inside Exponent" default = (2,0) hint = "This parameter is the Mandelbrot power used on iterations when \ z falls inside the circle" endparam param outpower caption = "Outside Exponent" default = (3,0) hint = "This parameter is the Mandelbrot power used on iterations when \ z falls outside the circle" endparam param flipmode caption = "Flip Mode?" default = FALSE hint = "If enabled, the inside and outside parameters will reverse every \ N iterations; N is set by parameter 'Flip Rate'" endparam param fliprate caption = "Flip Rate" default = 5 min = 1 hint = "Number of iterations to skip before reversing inside/outside parameters; \ only active if parameter 'Flip Mode' is enabled" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam func inz1func caption = "Inside f(z)" default = ident() hint = "Optional function of z prior to exponentiation when inside circle" endfunc func inz2func caption = "Inside f(z^power)" default = ident() hint = "Optional function of z^power (post exponentiation) when inside circle" endfunc func inpfunc caption = "Inside p Function" default = ident() hint = "Optional function of #pixel when inside circle" endfunc func outz1func caption = "Outside f(z)" default = ident() hint = "Optional function of z prior to exponentiation when outside circle" endfunc func outz2func caption = "Outside f(z^power)" default = ident() hint = "Optional function of z^power (post exponentiation) when outside circle" endfunc func outpfunc caption = "Outside p Function" default = ident() hint = "Optional function of #pixel when outside circle" endfunc switch: type = "jam-CircleShifts" perturbation = #pixel bail = bail centr = centr rad = rad flipmode = flipmode fliprate = fliprate inpower = inpower outpower = outpower inz1func = inz1func inpfunc = inpfunc outz1func = outz1func outpfunc = outpfunc inz2func = inz2func outz2func = outz2func } jam-CircleShifts2 { ; jam 010906 ; Identical Mandelbrot formulas are iterated regardless ; of whether #z is within or without the user-defined circle. ; Formula iterated is z = f( g(z)^power ) + h( pixel ). ; However, whenever #z falls within/without the circle, ; a pre-transform is applied to #z before the iteration step. ; General idea inspired by a sam.ufm formula... init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex center = @centr, float radius = @rad ; circle center, radius int iter = 0, int remainder = 0 ; for flipping inside/outside transformation if ( @inout == 0 ) ; transform when z is inside circle bool flip = TRUE else ; outside transformation bool flip = FALSE endif ; inout loop: if @flipmode iter = iter + 1 remainder = iter % @fliprate if ( remainder == 0 ) flip = !flip endif ; remainder endif ; flipmode ; Execute transform on z if within/without the circle, depending on @inout if flip ; Center z at the circle center and compare its magnitude to the circle radius if ( cabs( z - center ) <= radius ) ; inside circle or on circumference z = @circlefunc(z) endif ; cabs else if ( cabs( z - center ) > radius ) ; outside circle z = @circlefunc(z) endif ; cabs endif ; flip ; Now execute regular Mandelbrot iteration z = @z2func( @z1func(z)^@power ) + @pfunc( jc ) bailout: |z| < @bail default: title = "Circle Shifts 2" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param centr caption = "Circle Center" default = (0,0) hint = "Where is the circle located?" endparam param rad caption = "Circle Radius" default = 1.0 hint = "How big is the circle? Radius determines inside/outside formula shift" endparam param power caption = "Exponent" default = (2,0) hint = "This parameter is the Mandelbrot power used on all iterations" endparam param inout caption = "In/Out Mode" enum = "inside" "outside" default = 0 hint = "Determines which state #z must have in order to be transformed by \ the 'Circle Function'" endparam param flipmode caption = "Flip Mode?" default = FALSE hint = "If enabled, the inside and outside parameters will reverse every \ N iterations; N is set by parameter 'Flip Rate'" endparam param fliprate caption = "Flip Rate" default = 5 min = 1 hint = "Number of iterations to skip before reversing inside/outside parameters; \ only active if parameter 'Flip Mode' is enabled" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam func circlefunc caption = "Circle Function" default = ident() hint = "Function to transform z whenever it falls inside/outside circle" endfunc func z1func caption = "f(z) Function" default = ident() hint = "Optional function of z prior to exponentiation during Mandelbrot step" endfunc func z2func caption = "g(z^power) Function" default = ident() hint = "Optional function of z^power (post exponentiation) during Mandelbrot step" endfunc func pfunc caption = "h(p) Function" default = ident() hint = "Optional function of #pixel during Mandelbrot step" endfunc switch: type = "jam-CircleShifts2-J" jconstant = #pixel bail = bail centr = centr rad = rad inout = inout flipmode = flipmode fliprate = fliprate power = power z1func = z1func pfunc = pfunc z2func = z2func circlefunc = circlefunc } jam-CircleShifts2-J { ; jam 010906 ; Identical Mandelbrot formulas are iterated regardless ; of whether #z is within or without the user-defined circle. ; Formula iterated is z = f( g(z)^power ) + h( pixel ). ; However, whenever #z falls within/without the circle, ; a pre-transform is applied to #z before the iteration step. ; General idea inspired by a sam.ufm formula... init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex center = @centr, float radius = @rad ; circle center, radius int iter = 0, int remainder = 0 ; for flipping inside/outside transformation if ( @inout == 0 ) ; transform when z is inside circle bool flip = TRUE else ; outside transformation bool flip = FALSE endif ; inout loop: if @flipmode iter = iter + 1 remainder = iter % @fliprate if ( remainder == 0 ) flip = !flip endif ; remainder endif ; flipmode ; Execute transform on z if within/without the circle, depending on @inout if flip ; Center z at the circle center and compare its magnitude to the circle radius if ( cabs( z - center ) <= radius ) ; inside circle or on circumference z = @circlefunc(z) endif ; cabs else if ( cabs( z - center ) > radius ) ; outside circle z = @circlefunc(z) endif ; cabs endif ; flip ; Now execute regular Mandelbrot iteration z = @z2func( @z1func(z)^@power ) + @pfunc( jc ) bailout: |z| < @bail default: title = "Circle Shifts 2 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param centr caption = "Circle Center" default = (0,0) hint = "Where is the circle located?" endparam param rad caption = "Circle Radius" default = 1.0 hint = "How big is the circle? Radius determines inside/outside formula shift" endparam param power caption = "Exponent" default = (2,0) hint = "This parameter is the Mandelbrot power used on all iterations" endparam param inout caption = "In/Out Mode" enum = "inside" "outside" default = 0 hint = "Determines which state #z must have in order to be transformed by \ the 'Circle Function'" endparam param flipmode caption = "Flip Mode?" default = FALSE hint = "If enabled, the inside and outside parameters will reverse every \ N iterations; N is set by parameter 'Flip Rate'" endparam param fliprate caption = "Flip Rate" default = 5 min = 1 hint = "Number of iterations to skip before reversing inside/outside parameters; \ only active if parameter 'Flip Mode' is enabled" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam func circlefunc caption = "Circle Function" default = ident() hint = "Function to transform z whenever it falls inside/outside circle" endfunc func z1func caption = "f(z) Function" default = ident() hint = "Optional function of z prior to exponentiation during Mandelbrot step" endfunc func z2func caption = "g(z^power) Function" default = ident() hint = "Optional function of z^power (post exponentiation) during Mandelbrot step" endfunc func pfunc caption = "h(p) Function" default = ident() hint = "Optional function of #pixel during Mandelbrot step" endfunc switch: type = "jam-CircleShifts2" perturbation = #pixel bail = bail centr = centr rad = rad inout = inout flipmode = flipmode fliprate = fliprate power = power z1func = z1func pfunc = pfunc z2func = z2func circlefunc = circlefunc } jam-CircleShifts3 { ; jam 010906 ; Mandelbrot formula changes according to whether #z ; falls within a ring encompassing a user-defined circle. ; Formula iterated is z = f( g(z)^power ) + h( pixel ) ; General idea inspired by a sam.ufm formula... init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex center = @centr, float radius = @rad ; circle center, radius float ringwidth = @ring int iter = 0, int remainder = 0, bool flip = TRUE ; for flipping loop: if @flipmode iter = iter + 1 remainder = iter % @fliprate if ( remainder == 0 ) flip = !flip endif ; remainder endif ; flipmode if flip ; Center z at the circle center and compare its magnitude to the ring width if ( abs( cabs( z - center ) - radius ) <= ringwidth ) ; inside ring z = @inz2func( @inz1func(z)^@inpower ) + @inpfunc( jc ) else z = @outz2func( @outz1func(z)^@outpower ) + @outpfunc( jc ) endif ; cabs else ; Center z at the circle center and compare its magnitude to the ring width if ( abs( cabs( z - center ) - radius ) <= ringwidth ) ; inside ring z = @outz2func( @outz1func(z)^@outpower ) + @outpfunc( jc ) else z = @inz2func( @inz1func(z)^@inpower ) + @inpfunc( jc ) endif ; cabs endif ; flip bailout: |z| < @bail default: title = "Circle Shifts 3" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param centr caption = "Circle Center" default = (0,0) hint = "Where is the circle located?" endparam param rad caption = "Circle Radius" default = 1.0 hint = "How big is the circle? Radius determines inside/outside formula shift" endparam param ring caption = "Ring Width" default = 0.2 hint = "Enter width of ring within which #z must fall" endparam param inpower caption = "Inside Exponent" default = (2,0) hint = "This parameter is the Mandelbrot power used on iterations when \ z falls inside the ring" endparam param outpower caption = "Outside Exponent" default = (3,0) hint = "This parameter is the Mandelbrot power used on iterations when \ z falls outside the ring" endparam param flipmode caption = "Flip Mode?" default = FALSE hint = "If enabled, the inside and outside parameters will reverse every \ N iterations; N is set by parameter 'Flip Rate'" endparam param fliprate caption = "Flip Rate" default = 5 min = 1 hint = "Number of iterations to skip before reversing inside/outside parameters; \ only active if parameter 'Flip Mode' is enabled" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam func inz1func caption = "Inside f(z)" default = ident() hint = "Optional function of z prior to exponentiation when inside ring" endfunc func inz2func caption = "Inside f(z^power)" default = ident() hint = "Optional function of z^power (post exponentiation) when inside ring" endfunc func inpfunc caption = "Inside p Function" default = ident() hint = "Optional function of #pixel when inside ring" endfunc func outz1func caption = "Outside f(z)" default = ident() hint = "Optional function of z prior to exponentiation when outside ring" endfunc func outz2func caption = "Outside f(z^power)" default = ident() hint = "Optional function of z^power (post exponentiation) when outside ring" endfunc func outpfunc caption = "Outside p Function" default = ident() hint = "Optional function of #pixel when outside ring" endfunc switch: type = "jam-CircleShifts3-J" jconstant = #pixel bail = bail centr = centr rad = rad ring = ring flipmode = flipmode fliprate = fliprate inpower = inpower outpower = outpower inz1func = inz1func inpfunc = inpfunc outz1func = outz1func outpfunc = outpfunc inz2func = inz2func outz2func = outz2func } jam-CircleShifts3-J { ; jam 010906 ; Mandelbrot formula changes according to whether #z ; falls within or without a user-defined circle. ; Formula iterated is z = f( g(z)^power ) + h( pixel ) ; General idea inspired by a sam.ufm formula... init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex center = @centr, float radius = @rad ; circle center, radius float ringwidth = @ring int iter = 0, int remainder = 0, bool flip = TRUE ; for flipping loop: if @flipmode iter = iter + 1 remainder = iter % @fliprate if ( remainder == 0 ) flip = !flip endif ; remainder endif ; flipmode if flip ; Center z at the circle center and compare its magnitude to the ring width if ( abs( cabs( z - center ) - radius ) <= ringwidth ) ; inside ring z = @inz2func( @inz1func(z)^@inpower ) + @inpfunc( jc ) else z = @outz2func( @outz1func(z)^@outpower ) + @outpfunc( jc ) endif ; cabs else ; Center z at the circle center and compare its magnitude to the ring width if ( abs( cabs( z - center ) - radius ) <= ringwidth ) ; inside ring z = @outz2func( @outz1func(z)^@outpower ) + @outpfunc( jc ) else z = @inz2func( @inz1func(z)^@inpower ) + @inpfunc( jc ) endif ; cabs endif ; flip bailout: |z| < @bail default: title = "Circle Shifts 3 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param centr caption = "Circle Center" default = (0,0) hint = "Where is the circle located?" endparam param rad caption = "Circle Radius" default = 1.0 hint = "How big is the circle? Radius determines inside/outside formula shift" endparam param ring caption = "Ring Width" default = 0.2 hint = "Enter width of ring within which #z must fall" endparam param inpower caption = "Inside Exponent" default = (2,0) hint = "This parameter is the Mandelbrot power used on iterations when \ z falls inside the ring" endparam param outpower caption = "Outside Exponent" default = (3,0) hint = "This parameter is the Mandelbrot power used on iterations when \ z falls outside the ring" endparam param flipmode caption = "Flip Mode?" default = FALSE hint = "If enabled, the inside and outside parameters will reverse every \ N iterations; N is set by parameter 'Flip Rate'" endparam param fliprate caption = "Flip Rate" default = 5 min = 1 hint = "Number of iterations to skip before reversing inside/outside parameters; \ only active if parameter 'Flip Mode' is enabled" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam func inz1func caption = "Inside f(z)" default = ident() hint = "Optional function of z prior to exponentiation when inside ring" endfunc func inz2func caption = "Inside f(z^power)" default = ident() hint = "Optional function of z^power (post exponentiation) when inside ring" endfunc func inpfunc caption = "Inside p Function" default = ident() hint = "Optional function of #pixel when inside ring" endfunc func outz1func caption = "Outside f(z)" default = ident() hint = "Optional function of z prior to exponentiation when outside ring" endfunc func outz2func caption = "Outside f(z^power)" default = ident() hint = "Optional function of z^power (post exponentiation) when outside ring" endfunc func outpfunc caption = "Outside p Function" default = ident() hint = "Optional function of #pixel when outside ring" endfunc switch: type = "jam-CircleShifts3" perturbation = #pixel bail = bail centr = centr rad = rad ring = ring flipmode = flipmode fliprate = fliprate inpower = inpower outpower = outpower inz1func = inz1func inpfunc = inpfunc outz1func = outz1func outpfunc = outpfunc inz2func = inz2func outz2func = outz2func } jam-CircleShifts4 { ; jam 010906 ; Identical Mandelbrot formulas are iterated regardless ; of whether #z is within or without the user-defined circular ring. ; Formula iterated is z = f( g(z)^power ) + h( pixel ). ; However, whenever #z falls within/without the ring, ; a pre-transform is applied to #z before the iteration step. ; General idea inspired by a sam.ufm formula... init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex center = @centr, float radius = @rad ; circle center, radius float ringwidth = @ring int iter = 0, int remainder = 0 ; for flipping inside/outside transformation if ( @inout == 0 ) ; transform when z is inside ring bool flip = TRUE else ; outside transformation bool flip = FALSE endif ; inout loop: if @flipmode iter = iter + 1 remainder = iter % @fliprate if ( remainder == 0 ) flip = !flip endif ; remainder endif ; flipmode ; Execute transform on z if within/without the ring, depending on @inout if flip ; Center z at the circle center and compare its magnitude to the ring width if ( abs( cabs( z - center ) - radius ) <= ringwidth ) ; inside ring z = @circlefunc(z) endif ; cabs else if ( abs( cabs( z - center ) - radius ) > ringwidth ) ; outside ring z = @circlefunc(z) endif ; cabs endif ; flip ; Now execute regular Mandelbrot iteration z = @z2func( @z1func(z)^@power ) + @pfunc( jc ) bailout: |z| < @bail default: title = "Circle Shifts 4" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param centr caption = "Circle Center" default = (0,0) hint = "Where is the circle located?" endparam param rad caption = "Circle Radius" default = 1.0 hint = "How big is the circle? Radius determines inside/outside formula shift" endparam param ring caption = "Ring Width" default = 0.2 hint = "Enter width of ring within which #z must fall" endparam param power caption = "Exponent" default = (2,0) hint = "This parameter is the Mandelbrot power used on all iterations" endparam param inout caption = "In/Out Mode" enum = "inside" "outside" default = 0 hint = "Determines which state #z must have in order to be transformed by \ the 'Circle Function'" endparam param flipmode caption = "Flip Mode?" default = FALSE hint = "If enabled, the inside and outside parameters will reverse every \ N iterations; N is set by parameter 'Flip Rate'" endparam param fliprate caption = "Flip Rate" default = 5 min = 1 hint = "Number of iterations to skip before reversing inside/outside parameters; \ only active if parameter 'Flip Mode' is enabled" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam func circlefunc caption = "Circle Function" default = ident() hint = "Function to transform z whenever it falls inside/outside ring" endfunc func z1func caption = "f(z) Function" default = ident() hint = "Optional function of z prior to exponentiation during Mandelbrot step" endfunc func z2func caption = "g(z^power) Function" default = ident() hint = "Optional function of z^power (post exponentiation) during Mandelbrot step" endfunc func pfunc caption = "h(p) Function" default = ident() hint = "Optional function of #pixel during Mandelbrot step" endfunc switch: type = "jam-CircleShifts4-J" jconstant = #pixel bail = bail centr = centr rad = rad ring = ring inout = inout flipmode = flipmode fliprate = fliprate power = power z1func = z1func pfunc = pfunc z2func = z2func circlefunc = circlefunc } jam-CircleShifts4-J { ; jam 010906 ; Identical Mandelbrot formulas are iterated regardless ; of whether #z is within or without the user-defined circular ring. ; Formula iterated is z = f( g(z)^power ) + h( pixel ). ; However, whenever #z falls within/without the ring, ; a pre-transform is applied to #z before the iteration step. ; General idea inspired by a sam.ufm formula... init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex center = @centr, float radius = @rad ; circle center, radius float ringwidth = @ring int iter = 0, int remainder = 0 ; for flipping inside/outside transformation if ( @inout == 0 ) ; transform when z is inside ring bool flip = TRUE else ; outside transformation bool flip = FALSE endif ; inout loop: if @flipmode iter = iter + 1 remainder = iter % @fliprate if ( remainder == 0 ) flip = !flip endif ; remainder endif ; flipmode ; Execute transform on z if within/without the circle, depending on @inout if flip ; Center z at the circle center and compare its magnitude to the ring width if ( abs( cabs( z - center ) - radius ) <= ringwidth ) ; inside ring z = @circlefunc(z) endif ; cabs else if ( abs( cabs( z - center ) - radius ) > ringwidth ) ; outside ring z = @circlefunc(z) endif ; cabs endif ; flip ; Now execute regular Mandelbrot iteration z = @z2func( @z1func(z)^@power ) + @pfunc( jc ) bailout: |z| < @bail default: title = "Circle Shifts 4 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param centr caption = "Circle Center" default = (0,0) hint = "Where is the circle located?" endparam param rad caption = "Circle Radius" default = 1.0 hint = "How big is the circle? Radius determines inside/outside formula shift" endparam param ring caption = "Ring Width" default = 0.2 hint = "Enter width of ring within which #z must fall" endparam param power caption = "Exponent" default = (2,0) hint = "This parameter is the Mandelbrot power used on all iterations" endparam param inout caption = "In/Out Mode" enum = "inside" "outside" default = 0 hint = "Determines which state #z must have in order to be transformed by \ the 'Circle Function'" endparam param flipmode caption = "Flip Mode?" default = FALSE hint = "If enabled, the inside and outside parameters will reverse every \ N iterations; N is set by parameter 'Flip Rate'" endparam param fliprate caption = "Flip Rate" default = 5 min = 1 hint = "Number of iterations to skip before reversing inside/outside parameters; \ only active if parameter 'Flip Mode' is enabled" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam func circlefunc caption = "Circle Function" default = ident() hint = "Function to transform z whenever it falls inside/outside ring" endfunc func z1func caption = "f(z) Function" default = ident() hint = "Optional function of z prior to exponentiation during Mandelbrot step" endfunc func z2func caption = "g(z^power) Function" default = ident() hint = "Optional function of z^power (post exponentiation) during Mandelbrot step" endfunc func pfunc caption = "h(p) Function" default = ident() hint = "Optional function of #pixel during Mandelbrot step" endfunc switch: type = "jam-CircleShifts4" perturbation = #pixel bail = bail centr = centr rad = rad ring = ring inout = inout flipmode = flipmode fliprate = fliprate power = power z1func = z1func pfunc = pfunc z2func = z2func circlefunc = circlefunc } jam-CircleShifts5 { ; jam 010906 ; Identical Mandelbrot formulas are iterated regardless ; of where #z lies with respect to the user-defined circle. ; Formula iterated is z = f( g(z)^power + h( pixel )), ; of which there are twelve flavors from which to choose. ; However, one or more of #z, power, or pixel are modulated ; continuously by the current distance of #z from the circle. ; General idea inspired by a sam.ufm formula... init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex center = @centr, float radius = @rad ; circle center, radius float distance = 0.0 loop: ; Center z at the circle center and find its distance from the circle distance = abs( cabs( z - center ) - radius ) ; Now execute the chosen fractal formula if ( @flavor == 0 ) z = @overallfunc( distance * @zfunc( z ) ^ @power + @pfunc( jc )) elseif ( @flavor == 1 ) z = @overallfunc( @zfunc( z ) ^ distance + @pfunc( jc )) elseif ( @flavor == 2 ) z = @overallfunc( @zfunc( z ) ^ @power + distance * @pfunc( jc )) elseif ( @flavor == 3 ) z = @overallfunc( @zfunc( z ) ^ @power + distance + @pfunc( jc )) elseif ( @flavor == 4 ) z = @overallfunc( distance * ( @zfunc( z ) ^ @power + @pfunc( jc ))) elseif ( @flavor == 5 ) z = @overallfunc( distance * @pfunc( jc ) * @zfunc( z ) ^ @power) elseif ( @flavor == 6 ) z = @overallfunc( (distance * @zfunc( z )) ^ @power + @pfunc( jc )) elseif ( @flavor == 7 ) z = @overallfunc( ( @zfunc( z ) * distance * @pfunc( jc ) ) ^ @power ) elseif ( @flavor == 8) z = @overallfunc( @zfunc( z ) ^ ( distance * @power ) + @pfunc( jc )) elseif ( @flavor == 9 ) z = @overallfunc( @pfunc( jc ) * @zfunc( z ) ^ ( distance * @power )) elseif ( @flavor == 10 ) z = @overallfunc( @zfunc( z ) ^ ( distance + @power ) + @pfunc( jc )) else ; ( @flavor == 11 ) z = @overallfunc( @pfunc( jc ) * @zfunc( z ) ^ ( distance + @power )) endif ; flavor bailout: |z| < @bail default: title = "Circle Shifts 5" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param centr caption = "Circle Center" default = (0,0) hint = "Where is the circle located?" endparam param rad caption = "Circle Radius" default = 1.0 hint = "How big is the circle? Radius determines inside/outside formula shift" endparam param power caption = "Exponent" default = (2,0) hint = "This parameter is the Mandelbrot power used on all iterations" endparam param flavor caption = "Formula Flavor" default = 0 min = 0 max = 11 hint = "This parameter selects which of the 12 fractal formulas to iterate; \ the default is closest to a standard Mandelbrot. Choices are 0-11." endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam func zfunc caption = "g(z) Function" default = ident() hint = "Optional function of z prior to fractal iteration" endfunc func pfunc caption = "h(p) Function" default = ident() hint = "Optional function of #pixel prior to fractal iteration" endfunc func overallfunc caption = "Overall Function f(z+p)" default = ident() hint = "Optional function applied to entire result of fractal iteration" endfunc switch: type = "jam-CircleShifts5-J" jconstant = #pixel bail = bail centr = centr rad = rad power = power flavor = flavor zfunc = zfunc pfunc = pfunc overallfunc = overallfunc } jam-CircleShifts5-J { ; jam 010906 ; Identical Mandelbrot formulas are iterated regardless ; of where #z lies with respect to the user-defined circle. ; Formula iterated is z = f( g(z)^power + h( pixel )), ; of which there are twelve flavors from which to choose. ; However, one or more of #z, power, or pixel are modulated ; continuously by the current distance of #z from the circle. ; General idea inspired by a sam.ufm formula... init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex center = @centr, float radius = @rad ; circle center, radius float distance = 0.0 loop: ; Center z at the circle center and find its distance from the circle distance = abs( cabs( z - center ) - radius ) ; Now execute the chosen fractal formula if ( @flavor == 0 ) z = @overallfunc( distance * @zfunc( z ) ^ @power + @pfunc( jc )) elseif ( @flavor == 1 ) z = @overallfunc( @zfunc( z ) ^ distance + @pfunc( jc )) elseif ( @flavor == 2 ) z = @overallfunc( @zfunc( z ) ^ @power + distance * @pfunc( jc )) elseif ( @flavor == 3 ) z = @overallfunc( @zfunc( z ) ^ @power + distance + @pfunc( jc )) elseif ( @flavor == 4 ) z = @overallfunc( distance * ( @zfunc( z ) ^ @power + @pfunc( jc ))) elseif ( @flavor == 5 ) z = @overallfunc( distance * @pfunc( jc ) * @zfunc( z ) ^ @power) elseif ( @flavor == 6 ) z = @overallfunc( (distance * @zfunc( z )) ^ @power + @pfunc( jc )) elseif ( @flavor == 7 ) z = @overallfunc( ( @zfunc( z ) * distance * @pfunc( jc ) ) ^ @power ) elseif ( @flavor == 8) z = @overallfunc( @zfunc( z ) ^ ( distance * @power ) + @pfunc( jc )) elseif ( @flavor == 9 ) z = @overallfunc( @pfunc( jc ) * @zfunc( z ) ^ ( distance * @power )) elseif ( @flavor == 10 ) z = @overallfunc( @zfunc( z ) ^ ( distance + @power ) + @pfunc( jc )) else ; ( @flavor == 11 ) z = @overallfunc( @pfunc( jc ) * @zfunc( z ) ^ ( distance + @power )) endif ; flavor bailout: |z| < @bail default: title = "Circle Shifts 5 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param centr caption = "Circle Center" default = (0,0) hint = "Where is the circle located?" endparam param rad caption = "Circle Radius" default = 1.0 hint = "How big is the circle? Radius determines inside/outside formula shift" endparam param power caption = "Exponent" default = (2,0) hint = "This parameter is the Mandelbrot power used on all iterations" endparam param flavor caption = "Formula Flavor" default = 0 min = 0 max = 11 hint = "This parameter selects which of the 12 fractal formulas to iterate; \ the default is closest to a standard Mandelbrot. Choices are 0-11." endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam func zfunc caption = "g(z) Function" default = ident() hint = "Optional function of z prior to fractal iteration" endfunc func pfunc caption = "h(p) Function" default = ident() hint = "Optional function of #pixel prior to fractal iteration" endfunc func overallfunc caption = "Overall Function f(z+p)" default = ident() hint = "Optional function applied to entire result of fractal iteration" endfunc switch: type = "jam-CircleShifts5" perturbation = #pixel bail = bail centr = centr rad = rad power = power flavor = flavor zfunc = zfunc pfunc = pfunc overallfunc = overallfunc } jam-CircleShifts6 { ; jam 010916 ; Identical Mandelbrot formulas are iterated regardless ; of where #z lies with respect to the user-defined circle. Formula iterated is ; z = cd*[rfunc{[rd*real(z)]^re + flip(ifunc[id*imag(z)]^ie)]^ce + pixfunc(pixel), ; where rd, id, and cd depend on distance of z to circle. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex center = @centr, float radius = @rad ; circle center, radius float distance = 0.0 float realdis = 0.0, float imagdis = 0.0, float cpxdis = 0.0 complex tempx = complex tempy = (0,0) complex fpix = @pfunc( jc^@pixelpower ) loop: ; Center z at the circle center and find its distance from the circle distance = abs( cabs( z - center ) - radius ) ; Assign realdis, imagdis, cpxdis according to chosen distance formula flavor if ( @flavor == 0 ) realdis = imagdis = cpxdis = distance elseif ( @flavor == 1 ) realdis = imagdis = distance, cpxdis = 1/distance elseif ( @flavor == 2 ) realdis = cpxdis = distance, imagdis = 1/distance elseif ( @flavor == 3 ) realdis = 1/distance, imagdis = cpxdis = distance elseif ( @flavor == 4 ) realdis = distance, imagdis = cpxdis = 1/distance elseif ( @flavor == 5 ) realdis = cpxdis = 1/distance, imagdis = distance elseif ( @flavor == 6 ) realdis = imagdis = 1/distance, cpxdis = distance elseif ( @flavor == 7 ) realdis = imagdis = cpxdis = 1/distance elseif ( @flavor == 8 ) realdis = imagdis = distance, cpxdis = 1.0 elseif ( @flavor == 9 ) realdis = cpxdis = distance, imagdis = 1.0 elseif ( @flavor == 10 ) realdis = 1.0, imagdis = cpxdis = distance elseif ( @flavor == 11 ) realdis = distance, imagdis = cpxdis = 1.0 elseif ( @flavor == 12 ) imagdis = distance, realdis = cpxdis = 1.0 elseif ( @flavor == 13 ) cpxdis = distance, realdis = imagdis = 1.0 elseif ( @flavor == 14 ) realdis = distance, imagdis = 1.0, cpxdis = 1/distance elseif ( @flavor == 15 ) realdis = 1.0, imagdis = distance, cpxdis = 1/distance elseif ( @flavor == 16 ) realdis = imagdis = 1.0, cpxdis = 1/distance elseif ( @flavor == 17 ) realdis = 1.0, imagdis = 1/distance, cpxdis = distance elseif ( @flavor == 18 ) realdis = 1/distance, imagdis = 1.0, cpxdis = distance elseif ( @flavor == 19 ) realdis = imagdis = 1/distance, cpxdis = 1.0 elseif ( @flavor == 20 ) realdis = cpxdis = 1/distance, imagdis = 1.0 elseif ( @flavor == 21 ) realdis = 1.0, imagdis = cpxdis = 1/distance elseif ( @flavor == 22 ) realdis = cpxdis = 1.0, imagdis = 1/distance elseif ( @flavor == 23 ) realdis = 1/distance, imagdis = cpxdis = 1.0 elseif ( @flavor == 24 ) realdis = 1/distance, imagdis = distance, cpxdis = 1.0 else ; ( @flavor == 25 ) realdis = distance, imagdis = 1/distance, cpxdis = 1.0 endif ; flavor ; Now execute the chosen fractal formula tempx = @realfunc(( realdis * real(z) )^@realpower ) tempy = @imagfunc(( imagdis * imag(z) )^@imagpower ) z = @cpxfunc(( cpxdis * ( tempx + flip( tempy )))^@cpxpower ) + fpix bailout: |z| < @bail default: title = "Circle Shifts 6" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param centr caption = "Circle Center" default = (1,0) hint = "Where is the circle located?" endparam param rad caption = "Circle Radius" default = 0.75 hint = "How big is the circle?" endparam param flavor caption = "Formula Flavor" enum = "d, d, d" "d, d, 1/d" "d, 1/d, d" "1/d, d, d" "d, 1/d, 1/d" "1/d, d, 1/d" "1/d, 1/d, d" \ "1/d, 1/d, 1/d" "d, d, 1" "d, 1, d" "1, d, d" "d, 1, 1" "1, d, 1" "1, 1, d" "d, 1, 1/d" \ "1, d, 1/d" "1, 1, 1/d" "1, 1/d, d" "1/d, 1, d" "1/d, 1/d, 1" "1/d, 1, 1/d" "1, 1/d, 1/d" \ "1, 1/d, 1" "1/d, 1, 1" "1/d, d, 1" "d, 1/d, 1" default = 0 hint = "Selects one of the 26 distance treatments. \ Formula determines how the distance between z and the circle modulates the real, imaginary, \ and overall complex parts of z. '1' means no modulation, 'd' or '1/d' mean multiply \ given component by distance or its reciprocal" endparam param realpower caption = "Real Exponent" default = (1,0) hint = "This parameter is applied to the real part of z during iteration, after circle \ distance modulation but prior to the Real Function" endparam param imagpower caption = "Imag Exponent" default = (1,0) hint = "This parameter is applied to the imaginary part of z during iteration, after circle \ distance modulation but prior to the Imag Function" endparam param cpxpower caption = "Complex Exponent" default = (2,0) hint = "This parameter is applied to the overall z during iteration, after circle \ distance modulation but prior to the Complex Function" endparam param pixelpower caption = "Pixel Exponent" default = (1,0) hint = "Pixel (Mandelbrot-type) or seed (Julia-type) is raised to this power \ before application of the Pixel Function" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam func realfunc caption = "Real Function" default = ident() hint = "Optional function applied to the real compnent of z" endfunc func imagfunc caption = "Imaginary Function" default = ident() hint = "Optional function applied to the imaginary compnent of z" endfunc func cpxfunc caption = "Complex Function" default = ident() hint = "Optional function applied to the overall z during iteration" endfunc func pfunc caption = "Pixel Function" default = ident() hint = "Optional function of #pixel for use during fractal iteration" endfunc switch: type = "jam-CircleShifts6-J" jconstant = #pixel bail = bail centr = centr rad = rad realpower = realpower imagpower = imagpower cpxpower = cpxpower pixelpower = pixelpower flavor = flavor realfunc = realfunc imagfunc = imagfunc cpxfunc = cpxfunc pfunc = pfunc } jam-CircleShifts6-J { ; jam 010916 ; Identical Mandelbrot formulas are iterated regardless ; of where #z lies with respect to the user-defined circle. Formula iterated is ; z = cd*[rfunc[rd*real(z)]^re + flip(ifunc[id*imag(z)]^ie)]^ce + pixfunc(pixel), ; where rd, id, and cd depend on distance of z to circle. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex center = @centr, float radius = @rad ; circle center, radius float distance = 0.0 float realdis = 0.0, float imagdis = 0.0, float cpxdis = 0.0 complex tempx = complex tempy = (0,0) complex fpix = @pfunc( jc^@pixelpower ) loop: ; Center z at the circle center and find its distance from the circle distance = abs( cabs( z - center ) - radius ) ; Assign realdis, imagdis, cpxdis according to chosen distance formula flavor if ( @flavor == 0 ) realdis = imagdis = cpxdis = distance elseif ( @flavor == 1 ) realdis = imagdis = distance, cpxdis = 1/distance elseif ( @flavor == 2 ) realdis = cpxdis = distance, imagdis = 1/distance elseif ( @flavor == 3 ) realdis = 1/distance, imagdis = cpxdis = distance elseif ( @flavor == 4 ) realdis = distance, imagdis = cpxdis = 1/distance elseif ( @flavor == 5 ) realdis = cpxdis = 1/distance, imagdis = distance elseif ( @flavor == 6 ) realdis = imagdis = 1/distance, cpxdis = distance elseif ( @flavor == 7 ) realdis = imagdis = cpxdis = 1/distance elseif ( @flavor == 8 ) realdis = imagdis = distance, cpxdis = 1.0 elseif ( @flavor == 9 ) realdis = cpxdis = distance, imagdis = 1.0 elseif ( @flavor == 10 ) realdis = 1.0, imagdis = cpxdis = distance elseif ( @flavor == 11 ) realdis = distance, imagdis = cpxdis = 1.0 elseif ( @flavor == 12 ) imagdis = distance, realdis = cpxdis = 1.0 elseif ( @flavor == 13 ) cpxdis = distance, realdis = imagdis = 1.0 elseif ( @flavor == 14 ) realdis = distance, imagdis = 1.0, cpxdis = 1/distance elseif ( @flavor == 15 ) realdis = 1.0, imagdis = distance, cpxdis = 1/distance elseif ( @flavor == 16 ) realdis = imagdis = 1.0, cpxdis = 1/distance elseif ( @flavor == 17 ) realdis = 1.0, imagdis = 1/distance, cpxdis = distance elseif ( @flavor == 18 ) realdis = 1/distance, imagdis = 1.0, cpxdis = distance elseif ( @flavor == 19 ) realdis = imagdis = 1/distance, cpxdis = 1.0 elseif ( @flavor == 20 ) realdis = cpxdis = 1/distance, imagdis = 1.0 elseif ( @flavor == 21 ) realdis = 1.0, imagdis = cpxdis = 1/distance elseif ( @flavor == 22 ) realdis = cpxdis = 1.0, imagdis = 1/distance elseif ( @flavor == 23 ) realdis = 1/distance, imagdis = cpxdis = 1.0 elseif ( @flavor == 24 ) realdis = 1/distance, imagdis = distance, cpxdis = 1.0 else ; ( @flavor == 25 ) realdis = distance, imagdis = 1/distance, cpxdis = 1.0 endif ; flavor ; Now execute the chosen fractal formula tempx = @realfunc(( realdis * real(z) )^@realpower ) tempy = @imagfunc(( imagdis * imag(z) )^@imagpower ) z = @cpxfunc(( cpxdis * ( tempx + flip( tempy )))^@cpxpower ) + fpix bailout: |z| < @bail default: title = "Circle Shifts 6 Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param centr caption = "Circle Center" default = (1,0) hint = "Where is the circle located?" endparam param rad caption = "Circle Radius" default = 0.75 hint = "How big is the circle? Radius determines inside/outside formula shift" endparam param flavor caption = "Formula Flavor" enum = "d, d, d" "d, d, 1/d" "d, 1/d, d" "1/d, d, d" "d, 1/d, 1/d" "1/d, d, 1/d" "1/d, 1/d, d" \ "1/d, 1/d, 1/d" "d, d, 1" "d, 1, d" "1, d, d" "d, 1, 1" "1, d, 1" "1, 1, d" "d, 1, 1/d" \ "1, d, 1/d" "1, 1, 1/d" "1, 1/d, d" "1/d, 1, d" "1/d, 1/d, 1" "1/d, 1, 1/d" "1, 1/d, 1/d" \ "1, 1/d, 1" "1/d, 1, 1" "1/d, d, 1" "d, 1/d, 1" default = 0 hint = "Selects one of the 26 distance treatments. \ Formula determines how the distance between z and the circle modulates the real, imaginary, \ and overall complex parts of z. '1' means no modulation, 'd' or '1/d' mean multiply \ given component by distance or its reciprocal" endparam param realpower caption = "Real Exponent" default = (1,0) hint = "This parameter is applied to the real part of z during iteration, after circle \ distance modulation but prior to the Real Function" endparam param imagpower caption = "Imag Exponent" default = (1,0) hint = "This parameter is applied to the imaginary part of z during iteration, after circle \ distance modulation but prior to the Imag Function" endparam param cpxpower caption = "Complex Exponent" default = (2,0) hint = "This parameter is applied to the overall z during iteration, after circle \ distance modulation but prior to the Complex Function" endparam param pixelpower caption = "Pixel Exponent" default = (1,0) hint = "Pixel (Mandelbrot-type) or seed (Julia-type) is raised to this power \ before application of the Pixel Function" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam func realfunc caption = "Real Function" default = ident() hint = "Optional function applied to the real compnent of z" endfunc func imagfunc caption = "Imaginary Function" default = ident() hint = "Optional function applied to the imaginary compnent of z" endfunc func cpxfunc caption = "Complex Function" default = ident() hint = "Optional function applied to the overall z during iteration" endfunc func pfunc caption = "Pixel Function" default = ident() hint = "Optional function of #pixel for use during fractal iteration" endfunc switch: type = "jam-CircleShifts6" perturbation = #pixel bail = bail centr = centr rad = rad realpower = realpower imagpower = imagpower cpxpower = cpxpower pixelpower = pixelpower flavor = flavor realfunc = realfunc imagfunc = imagfunc cpxfunc = cpxfunc pfunc = pfunc } jam-CircleShifts7 { ; jam 010917 ; This formula was renamed 'jam-CircleTrap' default: title = "Circle Shifts 7" } jam-CircleShifts7-J { ; jam 010917 ; This formula was renamed 'jam-CircleTrap-J' default: title = "Circle Shifts 7 Julia" } jam-CircleTrap { ; jam 010917 ; A Mandelbrot-type formula is iterated, but #z is modulated ; by its position with respect to the user-defined circle. Formula iterated is ; z = [ f( zprime ) ]^zpower + g(pixel)^ppower, where zprime at each iteration ; is a function of #z and its trapped point on the circle. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif jc = (@pfunc(jc))^@pixelpower complex center = @centr, float radius = @rad ; circle center, radius complex zprime = (0,0), complex ztemp = (0,0), float zangle = 0.0 complex zavg = (0,0) int iter = 0 loop: iter = iter + 1 if iter > @skipped ; Center z at the circle center and find its azimuth zprime = z - center zangle = atan2( zprime ) ; angle of z with respect to circle center if zangle < 0 zangle = zangle + 2.0 * #pi endif ; zangle ztemp = radius * exp( flip( zangle )) ; point on circle trapped by z ; Now combine z according to mode with trapped point on circle, and iterate if ( @flavor == 0 ) zprime = z - ztemp elseif ( @flavor == 1 ) zprime = z + ztemp elseif ( @flavor == 2 ) zprime = z * ztemp elseif ( @flavor == 3 ) zprime = z / ztemp elseif ( @flavor == 4 ) zprime = ztemp / z elseif ( @flavor == 5 ) zprime = z ^ ztemp elseif ( @flavor == 6 ) zprime = ztemp ^ z elseif ( @flavor == 7 ) zprime = (z + ztemp)/2 elseif ( @flavor == 8 ) zprime = sqrt(z * ztemp) elseif ( @flavor == 9 ) zprime = ztemp * log(z) elseif ( @flavor == 10 ) zprime = z * log(ztemp) elseif ( @flavor == 11 ) zavg = 2/(ztemp + z) zprime = ztemp * log(z) * zavg else zavg = 2/(ztemp + z) zprime = ztemp * log(z) * zavg endif ; flavor else zprime = z endif ; iter ; Now execute the chosen fractal formula z = ( @zfunc(zprime))^@zpower + jc bailout: |z| < @bail default: title = "Circle Trap" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param centr caption = "Circle Center" default = (0,0) hint = "Where is the circle located?" endparam param rad caption = "Circle Radius" default = 0.4 hint = "How big is the circle?" endparam param flavor caption = "Formula Flavor" enum = "difference" "sum" "product" "quotient1" "quotient2" \ "power1" "power2" "arith mean" "geom mean" "funky 1" \ "funky 2" "funky 3" "funky 4" default = 0 hint = "This parameter determines the actual value to be iterated, \ based on the relationship between z and the point trapped on the circle" endparam param zpower caption = "Z Exponent" default = (2,0) hint = "This parameter is applied to the circle-modulated z during iteration, after \ application of the 'Z Function'" endparam param pixelpower caption = "Pixel Exponent" default = (1,0) hint = "Pixel (Mandelbrot-type) or seed (Julia-type) is raised to this power \ before iteration" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param skipped caption = "Iterations to Skip" default = 0 hint = "Circle trapping will not be monitored until after this many normal Mandelbrot/Julia iterations" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam func zfunc caption = "Z Function" default = ident() hint = "Optional function applied to z before exponentiation" endfunc func pfunc caption = "Pixel Function" default = ident() hint = "Optional function applied to pixel or Julia seed before exponentiation" endfunc switch: type = "jam-CircleTrap-J" jconstant = #pixel bail = bail centr = centr rad = rad zpower = zpower pixelpower = pixelpower skipped = skipped flavor = flavor zfunc = zfunc pfunc = pfunc } jam-CircleTrap-J { ; jam 010917 ; A Mandelbrot-type formula is iterated, but #z is modulated ; by its position with respect to the user-defined circle. Formula iterated is ; z = [ f( zprime ) ]^zpower + g(pixel)^ppower, where zprime at each iteration ; is a function of #z and its trapped point on the circle. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif jc = (@pfunc(jc))^@pixelpower complex center = @centr, float radius = @rad ; circle center, radius complex zprime = (0,0), complex ztemp = (0,0), float zangle = 0.0 complex zavg = (0,0) int iter = 0 loop: iter = iter + 1 if iter > @skipped ; Center z at the circle center and find its azimuth zprime = z - center zangle = atan2( zprime ) ; angle of z with respect to circle center if zangle < 0 zangle = zangle + 2.0 * #pi endif ; zangle ztemp = radius * exp( flip( zangle )) ; point on circle trapped by z ; Now combine z according to mode with trapped point on circle, and iterate if ( @flavor == 0 ) zprime = z - ztemp elseif ( @flavor == 1 ) zprime = z + ztemp elseif ( @flavor == 2 ) zprime = z * ztemp elseif ( @flavor == 3 ) zprime = z / ztemp elseif ( @flavor == 4 ) zprime = ztemp / z elseif ( @flavor == 5 ) zprime = z ^ ztemp elseif ( @flavor == 6 ) zprime = ztemp ^ z elseif ( @flavor == 7 ) zprime = (z + ztemp)/2 elseif ( @flavor == 8 ) zprime = sqrt(z * ztemp) elseif ( @flavor == 9 ) zprime = ztemp * log(z) elseif ( @flavor == 10 ) zprime = z * log(ztemp) elseif ( @flavor == 11 ) zavg = 2/(ztemp + z) zprime = ztemp * log(z) * zavg else zavg = 2/(ztemp + z) zprime = ztemp * log(z) * zavg endif ; flavor else zprime = z endif ; iter ; Now execute the chosen fractal formula z = ( @zfunc(zprime))^@zpower + jc bailout: |z| < @bail default: title = "Circle Trap Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param centr caption = "Circle Center" default = (0,0) hint = "Where is the circle located?" endparam param rad caption = "Circle Radius" default = 0.4 hint = "How big is the circle?" endparam param flavor caption = "Formula Flavor" enum = "difference" "sum" "product" "quotient1" "quotient2" \ "power1" "power2" "arith mean" "geom mean" "funky 1" \ "funky 2" "funky 3" "funky 4" default = 0 hint = "This parameter determines the actual value to be iterated, \ based on the relationship between z and the point trapped on the circle" endparam param zpower caption = "Z Exponent" default = (2,0) hint = "This parameter is applied to the circle-modulated z during iteration, after \ application of the 'Z Function'" endparam param pixelpower caption = "Pixel Exponent" default = (1,0) hint = "Pixel (Mandelbrot-type) or seed (Julia-type) is raised to this power \ before iteration" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param skipped caption = "Iterations to Skip" default = 0 hint = "Circle trapping will not be monitored until after this many normal Mandelbrot/Julia iterations" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam func zfunc caption = "Z Function" default = ident() hint = "Optional function applied to z before exponentiation" endfunc func pfunc caption = "Pixel Function" default = ident() hint = "Optional function applied to pixel or Julia seed before exponentiation" endfunc switch: type = "jam-CircleTrap" perturbation = #pixel bail = bail centr = centr rad = rad zpower = zpower pixelpower = pixelpower skipped = skipped flavor = flavor zfunc = zfunc pfunc = pfunc } jam-CardioidTrap { ; jam 010918 ; A Mandelbrot-type formula is iterated, but #z is modulated ; by its position with respect to the user-defined cardioid. Formula iterated is ; z = [ f( zprime ) ]^zpower + g(pixel)^ppower, where zprime at each iteration ; is a function of #z and its trapped point on the cardioid. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif jc = (@pfunc(jc))^@pixelpower float twopi = 2.0 * #pi complex center = @centr, float scale = @tscale ; cardioid center, size float rotation = @rotate * #pi / 180 if rotation < 0 rotation = rotation + twopi endif ; rotation rotation = -rotation ; so the routine won't have to negate at each iteration complex ztemp = (0,0), complex zavg = (0,0), float zangle = 0.0 int iter = 0, float temp = 0.0 loop: iter = iter + 1 if iter > @skipped ; Center z at the cardioid center, rotate if appropriate, then find its azimuth ztemp = (z - center) * exp( flip( rotation)) zangle = atan2( ztemp ) ; angle of z with respect to cardioid center if zangle < 0 zangle = zangle + twopi endif ; zangle temp = scale * ( 1 + cos( zangle )) ; radius to cardioid point in direction of z ztemp = temp * exp( flip( zangle )) ; point on cardioid trapped by z ; Now combine z according to mode with trapped point on cardioid, and iterate if ( @flavor == 0 ) ztemp = z - ztemp elseif ( @flavor == 1 ) ztemp = z + ztemp elseif ( @flavor == 2 ) ztemp = z * ztemp elseif ( @flavor == 3 ) ztemp = z / ztemp elseif ( @flavor == 4 ) ztemp = ztemp / z elseif ( @flavor == 5 ) ztemp = z ^ ztemp elseif ( @flavor == 6 ) ztemp = ztemp ^ z elseif ( @flavor == 7 ) ztemp = (z + ztemp)/2 elseif ( @flavor == 8 ) ztemp = sqrt(z * ztemp) elseif ( @flavor == 9 ) ztemp = ztemp * log(z) elseif ( @flavor == 10 ) ztemp = z * log(ztemp) elseif ( @flavor == 11 ) zavg = 2/(ztemp + z) ztemp = ztemp * log(z) * zavg else zavg = 2/(ztemp + z) ztemp = ztemp * log(z) * zavg endif ; flavor else ztemp = z endif ; iter ; Now execute the chosen fractal formula z = ( @zfunc(ztemp))^@zpower + jc bailout: |z| < @bail default: title = "Cardioid Trap" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param flavor caption = "Formula Flavor" enum = "difference" "sum" "product" "quotient1" "quotient2" \ "power1" "power2" "arith mean" "geom mean" "funky 1" \ "funky 2" "funky 3" "funky 4" default = 0 hint = "This parameter determines the actual value to be iterated, \ based on the relationship between z and the point trapped on the cardioid" endparam param centr caption = "Cardioid Center" default = (0,0) hint = "Where is the cardioid located?" endparam param tscale caption = "Cardioid Scale" default = 0.5 hint = "How big is the cardioid?" endparam param rotate caption = "Rotation" default = 0.0 min = -179.9 max = 359.9 hint = "How much should the cardioid be rotated from its default position (degrees)?" endparam param zpower caption = "Z Exponent" default = (2,0) hint = "This parameter is applied to the cardioid-modulated z during iteration, after \ application of the 'Z Function'" endparam param pixelpower caption = "Pixel Exponent" default = (1,0) hint = "Pixel (Mandelbrot-type) or seed (Julia-type) is raised to this power \ after application of the 'Pixel Function' during iteration" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param skipped caption = "Iterations to Skip" default = 0 hint = "Trapping will not be monitored until after this many normal Mandelbrot/Julia iterations" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam func zfunc caption = "Z Function" default = ident() hint = "Optional function applied to z before exponentiation" endfunc func pfunc caption = "Pixel Function" default = ident() hint = "Optional function applied to pixel or Julia seed before exponentiation" endfunc switch: type = "jam-CardioidTrap-J" jconstant = #pixel bail = bail centr = centr tscale = tscale rotate = rotate zpower = zpower pixelpower = pixelpower skipped = skipped flavor = flavor zfunc = zfunc pfunc = pfunc } jam-CardioidTrap-J { ; jam 010918 ; A Mandelbrot-type formula is iterated, but #z is modulated ; by its position with respect to the user-defined cardioid. Formula iterated is ; z = [ f( zprime ) ]^zpower + g(pixel)^ppower, where zprime at each iteration ; is a function of #z and its trapped point on the cardioid. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif jc = (@pfunc(jc))^@pixelpower float twopi = 2.0 * #pi complex center = @centr, float scale = @tscale ; cardioid center, size float rotation = @rotate * #pi / 180 if rotation < 0 rotation = rotation + twopi endif ; rotation rotation = -rotation ; so the routine won't have to negate at each iteration complex ztemp = (0,0), complex zavg = (0,0), float zangle = 0.0 int iter = 0, float temp = 0.0 loop: iter = iter + 1 if iter > @skipped ; Center z at the cardioid center, rotate if appropriate, then find its azimuth ztemp = (z - center) * exp( flip( rotation)) zangle = atan2( ztemp ) ; angle of z with respect to cardioid center if zangle < 0 zangle = zangle + twopi endif ; zangle temp = scale * ( 1 + cos( zangle )) ; radius to cardioid point in direction of z ztemp = temp * exp( flip( zangle )) ; point on cardioid trapped by z ; Now combine z according to mode with trapped point on cardioid, and iterate if ( @flavor == 0 ) ztemp = z - ztemp elseif ( @flavor == 1 ) ztemp = z + ztemp elseif ( @flavor == 2 ) ztemp = z * ztemp elseif ( @flavor == 3 ) ztemp = z / ztemp elseif ( @flavor == 4 ) ztemp = ztemp / z elseif ( @flavor == 5 ) ztemp = z ^ ztemp elseif ( @flavor == 6 ) ztemp = ztemp ^ z elseif ( @flavor == 7 ) ztemp = (z + ztemp)/2 elseif ( @flavor == 8 ) ztemp = sqrt(z * ztemp) elseif ( @flavor == 9 ) ztemp = ztemp * log(z) elseif ( @flavor == 10 ) ztemp = z * log(ztemp) elseif ( @flavor == 11 ) zavg = 2/(ztemp + z) ztemp = ztemp * log(z) * zavg else zavg = 2/(ztemp + z) ztemp = ztemp * log(z) * zavg endif ; flavor else ztemp = z endif ; iter ; Now execute the chosen fractal formula z = ( @zfunc(ztemp))^@zpower + jc bailout: |z| < @bail default: title = "Cardioid Trap Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param flavor caption = "Formula Flavor" enum = "difference" "sum" "product" "quotient1" "quotient2" \ "power1" "power2" "arith mean" "geom mean" "funky 1" \ "funky 2" "funky 3" "funky 4" default = 0 hint = "This parameter determines the actual value to be iterated, \ based on the relationship between z and the point trapped on the cardioid" endparam param centr caption = "Cardioid Center" default = (0,0) hint = "Where is the cardioid located?" endparam param tscale caption = "Cardioid Scale" default = 0.5 hint = "How big is the cardioid?" endparam param rotate caption = "Rotation" default = 0.0 min = -179.9 max = 359.9 hint = "How much should the cardioid be rotated from its default position (degrees)?" endparam param zpower caption = "Z Exponent" default = (2,0) hint = "This parameter is applied to the cardioid-modulated z during iteration, after \ application of the 'Z Function'" endparam param pixelpower caption = "Pixel Exponent" default = (1,0) hint = "Pixel (Mandelbrot-type) or seed (Julia-type) is raised to this power \ after application of the 'Pixel Function' during iteration" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param skipped caption = "Iterations to Skip" default = 0 hint = "Trapping will not be monitored until after this many normal Mandelbrot/Julia iterations" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam func zfunc caption = "Z Function" default = ident() hint = "Optional function applied to z before exponentiation" endfunc func pfunc caption = "Pixel Function" default = ident() hint = "Optional function applied to pixel or Julia seed before exponentiation" endfunc switch: type = "jam-CardioidTrap" perturbation = #pixel bail = bail centr = centr tscale = tscale rotate = rotate zpower = zpower pixelpower = pixelpower skipped = skipped flavor = flavor zfunc = zfunc pfunc = pfunc } jam-TanhTrap { ; jam 010918 ; A Mandelbrot-type formula is iterated, but #z is modulated ; by its position with respect to the user-defined hyperbolic tangent graph. ; Formula iterated is ; z = [ f( zprime ) ]^zpower + g(pixel)^ppower, where zprime at each ; iteration is a function of #z and its trapped point on the tanh graph. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif jc = (@pfunc(jc))^@pixelpower float twopi = 2.0 * #pi complex center = @centr, float scale = @tscale ; graph center, size float rotation = @rotate * #pi / 180 if rotation < 0 rotation = rotation + twopi endif ; rotation rotation = -rotation ; so the routine won't have to negate at each iteration complex ztemp = (0,0), complex zavg = (0,0) int iter = 0, float tempx = 0.0, float tempy = 0.0 loop: iter = iter + 1 if iter > @skipped ; Center z at the graph center, and rotate if appropriate ztemp = (z - center) * exp( flip( rotation)) ; Find point on tanh graph trapped by ztemp tempx = scale * real( ztemp ), tempy = tanh( tempx ) ztemp = tempx + flip( tempy ) ; Now combine z according to mode with trapped point on graph, and iterate if ( @flavor == 0 ) ztemp = z - ztemp elseif ( @flavor == 1 ) ztemp = z + ztemp elseif ( @flavor == 2 ) ztemp = z * ztemp elseif ( @flavor == 3 ) ztemp = z / ztemp elseif ( @flavor == 4 ) ztemp = ztemp / z elseif ( @flavor == 5 ) ztemp = z ^ ztemp elseif ( @flavor == 6 ) ztemp = ztemp ^ z elseif ( @flavor == 7 ) ztemp = (z + ztemp)/2 elseif ( @flavor == 8 ) ztemp = sqrt(z * ztemp) elseif ( @flavor == 9 ) ztemp = ztemp * log(z) elseif ( @flavor == 10 ) ztemp = z * log(ztemp) elseif ( @flavor == 11 ) zavg = 2/(ztemp + z) ztemp = ztemp * log(z) * zavg else zavg = 2/(ztemp + z) ztemp = ztemp * log(z) * zavg endif ; flavor else ztemp = z endif ; iter ; Now execute the chosen fractal formula z = ( @zfunc(ztemp))^@zpower + jc bailout: |z| < @bail default: title = "Tanh Trap" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param flavor caption = "Formula Flavor" enum = "difference" "sum" "product" "quotient1" "quotient2" \ "power1" "power2" "arith mean" "geom mean" "funky 1" \ "funky 2" "funky 3" "funky 4" default = 0 hint = "This parameter determines the actual value to be iterated, \ based on the relationship between z and the point trapped on the \ tanh graph" endparam param centr caption = "Graph Center" default = (0,0) hint = "Where is the tanh graph located?" endparam param tscale caption = "Graph Scale" default = 0.5 hint = "How big is the tanh graph?" endparam param rotate caption = "Rotation" default = 30.0 min = -179.9 max = 359.9 hint = "How much should the graph be rotated from its default position (degrees)?" endparam param zpower caption = "Z Exponent" default = (2,0) hint = "This parameter is applied to the graph-modulated z during iteration, after \ application of the 'Z Function'" endparam param pixelpower caption = "Pixel Exponent" default = (1,0) hint = "Pixel (Mandelbrot-type) or seed (Julia-type) is raised to this power \ after application of the 'Pixel Function' during iteration" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param skipped caption = "Iterations to Skip" default = 0 hint = "Trapping will not be monitored until after this many normal \ Mandelbrot/Julia iterations" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam func zfunc caption = "Z Function" default = ident() hint = "Optional function applied to z before exponentiation" endfunc func pfunc caption = "Pixel Function" default = ident() hint = "Optional function applied to pixel or Julia seed before exponentiation" endfunc switch: type = "jam-TanhTrap-J" jconstant = #pixel bail = bail centr = centr tscale = tscale rotate = rotate zpower = zpower pixelpower = pixelpower skipped = skipped flavor = flavor zfunc = zfunc pfunc = pfunc } jam-TanhTrap-J { ; jam 010918 ; A Mandelbrot-type formula is iterated, but #z is modulated ; by its position with respect to the user-defined hyperbolic tangent graph. ; Formula iterated is ; z = [ f( zprime ) ]^zpower + g(pixel)^ppower, where zprime at each ; iteration is a function of #z and its trapped point on the tanh graph. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif jc = (@pfunc(jc))^@pixelpower float twopi = 2.0 * #pi complex center = @centr, float scale = @tscale ; graph center, size float rotation = @rotate * #pi / 180 if rotation < 0 rotation = rotation + twopi endif ; rotation rotation = -rotation ; so the routine won't have to negate at each iteration complex ztemp = (0,0), complex zavg = (0,0) int iter = 0, float tempx = 0.0, float tempy = 0.0 loop: iter = iter + 1 if iter > @skipped ; Center z at the graph center, and rotate if appropriate ztemp = (z - center) * exp( flip( rotation)) ; Find point on tanh graph trapped by ztemp tempx = scale * real( ztemp ), tempy = tanh( tempx ) ztemp = tempx + flip( tempy ) ; Now combine z according to mode with trapped point on graph, and iterate if ( @flavor == 0 ) ztemp = z - ztemp elseif ( @flavor == 1 ) ztemp = z + ztemp elseif ( @flavor == 2 ) ztemp = z * ztemp elseif ( @flavor == 3 ) ztemp = z / ztemp elseif ( @flavor == 4 ) ztemp = ztemp / z elseif ( @flavor == 5 ) ztemp = z ^ ztemp elseif ( @flavor == 6 ) ztemp = ztemp ^ z elseif ( @flavor == 7 ) ztemp = (z + ztemp)/2 elseif ( @flavor == 8 ) ztemp = sqrt(z * ztemp) elseif ( @flavor == 9 ) ztemp = ztemp * log(z) elseif ( @flavor == 10 ) ztemp = z * log(ztemp) elseif ( @flavor == 11 ) zavg = 2/(ztemp + z) ztemp = ztemp * log(z) * zavg else zavg = 2/(ztemp + z) ztemp = ztemp * log(z) * zavg endif ; flavor else ztemp = z endif ; iter ; Now execute the chosen fractal formula z = ( @zfunc(ztemp))^@zpower + jc bailout: |z| < @bail default: title = "Tanh Trap Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param flavor caption = "Formula Flavor" enum = "difference" "sum" "product" "quotient1" "quotient2" \ "power1" "power2" "arith mean" "geom mean" "funky 1" \ "funky 2" "funky 3" "funky 4" default = 0 hint = "This parameter determines the actual value to be iterated, \ based on the relationship between z and the point trapped on the \ tanh graph" endparam param centr caption = "Graph Center" default = (0,0) hint = "Where is the tanh graph located?" endparam param tscale caption = "Graph Scale" default = 0.5 hint = "How big is the tanh graph?" endparam param rotate caption = "Rotation" default = 30.0 min = -179.9 max = 359.9 hint = "How much should the graph be rotated from its default position (degrees)?" endparam param zpower caption = "Z Exponent" default = (2,0) hint = "This parameter is applied to the graph-modulated z during iteration, after \ application of the 'Z Function'" endparam param pixelpower caption = "Pixel Exponent" default = (1,0) hint = "Pixel (Mandelbrot-type) or seed (Julia-type) is raised to this power \ after application of the 'Pixel Function' during iteration" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param skipped caption = "Iterations to Skip" default = 0 hint = "Trapping will not be monitored until after this many normal \ Mandelbrot/Julia iterations" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam func zfunc caption = "Z Function" default = ident() hint = "Optional function applied to z before exponentiation" endfunc func pfunc caption = "Pixel Function" default = ident() hint = "Optional function applied to pixel or Julia seed before exponentiation" endfunc switch: type = "jam-TanhTrap" perturbation = #pixel bail = bail centr = centr tscale = tscale rotate = rotate zpower = zpower pixelpower = pixelpower skipped = skipped flavor = flavor zfunc = zfunc pfunc = pfunc } jam-e(-x)Trap { ; jam 010921 ; A Mandelbrot-type formula is iterated, but #z is modulated ; by its position with respect to the user-defined exponential graph. ; Formula iterated is ; z = [ f( zprime ) ]^zpower + g(pixel)^ppower, where zprime at each ; iteration is a function of #z and its trapped point on the e(-x) graph. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif jc = (@pfunc(jc))^@pixelpower float twopi = 2.0 * #pi complex center = @centr, float scale = @tscale ; graph center, size float rotation = @rotate * #pi / 180 if rotation < 0 rotation = rotation + twopi endif ; rotation rotation = -rotation ; so the routine won't have to negate at each iteration complex ztemp = (0,0), complex zavg = (0,0) int iter = 0, float tempx = 0.0, float tempy = 0.0 loop: iter = iter + 1 if iter > @skipped ; Center z at the graph offset, and rotate if appropriate ztemp = (z - center) * exp( flip( rotation)) ; Find point on exp(-x) graph trapped by ztemp tempx = scale * real( ztemp ), tempy = exp( -tempx ) ztemp = tempx + flip( tempy ) ; Now combine z according to mode with trapped point on graph, and iterate if ( @flavor == 0 ) ztemp = z - ztemp elseif ( @flavor == 1 ) ztemp = z + ztemp elseif ( @flavor == 2 ) ztemp = z * ztemp elseif ( @flavor == 3 ) ztemp = z / ztemp elseif ( @flavor == 4 ) ztemp = ztemp / z elseif ( @flavor == 5 ) ztemp = z ^ ztemp elseif ( @flavor == 6 ) ztemp = ztemp ^ z elseif ( @flavor == 7 ) ztemp = (z + ztemp)/2 elseif ( @flavor == 8 ) ztemp = sqrt(z * ztemp) elseif ( @flavor == 9 ) ztemp = ztemp * log(z) elseif ( @flavor == 10 ) ztemp = z * log(ztemp) elseif ( @flavor == 11 ) zavg = 2/(ztemp + z) ztemp = ztemp * log(z) * zavg else zavg = 2/(ztemp + z) ztemp = ztemp * log(z) * zavg endif ; flavor else ztemp = z endif ; iter ; Now execute the chosen fractal formula z = ( @zfunc(ztemp))^@zpower + jc bailout: |z| < @bail default: title = "Exp(-x) Trap" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param flavor caption = "Formula Flavor" enum = "difference" "sum" "product" "quotient1" "quotient2" \ "power1" "power2" "arith mean" "geom mean" "funky 1" \ "funky 2" "funky 3" "funky 4" default = 0 hint = "This parameter determines the actual value to be iterated, \ based on the relationship between z and the point trapped on the \ exponential graph" endparam param centr caption = "Graph Offset" default = (0,0) hint = "Where is the e(-x) graph centered on the complex plane?" endparam param tscale caption = "Graph Scale" default = 0.5 hint = "How big is the exponential graph?" endparam param rotate caption = "Rotation" default = 30.0 min = -179.9 max = 359.9 hint = "How much should the graph be rotated from its default position (degrees)?" endparam param zpower caption = "Z Exponent" default = (2,0) hint = "This parameter is applied to the graph-modulated z during Mandelbrot/Julia \ iteration, after application of the 'Z Function'" endparam param pixelpower caption = "Pixel Exponent" default = (1,0) hint = "Pixel (Mandelbrot-type) or seed (Julia-type) is raised to this power \ after application of the 'Pixel Function' during iteration" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param skipped caption = "Iterations to Skip" default = 0 hint = "Trapping will not be monitored until after this many normal \ Mandelbrot/Julia iterations" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam func zfunc caption = "Z Function" default = ident() hint = "Optional function applied to z before Mandelbrot/Julia exponentiation" endfunc func pfunc caption = "Pixel Function" default = ident() hint = "Optional function applied to pixel or Julia seed before \ Mandelbrot/Julia exponentiation" endfunc switch: type = "jam-e(-x)Trap-J" jconstant = #pixel bail = bail centr = centr tscale = tscale rotate = rotate zpower = zpower pixelpower = pixelpower skipped = skipped flavor = flavor zfunc = zfunc pfunc = pfunc } jam-e(-x)Trap-J { ; jam 010921 ; A Mandelbrot-type formula is iterated, but #z is modulated ; by its position with respect to the user-defined exponential graph. ; Formula iterated is ; z = [ f( zprime ) ]^zpower + g(pixel)^ppower, where zprime at each ; iteration is a function of #z and its trapped point on the e(-x) graph. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif jc = (@pfunc(jc))^@pixelpower float twopi = 2.0 * #pi complex center = @centr, float scale = @tscale ; graph center, size float rotation = @rotate * #pi / 180 if rotation < 0 rotation = rotation + twopi endif ; rotation rotation = -rotation ; so the routine won't have to negate at each iteration complex ztemp = (0,0), complex zavg = (0,0) int iter = 0, float tempx = 0.0, float tempy = 0.0 loop: iter = iter + 1 if iter > @skipped ; Center z at the graph offset, and rotate if appropriate ztemp = (z - center) * exp( flip( rotation)) ; Find point on exp(-x) graph trapped by ztemp tempx = scale * real( ztemp ), tempy = exp( -tempx ) ztemp = tempx + flip( tempy ) ; Now combine z according to mode with trapped point on graph, and iterate if ( @flavor == 0 ) ztemp = z - ztemp elseif ( @flavor == 1 ) ztemp = z + ztemp elseif ( @flavor == 2 ) ztemp = z * ztemp elseif ( @flavor == 3 ) ztemp = z / ztemp elseif ( @flavor == 4 ) ztemp = ztemp / z elseif ( @flavor == 5 ) ztemp = z ^ ztemp elseif ( @flavor == 6 ) ztemp = ztemp ^ z elseif ( @flavor == 7 ) ztemp = (z + ztemp)/2 elseif ( @flavor == 8 ) ztemp = sqrt(z * ztemp) elseif ( @flavor == 9 ) ztemp = ztemp * log(z) elseif ( @flavor == 10 ) ztemp = z * log(ztemp) elseif ( @flavor == 11 ) zavg = 2/(ztemp + z) ztemp = ztemp * log(z) * zavg else zavg = 2/(ztemp + z) ztemp = ztemp * log(z) * zavg endif ; flavor else ztemp = z endif ; iter ; Now execute the chosen fractal formula z = ( @zfunc(ztemp))^@zpower + jc bailout: |z| < @bail default: title = "Exp(-x) Trap Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param flavor caption = "Formula Flavor" enum = "difference" "sum" "product" "quotient1" "quotient2" \ "power1" "power2" "arith mean" "geom mean" "funky 1" \ "funky 2" "funky 3" "funky 4" default = 0 hint = "This parameter determines the actual value to be iterated, \ based on the relationship between z and the point trapped on the \ exponential graph" endparam param centr caption = "Graph Offset" default = (0,0) hint = "Where is the e(-x) graph centered on the complex plane?" endparam param tscale caption = "Graph Scale" default = 0.5 hint = "How big is the exponential graph?" endparam param rotate caption = "Rotation" default = 30.0 min = -179.9 max = 359.9 hint = "How much should the graph be rotated from its default position (degrees)?" endparam param zpower caption = "Z Exponent" default = (2,0) hint = "This parameter is applied to the graph-modulated z during Mandelbrot/Julia \ iteration, after application of the 'Z Function'" endparam param pixelpower caption = "Pixel Exponent" default = (1,0) hint = "Pixel (Mandelbrot-type) or seed (Julia-type) is raised to this power \ after application of the 'Pixel Function' during iteration" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param skipped caption = "Iterations to Skip" default = 0 hint = "Trapping will not be monitored until after this many normal \ Mandelbrot/Julia iterations" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam func zfunc caption = "Z Function" default = ident() hint = "Optional function applied to z before Mandelbrot/Julia exponentiation" endfunc func pfunc caption = "Pixel Function" default = ident() hint = "Optional function applied to pixel or Julia seed before \ Mandelbrot/Julia exponentiation" endfunc switch: type = "jam-e(-x)Trap" perturbation = #pixel bail = bail centr = centr tscale = tscale rotate = rotate zpower = zpower pixelpower = pixelpower skipped = skipped flavor = flavor zfunc = zfunc pfunc = pfunc } jam-ParabolaTrap { ; jam 010922 ; A Mandelbrot-type formula is iterated, but #z is modulated ; by its position with respect to the user-defined parabola. Formula iterated is ; z = [ f( zprime ) ]^zpower + g(pixel)^ppower, where zprime at each iteration ; is a function of #z and its trapped point on the parabola. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif jc = (@pfunc(jc))^@pixelpower float twopi = 2.0 * #pi ; float tenthpi = #pi/10, float twofifthspi = twopi/5 ; float halfpi = #pi/2 complex center = @centr, float scale = @tscale ; parabola origin, size float rotation = @rotate * #pi / 180 if rotation < 0 rotation = rotation + twopi endif ; rotation rotation = -rotation ; so the routine won't have to negate at each iteration complex ztemp = (0,0), complex zavg = (0,0), float zangle = 0.0 int iter = 0, float temp = 0.0 loop: iter = iter + 1 if iter > @skipped ; Center z at the parabola center, rotate if appropriate, then find its azimuth ztemp = (z - center) * exp( flip( rotation)) zangle = atan2( ztemp ) ; angle of z with respect to parabola origin if zangle < 0 zangle = zangle + #pi ; 0 <= zangle <= pi --- simplifies checking for div by zero, ; and graph is symmetric anyway endif ; zangle ; if abs(zangle - halfpi) < tenthpi ; we don't want really big numbers from division by near-zero ; zangle = twofifthspi ; endif ; zangle temp = scale * ( sin(zangle)/ (cos( zangle )^2)) ; radius to parabola in direction of z ztemp = temp * exp( flip( zangle )) ; point on parabola trapped by z ; Now combine z according to mode with trapped point on parabola, and iterate if ( @flavor == 0 ) ztemp = z - ztemp elseif ( @flavor == 1 ) ztemp = z + ztemp elseif ( @flavor == 2 ) ztemp = z * ztemp elseif ( @flavor == 3 ) ztemp = z / ztemp elseif ( @flavor == 4 ) ztemp = ztemp / z elseif ( @flavor == 5 ) ztemp = z ^ ztemp elseif ( @flavor == 6 ) ztemp = ztemp ^ z elseif ( @flavor == 7 ) ztemp = (z + ztemp)/2 elseif ( @flavor == 8 ) ztemp = sqrt(z * ztemp) elseif ( @flavor == 9 ) ztemp = ztemp * log(z) elseif ( @flavor == 10 ) ztemp = z * log(ztemp) elseif ( @flavor == 11 ) zavg = 2/(ztemp + z) ztemp = ztemp * log(z) * zavg else zavg = 2/(ztemp + z) ztemp = ztemp * log(z) * zavg endif ; flavor else ztemp = z endif ; iter ; Now execute the chosen fractal formula z = ( @zfunc(ztemp))^@zpower + jc bailout: |z| < @bail default: title = "Parabola Trap" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param flavor caption = "Formula Flavor" enum = "difference" "sum" "product" "quotient1" "quotient2" \ "power1" "power2" "arith mean" "geom mean" "funky 1" \ "funky 2" "funky 3" "funky 4" default = 0 hint = "This parameter determines the actual value to be iterated, \ based on the relationship between z and the point trapped on the parabola" endparam param centr caption = "Parabola Origin" default = (-0.5,-0.5) hint = "Where is the parabola located?" endparam param tscale caption = "Parabola Scale" default = 1.0 hint = "How big is the parabola?" endparam param rotate caption = "Rotation" default = 0.0 min = -179.9 max = 359.9 hint = "How much should the parabola be rotated from its default position (degrees)?" endparam param zpower caption = "Z Exponent" default = (2,0) hint = "This parameter is applied to the parabola-modulated z during iteration, after \ application of the 'Z Function'" endparam param pixelpower caption = "Pixel Exponent" default = (1,0) hint = "Pixel (Mandelbrot-type) or seed (Julia-type) is raised to this power \ after application of the 'Pixel Function' during iteration" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param skipped caption = "Iterations to Skip" default = 0 hint = "Trapping will not be monitored until after this many normal Mandelbrot/Julia iterations" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam func zfunc caption = "Z Function" default = ident() hint = "Optional function applied to z before exponentiation" endfunc func pfunc caption = "Pixel Function" default = ident() hint = "Optional function applied to pixel or Julia seed before exponentiation" endfunc switch: type = "jam-ParabolaTrap-J" jconstant = #pixel bail = bail centr = centr tscale = tscale rotate = rotate zpower = zpower pixelpower = pixelpower skipped = skipped flavor = flavor zfunc = zfunc pfunc = pfunc } jam-ParabolaTrap-J { ; jam 010922 ; A Mandelbrot-type formula is iterated, but #z is modulated ; by its position with respect to the user-defined parabola. Formula iterated is ; z = [ f( zprime ) ]^zpower + g(pixel)^ppower, where zprime at each iteration ; is a function of #z and its trapped point on the parabola. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif jc = (@pfunc(jc))^@pixelpower float twopi = 2.0 * #pi ; float tenthpi = #pi/10, float twofifthspi = twopi/5 ; float halfpi = #pi/2 complex center = @centr, float scale = @tscale ; parabola origin, size float rotation = @rotate * #pi / 180 if rotation < 0 rotation = rotation + twopi endif ; rotation rotation = -rotation ; so the routine won't have to negate at each iteration complex ztemp = (0,0), complex zavg = (0,0), float zangle = 0.0 int iter = 0, float temp = 0.0 loop: iter = iter + 1 if iter > @skipped ; Center z at the parabola center, rotate if appropriate, then find its azimuth ztemp = (z - center) * exp( flip( rotation)) zangle = atan2( ztemp ) ; angle of z with respect to parabola origin if zangle < 0 zangle = zangle + #pi ; 0 <= zangle <= pi --- simplifies checking for div by zero, ; and graph is symmetric anyway endif ; zangle ; if abs(zangle - halfpi) < tenthpi ; we don't want really big numbers from division by near-zero ; zangle = twofifthspi ; endif ; zangle temp = scale * ( sin(zangle)/ (cos( zangle )^2)) ; radius to parabola in direction of z ztemp = temp * exp( flip( zangle )) ; point on parabola trapped by z ; Now combine z according to mode with trapped point on parabola, and iterate if ( @flavor == 0 ) ztemp = z - ztemp elseif ( @flavor == 1 ) ztemp = z + ztemp elseif ( @flavor == 2 ) ztemp = z * ztemp elseif ( @flavor == 3 ) ztemp = z / ztemp elseif ( @flavor == 4 ) ztemp = ztemp / z elseif ( @flavor == 5 ) ztemp = z ^ ztemp elseif ( @flavor == 6 ) ztemp = ztemp ^ z elseif ( @flavor == 7 ) ztemp = (z + ztemp)/2 elseif ( @flavor == 8 ) ztemp = sqrt(z * ztemp) elseif ( @flavor == 9 ) ztemp = ztemp * log(z) elseif ( @flavor == 10 ) ztemp = z * log(ztemp) elseif ( @flavor == 11 ) zavg = 2/(ztemp + z) ztemp = ztemp * log(z) * zavg else zavg = 2/(ztemp + z) ztemp = ztemp * log(z) * zavg endif ; flavor else ztemp = z endif ; iter ; Now execute the chosen fractal formula z = ( @zfunc(ztemp))^@zpower + jc bailout: |z| < @bail default: title = "Parabola Trap Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param flavor caption = "Formula Flavor" enum = "difference" "sum" "product" "quotient1" "quotient2" \ "power1" "power2" "arith mean" "geom mean" "funky 1" \ "funky 2" "funky 3" "funky 4" default = 0 hint = "This parameter determines the actual value to be iterated, \ based on the relationship between z and the point trapped on the parabola" endparam param centr caption = "Parabola Origin" default = (-0.5,-0.5) hint = "Where is the parabola located?" endparam param tscale caption = "Parabola Scale" default = 1.0 hint = "How big is the parabola?" endparam param rotate caption = "Rotation" default = 0.0 min = -179.9 max = 359.9 hint = "How much should the parabola be rotated from its default position (degrees)?" endparam param zpower caption = "Z Exponent" default = (2,0) hint = "This parameter is applied to the parabola-modulated z during iteration, after \ application of the 'Z Function'" endparam param pixelpower caption = "Pixel Exponent" default = (1,0) hint = "Pixel (Mandelbrot-type) or seed (Julia-type) is raised to this power \ after application of the 'Pixel Function' during iteration" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param skipped caption = "Iterations to Skip" default = 0 hint = "Trapping will not be monitored until after this many normal Mandelbrot/Julia iterations" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam func zfunc caption = "Z Function" default = ident() hint = "Optional function applied to z before exponentiation" endfunc func pfunc caption = "Pixel Function" default = ident() hint = "Optional function applied to pixel or Julia seed before exponentiation" endfunc switch: type = "jam-ParabolaTrap" perturbation = #pixel bail = bail centr = centr tscale = tscale rotate = rotate zpower = zpower pixelpower = pixelpower skipped = skipped flavor = flavor zfunc = zfunc pfunc = pfunc } jam-RoseTrap { ; jam 010922 ; A Mandelbrot-type formula is iterated, but #z is modulated ; by its position with respect to the user-defined rose. Formula iterated is ; z = [ f( zprime ) ]^zpower + g(pixel)^ppower, where zprime at each iteration ; is a function of #z and its trapped point on the rose. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif jc = (@pfunc(jc))^@pixelpower float twopi = 2.0 * #pi complex center = @centr, float scale = @tscale ; rose origin, size float rotation = @rotate * #pi / 180 if rotation < 0 rotation = rotation + twopi endif ; rotation rotation = -rotation ; so the routine won't have to negate at each iteration complex ztemp = (0,0), complex zavg = (0,0), float zangle = 0.0 int iter = 0, float temp = 0.0 if @leafs % 2 == 0 ; even number of leaves int leaves = round(@leafs/2) else int leaves = @leafs endif ; leafs loop: iter = iter + 1 if iter > @skipped ; Center z at the rose center, rotate if appropriate, then find its azimuth ztemp = (z - center) * exp( flip( rotation)) zangle = atan2( ztemp ) ; angle of z with respect to rose origin if zangle < 0 zangle = zangle + twopi ; 0 <= zangle <= twopi endif ; zangle temp = scale * sin( leaves * zangle) ; radius to rose in direction of z ztemp = temp * exp( flip( zangle )) ; point on rose trapped by z ; Now combine z according to mode with trapped point on rose, and iterate if ( @flavor == 0 ) ztemp = z - ztemp elseif ( @flavor == 1 ) ztemp = z + ztemp elseif ( @flavor == 2 ) ztemp = z * ztemp elseif ( @flavor == 3 ) ztemp = z / ztemp elseif ( @flavor == 4 ) ztemp = ztemp / z elseif ( @flavor == 5 ) ztemp = z ^ ztemp elseif ( @flavor == 6 ) ztemp = ztemp ^ z elseif ( @flavor == 7 ) ztemp = (z + ztemp)/2 elseif ( @flavor == 8 ) ztemp = sqrt(z * ztemp) elseif ( @flavor == 9 ) ztemp = ztemp * log(z) elseif ( @flavor == 10 ) ztemp = z * log(ztemp) elseif ( @flavor == 11 ) zavg = 2/(ztemp + z) ztemp = ztemp * log(z) * zavg else zavg = 2/(ztemp + z) ztemp = ztemp * log(z) * zavg endif ; flavor else ztemp = z endif ; iter ; Now execute the chosen fractal formula z = ( @zfunc(ztemp))^@zpower + jc bailout: |z| < @bail default: title = "Rose Trap" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param flavor caption = "Formula Flavor" enum = "difference" "sum" "product" "quotient1" "quotient2" \ "power1" "power2" "arith mean" "geom mean" "funky 1" \ "funky 2" "funky 3" "funky 4" default = 0 hint = "This parameter determines the actual value to be iterated, \ based on the relationship between z and the point trapped on the rose" endparam param centr caption = "Rose Center" default = (0,0) hint = "Where is the rose located?" endparam param tscale caption = "Rose Scale" default = 1.0 hint = "How big is the rose?" endparam param rotate caption = "Rotation" default = 0.0 min = -179.9 max = 359.9 hint = "How much should the rose be rotated from its default position (degrees)?" endparam param leafs caption = "Rose Leaves" default = 4 min = 2 hint = "Number of leaves in the rose" endparam param zpower caption = "Z Exponent" default = (2,0) hint = "This parameter is applied to the rose-modulated z during iteration, after \ application of the 'Z Function'" endparam param pixelpower caption = "Pixel Exponent" default = (1,0) hint = "Pixel (Mandelbrot-type) or seed (Julia-type) is raised to this power \ after application of the 'Pixel Function' during iteration" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param skipped caption = "Iterations to Skip" default = 0 hint = "Trapping will not be monitored until after this many normal Mandelbrot/Julia iterations" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam func zfunc caption = "Z Function" default = ident() hint = "Optional function applied to z before exponentiation" endfunc func pfunc caption = "Pixel Function" default = ident() hint = "Optional function applied to pixel or Julia seed before exponentiation" endfunc switch: type = "jam-RoseTrap-J" jconstant = #pixel bail = bail centr = centr tscale = tscale leafs = leafs rotate = rotate zpower = zpower pixelpower = pixelpower skipped = skipped flavor = flavor zfunc = zfunc pfunc = pfunc } jam-RoseTrap-J { ; jam 010922 ; A Mandelbrot-type formula is iterated, but #z is modulated ; by its position with respect to the user-defined rose. Formula iterated is ; z = [ f( zprime ) ]^zpower + g(pixel)^ppower, where zprime at each iteration ; is a function of #z and its trapped point on the rose. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif jc = (@pfunc(jc))^@pixelpower float twopi = 2.0 * #pi complex center = @centr, float scale = @tscale ; rose origin, size float rotation = @rotate * #pi / 180 if rotation < 0 rotation = rotation + twopi endif ; rotation rotation = -rotation ; so the routine won't have to negate at each iteration complex ztemp = (0,0), complex zavg = (0,0), float zangle = 0.0 int iter = 0, float temp = 0.0 if @leafs % 2 == 0 ; even number of leaves int leaves = round(@leafs/2) else int leaves = @leafs endif ; leafs loop: iter = iter + 1 if iter > @skipped ; Center z at the rose center, rotate if appropriate, then find its azimuth ztemp = (z - center) * exp( flip( rotation)) zangle = atan2( ztemp ) ; angle of z with respect to rose origin if zangle < 0 zangle = zangle + twopi ; 0 <= zangle <= twopi endif ; zangle temp = scale * sin( leaves * zangle) ; radius to rose in direction of z ztemp = temp * exp( flip( zangle )) ; point on rose trapped by z ; Now combine z according to mode with trapped point on rose, and iterate if ( @flavor == 0 ) ztemp = z - ztemp elseif ( @flavor == 1 ) ztemp = z + ztemp elseif ( @flavor == 2 ) ztemp = z * ztemp elseif ( @flavor == 3 ) ztemp = z / ztemp elseif ( @flavor == 4 ) ztemp = ztemp / z elseif ( @flavor == 5 ) ztemp = z ^ ztemp elseif ( @flavor == 6 ) ztemp = ztemp ^ z elseif ( @flavor == 7 ) ztemp = (z + ztemp)/2 elseif ( @flavor == 8 ) ztemp = sqrt(z * ztemp) elseif ( @flavor == 9 ) ztemp = ztemp * log(z) elseif ( @flavor == 10 ) ztemp = z * log(ztemp) elseif ( @flavor == 11 ) zavg = 2/(ztemp + z) ztemp = ztemp * log(z) * zavg else zavg = 2/(ztemp + z) ztemp = ztemp * log(z) * zavg endif ; flavor else ztemp = z endif ; iter ; Now execute the chosen fractal formula z = ( @zfunc(ztemp))^@zpower + jc bailout: |z| < @bail default: title = "Rose Trap Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param flavor caption = "Formula Flavor" enum = "difference" "sum" "product" "quotient1" "quotient2" \ "power1" "power2" "arith mean" "geom mean" "funky 1" \ "funky 2" "funky 3" "funky 4" default = 0 hint = "This parameter determines the actual value to be iterated, \ based on the relationship between z and the point trapped on the rose" endparam param centr caption = "Rose Center" default = (0,0) hint = "Where is the rose located?" endparam param tscale caption = "Rose Scale" default = 1.0 hint = "How big is the rose?" endparam param rotate caption = "Rotation" default = 0.0 min = -179.9 max = 359.9 hint = "How much should the rose be rotated from its default position (degrees)?" endparam param leafs caption = "Rose Leaves" default = 4 min = 2 hint = "Number of leaves in the rose" endparam param zpower caption = "Z Exponent" default = (2,0) hint = "This parameter is applied to the rose-modulated z during iteration, after \ application of the 'Z Function'" endparam param pixelpower caption = "Pixel Exponent" default = (1,0) hint = "Pixel (Mandelbrot-type) or seed (Julia-type) is raised to this power \ after application of the 'Pixel Function' during iteration" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param skipped caption = "Iterations to Skip" default = 0 hint = "Trapping will not be monitored until after this many normal Mandelbrot/Julia iterations" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam func zfunc caption = "Z Function" default = ident() hint = "Optional function applied to z before exponentiation" endfunc func pfunc caption = "Pixel Function" default = ident() hint = "Optional function applied to pixel or Julia seed before exponentiation" endfunc switch: type = "jam-RoseTrap" perturbation = #pixel bail = bail centr = centr tscale = tscale leafs = leafs rotate = rotate zpower = zpower pixelpower = pixelpower skipped = skipped flavor = flavor zfunc = zfunc pfunc = pfunc } jam-ParabolaTrap2 { ; jam 011001 ; A Mandelbrot-type formula is iterated, but if z falls within the trap \ ; threshold of the parabola, the coordinates of the trap point are added \ ; to the calculation, rather than the pixel coordinates. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif float twopi = 2.0 * #pi complex center = @centr, float scale = @tscale ; parabola origin, size float rotation = @rotate * #pi / 180 if rotation < 0 rotation = rotation + twopi endif ; rotation rotation = -rotation ; so the routine won't have to negate at each iteration complex ztemp = (0,0), complex tempconstant = jc float zangle = 0.0, complex ttemp = (0,0) int iter = 0, float temp = 0.0 loop: iter = iter + 1 tempconstant = jc if iter > @skipped ; Center z at the parabola center, rotate if appropriate, then find its azimuth ztemp = (z - center) * exp( flip( rotation)) zangle = atan2( ztemp ) ; angle of z with respect to parabola origin if zangle < 0 zangle = zangle + twopi ; 0 <= zangle <= twopi endif ; zangle temp = scale * ( sin(zangle)/ (cos( zangle )^2)) ; radius to parabola in direction of z ttemp = temp * exp( flip( zangle )) ; point on parabola trapped by z ; Is z near trap? if cabs(ztemp - ttemp) <= @threshold ; yes, it is tempconstant = ttemp endif ; cabs endif ; iter ; Now execute the chosen fractal formula z = ( @zfunc(z))^@zpower + tempconstant bailout: |z| < @bail default: title = "ParabolaTrap 2" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param centr caption = "Parabola Origin" default = (0,-0.5) hint = "Where is the parabola located?" endparam param tscale caption = "Parabola Scale" default = 1.0 hint = "How big is the parabola?" endparam param rotate caption = "Rotation" default = 0.0 min = -179.9 max = 359.9 hint = "How much should the parabola be rotated from its default position (degrees)?" endparam param threshold caption = "Threshold" default = 0.5 hint = "Depth of well; z is trapped if it lies within this distance of parabola" endparam param zpower caption = "Z Exponent" default = (2,0) hint = "This parameter is the power used for the Mandelbrot/Julia iteration" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param skipped caption = "Iterations to Skip" default = 0 hint = "Trapping will not be monitored until after this many normal \ Mandelbrot/Julia iterations" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam func zfunc caption = "Z Function" default = ident() hint = "Optional function applied to z before exponentiation" endfunc switch: type = "jam-ParabolaTrap2-J" jconstant = #pixel bail = bail centr = centr tscale = tscale rotate = rotate threshold = threshold zpower = zpower skipped = skipped zfunc = zfunc } jam-ParabolaTrap2-J { ; jam 011001 ; A Mandelbrot-type formula is iterated, but if z falls within the trap \ ; threshold of the parabola, the coordinates of the trap point are added \ ; to the calculation, rather than the pixel coordinates. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif float twopi = 2.0 * #pi complex center = @centr, float scale = @tscale ; parabola origin, size float rotation = @rotate * #pi / 180 if rotation < 0 rotation = rotation + twopi endif ; rotation rotation = -rotation ; so the routine won't have to negate at each iteration complex ztemp = (0,0), complex tempconstant = jc float zangle = 0.0, complex ttemp = (0,0) int iter = 0, float temp = 0.0 loop: iter = iter + 1 tempconstant = jc if iter > @skipped ; Center z at the parabola center, rotate if appropriate, then find its azimuth ztemp = (z - center) * exp( flip( rotation)) zangle = atan2( ztemp ) ; angle of z with respect to parabola origin if zangle < 0 zangle = zangle + twopi ; 0 <= zangle <= twopi endif ; zangle temp = scale * ( sin(zangle)/ (cos( zangle )^2)) ; radius to parabola in direction of z ttemp = temp * exp( flip( zangle )) ; point on parabola trapped by z ; Is z near trap? if cabs(ztemp - ttemp) <= @threshold ; yes, it is tempconstant = ttemp endif ; cabs endif ; iter ; Now execute the chosen fractal formula z = ( @zfunc(z))^@zpower + tempconstant bailout: |z| < @bail default: title = "ParabolaTrap 2 Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param centr caption = "Parabola Origin" default = (0,-0.5) hint = "Where is the parabola located?" endparam param tscale caption = "Parabola Scale" default = 1.0 hint = "How big is the parabola?" endparam param rotate caption = "Rotation" default = 0.0 min = -179.9 max = 359.9 hint = "How much should the parabola be rotated from its default position (degrees)?" endparam param threshold caption = "Threshold" default = 0.5 hint = "Depth of well; z is trapped if it lies within this distance of parabola" endparam param zpower caption = "Z Exponent" default = (2,0) hint = "This parameter is the power used for the Mandelbrot/Julia iteration" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param skipped caption = "Iterations to Skip" default = 0 hint = "Trapping will not be monitored until after this many normal \ Mandelbrot/Julia iterations" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam func zfunc caption = "Z Function" default = ident() hint = "Optional function applied to z before exponentiation" endfunc switch: type = "jam-ParabolaTrap2" perturbation = #pixel bail = bail centr = centr tscale = tscale rotate = rotate threshold = threshold zpower = zpower skipped = skipped zfunc = zfunc } jam-RoseTrap2 { ; jam 011001 ; A Mandelbrot-type formula is iterated, but if z falls within the trap \ ; threshold of the rose, the coordinates of the trap point are added \ ; to the calculation, rather than the pixel coordinates. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif float twopi = 2.0 * #pi complex center = @centr, float scale = @tscale ; rose origin, size float rotation = @rotate * #pi / 180 if rotation < 0 rotation = rotation + twopi endif ; rotation rotation = -rotation ; so the routine won't have to negate at each iteration complex ztemp = (0,0), complex tempconstant = jc float zangle = 0.0, complex ttemp = (0,0) int iter = 0, float temp = 0.0 if @leaves % 2 == 0 ; even number of leaves int leafs = round(@leaves/2) else int leafs = @leaves endif ; leaves loop: iter = iter + 1 tempconstant = jc if iter > @skipped ; Center z at the rose center, rotate if appropriate, then find its azimuth ztemp = (z - center) * exp( flip( rotation)) zangle = atan2( ztemp ) ; angle of z with respect to parabola origin if zangle < 0 zangle = zangle + twopi ; 0 <= zangle <= twopi endif ; zangle temp = scale * sin( leafs * zangle) ; radius to rose in direction of z ttemp = temp * exp( flip( zangle )) ; point on rose trapped by z ; Is z near trap? if cabs(ztemp - ttemp) <= @threshold ; yes, it is tempconstant = ttemp endif ; cabs endif ; iter ; Now execute the chosen fractal formula z = ( @zfunc(z))^@zpower + tempconstant bailout: |z| < @bail default: title = "RoseTrap 2" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param centr caption = "Rose Origin" default = (0,0) hint = "Where is the rose centered?" endparam param tscale caption = "Rose Scale" default = 0.8 hint = "How big is the rose?" endparam param rotate caption = "Rotation" default = 0.0 min = -179.9 max = 359.9 hint = "How much should the rose be rotated from its default position (degrees)?" endparam param leaves caption = "Number of Leaves" default = 3 hint = "Enter the number of leaves that the rose should contain" endparam param threshold caption = "Threshold" default = 0.5 hint = "Depth of well; z is trapped if it lies within this distance of rose" endparam param zpower caption = "Z Exponent" default = (2,0) hint = "This parameter is the power used for the Mandelbrot/Julia iteration" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param skipped caption = "Iterations to Skip" default = 0 hint = "Trapping will not be monitored until after this many normal \ Mandelbrot/Julia iterations" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam func zfunc caption = "Z Function" default = ident() hint = "Optional function applied to z before exponentiation" endfunc switch: type = "jam-RoseTrap2-J" jconstant = #pixel bail = bail centr = centr tscale = tscale rotate = rotate leaves = leaves threshold = threshold zpower = zpower skipped = skipped zfunc = zfunc } jam-RoseTrap2-J { ; jam 011001 ; A Mandelbrot-type formula is iterated, but if z falls within the trap \ ; threshold of the rose, the coordinates of the trap point are added \ ; to the calculation, rather than the pixel coordinates. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif float twopi = 2.0 * #pi complex center = @centr, float scale = @tscale ; rose origin, size float rotation = @rotate * #pi / 180 if rotation < 0 rotation = rotation + twopi endif ; rotation rotation = -rotation ; so the routine won't have to negate at each iteration complex ztemp = (0,0), complex tempconstant = jc float zangle = 0.0, complex ttemp = (0,0) int iter = 0, float temp = 0.0 if @leaves % 2 == 0 ; even number of leaves int leafs = round(@leaves/2) else int leafs = @leaves endif ; leaves loop: iter = iter + 1 tempconstant = jc if iter > @skipped ; Center z at the rose center, rotate if appropriate, then find its azimuth ztemp = (z - center) * exp( flip( rotation)) zangle = atan2( ztemp ) ; angle of z with respect to parabola origin if zangle < 0 zangle = zangle + twopi ; 0 <= zangle <= twopi endif ; zangle temp = scale * sin( leafs * zangle) ; radius to rose in direction of z ttemp = temp * exp( flip( zangle )) ; point on rose trapped by z ; Is z near trap? if cabs(ztemp - ttemp) <= @threshold ; yes, it is tempconstant = ttemp endif ; cabs endif ; iter ; Now execute the chosen fractal formula z = ( @zfunc(z))^@zpower + tempconstant bailout: |z| < @bail default: title = "RoseTrap 2 Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param centr caption = "Rose Origin" default = (0,0) hint = "Where is the rose centered?" endparam param tscale caption = "Rose Scale" default = 0.8 hint = "How big is the rose?" endparam param rotate caption = "Rotation" default = 0.0 min = -179.9 max = 359.9 hint = "How much should the rose be rotated from its default position (degrees)?" endparam param leaves caption = "Number of Leaves" default = 3 hint = "Enter the number of leaves that the rose should contain" endparam param threshold caption = "Threshold" default = 0.5 hint = "Depth of well; z is trapped if it lies within this distance of rose" endparam param zpower caption = "Z Exponent" default = (2,0) hint = "This parameter is the power used for the Mandelbrot/Julia iteration" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param skipped caption = "Iterations to Skip" default = 0 hint = "Trapping will not be monitored until after this many normal \ Mandelbrot/Julia iterations" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam func zfunc caption = "Z Function" default = ident() hint = "Optional function applied to z before exponentiation" endfunc switch: type = "jam-RoseTrap2" perturbation = #pixel bail = bail centr = centr tscale = tscale rotate = rotate leaves = leaves threshold = threshold zpower = zpower skipped = skipped zfunc = zfunc } jam-altman { ; jam 010927 ; General alternating Mandelbrot init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 bool done = FALSE complex zextra = complex ztemp = (0,0) ; temp/spare scratch variables ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 ztemp = sinh(jc), zextra = cosh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 95 ztemp = sin(jc), zextra = cos(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), ztemp = sinh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 complex zblend = (0,0) loop: iterations = iterations + 1 if @pmode != 0 z = z + jc endif ; pmode if @blendz zblend = z^@zbpower endif ; @blendz if @freq2 != 0 if iterations % @freq2 == 0 ; execute series 2 z = z^@power2, done = TRUE endif ; iterations endif ; freq2 if @freq3 != 0 if iterations % @freq3 == 0 ; execute series 3 z = z^@power3, done = TRUE endif ; iterations endif ; freq3 if @freq4 != 0 if iterations % @freq4 == 0 ; execute series 4 z = z^@power4, done = TRUE endif ; iterations endif ; freq4 if @freq5 != 0 if iterations % @freq5 == 0 ; execute series 5 z = z^@power5, done = TRUE endif ; iterations endif ; freq5 if @mode == 0 if !done z = z^@power1 endif ; done else z = z^@power1 endif ; mode if @blendz z = @altweight*z + @zpowerweight*zblend endif ; @blendz if @pmode != 1 z = z + jc endif ; pmode done = FALSE ; get ready for next loop if @biomorph if @biomorphtype == "real + imag" bail = (abs(real(z)) < @biomorphtest) || (abs(imag(z)) < @biomorphtest) elseif @biomorphtype == "real + imag + cabs" bail = (abs(real(z)) < @biomorphtest) || (abs(imag(z)) < @biomorphtest) || (cabs(z) < sqr(@biomorphtest)) elseif @biomorphtype == "real" bail = abs(real(z)) < @biomorphtest elseif @biomorphtype == "imag" bail = abs(imag(z)) < @biomorphtest elseif @biomorphtype == "cabs" bail = cabs(z) < sqr(@biomorphtest) endif ; @biomorphtype else bail = |z| < @bail endif ; @biomorph bailout: bail default: title = "AltMan" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param blendz caption = "Blend z^power?" default = FALSE hint = "If enabled, the alternating series will be blended in to the \ normal Mandelbrot formula, z^power. The relative proportions \ of the normal Mandelbrot and the AltMan formulas are determined \ by parameters 'Mandy Weight' and 'AltMan Weight'." endparam param zpowerweight caption = "Mandy Weight" default = 0.8 hint = "If param 'Blend z^power' is enabled, then this value determines the \ amount of the normal Mandelbrot formula that is blended into the \ AltMan formula" visible = @blendz endparam param altweight caption = "AltMan Weight" default = 0.2 hint = "If param 'Blend z^power' is enabled, then this value determines the \ amount of the AltMan formula that is blended into the \ normal Mandelbrot formula" visible = @blendz endparam param zbpower caption = "Mandelbrot Power" default = 2.0 hint = "If param 'Blend z^power' is enabled, then this value determines the \ exponent of the normal Mandelbrot formula" visible = @blendz endparam param mode caption = "Alternation Mode" enum = "Skip Main" "Main Always" default = 0 hint = "'Skip Main' means that the primary Mandelbrot series is not iterated \ if any of the others are executed on that particular iteration; 'Main \ Always' means primary Mandelbrot is executed regardless of iteration of \ other series" endparam param power1 caption = "Exponent 1" default = (2,0) hint = "This is the power used for the first (main) Mandelbrot series; \ it is executed every iteration" endparam param power2 caption = "Exponent 2" default = (3,0) hint = "This is the power used for the second Mandelbrot series" endparam param freq2 caption = "Frequency 2" default = 6 hint = "Mandelbrot 2 will be executed every N iterations; enter N. If \ N is zero, then series 2 will not be executed at all" endparam param power3 caption = "Exponent 3" default = (5,0) hint = "This is the power used for the third Mandelbrot series" endparam param freq3 caption = "Frequency 3" default = 0 hint = "Mandelbrot 3 will be executed every N iterations; enter N. If \ N is zero, then series 3 will not be executed at all" endparam param power4 caption = "Exponent 4" default = (6,0) hint = "This is the power used for the fourth Mandelbrot series" endparam param freq4 caption = "Frequency 4" default = 0 hint = "Mandelbrot 4 will be executed every N iterations; enter N. If \ N is zero, then series 4 will not be executed at all" endparam param power5 caption = "Exponent 5" default = (0,1) hint = "This is the power used for the fifth Mandelbrot series" endparam param freq5 caption = "Frequency 5" default = 0 hint = "Mandelbrot 5 will be executed every N iterations; enter N. If \ N is zero, then series 5 will not be executed at all" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" "p^p" \ "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" visible = !@biomorph endparam param biomorph caption = "Biomorph Bailout?" default = FALSE hint = "Enabling this setting changes the bailout condition to match \ Pickover's 'biomorph' definition. For coloring, consider using \ 'Biomorph' in the public folder 'jam2.ucl'." endparam param biomorphtest caption = "Biomorph Bailout Test" default = 10.0 hint = "The bailout value for the 'Biomorph' test." visible = @biomorph endparam param biomorphtype caption = "Biomorph Type" enum = "real" "imag" "real + imag" "real + imag + cabs" "cabs" default = 3 hint = "This determines the bailout condition for the Biomorph." visible = @biomorph endparam switch: type = "jam-altman-J" jconstant = #pixel bail = bail biomorph = biomorph biomorphtest = biomorphtest biomorphtype = biomorphtype blendz = blendz zpowerweight = zpowerweight altweight = altweight zbpower = zbpower power1 = power1 power2 = power2 power3 = power3 power4 = power4 power5 = power5 freq2 = freq2 freq3 = freq3 freq4 = freq4 freq5 = freq5 mode = mode pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-altman-J { ; jam 010927 ; General alternating Mandelbrot init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 bool done = FALSE complex zextra = complex ztemp = (0,0) ; temp/spare scratch variables ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 ztemp = sinh(jc), zextra = cosh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 95 ztemp = sin(jc), zextra = cos(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), ztemp = sinh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 complex zblend = (0,0) loop: iterations = iterations + 1 if @pmode != 0 z = z + jc endif ; pmode if @blendz zblend = z^@zbpower endif ; @blendz if @freq2 != 0 if iterations % @freq2 == 0 ; execute series 2 z = z^@power2, done = TRUE endif ; iterations endif ; freq2 if @freq3 != 0 if iterations % @freq3 == 0 ; execute series 3 z = z^@power3, done = TRUE endif ; iterations endif ; freq3 if @freq4 != 0 if iterations % @freq4 == 0 ; execute series 4 z = z^@power4, done = TRUE endif ; iterations endif ; freq4 if @freq5 != 0 if iterations % @freq5 == 0 ; execute series 5 z = z^@power5, done = TRUE endif ; iterations endif ; freq5 if @mode == 0 if !done z = z^@power1 endif ; done else z = z^@power1 endif ; mode if @blendz z = @altweight*z + @zpowerweight*zblend endif ; @blendz if @pmode != 1 z = z + jc endif ; pmode done = FALSE ; get ready for next loop if @biomorph if @biomorphtype == "real + imag" bail = (abs(real(z)) < @biomorphtest) || (abs(imag(z)) < @biomorphtest) elseif @biomorphtype == "real + imag + cabs" bail = (abs(real(z)) < @biomorphtest) || (abs(imag(z)) < @biomorphtest) || (cabs(z) < sqr(@biomorphtest)) elseif @biomorphtype == "real" bail = abs(real(z)) < @biomorphtest elseif @biomorphtype == "imag" bail = abs(imag(z)) < @biomorphtest elseif @biomorphtype == "cabs" bail = cabs(z) < sqr(@biomorphtest) endif ; @biomorphtype else bail = |z| < @bail endif ; @biomorph bailout: bail default: title = "AltMan Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param blendz caption = "Blend z^power?" default = FALSE hint = "If enabled, the alternating series will be blended in to the \ normal Mandelbrot formula, z^power. The relative proportions \ of the normal Mandelbrot and the AltMan formulas are determined \ by parameters 'Mandy Weight' and 'AltMan Weight'." endparam param zpowerweight caption = "Mandy Weight" default = 0.8 hint = "If param 'Blend z^power' is enabled, then this value determines the \ amount of the normal Mandelbrot formula that is blended into the \ AltMan formula" visible = @blendz endparam param altweight caption = "AltMan Weight" default = 0.2 hint = "If param 'Blend z^power' is enabled, then this value determines the \ amount of the AltMan formula that is blended into the \ normal Mandelbrot formula" visible = @blendz endparam param zbpower caption = "Mandelbrot Power" default = 2.0 hint = "If param 'Blend z^power' is enabled, then this value determines the \ exponent of the normal Mandelbrot formula" visible = @blendz endparam param mode caption = "Alternation Mode" enum = "Skip Main" "Main Always" default = 0 hint = "'Skip Main' means that the primary Mandelbrot series is not iterated \ if any of the others are executed on that particular iteration; 'Main \ Always' means primary Mandelbrot is executed regardless of iteration of \ other series" endparam param power1 caption = "Exponent 1" default = (2,0) hint = "This is the power used for the first (main) Mandelbrot series; \ it is executed every iteration" endparam param power2 caption = "Exponent 2" default = (3,0) hint = "This is the power used for the second Mandelbrot series" endparam param freq2 caption = "Frequency 2" default = 6 hint = "Mandelbrot 2 will be executed every N iterations; enter N. If \ N is zero, then series 2 will not be executed at all" endparam param power3 caption = "Exponent 3" default = (5,0) hint = "This is the power used for the third Mandelbrot series" endparam param freq3 caption = "Frequency 3" default = 0 hint = "Mandelbrot 3 will be executed every N iterations; enter N. If \ N is zero, then series 3 will not be executed at all" endparam param power4 caption = "Exponent 4" default = (6,0) hint = "This is the power used for the fourth Mandelbrot series" endparam param freq4 caption = "Frequency 4" default = 0 hint = "Mandelbrot 4 will be executed every N iterations; enter N. If \ N is zero, then series 4 will not be executed at all" endparam param power5 caption = "Exponent 5" default = (0,1) hint = "This is the power used for the fifth Mandelbrot series" endparam param freq5 caption = "Frequency 5" default = 0 hint = "Mandelbrot 5 will be executed every N iterations; enter N. If \ N is zero, then series 5 will not be executed at all" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" "p^p" \ "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" visible = !@biomorph endparam param biomorph caption = "Biomorph Bailout?" default = FALSE hint = "Enabling this setting changes the bailout condition to match \ Pickover's 'biomorph' definition. For coloring, consider using \ 'Biomorph' in the public folder 'jam2.ucl'." endparam param biomorphtest caption = "Biomorph Bailout Test" default = 10.0 hint = "The bailout value for the 'Biomorph' test." visible = @biomorph endparam param biomorphtype caption = "Biomorph Type" enum = "real" "imag" "real + imag" "real + imag + cabs" "cabs" default = 3 hint = "This determines the bailout condition for the Biomorph." visible = @biomorph endparam switch: type = "jam-altman" perturbation = #pixel bail = bail biomorph = biomorph biomorphtest = biomorphtest biomorphtype = biomorphtype blendz = blendz zpowerweight = zpowerweight altweight = altweight zbpower = zbpower power1 = power1 power2 = power2 power3 = power3 power4 = power4 power5 = power5 freq2 = freq2 freq3 = freq3 freq4 = freq4 freq5 = freq5 mode = mode pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } man4man2 { ; Aternates quartic Mandelbrot/Mandelbrot iterations. ; jam 010507 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 loop: iterations = iterations + 1 int remainder = iterations % 2 if ( remainder == 1 ) z = z*z*z*z + jc else z = z*z + jc endif bailout: |z| < @bail default: title = "Alt Quartic/Quadratic Mandelbrot" center = (0,0) maxiter = 500 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "man4man2-J" jconstant = #pixel bail = bail } man4man2-J { ; Aternates quartic Julia/quadratic Julia iterations. ; jam 010720 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 loop: iterations = iterations + 1 int remainder = iterations % 2 if ( remainder == 1 ) z = z*z*z*z + jc else z = z*z + jc endif bailout: |z| < @bail default: title = "Alt Quartic/Quadratic Julia" center = (0,0) maxiter = 500 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "man4man2" perturbation = #pixel bail = bail } man4man2sin { ; Aternates quartic Mandelbrot/Mandelbrot/sin iterations. ; jam 010507 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 loop: iterations = iterations + 1 int remainder = iterations % 3 if ( remainder == 1 ) z = z*z*z*z + jc elseif ( remainder == 2 ) z = z*z + jc else z = sin(z) + jc endif bailout: |z| < @bail default: title = "Alt Quartic/Quadratic/Sin Mandelbrot" center = (0,0) maxiter = 500 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "man4man2sin-J" jconstant = #pixel bail = bail } man4man2sin-J { ; Aternates quartic Mandelbrot/Mandelbrot/sin iterations. ; jam 010720 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 loop: iterations = iterations + 1 int remainder = iterations % 3 if ( remainder == 1 ) z = z*z*z*z + jc elseif ( remainder == 2 ) z = z*z + jc else z = sin(z) + jc endif bailout: |z| < @bail default: title = "Alt Quart/Quadrat/Sin Julia" center = (0,0) maxiter = 500 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "man4man2" perturbation = #pixel bail = bail } m4sinm1-4th { ; Aternates quartic Mandelbrot/4th-root Mandelbrot/sin iterations. ; jam 010704 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 complex root = 0.25 loop: iterations = iterations + 1 int remainder = iterations % 6 complex z2 = z*z if ( remainder == 1 ) z = z2*z2 + jc elseif ( remainder == 2 ) z = z2*z2 + jc elseif ( remainder == 3 ) z = sin(z) + jc elseif ( remainder == 4 ) z = sin(z) + jc elseif ( remainder == 5 ) z = z2 * sin( z2 + jc ) + jc else z = z^root + jc endif bailout: |z| < @bail default: title = "Alter Quart/VarySin/4th-Root Mandelbrot" center = (0,0) maxiter = 500 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "m4sinm1-4th-J" jconstant = #pixel bail = bail } m4sinm1-4th-J { ; Aternates quartic Mandelbrot/4th-root Mandelbrot/sin iterations. ; jam 010720 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 complex root = 0.25 loop: iterations = iterations + 1 int remainder = iterations % 6 complex z2 = z*z if ( remainder == 1 ) z = z2*z2 + jc elseif ( remainder == 2 ) z = z2*z2 + jc elseif ( remainder == 3 ) z = sin(z) + jc elseif ( remainder == 4 ) z = sin(z) + jc elseif ( remainder == 5 ) z = z2 * sin( z2 + jc ) + jc else z = z^root + jc endif bailout: |z| < @bail default: title = "Alter Quart/VarySin/4th-Root Julia" center = (0,0) maxiter = 500 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "m4sinm1-4th" perturbation = #pixel bail = bail } m4m4m1/3 { ; Aternates 2 quartic Mandelbrot iters with a cube root. ; jam 010507 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 float expon = 1/3 loop: iterations = iterations + 1 int remainder = iterations % 3 if ( remainder > 0 ) z = z*z*z*z + jc else z = z^expon + jc endif bailout: |z| < @bail default: title = "Alt Quartic2/Cube Root Mandelbrot" center = (0,0) maxiter = 500 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "m4m4m1/3-J" jconstant = #pixel bail = bail } m4m4m1/3-J { ; Aternates 2 quartic Julia iters with a cube root. ; jam 010720 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 float expon = 1/3 loop: iterations = iterations + 1 int remainder = iterations % 3 if ( remainder > 0 ) z = z*z*z*z + jc else z = z^expon + jc endif bailout: |z| < @bail default: title = "Alt Quartic2/Cube Root Julia" center = (0,0) maxiter = 500 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "m4m4m1/3" perturbation = #pixel bail = bail } m4m4m2/3 { ; Aternates 2 quartic Mandelbrot iters with a 2/3 root. ; jam 010507 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 float expon = 2/3 loop: iterations = iterations + 1 int remainder = iterations % 3 if ( remainder > 0 ) z = z*z*z*z + jc else z = z^expon + jc endif bailout: |z| < @bail default: title = "Alt Quartic2/Two-thirds Root Mandelbrot" center = (0,0) maxiter = 500 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "m4m4m2/3-J" jconstant = #pixel bail = bail } m4m4m2/3-J { ; Aternates 2 quartic Julia iters with a 2/3 root. ; jam 010720 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 float expon = 2/3 loop: iterations = iterations + 1 int remainder = iterations % 3 if ( remainder > 0 ) z = z*z*z*z + jc else z = z^expon + jc endif bailout: |z| < @bail default: title = "Alt Quartic2/Two-thirds Root Julia" center = (0,0) maxiter = 500 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "m4m4m2/3" perturbation = #pixel bail = bail } m4m4m4m2m2 { ; Aternates 3 rounds quartic with 2 quadratic Mandelbrot iterations. ; jam 010507 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 loop: iterations = iterations + 1 int remainder = iterations % 5 if ( remainder == 0 ) || ( remainder == 4 ) z = z*z + jc else z = z*z*z*z + jc endif bailout: |z| < @bail default: title = "Alt Quartic3/Quadratic2 Mandelbrot" center = (0,0) maxiter = 500 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "m4m4m4m2m2-J" jconstant = #pixel bail = bail } m4m4m4m2m2-J { ; Aternates 3 rounds quartic with 2 quadratic Julia iterations. ; jam 010720 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 loop: iterations = iterations + 1 int remainder = iterations % 5 if ( remainder == 0 ) || ( remainder == 4 ) z = z*z + jc else z = z*z*z*z + jc endif bailout: |z| < @bail default: title = "Alt Quartic3/Quadratic2 Julia" center = (0,0) maxiter = 500 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "m4m4m4m2m2-J" perturbation = #pixel bail = bail } m2m2m2m2m2m2m2m2m19 { ; Aternates 8 rounds quadratic with 1 nonadecyl Mandelbrot iterations. ; jam 010520 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 loop: z2 = z*z z4 = z2*z2 z8 = z4*z4 iterations = iterations + 1 int remainder = iterations % 9 if ( remainder == 0 ) z = z8*z8*z2*z + jc else z = z*z + jc endif bailout: |z| < @bail default: title = "Alt 8Quadratic/1Z19 Mandelbrot" center = (0,0) maxiter = 500 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "m2m2m2m2m2m2m2m2m19-J" jconstant = #pixel bail = bail } m2m2m2m2m2m2m2m2m19-J { ; Aternates 8 rounds quadratic with 1 nonadecyl Julia iterations. ; jam 010720 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 loop: z2 = z*z z4 = z2*z2 z8 = z4*z4 iterations = iterations + 1 int remainder = iterations % 9 if ( remainder == 0 ) z = z8*z8*z2*z + jc else z = z*z + jc endif bailout: |z| < @bail default: title = "Alt 8Quadratic/1Z19 Julia" center = (0,0) maxiter = 500 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "m2m2m2m2m2m2m2m2m19" perturbation = #pixel bail = bail } m2m4m4m4tanh { ; jam 010520 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 loop: z2 = z*z iterations = iterations + 1 int remainder = iterations % 5 if ( remainder == 1 ) z = z2 + jc elseif ( remainder == 0 ) z = z2*tanh( z2 + jc ) + jc else z = z2*z2 + jc endif bailout: |z| < @bail default: title = "Alt Quad/Quart/Tanh Mandelbrot" center = (0,0) maxiter = 500 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "m2m4m4m4tanh-J" jconstant = #pixel bail = bail } m2m4m4m4tanh-J { ; jam 010720 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 loop: z2 = z*z iterations = iterations + 1 int remainder = iterations % 5 if ( remainder == 1 ) z = z2 + jc elseif ( remainder == 0 ) z = z2*tanh( z2 + jc ) + jc else z = z2*z2 + jc endif bailout: |z| < @bail default: title = "Alt Quad/Quart/Tanh Julia" center = (0,0) maxiter = 500 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 16.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "m2m4m4m4tanh" perturbation = #pixel bail = bail } m2Xm3Xm5Xm6 { ; jam 010520 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 loop: complex z2 = z*z complex z3 = z*z2 complex z5 = z2*z3 complex z6 = z3*z3 iterations = iterations + 1 int remainder1 = iterations % 3 int remainder2 = iterations % 5 int remainder3 = iterations % 6 complex zr0 = z2 + jc if ( remainder1 == 0 ) complex zr1 = z3 + jc else complex zr1 = 1 endif if ( remainder2 == 0 ) complex zr2 = z5 + jc else complex zr2 = 1 endif if ( remainder3 == 0 ) complex zr3 = z6 + jc else complex zr3 = 1 endif z = zr0*zr1*zr2*zr3 + jc bailout: |z| < @bail default: title = "SpecialAltX Z2/Z3/Z5/Z6 Mandelbrot" center = (0,0) maxiter = 500 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "m2Xm3Xm5Xm6-J" jconstant = #pixel bail = bail } m2Xm3Xm5Xm6-J { ; jam 010720 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 loop: complex z2 = z*z complex z3 = z*z2 complex z5 = z2*z3 complex z6 = z3*z3 iterations = iterations + 1 int remainder1 = iterations % 3 int remainder2 = iterations % 5 int remainder3 = iterations % 6 complex zr0 = z2 + jc if ( remainder1 == 0 ) complex zr1 = z3 + jc else complex zr1 = 1 endif if ( remainder2 == 0 ) complex zr2 = z5 + jc else complex zr2 = 1 endif if ( remainder3 == 0 ) complex zr3 = z6 + jc else complex zr3 = 1 endif z = zr0*zr1*zr2*zr3 + jc bailout: |z| < @bail default: title = "SpecialAltX Z2/Z3/Z5/Z6 Julia" center = (0,0) maxiter = 500 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "m2Xm3Xm5Xm6-J" jconstant = #pixel bail = bail } m2+m3+m5+m6 { ; jam 010520 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 loop: complex z2 = z*z complex z3 = z*z2 complex z5 = z2*z3 complex z6 = z3*z3 iterations = iterations + 1 int remainder1 = iterations % 3 int remainder2 = iterations % 5 int remainder3 = iterations % 6 complex zr0 = z2 + jc if ( remainder1 == 0 ) complex zr1 = z3 + jc else complex zr1 = 1 endif if ( remainder2 == 0 ) complex zr2 = z5 + jc else complex zr2 = 1 endif if ( remainder3 == 0 ) complex zr3 = z6 + jc else complex zr3 = 1 endif z = zr0 + zr1 + zr2 + zr3 bailout: |z| < @bail default: title = "SpecialAlt+ Z2/Z3/Z5/Z6 Mandelbrot" center = (0,0) maxiter = 500 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "m2+m3+m5+m6-J" jconstant = #pixel bail = bail } m2+m3+m5+m6-J { ; jam 010720 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 loop: complex z2 = z*z complex z3 = z*z2 complex z5 = z2*z3 complex z6 = z3*z3 iterations = iterations + 1 int remainder1 = iterations % 3 int remainder2 = iterations % 5 int remainder3 = iterations % 6 complex zr0 = z2 + jc if ( remainder1 == 0 ) complex zr1 = z3 + jc else complex zr1 = 1 endif if ( remainder2 == 0 ) complex zr2 = z5 + jc else complex zr2 = 1 endif if ( remainder3 == 0 ) complex zr3 = z6 + jc else complex zr3 = 1 endif z = zr0 + zr1 + zr2 + zr3 bailout: |z| < @bail default: title = "SpecialAlt+ Z2/Z3/Z5/Z6 Julia" center = (0,0) maxiter = 500 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "m2+m3+m5+m6" perturbation = #pixel bail = bail } altXm2m3m1/3 { ; jam 010520 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 float power = 1/3 loop: iterations = iterations + 1 int remainder1 = iterations % 3 int remainder2 = iterations % 6 if ( remainder2 == 0 ) z = z*z*z + jc else z = z*z + jc endif if ( remainder1 == 0 ) complex z = z^power + jc endif bailout: |z| < @bail default: title = "SpecialAltX Z2Z3Z1/3 Mandelbrot" center = (0,0) maxiter = 500 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "altXm2m3m1/3-J" jconstant = #pixel bail = bail } altXm2m3m1/3-J { ; jam 010720 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 float power = 1/3 loop: iterations = iterations + 1 int remainder1 = iterations % 3 int remainder2 = iterations % 6 if ( remainder2 == 0 ) z = z*z*z + jc else z = z*z + jc endif if ( remainder1 == 0 ) complex z = z^power + jc endif bailout: |z| < @bail default: title = "SpecialAltX Z2Z3Z1/3 Julia" center = (0,0) maxiter = 500 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "altXm2m3m1/3" perturbation = #pixel bail = bail } m2X9-m60 { ; Aternates 9 rounds quadratic with 1 z^60 Mandelbrot iterations. ; jam 010524 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 loop: iterations = iterations + 1 int remainder = iterations % 10 if ( remainder == 0 ) z = z^60 + jc else z = z*z + jc endif bailout: |z| < @bail default: title = "Alt 9Quadrat/1Z60 Mandelbrot" center = (0,0) maxiter = 500 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "m2X19-m60-J" jconstant = #pixel bail = bail } m2X9-m60-J { ; Aternates 9 rounds quadratic with 1 z^60 Julia iterations. ; jam 010720 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 loop: iterations = iterations + 1 int remainder = iterations % 10 if ( remainder == 0 ) z = z^60 + jc else z = z*z + jc endif bailout: |z| < @bail default: title = "Alt 9Quadrat/1Z60 Julia" center = (0,0) maxiter = 500 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "m2X19-m60" perturbation = #pixel bail = bail } m2X7-m7001 { ; Aternates 7 rounds quadratic with 1 z^7001 Mandelbrot iterations. ; jam 010708 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 loop: iterations = iterations + 1 int remainder = iterations % 8 if ( remainder == 0 ) z = z^7001 + jc else z = z*z + jc endif bailout: |z| < @bail default: title = "Alt 7Quadrat/1Z7001 Mandelbrot" center = (0,0) maxiter = 250 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 256.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "m2X7-m7001-J" jconstant = #pixel bail = bail } m2X7-m7001-J { ; Aternates 7 rounds quadratic with 1 z^7001 Mandelbrot iterations. ; jam 010720 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 loop: iterations = iterations + 1 int remainder = iterations % 8 if ( remainder == 0 ) z = z^7001 + jc else z = z*z + jc endif bailout: |z| < @bail default: title = "Alt 7Quadrat/1Z7001 Julia" center = (0,0) maxiter = 250 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 256.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "m2X7-m7001" perturbation = #pixel bail = bail } m2X7-m7001vary1 { ; Aternates 7 rounds quadratic with 1 z^7001 Mandelbrot iterations, ; also varying the constant intermittently ; jam 010708 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 loop: iterations = iterations + 1 int remainder = iterations % 8 if ( remainder == 4 ) jc = sqrt( jc*jc*jc) endif if ( remainder == 0 ) jc = sin( jc/2 ) -1 z = z^7001 + jc else z = z*z + jc endif bailout: |z| < @bail default: title = "AltVar 7Z2/1Z7001 Mandelbrot" center = (0,0) maxiter = 250 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "m2X7-m7001vary1-J" jconstant = #pixel bail = bail } m2X7-m7001vary1-J { ; Aternates 7 rounds quadratic with 1 z^7001 Mandelbrot iterations, ; also varying the constant intermittently ; jam 010720 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 loop: iterations = iterations + 1 int remainder = iterations % 8 if ( remainder == 4 ) jc = sqrt( jc*jc*jc) endif if ( remainder == 0 ) jc = sin( jc/2 ) -1 z = z^7001 + jc else z = z*z + jc endif bailout: |z| < @bail default: title = "AltVar 7Z2/1Z7001 Julia" center = (0,0) maxiter = 250 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "m2X7-m7001vary1" jconstant = #pixel bail = bail } PerfectSquares { ; Aternates Function 1 with Function 2 iterations when iteration count is a perfect square. ; jam 010708 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 int nextsquare = 1, int square = 1 float factorial2 = 2.0 float factorial4 = 4.0 * 3.0 * factorial2 float factorial9 = 9.0 * 8.0 * 7.0 * 6.0 * 5.0 * factorial4 float factorial16 = 16.0 * 15.0 * 14.0 * 13.0 * 12.0 * 11.0 * 10.0 * factorial9 float factorial25 = 25.0 * 24.0 * 23.0 * 22.0 * 21.0 * 20.0 * 19.0 * 18.0 * 17.0 * factorial16 ; now take reciprocals, so we can multiply during iteration loop instead of divide factorial2 = 1/factorial2, factorial4 = 1/factorial4, factorial9 = 1/factorial9 factorial16 = 1/factorial16, factorial25 = 1/factorial25 float fourth = 1/4, float ninth = 1/9, float sixteenth = 1/16, float twentyfifth = 1/25 complex twobyrtpi = 2/( sqrt( #pi ) ) loop: iterations = iterations + 1 if ( iterations != square ) jc = @jcfuncnorm( jc ) if ( @normalfunc == 0 ) z = z*z + jc elseif ( @normalfunc == 1 ) z = z*z*z + jc elseif ( @normalfunc == 2 ) complex z2 = z*z z = z2*z2 + jc elseif ( @normalfunc == 3 ) z = z^@power + jc elseif (@normalfunc == 4 ) z = exp( z ) + jc elseif ( @normalfunc == 5 ) z = log( z ) + jc elseif ( @normalfunc == 6 ) z = sin( z ) + jc elseif ( @normalfunc == 7 ) z = cos( z ) + jc elseif ( @normalfunc == 8 ) z = tan( z ) + jc elseif ( @normalfunc == 9 ) z = asin( z ) + jc elseif ( @normalfunc == 10 ) z = acos( z ) + jc elseif ( @normalfunc == 11 ) z = atan( z ) + jc elseif ( @normalfunc == 12 ) z = sinh( z ) + jc elseif ( @normalfunc == 13 ) z = cosh( z ) + jc elseif ( @normalfunc == 14 ) z = tanh( z ) + jc elseif ( @normalfunc == 15 ) z = asinh( z ) + jc elseif ( @normalfunc == 16 ) z = acosh( z ) + jc elseif ( @normalfunc == 17 ) z = atanh( z ) + jc elseif ( @normalfunc == 18 ) z = 1/z + jc elseif ( @normalfunc == 19 ) ; f(z) = altfsquare(z) from jampolygon.ufm complex z2 = z*z, complex z4 = z2*z2, complex z9 = z4*z4*z, complex z16 = z9*z4*z2*z, complex z25 = z9*z16 z = z - z4*factorial4 + z9*factorial9 - z16*factorial16 + z25*factorial25 + jc elseif ( @normalfunc == 20 ) ; f = fsquare(z) from jampolygon.ufm complex z2 = z*z, complex z4 = z2*z2, complex z9 = z4*z4*z, complex z16 = z9*z4*z2*z, complex z25 = z9*z16 z = z + z4*factorial4 + z9*factorial9 + z16*factorial16 + z25*factorial25 +jc elseif ( @normalfunc == 21 ) ; f = altgsquare(z) from jampolygon.ufm complex z2 = z*z, complex z4 = z2*z2, complex z9 = z4*z4*z, complex z16 = z9*z4*z2*z, complex z25 = z9*z16 z = z - z4*fourth + z9*ninth - z16*sixteenth + z25*twentyfifth +jc elseif ( @normalfunc == 22 ) ; f = gsquare(z) from jampolygon.ufm complex z2 = z*z, complex z4 = z2*z2, complex z9 = z4*z4*z, complex z16 = z9*z4*z2*z, complex z25 = z9*z16 z = z + z4*fourth + z9*ninth + z16*sixteenth + z25*twentyfifth +jc elseif ( @normalfunc == 23 ) ; zero-order Bessell function of the first kind, J[0](z) complex z2 = z*z, complex z4 = z2*z2, complex z6 = z4*z2, complex z8 = z6*z2 complex z10 = z8*z2, complex z12 = z10*z2, complex z14 = z12*z2, complex z16 = z14*z2 z = 1 - z2/4 + z4/64 - z6/2304 + z8/147456 - z10/14745600 + z12/2123366400 \ - z14/4.16179814400E11 + z16/1.06542032486400E14 + jc elseif ( @normalfunc == 24 ) ; first order Bessell function complex z2 = z*z, complex z3 = z2*z, complex z5 = z3*z2, complex z7 = z5*z2, complex z9 = z7*z2 complex z11 = z9*z2, complex z13 = z11*z2, complex z15 = z13*z2, complex z17 = z15*z2 z = z/2 - z3/16 + z5/384 - z7/18432 + z9/1474560 - z11/176947200 + z13/2.9727129600E10 \ - z15/6.658877030400E12 + z17/1.917756584755200E15 + jc elseif ( @normalfunc == 25 ) ; second order Bessell function complex z2 = z*z, complex z4 = z2*z2, complex z6 = z4*z2, complex z8 = z6*z2 complex z10 = z8*z2, complex z12 = z10*z2, complex z14 = z12*z2, complex z16 = z14*z2 complex z18 = z16*z2 z = z2/8 - z4/96 + z6/3072 - z8/184320 + z10/17694720 - z12/2.477260800E9 \ + z14/4.75634073600E11 - z16/1.19859786547200E14 + z18/3.8355131695104000E16 + jc else ; error function complex z2 = z*z, complex z3 = z2*z, complex z5 = z3*z2, complex z7 = z5*z2, complex z9 = z7*z2, complex z11 = z9*z2 z = twobyrtpi * ( z - z3/3 + z5/10 - z7/42 + z9/216 - z11/1320 ) + jc endif else jc = @jcfuncsquare( jc ) nextsquare = nextsquare + 1 square = nextsquare*nextsquare if ( @squarefunc == 19 ) ; f(z) = altfsquare(z) from jampolygon.ufm complex z2 = z*z, complex z4 = z2*z2, complex z9 = z4*z4*z, complex z16 = z9*z4*z2*z, complex z25 = z9*z16 z = z - z4*factorial4 + z9*factorial9 - z16*factorial16 + z25*factorial25 + jc elseif ( @squarefunc == 0 ) z = z*z + jc elseif ( @squarefunc == 1 ) z = z*z*z + jc elseif ( @squarefunc == 2 ) complex z2 = z*z z = z2*z2 + jc elseif ( @normalfunc == 3 ) z = z^@power + jc elseif ( @squarefunc == 4 ) z = exp( z ) + jc elseif ( @squarefunc == 5 ) z = log( z ) + jc elseif ( @squarefunc == 6 ) z = sin( z ) + jc elseif ( @squarefunc == 7 ) z = cos( z ) + jc elseif ( @squarefunc == 8 ) z = tan( z ) + jc elseif ( @squarefunc == 9 ) z = asin( z ) + jc elseif ( @squarefunc == 10 ) z = acos( z ) + jc elseif ( @squarefunc == 11 ) z = atan( z ) + jc elseif ( @squarefunc == 12 ) z = sinh( z ) + jc elseif ( @squarefunc == 13 ) z = cosh( z ) + jc elseif ( @squarefunc == 14 ) z = tanh( z ) + jc elseif ( @squarefunc == 15 ) z = asinh( z ) + jc elseif ( @squarefunc == 16 ) z = acosh( z ) + jc elseif ( @squarefunc == 17 ) z = atanh( z ) + jc elseif ( @squarefunc == 18 ) z = 1/z + jc elseif ( @squarefunc == 20 ) ; f = fsquare(z) from jampolygon.ufm complex z2 = z*z, complex z4 = z2*z2, complex z9 = z4*z4*z, complex z16 = z9*z4*z2*z, complex z25 = z9*z16 z = z + z4*factorial4 + z9*factorial9 + z16*factorial16 + z25*factorial25 +jc elseif ( @squarefunc == 21 ) ; f = altgsquare(z) from jampolygon.ufm complex z2 = z*z, complex z4 = z2*z2, complex z9 = z4*z4*z, complex z16 = z9*z4*z2*z, complex z25 = z9*z16 z = z - z4*fourth + z9*ninth - z16*sixteenth + z25*twentyfifth +jc elseif ( @squarefunc == 22 ) ; f = gsquare(z) from jampolygon.ufm complex z2 = z*z, complex z4 = z2*z2, complex z9 = z4*z4*z, complex z16 = z9*z4*z2*z, complex z25 = z9*z16 z = z + z4*fourth + z9*ninth + z16*sixteenth + z25*twentyfifth +jc elseif ( @squarefunc == 23 ) ; zero-order Bessell function of the first kind, J[0](z) complex z2 = z*z, complex z4 = z2*z2, complex z6 = z4*z2, complex z8 = z6*z2 complex z10 = z8*z2, complex z12 = z10*z2, complex z14 = z12*z2, complex z16 = z14*z2 z = 1 - z2/4 + z4/64 - z6/2304 + z8/147456 - z10/14745600 + z12/2123366400 \ - z14/4.16179814400E11 + z16/1.06542032486400E14 + jc elseif ( @squarefunc == 24 ) ; first order Bessell function complex z2 = z*z, complex z3 = z2*z, complex z5 = z3*z2, complex z7 = z5*z2, complex z9 = z7*z2 complex z11 = z9*z2, complex z13 = z11*z2, complex z15 = z13*z2, complex z17 = z15*z2 z = z/2 - z3/16 + z5/384 - z7/18432 + z9/1474560 - z11/176947200 + z13/2.9727129600E10 \ - z15/6.658877030400E12 + z17/1.917756584755200E15 + jc elseif ( @squarefunc == 25 ) ; second order Bessell function complex z2 = z*z, complex z4 = z2*z2, complex z6 = z4*z2, complex z8 = z6*z2 complex z10 = z8*z2, complex z12 = z10*z2, complex z14 = z12*z2, complex z16 = z14*z2 complex z18 = z16*z2 z = z2/8 - z4/96 + z6/3072 - z8/184320 + z10/17694720 - z12/2.477260800E9 \ + z14/4.75634073600E11 - z16/1.19859786547200E14 + z18/3.8355131695104000E16 + jc else ; error function complex z2 = z*z, complex z3 = z2*z, complex z5 = z3*z2, complex z7 = z5*z2, complex z9 = z7*z2, complex z11 = z9*z2 z = twobyrtpi * ( z - z3/3 + z5/10 - z7/42 + z9/216 - z11/1320 ) + jc endif endif bailout: |z| < @bail default: title = "PerfectSquaresAlternation" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param normalfunc caption = "Normal Function" enum = "z^2" "z^3" "z^4" "z^power" "exp" "log" "sin" "cos" "tan" "asin" "acos" "atan" "sinh" "cosh" "tanh" \ "asinh" "acosh" "atanh" "recip" "tetragonal 1" "tetragonal 2" "tetragonal 3" "tetragonal 4" "Bessell 0" \ "Bessell 1" "Bessell 2" "erf" default = 0 hint = "This is the iteration formula for Z when the iteration count is not a perfect square" endparam param squarefunc caption = "Square Function" enum = "z^2" "z^3" "z^4" "z^power" "exp" "log" "sin" "cos" "tan" "asin" "acos" "atan" "sinh" "cosh" "tanh" \ "asinh" "acosh" "atanh" "recip" "tetragonal 1" "tetragonal 2" "tetragonal 3" "tetragonal 4" "Bessell 0" \ "Bessell 1" "Bessell 2" "erf" default = 19 hint = "This is the iteration formula for Z when the iteration count is equal to a perfect square" endparam param power caption = "Power (Exponent)" default = (1.61803398874989484820, 0) hint = "Used only when Normal Function or Square Function is set to 'z^power'" endparam func jcfuncnorm caption = "Normal Constant Transform" hint = "This function is applied to the iteration constant on non-square iterations" default = ident() endfunc func jcfuncsquare caption = "Square Constant Transform" hint = "This function is applied to the iteration constant on square-valued iterations" default = ident() endfunc switch: type = "PerfectSquares-J" jconstant = #pixel bail = bail normalfunc = normalfunc squarefunc = squarefunc power = power jcfuncnorm = jcfuncnorm jcfuncsquare = jcfuncsquare } PerfectSquares-J { ; Aternates Function 1 with Function 2 iterations when iteration count is a perfect square. ; jam 010708 init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 int nextsquare = 1, int square = 1 float factorial2 = 2.0 float factorial4 = 4.0 * 3.0 * factorial2 float factorial9 = 9.0 * 8.0 * 7.0 * 6.0 * 5.0 * factorial4 float factorial16 = 16.0 * 15.0 * 14.0 * 13.0 * 12.0 * 11.0 * 10.0 * factorial9 float factorial25 = 25.0 * 24.0 * 23.0 * 22.0 * 21.0 * 20.0 * 19.0 * 18.0 * 17.0 * factorial16 ; now take reciprocals, so we can multiply during iteration loop instead of divide factorial2 = 1/factorial2, factorial4 = 1/factorial4, factorial9 = 1/factorial9 factorial16 = 1/factorial16, factorial25 = 1/factorial25 float fourth = 1/4, float ninth = 1/9, float sixteenth = 1/16, float twentyfifth = 1/25 complex twobyrtpi = 2/( sqrt( #pi ) ) loop: iterations = iterations + 1 if ( iterations != square ) jc = @jcfuncnorm( jc ) if ( @normalfunc == 0 ) z = z*z + jc elseif ( @normalfunc == 1 ) z = z*z*z + jc elseif ( @normalfunc == 2 ) complex z2 = z*z z = z2*z2 + jc elseif ( @normalfunc == 3 ) z = z^@power + jc elseif (@normalfunc == 4 ) z = exp( z ) + jc elseif ( @normalfunc == 5 ) z = log( z ) + jc elseif ( @normalfunc == 6 ) z = sin( z ) + jc elseif ( @normalfunc == 7 ) z = cos( z ) + jc elseif ( @normalfunc == 8 ) z = tan( z ) + jc elseif ( @normalfunc == 9 ) z = asin( z ) + jc elseif ( @normalfunc == 10 ) z = acos( z ) + jc elseif ( @normalfunc == 11 ) z = atan( z ) + jc elseif ( @normalfunc == 12 ) z = sinh( z ) + jc elseif ( @normalfunc == 13 ) z = cosh( z ) + jc elseif ( @normalfunc == 14 ) z = tanh( z ) + jc elseif ( @normalfunc == 15 ) z = asinh( z ) + jc elseif ( @normalfunc == 16 ) z = acosh( z ) + jc elseif ( @normalfunc == 17 ) z = atanh( z ) + jc elseif ( @normalfunc == 18 ) z = 1/z + jc elseif ( @normalfunc == 19 ) ; f(z) = altfsquare(z) from jampolygon.ufm complex z2 = z*z, complex z4 = z2*z2, complex z9 = z4*z4*z, complex z16 = z9*z4*z2*z, complex z25 = z9*z16 z = z - z4*factorial4 + z9*factorial9 - z16*factorial16 + z25*factorial25 + jc elseif ( @normalfunc == 20 ) ; f = fsquare(z) from jampolygon.ufm complex z2 = z*z, complex z4 = z2*z2, complex z9 = z4*z4*z, complex z16 = z9*z4*z2*z, complex z25 = z9*z16 z = z + z4*factorial4 + z9*factorial9 + z16*factorial16 + z25*factorial25 +jc elseif ( @normalfunc == 21 ) ; f = altgsquare(z) from jampolygon.ufm complex z2 = z*z, complex z4 = z2*z2, complex z9 = z4*z4*z, complex z16 = z9*z4*z2*z, complex z25 = z9*z16 z = z - z4*fourth + z9*ninth - z16*sixteenth + z25*twentyfifth +jc elseif ( @normalfunc == 22 ) ; f = gsquare(z) from jampolygon.ufm complex z2 = z*z, complex z4 = z2*z2, complex z9 = z4*z4*z, complex z16 = z9*z4*z2*z, complex z25 = z9*z16 z = z + z4*fourth + z9*ninth + z16*sixteenth + z25*twentyfifth +jc elseif ( @normalfunc == 23 ) ; zero-order Bessell function of the first kind, J[0](z) complex z2 = z*z, complex z4 = z2*z2, complex z6 = z4*z2, complex z8 = z6*z2 complex z10 = z8*z2, complex z12 = z10*z2, complex z14 = z12*z2, complex z16 = z14*z2 z = 1 - z2/4 + z4/64 - z6/2304 + z8/147456 - z10/14745600 + z12/2123366400 \ - z14/4.16179814400E11 + z16/1.06542032486400E14 + jc elseif ( @normalfunc == 24 ) ; first order Bessell function complex z2 = z*z, complex z3 = z2*z, complex z5 = z3*z2, complex z7 = z5*z2, complex z9 = z7*z2 complex z11 = z9*z2, complex z13 = z11*z2, complex z15 = z13*z2, complex z17 = z15*z2 z = z/2 - z3/16 + z5/384 - z7/18432 + z9/1474560 - z11/176947200 + z13/2.9727129600E10 \ - z15/6.658877030400E12 + z17/1.917756584755200E15 + jc elseif ( @normalfunc == 25 ) ; second order Bessell function complex z2 = z*z, complex z4 = z2*z2, complex z6 = z4*z2, complex z8 = z6*z2 complex z10 = z8*z2, complex z12 = z10*z2, complex z14 = z12*z2, complex z16 = z14*z2 complex z18 = z16*z2 z = z2/8 - z4/96 + z6/3072 - z8/184320 + z10/17694720 - z12/2.477260800E9 \ + z14/4.75634073600E11 - z16/1.19859786547200E14 + z18/3.8355131695104000E16 + jc else ; error function complex z2 = z*z, complex z3 = z2*z, complex z5 = z3*z2, complex z7 = z5*z2, complex z9 = z7*z2, complex z11 = z9*z2 z = twobyrtpi * ( z - z3/3 + z5/10 - z7/42 + z9/216 - z11/1320 ) + jc endif else jc = @jcfuncsquare( jc ) nextsquare = nextsquare + 1 square = nextsquare*nextsquare if ( @squarefunc == 19 ) ; f(z) = altfsquare(z) from jampolygon.ufm complex z2 = z*z, complex z4 = z2*z2, complex z9 = z4*z4*z, complex z16 = z9*z4*z2*z, complex z25 = z9*z16 z = z - z4*factorial4 + z9*factorial9 - z16*factorial16 + z25*factorial25 + jc elseif ( @squarefunc == 0 ) z = z*z + jc elseif ( @squarefunc == 1 ) z = z*z*z + jc elseif ( @squarefunc == 2 ) complex z2 = z*z z = z2*z2 + jc elseif ( @normalfunc == 3 ) z = z^@power + jc elseif ( @squarefunc == 4 ) z = exp( z ) + jc elseif ( @squarefunc == 5 ) z = log( z ) + jc elseif ( @squarefunc == 6 ) z = sin( z ) + jc elseif ( @squarefunc == 7 ) z = cos( z ) + jc elseif ( @squarefunc == 8 ) z = tan( z ) + jc elseif ( @squarefunc == 9 ) z = asin( z ) + jc elseif ( @squarefunc == 10 ) z = acos( z ) + jc elseif ( @squarefunc == 11 ) z = atan( z ) + jc elseif ( @squarefunc == 12 ) z = sinh( z ) + jc elseif ( @squarefunc == 13 ) z = cosh( z ) + jc elseif ( @squarefunc == 14 ) z = tanh( z ) + jc elseif ( @squarefunc == 15 ) z = asinh( z ) + jc elseif ( @squarefunc == 16 ) z = acosh( z ) + jc elseif ( @squarefunc == 17 ) z = atanh( z ) + jc elseif ( @squarefunc == 18 ) z = 1/z + jc elseif ( @squarefunc == 20 ) ; f = fsquare(z) from jampolygon.ufm complex z2 = z*z, complex z4 = z2*z2, complex z9 = z4*z4*z, complex z16 = z9*z4*z2*z, complex z25 = z9*z16 z = z + z4*factorial4 + z9*factorial9 + z16*factorial16 + z25*factorial25 +jc elseif ( @squarefunc == 21 ) ; f = altgsquare(z) from jampolygon.ufm complex z2 = z*z, complex z4 = z2*z2, complex z9 = z4*z4*z, complex z16 = z9*z4*z2*z, complex z25 = z9*z16 z = z - z4*fourth + z9*ninth - z16*sixteenth + z25*twentyfifth +jc elseif ( @squarefunc == 22 ) ; f = gsquare(z) from jampolygon.ufm complex z2 = z*z, complex z4 = z2*z2, complex z9 = z4*z4*z, complex z16 = z9*z4*z2*z, complex z25 = z9*z16 z = z + z4*fourth + z9*ninth + z16*sixteenth + z25*twentyfifth +jc elseif ( @squarefunc == 23 ) ; zero-order Bessell function of the first kind, J[0](z) complex z2 = z*z, complex z4 = z2*z2, complex z6 = z4*z2, complex z8 = z6*z2 complex z10 = z8*z2, complex z12 = z10*z2, complex z14 = z12*z2, complex z16 = z14*z2 z = 1 - z2/4 + z4/64 - z6/2304 + z8/147456 - z10/14745600 + z12/2123366400 \ - z14/4.16179814400E11 + z16/1.06542032486400E14 + jc elseif ( @squarefunc == 24 ) ; first order Bessell function complex z2 = z*z, complex z3 = z2*z, complex z5 = z3*z2, complex z7 = z5*z2, complex z9 = z7*z2 complex z11 = z9*z2, complex z13 = z11*z2, complex z15 = z13*z2, complex z17 = z15*z2 z = z/2 - z3/16 + z5/384 - z7/18432 + z9/1474560 - z11/176947200 + z13/2.9727129600E10 \ - z15/6.658877030400E12 + z17/1.917756584755200E15 + jc elseif ( @squarefunc == 25 ) ; second order Bessell function complex z2 = z*z, complex z4 = z2*z2, complex z6 = z4*z2, complex z8 = z6*z2 complex z10 = z8*z2, complex z12 = z10*z2, complex z14 = z12*z2, complex z16 = z14*z2 complex z18 = z16*z2 z = z2/8 - z4/96 + z6/3072 - z8/184320 + z10/17694720 - z12/2.477260800E9 \ + z14/4.75634073600E11 - z16/1.19859786547200E14 + z18/3.8355131695104000E16 + jc else ; error function complex z2 = z*z, complex z3 = z2*z, complex z5 = z3*z2, complex z7 = z5*z2, complex z9 = z7*z2, complex z11 = z9*z2 z = twobyrtpi * ( z - z3/3 + z5/10 - z7/42 + z9/216 - z11/1320 ) + jc endif endif bailout: |z| < @bail default: title = "PerfectSquaresAlt Julia" center = (0,0) maxiter = 200 method = multipass periodicity = 0 param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param normalfunc caption = "Normal Function" enum = "z^2" "z^3" "z^4" "z^power" "exp" "log" "sin" "cos" "tan" "asin" "acos" "atan" "sinh" "cosh" "tanh" \ "asinh" "acosh" "atanh" "recip" "tetragonal 1" "tetragonal 2" "tetragonal 3" "tetragonal 4" "Bessell 0" \ "Bessell 1" "Bessell 2" "erf" default = 0 hint = "This is the iteration formula for Z when the iteration count is not a perfect square" endparam param squarefunc caption = "Square Function" enum = "z^2" "z^3" "z^4" "z^power" "exp" "log" "sin" "cos" "tan" "asin" "acos" "atan" "sinh" "cosh" "tanh" \ "asinh" "acosh" "atanh" "recip" "tetragonal 1" "tetragonal 2" "tetragonal 3" "tetragonal 4" "Bessell 0" \ "Bessell 1" "Bessell 2" "erf" default = 19 hint = "This is the iteration formula for Z when the iteration count is equal to a perfect square" endparam param power caption = "Power (Exponent)" default = (1.61803398874989484820, 0) hint = "Used only when Normal Function or Square Function is set to 'z^power'" endparam func jcfuncnorm caption = "Normal Constant Transform" hint = "This function is applied to the iteration constant on non-square iterations" default = ident() endfunc func jcfuncsquare caption = "Square Constant Transform" hint = "This function is applied to the iteration constant on square-valued iterations" default = ident() endfunc switch: type = "PerfectSquares" jconstant = #pixel bail = bail normalfunc = normalfunc squarefunc = squarefunc power = power jcfuncnorm = jcfuncnorm jcfuncsquare = jcfuncsquare } jam-alt4Cycle-general { ; jam 011009 ; Alternating-type Mandelbrot/Julia in which 4 independent formulas ; are repeatedly, sequentially executed on alternate iterations. ; Formula 1 is executed on iterations 1,5,9,... (iterations 1 mod 4); ; Formula 2 is executed on iterations 2,6,10,... (iterations 2 mod 4); ; Formula 3 is executed on iterations 3,7,11,... (iterations 3 mod 4); ; Formula 4 is executed on iterations 4,8,12,... (iterations 0 mod 4); ; The 3-term polynomial formula option is ; z = ( CoeffA * z^ExponentA ) + ( CoeffB * z^ExponentB ) + ( CoeffC * z^ExponentC ) + constant init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0, int remainder = 0 complex zextra = complex ztemp = complex temp2 = (0,0) ; temp/spare scratch variable complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 ztemp = sinh(jc), zextra = cosh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 95 ztemp = sin(jc), zextra = cos(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), ztemp = sinh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: if @pmode != 0 #z = #z + jc endif ; pmode zblend = z iterations = iterations + 1 remainder = iterations % 4 if remainder == 1 ; Execute 1st formula selection if @formula1 == 0 #z = #z * #z elseif @formula1 == 1 #z = #z * #z * #z elseif @formula1 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula1 <= 60 if @formula1 <= 30 if @formula1 == 3 #z = #z ^ @power1 elseif @formula1 == 4 #z = 1/#z elseif @formula1 == 5 #z = sqrt(#z) elseif @formula1 == 6 #z = 1 / ( #z * #z ) elseif @formula1 == 7 #z = log(#z) elseif @formula1 == 8 #z = exp( #z) elseif @formula1 == 9 #z = #z^#z elseif @formula1 == 10 #z = sin( #z ) elseif @formula1 == 11 #z = cos( #z ) elseif @formula1 == 12 #z = tan( #z ) elseif @formula1 == 13 #z = asin( #z ) elseif @formula1 == 14 #z = acos( #z ) elseif @formula1 == 15 #z = atan( #z ) elseif @formula1 == 16 #z = sinh( #z ) elseif @formula1 == 17 #z = cosh( #z ) elseif @formula1 == 18 #z = tanh( #z ) elseif @formula1 == 19 #z = asinh( #z ) elseif @formula1 == 20 #z = acosh( #z ) elseif @formula1 == 21 #z = atanh( #z ) elseif @formula1 == 22 #z = log( 1/#z ) elseif @formula1 == 23 #z = log( log( #z )) elseif @formula1 == 24 #z = exp( -#z ) elseif @formula1 == 25 #z = exp( 1/#z ) elseif @formula1 == 26 #z = #z^(-#z) elseif @formula1 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula1 == 29 zextra = tan( #z ) #z = zextra * zextra else ; @formula1 == 30 #z = cotan( #z ) endif ; formula1-3 else ; 30 < @formula1 <= 60 if @formula1 == 31 #z = 1/cos( #z ) elseif @formula1 == 32 #z = 1/sin( #z ) elseif @formula1 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula1 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula1 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula1 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula1 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula1 == 38 #z = log(-#z) elseif @formula1 == 39 #z = 1/log( #z ) elseif @formula1 == 40 #z = #z * log( #z ) elseif @formula1 == 41 #z = sin( #z ) / #z elseif @formula1 == 42 #z = cos( #z ) / #z elseif @formula1 == 43 #z = sin( #z ) * cos( #z ) elseif @formula1 == 44 #z = sin( #z^2 ) elseif @formula1 == 45 #z = exp( -1/#z ) elseif @formula1 == 46 #z = #z * exp( #z ) elseif @formula1 == 47 #z = #z * exp( -#z ) elseif @formula1 == 48 #z = #z * exp( 1/#z ) elseif @formula1 == 49 #z = #z * exp( -1/#z ) elseif @formula1 == 50 #z = #z * #z * #z elseif @formula1 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula1 == 52 #z = atan( 1 / #z ) elseif @formula1 == 53 #z = acos( 1 / #z ) elseif @formula1 == 54 #z = asin( 1 / #z ) elseif @formula1 == 55 #z = tan( #z ) / #z elseif @formula1 == 56 #z = cotan( #z ) / #z elseif @formula1 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula1 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula1 == 59 #z = #z * sin( #z ) else ; @formula1 == 60 #z = #z * cos( #z ) endif ; formula1-3 endif ; formula1-2 elseif @formula1 <= 90 if @formula1 == 61 #z = #z * tan( #z ) elseif @formula1 == 62 #z = #z * cotan( #z ) elseif @formula1 == 63 #z = #z/cos( #z ) elseif @formula1 == 64 #z = #z/sin( #z ) elseif @formula1 == 65 #z = sin( 1/#z ) elseif @formula1 == 66 #z = cos( 1/#z ) elseif @formula1 == 67 #z = tan( 1/#z ) elseif @formula1 == 68 #z = cotan( 1/#z ) elseif @formula1 == 69 #z = 1/cos( 1/#z ) elseif @formula1 == 70 #z = 1/sin( 1/#z ) elseif @formula1 == 71 #z = cotanh( #z ) elseif @formula1 == 72 #z = 1/cosh( #z ) elseif @formula1 == 73 #z = 1/sinh( #z ) elseif @formula1 == 74 #z = atanh( 1/#z ) elseif @formula1 == 75 #z = acosh( 1/#z ) elseif @formula1 == 76 #z = asinh( 1/#z ) elseif @formula1 == 77 #z = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c elseif @formula1 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula1 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula1 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula1 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula1 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula1 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula1 == 84 #z = sinh(1/#z) elseif @formula1 == 85 #z = cosh(1/#z) elseif @formula1 == 86 #z = tanh(1/#z) elseif @formula1 == 87 #z = cotanh(1/#z) elseif @formula1 == 88 #z = (1,0)/cosh(1/#z) elseif @formula1 == 89 #z = (1,0)/sinh(1/#z) else ; @formula1 == 90 #z = sin( #z ) * tan(#z) endif ; formula1-2 else ; 90 < @formula1 <= 120 if @formula1 == 91 #z = sinh(#z) * tanh(#z) elseif @formula1 == 92 #z = sinh(#z) * cosh(#z) elseif @formula1 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula1 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula1 == 97 #z = sin(#z) * cos(1/#z) elseif @formula1 == 98 #z = sin(#z) * sin(1/#z) elseif @formula1 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula1 == 100 #z = sin(#z) * sin(2*#z) elseif @formula1 == 101 #z = exp(2*#z) elseif @formula1 == 102 #z = exp(-2*#z) elseif @formula1 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula1 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula1 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula1 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula1 == 107 #z = sin(#z) * sinh(#z) elseif @formula1 == 108 #z = sin(#z) * cosh(#z) elseif @formula1 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 110 #z = sin(#z)*exp(#z) elseif @formula1 == 111 #z = cos(#z)*exp(#z) elseif @formula1 == 112 #z = sinh(#z)*exp(#z) elseif @formula1 == 113 #z = cosh(#z)*exp(#z) elseif @formula1 == 114 #z = sin(#z)*log(#z) elseif @formula1 == 115 #z = cos(#z)*log(#z) elseif @formula1 == 116 #z = sinh(#z)*log(#z) else ; @formula1 == 117 #z = cosh(#z)*log(#z) endif ; formula1-2 endif ; formula1-1 elseif remainder == 2 ; Execute 2nd formula selection if @formula2 == 0 #z = #z * #z elseif @formula2 == 1 #z = #z * #z * #z elseif @formula2 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula2 <= 60 if @formula2 <= 30 if @formula2 == 3 #z = #z ^ @power2 elseif @formula2 == 4 #z = 1/#z elseif @formula2 == 5 #z = sqrt(#z) elseif @formula2 == 6 #z = 1 / ( #z * #z ) elseif @formula2 == 7 #z = log(#z) elseif @formula2 == 8 #z = exp( #z) elseif @formula2 == 9 #z = #z^#z elseif @formula2 == 10 #z = sin( #z ) elseif @formula2 == 11 #z = cos( #z ) elseif @formula2 == 12 #z = tan( #z ) elseif @formula2 == 13 #z = asin( #z ) elseif @formula2 == 14 #z = acos( #z ) elseif @formula2 == 15 #z = atan( #z ) elseif @formula2 == 16 #z = sinh( #z ) elseif @formula2 == 17 #z = cosh( #z ) elseif @formula2 == 18 #z = tanh( #z ) elseif @formula2 == 19 #z = asinh( #z ) elseif @formula2 == 20 #z = acosh( #z ) elseif @formula2 == 21 #z = atanh( #z ) elseif @formula2 == 22 #z = log( 1/#z ) elseif @formula2 == 23 #z = log( log( #z )) elseif @formula2 == 24 #z = exp( -#z ) elseif @formula2 == 25 #z = exp( 1/#z ) elseif @formula2 == 26 #z = #z^(-#z) elseif @formula2 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula2 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula2 == 29 zextra = tan( #z ) #z = zextra * zextra else ; @formula2 == 30 #z = cotan( #z ) endif ; formula2-3 else ; 30 < @formula2 <= 60 if @formula2 == 31 #z = 1/cos( #z ) elseif @formula2 == 32 #z = 1/sin( #z ) elseif @formula2 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula2 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula2 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula2 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula2 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula2 == 38 #z = log(-#z) elseif @formula2 == 39 #z = 1/log( #z ) elseif @formula2 == 40 #z = #z * log( #z ) elseif @formula2 == 41 #z = sin( #z ) / #z elseif @formula2 == 42 #z = cos( #z ) / #z elseif @formula2 == 43 #z = sin( #z ) * cos( #z ) elseif @formula2 == 44 #z = sin( #z^2 ) elseif @formula2 == 45 #z = exp( -1/#z ) elseif @formula2 == 46 #z = #z * exp( #z ) elseif @formula2 == 47 #z = #z * exp( -#z ) elseif @formula2 == 48 #z = #z * exp( 1/#z ) elseif @formula2 == 49 #z = #z * exp( -1/#z ) elseif @formula2 == 50 #z = #z * #z * #z elseif @formula2 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula2 == 52 #z = atan( 1 / #z ) elseif @formula2 == 53 #z = acos( 1 / #z ) elseif @formula2 == 54 #z = asin( 1 / #z ) elseif @formula2 == 55 #z = tan( #z ) / #z elseif @formula2 == 56 #z = cotan( #z ) / #z elseif @formula2 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula2 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula2 == 59 #z = #z * sin( #z ) else ; @formula2 == 60 #z = #z * cos( #z ) endif ; formula2-3 endif ; formula2-2 elseif @formula2 <= 90 if @formula2 == 61 #z = #z * tan( #z ) elseif @formula2 == 62 #z = #z * cotan( #z ) elseif @formula2 == 63 #z = #z/cos( #z ) elseif @formula2 == 64 #z = #z/sin( #z ) elseif @formula2 == 65 #z = sin( 1/#z ) elseif @formula2 == 66 #z = cos( 1/#z ) elseif @formula2 == 67 #z = tan( 1/#z ) elseif @formula2 == 68 #z = cotan( 1/#z ) elseif @formula2 == 69 #z = 1/cos( 1/#z ) elseif @formula2 == 70 #z = 1/sin( 1/#z ) elseif @formula2 == 71 #z = cotanh( #z ) elseif @formula2 == 72 #z = 1/cosh( #z ) elseif @formula2 == 73 #z = 1/sinh( #z ) elseif @formula2 == 74 #z = atanh( 1/#z ) elseif @formula2 == 75 #z = acosh( 1/#z ) elseif @formula2 == 76 #z = asinh( 1/#z ) elseif @formula2 == 77 #z = @coeff2a * #z^@exponent2a + @coeff2b * #z^@exponent2b + @coeff2c * #z^@exponent2c elseif @formula2 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula2 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula2 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula2 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula2 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula2 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula2 == 84 #z = sinh(1/#z) elseif @formula2 == 85 #z = cosh(1/#z) elseif @formula2 == 86 #z = tanh(1/#z) elseif @formula2 == 87 #z = cotanh(1/#z) elseif @formula2 == 88 #z = (1,0)/cosh(1/#z) elseif @formula2 == 89 #z = (1,0)/sinh(1/#z) else ; @formula2 == 90 #z = sin( #z ) * tan(#z) endif ; formula2-2 else ; 90 < @formula2 <= 120 if @formula2 == 91 #z = sinh(#z) * tanh(#z) elseif @formula2 == 92 #z = sinh(#z) * cosh(#z) elseif @formula2 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula2 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula2 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula2 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula2 == 97 #z = sin(#z) * cos(1/#z) elseif @formula2 == 98 #z = sin(#z) * sin(1/#z) elseif @formula2 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula2 == 100 #z = sin(#z) * sin(2*#z) elseif @formula2 == 101 #z = exp(2*#z) elseif @formula2 == 102 #z = exp(-2*#z) elseif @formula2 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula2 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula2 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula2 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula2 == 107 #z = sin(#z) * sinh(#z) elseif @formula2 == 108 #z = sin(#z) * cosh(#z) elseif @formula2 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula2 == 110 #z = sin(#z)*exp(#z) elseif @formula2 == 111 #z = cos(#z)*exp(#z) elseif @formula2 == 112 #z = sinh(#z)*exp(#z) elseif @formula2 == 113 #z = cosh(#z)*exp(#z) elseif @formula2 == 114 #z = sin(#z)*log(#z) elseif @formula2 == 115 #z = cos(#z)*log(#z) elseif @formula2 == 116 #z = sinh(#z)*log(#z) else ; @formula2 == 117 #z = cosh(#z)*log(#z) endif ; formula2-2 endif ; formula2-1 elseif remainder == 3 ; Execute 3rd formula selection if @formula3 == 0 #z = #z * #z elseif @formula3 == 1 #z = #z * #z * #z elseif @formula3 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula3 <= 60 if @formula3 <= 30 if @formula3 == 3 #z = #z ^ @power3 elseif @formula3 == 4 #z = 1/#z elseif @formula3 == 5 #z = sqrt(#z) elseif @formula3 == 6 #z = 1 / ( #z * #z ) elseif @formula3 == 7 #z = log(#z) elseif @formula3 == 8 #z = exp( #z) elseif @formula3 == 9 #z = #z^#z elseif @formula3 == 10 #z = sin( #z ) elseif @formula3 == 11 #z = cos( #z ) elseif @formula3 == 12 #z = tan( #z ) elseif @formula3 == 13 #z = asin( #z ) elseif @formula3 == 14 #z = acos( #z ) elseif @formula3 == 15 #z = atan( #z ) elseif @formula3 == 16 #z = sinh( #z ) elseif @formula3 == 17 #z = cosh( #z ) elseif @formula3 == 18 #z = tanh( #z ) elseif @formula3 == 19 #z = asinh( #z ) elseif @formula3 == 20 #z = acosh( #z ) elseif @formula3 == 21 #z = atanh( #z ) elseif @formula3 == 22 #z = log( 1/#z ) elseif @formula3 == 23 #z = log( log( #z )) elseif @formula3 == 24 #z = exp( -#z ) elseif @formula3 == 25 #z = exp( 1/#z ) elseif @formula3 == 26 #z = #z^(-#z) elseif @formula3 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula3 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula3 == 29 zextra = tan( #z ) #z = zextra * zextra else ; @formula3 == 30 #z = cotan( #z ) endif ; formula3-3 else ; 30 < @formula3 <= 60 if @formula3 == 31 #z = 1/cos( #z ) elseif @formula3 == 32 #z = 1/sin( #z ) elseif @formula3 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula3 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula3 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula3 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula3 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula3 == 38 #z = log(-#z) elseif @formula3 == 39 #z = 1/log( #z ) elseif @formula3 == 40 #z = #z * log( #z ) elseif @formula3 == 41 #z = sin( #z ) / #z elseif @formula3 == 42 #z = cos( #z ) / #z elseif @formula3 == 43 #z = sin( #z ) * cos( #z ) elseif @formula3 == 44 #z = sin( #z^2 ) elseif @formula3 == 45 #z = exp( -1/#z ) elseif @formula3 == 46 #z = #z * exp( #z ) elseif @formula3 == 47 #z = #z * exp( -#z ) elseif @formula3 == 48 #z = #z * exp( 1/#z ) elseif @formula3 == 49 #z = #z * exp( -1/#z ) elseif @formula3 == 50 #z = #z * #z * #z elseif @formula3 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula3 == 52 #z = atan( 1 / #z ) elseif @formula3 == 53 #z = acos( 1 / #z ) elseif @formula3 == 54 #z = asin( 1 / #z ) elseif @formula3 == 55 #z = tan( #z ) / #z elseif @formula3 == 56 #z = cotan( #z ) / #z elseif @formula3 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula3 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula3 == 59 #z = #z * sin( #z ) else ; @formula3 == 60 #z = #z * cos( #z ) endif ; formula3-3 endif ; formula3-2 elseif @formula3 <= 90 if @formula3 == 61 #z = #z * tan( #z ) elseif @formula3 == 62 #z = #z * cotan( #z ) elseif @formula3 == 63 #z = #z/cos( #z ) elseif @formula3 == 64 #z = #z/sin( #z ) elseif @formula3 == 65 #z = sin( 1/#z ) elseif @formula3 == 66 #z = cos( 1/#z ) elseif @formula3 == 67 #z = tan( 1/#z ) elseif @formula3 == 68 #z = cotan( 1/#z ) elseif @formula3 == 69 #z = 1/cos( 1/#z ) elseif @formula3 == 70 #z = 1/sin( 1/#z ) elseif @formula3 == 71 #z = cotanh( #z ) elseif @formula3 == 72 #z = 1/cosh( #z ) elseif @formula3 == 73 #z = 1/sinh( #z ) elseif @formula3 == 74 #z = atanh( 1/#z ) elseif @formula3 == 75 #z = acosh( 1/#z ) elseif @formula3 == 76 #z = asinh( 1/#z ) elseif @formula3 == 77 #z = @coeff3a * #z^@exponent3a + @coeff3b * #z^@exponent3b + @coeff3c * #z^@exponent3c elseif @formula3 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula3 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula3 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula3 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula3 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula3 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula3 == 84 #z = sinh(1/#z) elseif @formula3 == 85 #z = cosh(1/#z) elseif @formula3 == 86 #z = tanh(1/#z) elseif @formula3 == 87 #z = cotanh(1/#z) elseif @formula3 == 88 #z = (1,0)/cosh(1/#z) elseif @formula3 == 89 #z = (1,0)/sinh(1/#z) else ; @formula3 == 90 #z = sin( #z ) * tan(#z) endif ; formula3-2 else ; 90 < @formula3 <= 120 if @formula3 == 91 #z = sinh(#z) * tanh(#z) elseif @formula3 == 92 #z = sinh(#z) * cosh(#z) elseif @formula3 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula3 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula3 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula3 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula3 == 97 #z = sin(#z) * cos(1/#z) elseif @formula3 == 98 #z = sin(#z) * sin(1/#z) elseif @formula3 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula3 == 100 #z = sin(#z) * sin(2*#z) elseif @formula3 == 101 #z = exp(2*#z) elseif @formula3 == 102 #z = exp(-2*#z) elseif @formula3 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula3 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula3 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula3 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula3 == 107 #z = sin(#z) * sinh(#z) elseif @formula3 == 108 #z = sin(#z) * cosh(#z) elseif @formula3 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula3 == 110 #z = sin(#z)*exp(#z) elseif @formula3 == 111 #z = cos(#z)*exp(#z) elseif @formula3 == 112 #z = sinh(#z)*exp(#z) elseif @formula3 == 113 #z = cosh(#z)*exp(#z) elseif @formula3 == 114 #z = sin(#z)*log(#z) elseif @formula3 == 115 #z = cos(#z)*log(#z) elseif @formula3 == 116 #z = sinh(#z)*log(#z) else ; @formula3 == 117 #z = cosh(#z)*log(#z) endif ; formula3-2 endif ; formula3-1 else ; remainder == 0 ; Execute 4th formula selection if @formula4 == 0 #z = #z * #z elseif @formula4 == 1 #z = #z * #z * #z elseif @formula4 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula4 <= 60 if @formula4 <= 30 if @formula4 == 3 #z = #z ^ @power4 elseif @formula4 == 4 #z = 1/#z elseif @formula4 == 5 #z = sqrt(#z) elseif @formula4 == 6 #z = 1 / ( #z * #z ) elseif @formula4 == 7 #z = log(#z) elseif @formula4 == 8 #z = exp( #z) elseif @formula4 == 9 #z = #z^#z elseif @formula4 == 10 #z = sin( #z ) elseif @formula4 == 11 #z = cos( #z ) elseif @formula4 == 12 #z = tan( #z ) elseif @formula4 == 13 #z = asin( #z ) elseif @formula4 == 14 #z = acos( #z ) elseif @formula4 == 15 #z = atan( #z ) elseif @formula4 == 16 #z = sinh( #z ) elseif @formula4 == 17 #z = cosh( #z ) elseif @formula4 == 18 #z = tanh( #z ) elseif @formula4 == 19 #z = asinh( #z ) elseif @formula4 == 20 #z = acosh( #z ) elseif @formula4 == 21 #z = atanh( #z ) elseif @formula4 == 22 #z = log( 1/#z ) elseif @formula4 == 23 #z = log( log( #z )) elseif @formula4 == 24 #z = exp( -#z ) elseif @formula4 == 25 #z = exp( 1/#z ) elseif @formula4 == 26 #z = #z^(-#z) elseif @formula4 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula4 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula4 == 29 zextra = tan( #z ) #z = zextra * zextra else ; @formula4 == 30 #z = cotan( #z ) endif ; formula4-3 else ; 30 < @formula4 <= 60 if @formula4 == 31 #z = 1/cos( #z ) elseif @formula4 == 32 #z = 1/sin( #z ) elseif @formula4 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula4 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula4 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula4 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula4 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula4 == 38 #z = log(-#z) elseif @formula4 == 39 #z = 1/log( #z ) elseif @formula4 == 40 #z = #z * log( #z ) elseif @formula4 == 41 #z = sin( #z ) / #z elseif @formula4 == 42 #z = cos( #z ) / #z elseif @formula4 == 43 #z = sin( #z ) * cos( #z ) elseif @formula4 == 44 #z = sin( #z^2 ) elseif @formula4 == 45 #z = exp( -1/#z ) elseif @formula4 == 46 #z = #z * exp( #z ) elseif @formula4 == 47 #z = #z * exp( -#z ) elseif @formula4 == 48 #z = #z * exp( 1/#z ) elseif @formula4 == 49 #z = #z * exp( -1/#z ) elseif @formula4 == 50 #z = #z * #z * #z elseif @formula4 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula4 == 52 #z = atan( 1 / #z ) elseif @formula4 == 53 #z = acos( 1 / #z ) elseif @formula4 == 54 #z = asin( 1 / #z ) elseif @formula4 == 55 #z = tan( #z ) / #z elseif @formula4 == 56 #z = cotan( #z ) / #z elseif @formula4 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula4 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula4 == 59 #z = #z * sin( #z ) else ; @formula4 == 60 #z = #z * cos( #z ) endif ; formula4-3 endif ; formula4-2 elseif @formula4 <= 90 if @formula4 == 61 #z = #z * tan( #z ) elseif @formula4 == 62 #z = #z * cotan( #z ) elseif @formula4 == 63 #z = #z/cos( #z ) elseif @formula4 == 64 #z = #z/sin( #z ) elseif @formula4 == 65 #z = sin( 1/#z ) elseif @formula4 == 66 #z = cos( 1/#z ) elseif @formula4 == 67 #z = tan( 1/#z ) elseif @formula4 == 68 #z = cotan( 1/#z ) elseif @formula4 == 69 #z = 1/cos( 1/#z ) elseif @formula4 == 70 #z = 1/sin( 1/#z ) elseif @formula4 == 71 #z = cotanh( #z ) elseif @formula4 == 72 #z = 1/cosh( #z ) elseif @formula4 == 73 #z = 1/sinh( #z ) elseif @formula4 == 74 #z = atanh( 1/#z ) elseif @formula4 == 75 #z = acosh( 1/#z ) elseif @formula4 == 76 #z = asinh( 1/#z ) elseif @formula4 == 77 #z = @coeff4a * #z^@exponent4a + @coeff4b * #z^@exponent4b + @coeff4c * #z^@exponent4c elseif @formula4 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula4 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula4 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula4 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula4 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula4 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula4 == 84 #z = sinh(1/#z) elseif @formula4 == 85 #z = cosh(1/#z) elseif @formula4 == 86 #z = tanh(1/#z) elseif @formula4 == 87 #z = cotanh(1/#z) elseif @formula4 == 88 #z = (1,0)/cosh(1/#z) elseif @formula4 == 89 #z = (1,0)/sinh(1/#z) else ; @formula4 == 90 #z = sin( #z ) * tan(#z) endif ; formula4-2 else ; 90 < @formula4 <= 120 if @formula4 == 91 #z = sinh(#z) * tanh(#z) elseif @formula4 == 92 #z = sinh(#z) * cosh(#z) elseif @formula4 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula4 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula4 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula4 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula4 == 97 #z = sin(#z) * cos(1/#z) elseif @formula4 == 98 #z = sin(#z) * sin(1/#z) elseif @formula4 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula4 == 100 #z = sin(#z) * sin(2*#z) elseif @formula4 == 101 #z = exp(2*#z) elseif @formula4 == 102 #z = exp(-2*#z) elseif @formula4 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula4 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula4 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula4 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula4 == 107 #z = sin(#z) * sinh(#z) elseif @formula4 == 108 #z = sin(#z) * cosh(#z) elseif @formula4 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula4 == 110 #z = sin(#z)*exp(#z) elseif @formula4 == 111 #z = cos(#z)*exp(#z) elseif @formula4 == 112 #z = sinh(#z)*exp(#z) elseif @formula4 == 113 #z = cosh(#z)*exp(#z) elseif @formula4 == 114 #z = sin(#z)*log(#z) elseif @formula4 == 115 #z = cos(#z)*log(#z) elseif @formula4 == 116 #z = sinh(#z)*log(#z) else ; @formula4 == 117 #z = cosh(#z)*log(#z) endif ; formula4-2 endif ; formula4-1 endif ; remainder if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend if @pmode != 1 #z = #z + jc endif ; pmode bailout: |z| < @bail default: title = "4Cycle General" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param formula1 caption = "Formula 1" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula executed during the 1st series of iterations (iters 1,5,9,...). \ For 'z^power', use parameter 'Power 1' to set power. For '3-term polynomial' set \ params 'Coeff 1a', 'Exponent 1a', 'Coeff 1b', 'Exponent 1b', 'Coeff 1c', \ 'Exponent 1c'." endparam param formula2 caption = "Formula 2" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula executed during the 2nd series of iterations (iters 2,6,10,...). \ For 'z^power', use parameter 'Power 2' to set power. For '3-term polynomial' set \ params 'Coeff 2a', 'Exponent 2a', 'Coeff 2b', 'Exponent 2b', 'Coeff 2c', \ 'Exponent 2c'." endparam param formula3 caption = "Formula 3" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula executed during the 3rd series of iterations (iter 3,7,11,...). \ For 'z^power', use parameter 'Power 3' to set power. For '3-term polynomial' set \ params 'Coeff 3a', 'Exponent 3a', 'Coeff 3b', 'Exponent 3b', 'Coeff 3c', \ 'Exponent 3c'." endparam param formula4 caption = "Formula 4" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula executed during the 4th series of iterations (iters 4,8,12,...). \ For 'z^power', use parameter 'Power 4' to set power. For '3-term polynomial' set \ params 'Coeff 4a', 'Exponent 4a', 'Coeff 4b', 'Exponent 4b', 'Coeff 4c', \ 'Exponent 4c'." endparam param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param power1 caption = "Power 1" default = (5,0) hint = "This is the power used for the first formula series if parameter \ 'Formula 1' is set to 'z^power'" endparam param power2 caption = "Power 2" default = (6,0) hint = "This is the power used for the second formula series if parameter \ 'Formula 2' is set to 'z^power'" endparam param power3 caption = "Power 3" default = (6,0) hint = "This is the power used for the third formula series if parameter \ 'Formula 3' is set to 'z^power'" endparam param power4 caption = "Power 4" default = (6,0) hint = "This is the power used for the fourth formula series if parameter \ 'Formula 4' is set to 'z^power'" endparam param coeff1a caption = "Coeff 1A" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent1a caption = "Exponent 1A" default = (6,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff1b caption = "Coeff 1B" default = (-1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent1b caption = "Exponent 1B" default = (4,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff1c caption = "Coeff 1C" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent1c caption = "Exponent 1C" default = (2,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param coeff2a caption = "Coeff 2A" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent2a caption = "Exponent 2A" default = (6,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff2b caption = "Coeff 2B" default = (-1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent2b caption = "Exponent 2B" default = (4,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff2c caption = "Coeff 2C" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent2c caption = "Exponent 2C" default = (2,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param coeff3a caption = "Coeff 3A" default = (1,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent3a caption = "Exponent 3A" default = (6,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff3b caption = "Coeff 3B" default = (-1,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent3b caption = "Exponent 3B" default = (4,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff3c caption = "Coeff 3C" default = (1,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent3c caption = "Exponent 3C" default = (2,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param coeff4a caption = "Coeff 4A" default = (1,0) hint = "If 'Formula 4' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent4a caption = "Exponent 4A" default = (6,0) hint = "If 'Formula 4' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff4b caption = "Coeff 4B" default = (-1,0) hint = "If 'Formula 4' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent4b caption = "Exponent 4B" default = (4,0) hint = "If 'Formula 4' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff4c caption = "Coeff 4C" default = (1,0) hint = "If 'Formula 4' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent4c caption = "Exponent 4C" default = (2,0) hint = "If 'Formula 4' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" "p^p" \ "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-alt4Cycle-general-J" jconstant = #pixel bail = bail formula1 = formula1 formula2 = formula2 formula3 = formula3 formula4 = formula4 blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower power1 = power1 power2 = power2 power3 = power3 power4 = power4 coeff1a = coeff1a exponent1a = exponent1a coeff1b = coeff1b exponent1b = exponent1b coeff1c = coeff1c exponent1c = exponent1c coeff2a = coeff2a exponent2a = exponent2a coeff2b = coeff2b exponent2b = exponent2b coeff2c = coeff2c exponent2c = exponent2c coeff3a = coeff3a exponent3a = exponent3a coeff3b = coeff3b exponent3b = exponent3b coeff3c = coeff3c exponent3c = exponent3c coeff4a = coeff4a exponent4a = exponent4a coeff4b = coeff4b exponent4b = exponent4b coeff4c = coeff4c exponent4c = exponent4c pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-alt4Cycle-general-J { ; jam 011009 ; Alternating-type Mandelbrot/Julia in which 4 independent formulas ; are repeatedly, sequentially executed on alternate iterations. ; Formula 1 is executed on iterations 1,5,9,... (iterations 1 mod 4); ; Formula 2 is executed on iterations 2,6,10,... (iterations 2 mod 4); ; Formula 3 is executed on iterations 3,7,11,... (iterations 3 mod 4); ; Formula 4 is executed on iterations 4,8,12,... (iterations 0 mod 4); ; The 3-term polynomial formula option is ; z = ( CoeffA * z^ExponentA ) + ( CoeffB * z^ExponentB ) + ( CoeffC * z^ExponentC ) + constant init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0, int remainder = 0 complex zextra = complex ztemp = complex temp2 = (0,0) ; temp/spare scratch variable complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 ztemp = sinh(jc), zextra = cosh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 95 ztemp = sin(jc), zextra = cos(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), ztemp = sinh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: if @pmode != 0 #z = #z + jc endif ; pmode zblend = z iterations = iterations + 1 remainder = iterations % 4 if remainder == 1 ; Execute 1st formula selection if @formula1 == 0 #z = #z * #z elseif @formula1 == 1 #z = #z * #z * #z elseif @formula1 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula1 <= 60 if @formula1 <= 30 if @formula1 == 3 #z = #z ^ @power1 elseif @formula1 == 4 #z = 1/#z elseif @formula1 == 5 #z = sqrt(#z) elseif @formula1 == 6 #z = 1 / ( #z * #z ) elseif @formula1 == 7 #z = log(#z) elseif @formula1 == 8 #z = exp( #z) elseif @formula1 == 9 #z = #z^#z elseif @formula1 == 10 #z = sin( #z ) elseif @formula1 == 11 #z = cos( #z ) elseif @formula1 == 12 #z = tan( #z ) elseif @formula1 == 13 #z = asin( #z ) elseif @formula1 == 14 #z = acos( #z ) elseif @formula1 == 15 #z = atan( #z ) elseif @formula1 == 16 #z = sinh( #z ) elseif @formula1 == 17 #z = cosh( #z ) elseif @formula1 == 18 #z = tanh( #z ) elseif @formula1 == 19 #z = asinh( #z ) elseif @formula1 == 20 #z = acosh( #z ) elseif @formula1 == 21 #z = atanh( #z ) elseif @formula1 == 22 #z = log( 1/#z ) elseif @formula1 == 23 #z = log( log( #z )) elseif @formula1 == 24 #z = exp( -#z ) elseif @formula1 == 25 #z = exp( 1/#z ) elseif @formula1 == 26 #z = #z^(-#z) elseif @formula1 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula1 == 29 zextra = tan( #z ) #z = zextra * zextra else ; @formula1 == 30 #z = cotan( #z ) endif ; formula1-3 else ; 30 < @formula1 <= 60 if @formula1 == 31 #z = 1/cos( #z ) elseif @formula1 == 32 #z = 1/sin( #z ) elseif @formula1 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula1 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula1 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula1 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula1 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula1 == 38 #z = log(-#z) elseif @formula1 == 39 #z = 1/log( #z ) elseif @formula1 == 40 #z = #z * log( #z ) elseif @formula1 == 41 #z = sin( #z ) / #z elseif @formula1 == 42 #z = cos( #z ) / #z elseif @formula1 == 43 #z = sin( #z ) * cos( #z ) elseif @formula1 == 44 #z = sin( #z^2 ) elseif @formula1 == 45 #z = exp( -1/#z ) elseif @formula1 == 46 #z = #z * exp( #z ) elseif @formula1 == 47 #z = #z * exp( -#z ) elseif @formula1 == 48 #z = #z * exp( 1/#z ) elseif @formula1 == 49 #z = #z * exp( -1/#z ) elseif @formula1 == 50 #z = #z * #z * #z elseif @formula1 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula1 == 52 #z = atan( 1 / #z ) elseif @formula1 == 53 #z = acos( 1 / #z ) elseif @formula1 == 54 #z = asin( 1 / #z ) elseif @formula1 == 55 #z = tan( #z ) / #z elseif @formula1 == 56 #z = cotan( #z ) / #z elseif @formula1 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula1 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula1 == 59 #z = #z * sin( #z ) else ; @formula1 == 60 #z = #z * cos( #z ) endif ; formula1-3 endif ; formula1-2 elseif @formula1 <= 90 if @formula1 == 61 #z = #z * tan( #z ) elseif @formula1 == 62 #z = #z * cotan( #z ) elseif @formula1 == 63 #z = #z/cos( #z ) elseif @formula1 == 64 #z = #z/sin( #z ) elseif @formula1 == 65 #z = sin( 1/#z ) elseif @formula1 == 66 #z = cos( 1/#z ) elseif @formula1 == 67 #z = tan( 1/#z ) elseif @formula1 == 68 #z = cotan( 1/#z ) elseif @formula1 == 69 #z = 1/cos( 1/#z ) elseif @formula1 == 70 #z = 1/sin( 1/#z ) elseif @formula1 == 71 #z = cotanh( #z ) elseif @formula1 == 72 #z = 1/cosh( #z ) elseif @formula1 == 73 #z = 1/sinh( #z ) elseif @formula1 == 74 #z = atanh( 1/#z ) elseif @formula1 == 75 #z = acosh( 1/#z ) elseif @formula1 == 76 #z = asinh( 1/#z ) elseif @formula1 == 77 #z = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c elseif @formula1 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula1 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula1 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula1 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula1 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula1 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula1 == 84 #z = sinh(1/#z) elseif @formula1 == 85 #z = cosh(1/#z) elseif @formula1 == 86 #z = tanh(1/#z) elseif @formula1 == 87 #z = cotanh(1/#z) elseif @formula1 == 88 #z = (1,0)/cosh(1/#z) elseif @formula1 == 89 #z = (1,0)/sinh(1/#z) else ; @formula1 == 90 #z = sin( #z ) * tan(#z) endif ; formula1-2 else ; 90 < @formula1 <= 120 if @formula1 == 91 #z = sinh(#z) * tanh(#z) elseif @formula1 == 92 #z = sinh(#z) * cosh(#z) elseif @formula1 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula1 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula1 == 97 #z = sin(#z) * cos(1/#z) elseif @formula1 == 98 #z = sin(#z) * sin(1/#z) elseif @formula1 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula1 == 100 #z = sin(#z) * sin(2*#z) elseif @formula1 == 101 #z = exp(2*#z) elseif @formula1 == 102 #z = exp(-2*#z) elseif @formula1 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula1 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula1 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula1 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula1 == 107 #z = sin(#z) * sinh(#z) elseif @formula1 == 108 #z = sin(#z) * cosh(#z) elseif @formula1 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 110 #z = sin(#z)*exp(#z) elseif @formula1 == 111 #z = cos(#z)*exp(#z) elseif @formula1 == 112 #z = sinh(#z)*exp(#z) elseif @formula1 == 113 #z = cosh(#z)*exp(#z) elseif @formula1 == 114 #z = sin(#z)*log(#z) elseif @formula1 == 115 #z = cos(#z)*log(#z) elseif @formula1 == 116 #z = sinh(#z)*log(#z) else ; @formula1 == 117 #z = cosh(#z)*log(#z) endif ; formula1-2 endif ; formula1-1 elseif remainder == 2 ; Execute 2nd formula selection if @formula2 == 0 #z = #z * #z elseif @formula2 == 1 #z = #z * #z * #z elseif @formula2 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula2 <= 60 if @formula2 <= 30 if @formula2 == 3 #z = #z ^ @power2 elseif @formula2 == 4 #z = 1/#z elseif @formula2 == 5 #z = sqrt(#z) elseif @formula2 == 6 #z = 1 / ( #z * #z ) elseif @formula2 == 7 #z = log(#z) elseif @formula2 == 8 #z = exp( #z) elseif @formula2 == 9 #z = #z^#z elseif @formula2 == 10 #z = sin( #z ) elseif @formula2 == 11 #z = cos( #z ) elseif @formula2 == 12 #z = tan( #z ) elseif @formula2 == 13 #z = asin( #z ) elseif @formula2 == 14 #z = acos( #z ) elseif @formula2 == 15 #z = atan( #z ) elseif @formula2 == 16 #z = sinh( #z ) elseif @formula2 == 17 #z = cosh( #z ) elseif @formula2 == 18 #z = tanh( #z ) elseif @formula2 == 19 #z = asinh( #z ) elseif @formula2 == 20 #z = acosh( #z ) elseif @formula2 == 21 #z = atanh( #z ) elseif @formula2 == 22 #z = log( 1/#z ) elseif @formula2 == 23 #z = log( log( #z )) elseif @formula2 == 24 #z = exp( -#z ) elseif @formula2 == 25 #z = exp( 1/#z ) elseif @formula2 == 26 #z = #z^(-#z) elseif @formula2 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula2 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula2 == 29 zextra = tan( #z ) #z = zextra * zextra else ; @formula2 == 30 #z = cotan( #z ) endif ; formula2-3 else ; 30 < @formula2 <= 60 if @formula2 == 31 #z = 1/cos( #z ) elseif @formula2 == 32 #z = 1/sin( #z ) elseif @formula2 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula2 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula2 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula2 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula2 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula2 == 38 #z = log(-#z) elseif @formula2 == 39 #z = 1/log( #z ) elseif @formula2 == 40 #z = #z * log( #z ) elseif @formula2 == 41 #z = sin( #z ) / #z elseif @formula2 == 42 #z = cos( #z ) / #z elseif @formula2 == 43 #z = sin( #z ) * cos( #z ) elseif @formula2 == 44 #z = sin( #z^2 ) elseif @formula2 == 45 #z = exp( -1/#z ) elseif @formula2 == 46 #z = #z * exp( #z ) elseif @formula2 == 47 #z = #z * exp( -#z ) elseif @formula2 == 48 #z = #z * exp( 1/#z ) elseif @formula2 == 49 #z = #z * exp( -1/#z ) elseif @formula2 == 50 #z = #z * #z * #z elseif @formula2 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula2 == 52 #z = atan( 1 / #z ) elseif @formula2 == 53 #z = acos( 1 / #z ) elseif @formula2 == 54 #z = asin( 1 / #z ) elseif @formula2 == 55 #z = tan( #z ) / #z elseif @formula2 == 56 #z = cotan( #z ) / #z elseif @formula2 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula2 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula2 == 59 #z = #z * sin( #z ) else ; @formula2 == 60 #z = #z * cos( #z ) endif ; formula2-3 endif ; formula2-2 elseif @formula2 <= 90 if @formula2 == 61 #z = #z * tan( #z ) elseif @formula2 == 62 #z = #z * cotan( #z ) elseif @formula2 == 63 #z = #z/cos( #z ) elseif @formula2 == 64 #z = #z/sin( #z ) elseif @formula2 == 65 #z = sin( 1/#z ) elseif @formula2 == 66 #z = cos( 1/#z ) elseif @formula2 == 67 #z = tan( 1/#z ) elseif @formula2 == 68 #z = cotan( 1/#z ) elseif @formula2 == 69 #z = 1/cos( 1/#z ) elseif @formula2 == 70 #z = 1/sin( 1/#z ) elseif @formula2 == 71 #z = cotanh( #z ) elseif @formula2 == 72 #z = 1/cosh( #z ) elseif @formula2 == 73 #z = 1/sinh( #z ) elseif @formula2 == 74 #z = atanh( 1/#z ) elseif @formula2 == 75 #z = acosh( 1/#z ) elseif @formula2 == 76 #z = asinh( 1/#z ) elseif @formula2 == 77 #z = @coeff2a * #z^@exponent2a + @coeff2b * #z^@exponent2b + @coeff2c * #z^@exponent2c elseif @formula2 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula2 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula2 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula2 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula2 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula2 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula2 == 84 #z = sinh(1/#z) elseif @formula2 == 85 #z = cosh(1/#z) elseif @formula2 == 86 #z = tanh(1/#z) elseif @formula2 == 87 #z = cotanh(1/#z) elseif @formula2 == 88 #z = (1,0)/cosh(1/#z) elseif @formula2 == 89 #z = (1,0)/sinh(1/#z) else ; @formula2 == 90 #z = sin( #z ) * tan(#z) endif ; formula2-2 else ; 90 < @formula2 <= 120 if @formula2 == 91 #z = sinh(#z) * tanh(#z) elseif @formula2 == 92 #z = sinh(#z) * cosh(#z) elseif @formula2 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula2 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula2 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula2 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula2 == 97 #z = sin(#z) * cos(1/#z) elseif @formula2 == 98 #z = sin(#z) * sin(1/#z) elseif @formula2 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula2 == 100 #z = sin(#z) * sin(2*#z) elseif @formula2 == 101 #z = exp(2*#z) elseif @formula2 == 102 #z = exp(-2*#z) elseif @formula2 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula2 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula2 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula2 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula2 == 107 #z = sin(#z) * sinh(#z) elseif @formula2 == 108 #z = sin(#z) * cosh(#z) elseif @formula2 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula2 == 110 #z = sin(#z)*exp(#z) elseif @formula2 == 111 #z = cos(#z)*exp(#z) elseif @formula2 == 112 #z = sinh(#z)*exp(#z) elseif @formula2 == 113 #z = cosh(#z)*exp(#z) elseif @formula2 == 114 #z = sin(#z)*log(#z) elseif @formula2 == 115 #z = cos(#z)*log(#z) elseif @formula2 == 116 #z = sinh(#z)*log(#z) else ; @formula2 == 117 #z = cosh(#z)*log(#z) endif ; formula2-2 endif ; formula2-1 elseif remainder == 3 ; Execute 3rd formula selection if @formula3 == 0 #z = #z * #z elseif @formula3 == 1 #z = #z * #z * #z elseif @formula3 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula3 <= 60 if @formula3 <= 30 if @formula3 == 3 #z = #z ^ @power3 elseif @formula3 == 4 #z = 1/#z elseif @formula3 == 5 #z = sqrt(#z) elseif @formula3 == 6 #z = 1 / ( #z * #z ) elseif @formula3 == 7 #z = log(#z) elseif @formula3 == 8 #z = exp( #z) elseif @formula3 == 9 #z = #z^#z elseif @formula3 == 10 #z = sin( #z ) elseif @formula3 == 11 #z = cos( #z ) elseif @formula3 == 12 #z = tan( #z ) elseif @formula3 == 13 #z = asin( #z ) elseif @formula3 == 14 #z = acos( #z ) elseif @formula3 == 15 #z = atan( #z ) elseif @formula3 == 16 #z = sinh( #z ) elseif @formula3 == 17 #z = cosh( #z ) elseif @formula3 == 18 #z = tanh( #z ) elseif @formula3 == 19 #z = asinh( #z ) elseif @formula3 == 20 #z = acosh( #z ) elseif @formula3 == 21 #z = atanh( #z ) elseif @formula3 == 22 #z = log( 1/#z ) elseif @formula3 == 23 #z = log( log( #z )) elseif @formula3 == 24 #z = exp( -#z ) elseif @formula3 == 25 #z = exp( 1/#z ) elseif @formula3 == 26 #z = #z^(-#z) elseif @formula3 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula3 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula3 == 29 zextra = tan( #z ) #z = zextra * zextra else ; @formula3 == 30 #z = cotan( #z ) endif ; formula3-3 else ; 30 < @formula3 <= 60 if @formula3 == 31 #z = 1/cos( #z ) elseif @formula3 == 32 #z = 1/sin( #z ) elseif @formula3 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula3 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula3 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula3 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula3 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula3 == 38 #z = log(-#z) elseif @formula3 == 39 #z = 1/log( #z ) elseif @formula3 == 40 #z = #z * log( #z ) elseif @formula3 == 41 #z = sin( #z ) / #z elseif @formula3 == 42 #z = cos( #z ) / #z elseif @formula3 == 43 #z = sin( #z ) * cos( #z ) elseif @formula3 == 44 #z = sin( #z^2 ) elseif @formula3 == 45 #z = exp( -1/#z ) elseif @formula3 == 46 #z = #z * exp( #z ) elseif @formula3 == 47 #z = #z * exp( -#z ) elseif @formula3 == 48 #z = #z * exp( 1/#z ) elseif @formula3 == 49 #z = #z * exp( -1/#z ) elseif @formula3 == 50 #z = #z * #z * #z elseif @formula3 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula3 == 52 #z = atan( 1 / #z ) elseif @formula3 == 53 #z = acos( 1 / #z ) elseif @formula3 == 54 #z = asin( 1 / #z ) elseif @formula3 == 55 #z = tan( #z ) / #z elseif @formula3 == 56 #z = cotan( #z ) / #z elseif @formula3 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula3 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula3 == 59 #z = #z * sin( #z ) else ; @formula3 == 60 #z = #z * cos( #z ) endif ; formula3-3 endif ; formula3-2 elseif @formula3 <= 90 if @formula3 == 61 #z = #z * tan( #z ) elseif @formula3 == 62 #z = #z * cotan( #z ) elseif @formula3 == 63 #z = #z/cos( #z ) elseif @formula3 == 64 #z = #z/sin( #z ) elseif @formula3 == 65 #z = sin( 1/#z ) elseif @formula3 == 66 #z = cos( 1/#z ) elseif @formula3 == 67 #z = tan( 1/#z ) elseif @formula3 == 68 #z = cotan( 1/#z ) elseif @formula3 == 69 #z = 1/cos( 1/#z ) elseif @formula3 == 70 #z = 1/sin( 1/#z ) elseif @formula3 == 71 #z = cotanh( #z ) elseif @formula3 == 72 #z = 1/cosh( #z ) elseif @formula3 == 73 #z = 1/sinh( #z ) elseif @formula3 == 74 #z = atanh( 1/#z ) elseif @formula3 == 75 #z = acosh( 1/#z ) elseif @formula3 == 76 #z = asinh( 1/#z ) elseif @formula3 == 77 #z = @coeff3a * #z^@exponent3a + @coeff3b * #z^@exponent3b + @coeff3c * #z^@exponent3c elseif @formula3 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula3 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula3 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula3 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula3 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula3 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula3 == 84 #z = sinh(1/#z) elseif @formula3 == 85 #z = cosh(1/#z) elseif @formula3 == 86 #z = tanh(1/#z) elseif @formula3 == 87 #z = cotanh(1/#z) elseif @formula3 == 88 #z = (1,0)/cosh(1/#z) elseif @formula3 == 89 #z = (1,0)/sinh(1/#z) else ; @formula3 == 90 #z = sin( #z ) * tan(#z) endif ; formula3-2 else ; 90 < @formula3 <= 120 if @formula3 == 91 #z = sinh(#z) * tanh(#z) elseif @formula3 == 92 #z = sinh(#z) * cosh(#z) elseif @formula3 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula3 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula3 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula3 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula3 == 97 #z = sin(#z) * cos(1/#z) elseif @formula3 == 98 #z = sin(#z) * sin(1/#z) elseif @formula3 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula3 == 100 #z = sin(#z) * sin(2*#z) elseif @formula3 == 101 #z = exp(2*#z) elseif @formula3 == 102 #z = exp(-2*#z) elseif @formula3 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula3 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula3 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula3 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula3 == 107 #z = sin(#z) * sinh(#z) elseif @formula3 == 108 #z = sin(#z) * cosh(#z) elseif @formula3 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula3 == 110 #z = sin(#z)*exp(#z) elseif @formula3 == 111 #z = cos(#z)*exp(#z) elseif @formula3 == 112 #z = sinh(#z)*exp(#z) elseif @formula3 == 113 #z = cosh(#z)*exp(#z) elseif @formula3 == 114 #z = sin(#z)*log(#z) elseif @formula3 == 115 #z = cos(#z)*log(#z) elseif @formula3 == 116 #z = sinh(#z)*log(#z) else ; @formula3 == 117 #z = cosh(#z)*log(#z) endif ; formula3-2 endif ; formula3-1 else ; remainder == 0 ; Execute 4th formula selection if @formula4 == 0 #z = #z * #z elseif @formula4 == 1 #z = #z * #z * #z elseif @formula4 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula4 <= 60 if @formula4 <= 30 if @formula4 == 3 #z = #z ^ @power4 elseif @formula4 == 4 #z = 1/#z elseif @formula4 == 5 #z = sqrt(#z) elseif @formula4 == 6 #z = 1 / ( #z * #z ) elseif @formula4 == 7 #z = log(#z) elseif @formula4 == 8 #z = exp( #z) elseif @formula4 == 9 #z = #z^#z elseif @formula4 == 10 #z = sin( #z ) elseif @formula4 == 11 #z = cos( #z ) elseif @formula4 == 12 #z = tan( #z ) elseif @formula4 == 13 #z = asin( #z ) elseif @formula4 == 14 #z = acos( #z ) elseif @formula4 == 15 #z = atan( #z ) elseif @formula4 == 16 #z = sinh( #z ) elseif @formula4 == 17 #z = cosh( #z ) elseif @formula4 == 18 #z = tanh( #z ) elseif @formula4 == 19 #z = asinh( #z ) elseif @formula4 == 20 #z = acosh( #z ) elseif @formula4 == 21 #z = atanh( #z ) elseif @formula4 == 22 #z = log( 1/#z ) elseif @formula4 == 23 #z = log( log( #z )) elseif @formula4 == 24 #z = exp( -#z ) elseif @formula4 == 25 #z = exp( 1/#z ) elseif @formula4 == 26 #z = #z^(-#z) elseif @formula4 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula4 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula4 == 29 zextra = tan( #z ) #z = zextra * zextra else ; @formula4 == 30 #z = cotan( #z ) endif ; formula4-3 else ; 30 < @formula4 <= 60 if @formula4 == 31 #z = 1/cos( #z ) elseif @formula4 == 32 #z = 1/sin( #z ) elseif @formula4 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula4 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula4 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula4 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula4 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula4 == 38 #z = log(-#z) elseif @formula4 == 39 #z = 1/log( #z ) elseif @formula4 == 40 #z = #z * log( #z ) elseif @formula4 == 41 #z = sin( #z ) / #z elseif @formula4 == 42 #z = cos( #z ) / #z elseif @formula4 == 43 #z = sin( #z ) * cos( #z ) elseif @formula4 == 44 #z = sin( #z^2 ) elseif @formula4 == 45 #z = exp( -1/#z ) elseif @formula4 == 46 #z = #z * exp( #z ) elseif @formula4 == 47 #z = #z * exp( -#z ) elseif @formula4 == 48 #z = #z * exp( 1/#z ) elseif @formula4 == 49 #z = #z * exp( -1/#z ) elseif @formula4 == 50 #z = #z * #z * #z elseif @formula4 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula4 == 52 #z = atan( 1 / #z ) elseif @formula4 == 53 #z = acos( 1 / #z ) elseif @formula4 == 54 #z = asin( 1 / #z ) elseif @formula4 == 55 #z = tan( #z ) / #z elseif @formula4 == 56 #z = cotan( #z ) / #z elseif @formula4 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula4 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula4 == 59 #z = #z * sin( #z ) else ; @formula4 == 60 #z = #z * cos( #z ) endif ; formula4-3 endif ; formula4-2 elseif @formula4 <= 90 if @formula4 == 61 #z = #z * tan( #z ) elseif @formula4 == 62 #z = #z * cotan( #z ) elseif @formula4 == 63 #z = #z/cos( #z ) elseif @formula4 == 64 #z = #z/sin( #z ) elseif @formula4 == 65 #z = sin( 1/#z ) elseif @formula4 == 66 #z = cos( 1/#z ) elseif @formula4 == 67 #z = tan( 1/#z ) elseif @formula4 == 68 #z = cotan( 1/#z ) elseif @formula4 == 69 #z = 1/cos( 1/#z ) elseif @formula4 == 70 #z = 1/sin( 1/#z ) elseif @formula4 == 71 #z = cotanh( #z ) elseif @formula4 == 72 #z = 1/cosh( #z ) elseif @formula4 == 73 #z = 1/sinh( #z ) elseif @formula4 == 74 #z = atanh( 1/#z ) elseif @formula4 == 75 #z = acosh( 1/#z ) elseif @formula4 == 76 #z = asinh( 1/#z ) elseif @formula4 == 77 #z = @coeff4a * #z^@exponent4a + @coeff4b * #z^@exponent4b + @coeff4c * #z^@exponent4c elseif @formula4 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula4 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula4 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula4 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula4 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula4 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula4 == 84 #z = sinh(1/#z) elseif @formula4 == 85 #z = cosh(1/#z) elseif @formula4 == 86 #z = tanh(1/#z) elseif @formula4 == 87 #z = cotanh(1/#z) elseif @formula4 == 88 #z = (1,0)/cosh(1/#z) elseif @formula4 == 89 #z = (1,0)/sinh(1/#z) else ; @formula4 == 90 #z = sin( #z ) * tan(#z) endif ; formula4-2 else ; 90 < @formula4 <= 120 if @formula4 == 91 #z = sinh(#z) * tanh(#z) elseif @formula4 == 92 #z = sinh(#z) * cosh(#z) elseif @formula4 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula4 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula4 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula4 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula4 == 97 #z = sin(#z) * cos(1/#z) elseif @formula4 == 98 #z = sin(#z) * sin(1/#z) elseif @formula4 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula4 == 100 #z = sin(#z) * sin(2*#z) elseif @formula4 == 101 #z = exp(2*#z) elseif @formula4 == 102 #z = exp(-2*#z) elseif @formula4 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula4 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula4 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula4 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula4 == 107 #z = sin(#z) * sinh(#z) elseif @formula4 == 108 #z = sin(#z) * cosh(#z) elseif @formula4 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula4 == 110 #z = sin(#z)*exp(#z) elseif @formula4 == 111 #z = cos(#z)*exp(#z) elseif @formula4 == 112 #z = sinh(#z)*exp(#z) elseif @formula4 == 113 #z = cosh(#z)*exp(#z) elseif @formula4 == 114 #z = sin(#z)*log(#z) elseif @formula4 == 115 #z = cos(#z)*log(#z) elseif @formula4 == 116 #z = sinh(#z)*log(#z) else ; @formula4 == 117 #z = cosh(#z)*log(#z) endif ; formula4-2 endif ; formula4-1 endif ; remainder if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend if @pmode != 1 #z = #z + jc endif ; pmode bailout: |z| < @bail default: title = "4Cycle General Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param formula1 caption = "Formula 1" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula executed during the 1st series of iterations (iters 1,5,9,...). \ For 'z^power', use parameter 'Power 1' to set power. For '3-term polynomial' set \ params 'Coeff 1a', 'Exponent 1a', 'Coeff 1b', 'Exponent 1b', 'Coeff 1c', \ 'Exponent 1c'." endparam param formula2 caption = "Formula 2" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula executed during the 2nd series of iterations (iters 2,6,10,...). \ For 'z^power', use parameter 'Power 2' to set power. For '3-term polynomial' set \ params 'Coeff 2a', 'Exponent 2a', 'Coeff 2b', 'Exponent 2b', 'Coeff 2c', \ 'Exponent 2c'." endparam param formula3 caption = "Formula 3" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula executed during the 3rd series of iterations (iter 3,7,11,...). \ For 'z^power', use parameter 'Power 3' to set power. For '3-term polynomial' set \ params 'Coeff 3a', 'Exponent 3a', 'Coeff 3b', 'Exponent 3b', 'Coeff 3c', \ 'Exponent 3c'." endparam param formula4 caption = "Formula 4" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula executed during the 4th series of iterations (iters 4,8,12,...). \ For 'z^power', use parameter 'Power 4' to set power. For '3-term polynomial' set \ params 'Coeff 4a', 'Exponent 4a', 'Coeff 4b', 'Exponent 4b', 'Coeff 4c', \ 'Exponent 4c'." endparam param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param power1 caption = "Power 1" default = (5,0) hint = "This is the power used for the first formula series if parameter \ 'Formula 1' is set to 'z^power'" endparam param power2 caption = "Power 2" default = (6,0) hint = "This is the power used for the second formula series if parameter \ 'Formula 2' is set to 'z^power'" endparam param power3 caption = "Power 3" default = (6,0) hint = "This is the power used for the third formula series if parameter \ 'Formula 3' is set to 'z^power'" endparam param power4 caption = "Power 4" default = (6,0) hint = "This is the power used for the fourth formula series if parameter \ 'Formula 4' is set to 'z^power'" endparam param coeff1a caption = "Coeff 1A" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent1a caption = "Exponent 1A" default = (6,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff1b caption = "Coeff 1B" default = (-1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent1b caption = "Exponent 1B" default = (4,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff1c caption = "Coeff 1C" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent1c caption = "Exponent 1C" default = (2,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param coeff2a caption = "Coeff 2A" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent2a caption = "Exponent 2A" default = (6,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff2b caption = "Coeff 2B" default = (-1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent2b caption = "Exponent 2B" default = (4,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff2c caption = "Coeff 2C" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent2c caption = "Exponent 2C" default = (2,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param coeff3a caption = "Coeff 3A" default = (1,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent3a caption = "Exponent 3A" default = (6,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff3b caption = "Coeff 3B" default = (-1,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent3b caption = "Exponent 3B" default = (4,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff3c caption = "Coeff 3C" default = (1,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent3c caption = "Exponent 3C" default = (2,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param coeff4a caption = "Coeff 4A" default = (1,0) hint = "If 'Formula 4' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent4a caption = "Exponent 4A" default = (6,0) hint = "If 'Formula 4' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff4b caption = "Coeff 4B" default = (-1,0) hint = "If 'Formula 4' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent4b caption = "Exponent 4B" default = (4,0) hint = "If 'Formula 4' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff4c caption = "Coeff 4C" default = (1,0) hint = "If 'Formula 4' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent4c caption = "Exponent 4C" default = (2,0) hint = "If 'Formula 4' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" "p^p" \ "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-alt4Cycle-general" perturbation = #pixel bail = bail formula1 = formula1 formula2 = formula2 formula3 = formula3 formula4 = formula4 blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower power1 = power1 power2 = power2 power3 = power3 power4 = power4 coeff1a = coeff1a exponent1a = exponent1a coeff1b = coeff1b exponent1b = exponent1b coeff1c = coeff1c exponent1c = exponent1c coeff2a = coeff2a exponent2a = exponent2a coeff2b = coeff2b exponent2b = exponent2b coeff2c = coeff2c exponent2c = exponent2c coeff3a = coeff3a exponent3a = exponent3a coeff3b = coeff3b exponent3b = exponent3b coeff3c = coeff3c exponent3c = exponent3c coeff4a = coeff4a exponent4a = exponent4a coeff4b = coeff4b exponent4b = exponent4b coeff4c = coeff4c exponent4c = exponent4c pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-alt3Cycle-general { ; jam 011009 ; Alternating-type Mandelbrot/Julia in which 3 independent formulas ; are repeatedly, sequentially executed on alternate iterations. ; Formula 1 is executed on iterations 1,4,7,... (iterations 1 mod 3); ; Formula 2 is executed on iterations 2,5,8,... (iterations 2 mod 3); ; Formula 3 is executed on iterations 3,6,9,... (iterations 0 mod 3); ; The 3-term polynomial formula option is ; z = ( CoeffA * z^ExponentA ) + ( CoeffB * z^ExponentB ) + ( CoeffC * z^ExponentC ) + constant init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0, int remainder = 0 complex zextra = complex ztemp = complex temp2 = (0,0) ; temp/spare scratch variable complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 ztemp = sinh(jc), zextra = cosh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 95 ztemp = sin(jc), zextra = cos(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), ztemp = sinh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: if @pmode != 0 #z = #z + jc endif ; pmode zblend = z iterations = iterations + 1 remainder = iterations % 3 if remainder == 1 ; Execute 1st formula selection if @formula1 == 0 #z = #z * #z elseif @formula1 == 1 #z = #z * #z * #z elseif @formula1 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula1 <= 60 if @formula1 <= 30 if @formula1 == 3 #z = #z ^ @power1 elseif @formula1 == 4 #z = 1/#z elseif @formula1 == 5 #z = sqrt(#z) elseif @formula1 == 6 #z = 1 / ( #z * #z ) elseif @formula1 == 7 #z = log(#z) elseif @formula1 == 8 #z = exp( #z) elseif @formula1 == 9 #z = #z^#z elseif @formula1 == 10 #z = sin( #z ) elseif @formula1 == 11 #z = cos( #z ) elseif @formula1 == 12 #z = tan( #z ) elseif @formula1 == 13 #z = asin( #z ) elseif @formula1 == 14 #z = acos( #z ) elseif @formula1 == 15 #z = atan( #z ) elseif @formula1 == 16 #z = sinh( #z ) elseif @formula1 == 17 #z = cosh( #z ) elseif @formula1 == 18 #z = tanh( #z ) elseif @formula1 == 19 #z = asinh( #z ) elseif @formula1 == 20 #z = acosh( #z ) elseif @formula1 == 21 #z = atanh( #z ) elseif @formula1 == 22 #z = log( 1/#z ) elseif @formula1 == 23 #z = log( log( #z )) elseif @formula1 == 24 #z = exp( -#z ) elseif @formula1 == 25 #z = exp( 1/#z ) elseif @formula1 == 26 #z = #z^(-#z) elseif @formula1 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula1 == 29 zextra = tan( #z ) #z = zextra * zextra else ; @formula1 == 30 #z = cotan( #z ) endif ; formula1-3 else ; 30 < @formula1 <= 60 if @formula1 == 31 #z = 1/cos( #z ) elseif @formula1 == 32 #z = 1/sin( #z ) elseif @formula1 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula1 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula1 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula1 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula1 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula1 == 38 #z = log(-#z) elseif @formula1 == 39 #z = 1/log( #z ) elseif @formula1 == 40 #z = #z * log( #z ) elseif @formula1 == 41 #z = sin( #z ) / #z elseif @formula1 == 42 #z = cos( #z ) / #z elseif @formula1 == 43 #z = sin( #z ) * cos( #z ) elseif @formula1 == 44 #z = sin( #z^2 ) elseif @formula1 == 45 #z = exp( -1/#z ) elseif @formula1 == 46 #z = #z * exp( #z ) elseif @formula1 == 47 #z = #z * exp( -#z ) elseif @formula1 == 48 #z = #z * exp( 1/#z ) elseif @formula1 == 49 #z = #z * exp( -1/#z ) elseif @formula1 == 50 #z = #z * #z * #z elseif @formula1 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula1 == 52 #z = atan( 1 / #z ) elseif @formula1 == 53 #z = acos( 1 / #z ) elseif @formula1 == 54 #z = asin( 1 / #z ) elseif @formula1 == 55 #z = tan( #z ) / #z elseif @formula1 == 56 #z = cotan( #z ) / #z elseif @formula1 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula1 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula1 == 59 #z = #z * sin( #z ) else ; @formula1 == 60 #z = #z * cos( #z ) endif ; formula1-3 endif ; formula1-2 elseif @formula1 <= 90 if @formula1 == 61 #z = #z * tan( #z ) elseif @formula1 == 62 #z = #z * cotan( #z ) elseif @formula1 == 63 #z = #z/cos( #z ) elseif @formula1 == 64 #z = #z/sin( #z ) elseif @formula1 == 65 #z = sin( 1/#z ) elseif @formula1 == 66 #z = cos( 1/#z ) elseif @formula1 == 67 #z = tan( 1/#z ) elseif @formula1 == 68 #z = cotan( 1/#z ) elseif @formula1 == 69 #z = 1/cos( 1/#z ) elseif @formula1 == 70 #z = 1/sin( 1/#z ) elseif @formula1 == 71 #z = cotanh( #z ) elseif @formula1 == 72 #z = 1/cosh( #z ) elseif @formula1 == 73 #z = 1/sinh( #z ) elseif @formula1 == 74 #z = atanh( 1/#z ) elseif @formula1 == 75 #z = acosh( 1/#z ) elseif @formula1 == 76 #z = asinh( 1/#z ) elseif @formula1 == 77 #z = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c elseif @formula1 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula1 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula1 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula1 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula1 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula1 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula1 == 84 #z = sinh(1/#z) elseif @formula1 == 85 #z = cosh(1/#z) elseif @formula1 == 86 #z = tanh(1/#z) elseif @formula1 == 87 #z = cotanh(1/#z) elseif @formula1 == 88 #z = (1,0)/cosh(1/#z) elseif @formula1 == 89 #z = (1,0)/sinh(1/#z) else ; @formula1 == 90 #z = sin( #z ) * tan(#z) endif ; formula1-2 else ; 90 < @formula1 <= 120 if @formula1 == 91 #z = sinh(#z) * tanh(#z) elseif @formula1 == 92 #z = sinh(#z) * cosh(#z) elseif @formula1 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula1 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula1 == 97 #z = sin(#z) * cos(1/#z) elseif @formula1 == 98 #z = sin(#z) * sin(1/#z) elseif @formula1 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula1 == 100 #z = sin(#z) * sin(2*#z) elseif @formula1 == 101 #z = exp(2*#z) elseif @formula1 == 102 #z = exp(-2*#z) elseif @formula1 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula1 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula1 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula1 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula1 == 107 #z = sin(#z) * sinh(#z) elseif @formula1 == 108 #z = sin(#z) * cosh(#z) elseif @formula1 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 110 #z = sin(#z)*exp(#z) elseif @formula1 == 111 #z = cos(#z)*exp(#z) elseif @formula1 == 112 #z = sinh(#z)*exp(#z) elseif @formula1 == 113 #z = cosh(#z)*exp(#z) elseif @formula1 == 114 #z = sin(#z)*log(#z) elseif @formula1 == 115 #z = cos(#z)*log(#z) elseif @formula1 == 116 #z = sinh(#z)*log(#z) else ; @formula1 == 117 #z = cosh(#z)*log(#z) endif ; formula1-2 endif ; formula1-1 elseif remainder == 2 ; Execute 2nd formula selection if @formula2 == 0 #z = #z * #z elseif @formula2 == 1 #z = #z * #z * #z elseif @formula2 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula2 <= 60 if @formula2 <= 30 if @formula2 == 3 #z = #z ^ @power2 elseif @formula2 == 4 #z = 1/#z elseif @formula2 == 5 #z = sqrt(#z) elseif @formula2 == 6 #z = 1 / ( #z * #z ) elseif @formula2 == 7 #z = log(#z) elseif @formula2 == 8 #z = exp( #z) elseif @formula2 == 9 #z = #z^#z elseif @formula2 == 10 #z = sin( #z ) elseif @formula2 == 11 #z = cos( #z ) elseif @formula2 == 12 #z = tan( #z ) elseif @formula2 == 13 #z = asin( #z ) elseif @formula2 == 14 #z = acos( #z ) elseif @formula2 == 15 #z = atan( #z ) elseif @formula2 == 16 #z = sinh( #z ) elseif @formula2 == 17 #z = cosh( #z ) elseif @formula2 == 18 #z = tanh( #z ) elseif @formula2 == 19 #z = asinh( #z ) elseif @formula2 == 20 #z = acosh( #z ) elseif @formula2 == 21 #z = atanh( #z ) elseif @formula2 == 22 #z = log( 1/#z ) elseif @formula2 == 23 #z = log( log( #z )) elseif @formula2 == 24 #z = exp( -#z ) elseif @formula2 == 25 #z = exp( 1/#z ) elseif @formula2 == 26 #z = #z^(-#z) elseif @formula2 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula2 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula2 == 29 zextra = tan( #z ) #z = zextra * zextra else ; @formula2 == 30 #z = cotan( #z ) endif ; formula2-3 else ; 30 < @formula2 <= 60 if @formula2 == 31 #z = 1/cos( #z ) elseif @formula2 == 32 #z = 1/sin( #z ) elseif @formula2 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula2 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula2 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula2 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula2 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula2 == 38 #z = log(-#z) elseif @formula2 == 39 #z = 1/log( #z ) elseif @formula2 == 40 #z = #z * log( #z ) elseif @formula2 == 41 #z = sin( #z ) / #z elseif @formula2 == 42 #z = cos( #z ) / #z elseif @formula2 == 43 #z = sin( #z ) * cos( #z ) elseif @formula2 == 44 #z = sin( #z^2 ) elseif @formula2 == 45 #z = exp( -1/#z ) elseif @formula2 == 46 #z = #z * exp( #z ) elseif @formula2 == 47 #z = #z * exp( -#z ) elseif @formula2 == 48 #z = #z * exp( 1/#z ) elseif @formula2 == 49 #z = #z * exp( -1/#z ) elseif @formula2 == 50 #z = #z * #z * #z elseif @formula2 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula2 == 52 #z = atan( 1 / #z ) elseif @formula2 == 53 #z = acos( 1 / #z ) elseif @formula2 == 54 #z = asin( 1 / #z ) elseif @formula2 == 55 #z = tan( #z ) / #z elseif @formula2 == 56 #z = cotan( #z ) / #z elseif @formula2 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula2 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula2 == 59 #z = #z * sin( #z ) else ; @formula2 == 60 #z = #z * cos( #z ) endif ; formula2-3 endif ; formula2-2 elseif @formula2 <= 90 if @formula2 == 61 #z = #z * tan( #z ) elseif @formula2 == 62 #z = #z * cotan( #z ) elseif @formula2 == 63 #z = #z/cos( #z ) elseif @formula2 == 64 #z = #z/sin( #z ) elseif @formula2 == 65 #z = sin( 1/#z ) elseif @formula2 == 66 #z = cos( 1/#z ) elseif @formula2 == 67 #z = tan( 1/#z ) elseif @formula2 == 68 #z = cotan( 1/#z ) elseif @formula2 == 69 #z = 1/cos( 1/#z ) elseif @formula2 == 70 #z = 1/sin( 1/#z ) elseif @formula2 == 71 #z = cotanh( #z ) elseif @formula2 == 72 #z = 1/cosh( #z ) elseif @formula2 == 73 #z = 1/sinh( #z ) elseif @formula2 == 74 #z = atanh( 1/#z ) elseif @formula2 == 75 #z = acosh( 1/#z ) elseif @formula2 == 76 #z = asinh( 1/#z ) elseif @formula2 == 77 #z = @coeff2a * #z^@exponent2a + @coeff2b * #z^@exponent2b + @coeff2c * #z^@exponent2c elseif @formula2 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula2 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula2 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula2 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula2 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula2 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula2 == 84 #z = sinh(1/#z) elseif @formula2 == 85 #z = cosh(1/#z) elseif @formula2 == 86 #z = tanh(1/#z) elseif @formula2 == 87 #z = cotanh(1/#z) elseif @formula2 == 88 #z = (1,0)/cosh(1/#z) elseif @formula2 == 89 #z = (1,0)/sinh(1/#z) else ; @formula2 == 90 #z = sin( #z ) * tan(#z) endif ; formula2-2 else ; 90 < @formula2 <= 120 if @formula2 == 91 #z = sinh(#z) * tanh(#z) elseif @formula2 == 92 #z = sinh(#z) * cosh(#z) elseif @formula2 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula2 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula2 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula2 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula2 == 97 #z = sin(#z) * cos(1/#z) elseif @formula2 == 98 #z = sin(#z) * sin(1/#z) elseif @formula2 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula2 == 100 #z = sin(#z) * sin(2*#z) elseif @formula2 == 101 #z = exp(2*#z) elseif @formula2 == 102 #z = exp(-2*#z) elseif @formula2 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula2 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula2 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula2 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula2 == 107 #z = sin(#z) * sinh(#z) elseif @formula2 == 108 #z = sin(#z) * cosh(#z) elseif @formula2 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula2 == 110 #z = sin(#z)*exp(#z) elseif @formula2 == 111 #z = cos(#z)*exp(#z) elseif @formula2 == 112 #z = sinh(#z)*exp(#z) elseif @formula2 == 113 #z = cosh(#z)*exp(#z) elseif @formula2 == 114 #z = sin(#z)*log(#z) elseif @formula2 == 115 #z = cos(#z)*log(#z) elseif @formula2 == 116 #z = sinh(#z)*log(#z) else ; @formula2 == 117 #z = cosh(#z)*log(#z) endif ; formula2-2 endif ; formula2-1 else ; remainder == 0 ; Execute 3rd formula selection if @formula3 == 0 #z = #z * #z elseif @formula3 == 1 #z = #z * #z * #z elseif @formula3 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula3 <= 60 if @formula3 <= 30 if @formula3 == 3 #z = #z ^ @power3 elseif @formula3 == 4 #z = 1/#z elseif @formula3 == 5 #z = sqrt(#z) elseif @formula3 == 6 #z = 1 / ( #z * #z ) elseif @formula3 == 7 #z = log(#z) elseif @formula3 == 8 #z = exp( #z) elseif @formula3 == 9 #z = #z^#z elseif @formula3 == 10 #z = sin( #z ) elseif @formula3 == 11 #z = cos( #z ) elseif @formula3 == 12 #z = tan( #z ) elseif @formula3 == 13 #z = asin( #z ) elseif @formula3 == 14 #z = acos( #z ) elseif @formula3 == 15 #z = atan( #z ) elseif @formula3 == 16 #z = sinh( #z ) elseif @formula3 == 17 #z = cosh( #z ) elseif @formula3 == 18 #z = tanh( #z ) elseif @formula3 == 19 #z = asinh( #z ) elseif @formula3 == 20 #z = acosh( #z ) elseif @formula3 == 21 #z = atanh( #z ) elseif @formula3 == 22 #z = log( 1/#z ) elseif @formula3 == 23 #z = log( log( #z )) elseif @formula3 == 24 #z = exp( -#z ) elseif @formula3 == 25 #z = exp( 1/#z ) elseif @formula3 == 26 #z = #z^(-#z) elseif @formula3 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula3 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula3 == 29 zextra = tan( #z ) #z = zextra * zextra else ; @formula3 == 30 #z = cotan( #z ) endif ; formula3-3 else ; 30 < @formula3 <= 60 if @formula3 == 31 #z = 1/cos( #z ) elseif @formula3 == 32 #z = 1/sin( #z ) elseif @formula3 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula3 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula3 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula3 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula3 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula3 == 38 #z = log(-#z) elseif @formula3 == 39 #z = 1/log( #z ) elseif @formula3 == 40 #z = #z * log( #z ) elseif @formula3 == 41 #z = sin( #z ) / #z elseif @formula3 == 42 #z = cos( #z ) / #z elseif @formula3 == 43 #z = sin( #z ) * cos( #z ) elseif @formula3 == 44 #z = sin( #z^2 ) elseif @formula3 == 45 #z = exp( -1/#z ) elseif @formula3 == 46 #z = #z * exp( #z ) elseif @formula3 == 47 #z = #z * exp( -#z ) elseif @formula3 == 48 #z = #z * exp( 1/#z ) elseif @formula3 == 49 #z = #z * exp( -1/#z ) elseif @formula3 == 50 #z = #z * #z * #z elseif @formula3 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula3 == 52 #z = atan( 1 / #z ) elseif @formula3 == 53 #z = acos( 1 / #z ) elseif @formula3 == 54 #z = asin( 1 / #z ) elseif @formula3 == 55 #z = tan( #z ) / #z elseif @formula3 == 56 #z = cotan( #z ) / #z elseif @formula3 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula3 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula3 == 59 #z = #z * sin( #z ) else ; @formula3 == 60 #z = #z * cos( #z ) endif ; formula3-3 endif ; formula3-2 elseif @formula3 <= 90 if @formula3 == 61 #z = #z * tan( #z ) elseif @formula3 == 62 #z = #z * cotan( #z ) elseif @formula3 == 63 #z = #z/cos( #z ) elseif @formula3 == 64 #z = #z/sin( #z ) elseif @formula3 == 65 #z = sin( 1/#z ) elseif @formula3 == 66 #z = cos( 1/#z ) elseif @formula3 == 67 #z = tan( 1/#z ) elseif @formula3 == 68 #z = cotan( 1/#z ) elseif @formula3 == 69 #z = 1/cos( 1/#z ) elseif @formula3 == 70 #z = 1/sin( 1/#z ) elseif @formula3 == 71 #z = cotanh( #z ) elseif @formula3 == 72 #z = 1/cosh( #z ) elseif @formula3 == 73 #z = 1/sinh( #z ) elseif @formula3 == 74 #z = atanh( 1/#z ) elseif @formula3 == 75 #z = acosh( 1/#z ) elseif @formula3 == 76 #z = asinh( 1/#z ) elseif @formula3 == 77 #z = @coeff3a * #z^@exponent3a + @coeff3b * #z^@exponent3b + @coeff3c * #z^@exponent3c elseif @formula3 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula3 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula3 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula3 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula3 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula3 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula3 == 84 #z = sinh(1/#z) elseif @formula3 == 85 #z = cosh(1/#z) elseif @formula3 == 86 #z = tanh(1/#z) elseif @formula3 == 87 #z = cotanh(1/#z) elseif @formula3 == 88 #z = (1,0)/cosh(1/#z) elseif @formula3 == 89 #z = (1,0)/sinh(1/#z) else ; @formula3 == 90 #z = sin( #z ) * tan(#z) endif ; formula3-2 else ; 90 < @formula3 <= 120 if @formula3 == 91 #z = sinh(#z) * tanh(#z) elseif @formula3 == 92 #z = sinh(#z) * cosh(#z) elseif @formula3 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula3 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula3 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula3 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula3 == 97 #z = sin(#z) * cos(1/#z) elseif @formula3 == 98 #z = sin(#z) * sin(1/#z) elseif @formula3 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula3 == 100 #z = sin(#z) * sin(2*#z) elseif @formula3 == 101 #z = exp(2*#z) elseif @formula3 == 102 #z = exp(-2*#z) elseif @formula3 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula3 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula3 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula3 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula3 == 107 #z = sin(#z) * sinh(#z) elseif @formula3 == 108 #z = sin(#z) * cosh(#z) elseif @formula3 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula3 == 110 #z = sin(#z)*exp(#z) elseif @formula3 == 111 #z = cos(#z)*exp(#z) elseif @formula3 == 112 #z = sinh(#z)*exp(#z) elseif @formula3 == 113 #z = cosh(#z)*exp(#z) elseif @formula3 == 114 #z = sin(#z)*log(#z) elseif @formula3 == 115 #z = cos(#z)*log(#z) elseif @formula3 == 116 #z = sinh(#z)*log(#z) else ; @formula3 == 117 #z = cosh(#z)*log(#z) endif ; formula3-2 endif ; formula3-1 endif ; remainder if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend if @pmode != 1 #z = #z + jc endif ; pmode bailout: |z| < @bail default: title = "3Cycle General" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param formula1 caption = "Formula 1" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula executed during the 1st series of iterations (iters 1,4,7,...). \ For 'z^power', use parameter 'Power 1' to set power. For '3-term polynomial' set \ params 'Coeff 1a', 'Exponent 1a', 'Coeff 1b', 'Exponent 1b', 'Coeff 1c', \ 'Exponent 1c'." endparam param formula2 caption = "Formula 2" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula executed during the 2nd series of iterations (iters 2,5,8,...). \ For 'z^power', use parameter 'Power 2' to set power. For '3-term polynomial' set \ params 'Coeff 2a', 'Exponent 2a', 'Coeff 2b', 'Exponent 2b', 'Coeff 2c', \ 'Exponent 2c'." endparam param formula3 caption = "Formula 3" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula executed during the 3rd series of iterations (iter 3,6,9,...). \ For 'z^power', use parameter 'Power 3' to set power. For '3-term polynomial' set \ params 'Coeff 3a', 'Exponent 3a', 'Coeff 3b', 'Exponent 3b', 'Coeff 3c', \ 'Exponent 3c'." endparam param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param power1 caption = "Power 1" default = (5,0) hint = "This is the power used for the first formula series if parameter \ 'Formula 1' is set to 'z^power'" endparam param power2 caption = "Power 2" default = (6,0) hint = "This is the power used for the second formula series if parameter \ 'Formula 2' is set to 'z^power'" endparam param power3 caption = "Power 3" default = (6,0) hint = "This is the power used for the third formula series if parameter \ 'Formula 3' is set to 'z^power'" endparam param coeff1a caption = "Coeff 1A" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent1a caption = "Exponent 1A" default = (6,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff1b caption = "Coeff 1B" default = (-1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent1b caption = "Exponent 1B" default = (4,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff1c caption = "Coeff 1C" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent1c caption = "Exponent 1C" default = (2,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param coeff2a caption = "Coeff 2A" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent2a caption = "Exponent 2A" default = (6,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff2b caption = "Coeff 2B" default = (-1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent2b caption = "Exponent 2B" default = (4,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff2c caption = "Coeff 2C" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent2c caption = "Exponent 2C" default = (2,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param coeff3a caption = "Coeff 3A" default = (1,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent3a caption = "Exponent 3A" default = (6,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff3b caption = "Coeff 3B" default = (-1,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent3b caption = "Exponent 3B" default = (4,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff3c caption = "Coeff 3C" default = (1,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent3c caption = "Exponent 3C" default = (2,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" "p^p" \ "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-alt3Cycle-general-J" jconstant = #pixel bail = bail formula1 = formula1 formula2 = formula2 formula3 = formula3 blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower power1 = power1 power2 = power2 power3 = power3 coeff1a = coeff1a exponent1a = exponent1a coeff1b = coeff1b exponent1b = exponent1b coeff1c = coeff1c exponent1c = exponent1c coeff2a = coeff2a exponent2a = exponent2a coeff2b = coeff2b exponent2b = exponent2b coeff2c = coeff2c exponent2c = exponent2c coeff3a = coeff3a exponent3a = exponent3a coeff3b = coeff3b exponent3b = exponent3b coeff3c = coeff3c exponent3c = exponent3c pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-alt3Cycle-general-J { ; jam 011009 ; Alternating-type Mandelbrot/Julia in which 3 independent formulas ; are repeatedly, sequentially executed on alternate iterations. ; Formula 1 is executed on iterations 1,4,7,... (iterations 1 mod 3); ; Formula 2 is executed on iterations 2,5,8,... (iterations 2 mod 3); ; Formula 3 is executed on iterations 3,6,9,... (iterations 0 mod 3); ; The 3-term polynomial formula option is ; z = ( CoeffA * z^ExponentA ) + ( CoeffB * z^ExponentB ) + ( CoeffC * z^ExponentC ) + constant init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0, int remainder = 0 complex zextra = complex ztemp = complex temp2 = (0,0) ; temp/spare scratch variable complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 ztemp = sinh(jc), zextra = cosh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 95 ztemp = sin(jc), zextra = cos(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), ztemp = sinh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: if @pmode != 0 #z = #z + jc endif ; pmode zblend = z iterations = iterations + 1 remainder = iterations % 3 if remainder == 1 ; Execute 1st formula selection if @formula1 == 0 #z = #z * #z elseif @formula1 == 1 #z = #z * #z * #z elseif @formula1 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula1 <= 60 if @formula1 <= 30 if @formula1 == 3 #z = #z ^ @power1 elseif @formula1 == 4 #z = 1/#z elseif @formula1 == 5 #z = sqrt(#z) elseif @formula1 == 6 #z = 1 / ( #z * #z ) elseif @formula1 == 7 #z = log(#z) elseif @formula1 == 8 #z = exp( #z) elseif @formula1 == 9 #z = #z^#z elseif @formula1 == 10 #z = sin( #z ) elseif @formula1 == 11 #z = cos( #z ) elseif @formula1 == 12 #z = tan( #z ) elseif @formula1 == 13 #z = asin( #z ) elseif @formula1 == 14 #z = acos( #z ) elseif @formula1 == 15 #z = atan( #z ) elseif @formula1 == 16 #z = sinh( #z ) elseif @formula1 == 17 #z = cosh( #z ) elseif @formula1 == 18 #z = tanh( #z ) elseif @formula1 == 19 #z = asinh( #z ) elseif @formula1 == 20 #z = acosh( #z ) elseif @formula1 == 21 #z = atanh( #z ) elseif @formula1 == 22 #z = log( 1/#z ) elseif @formula1 == 23 #z = log( log( #z )) elseif @formula1 == 24 #z = exp( -#z ) elseif @formula1 == 25 #z = exp( 1/#z ) elseif @formula1 == 26 #z = #z^(-#z) elseif @formula1 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula1 == 29 zextra = tan( #z ) #z = zextra * zextra else ; @formula1 == 30 #z = cotan( #z ) endif ; formula1-3 else ; 30 < @formula1 <= 60 if @formula1 == 31 #z = 1/cos( #z ) elseif @formula1 == 32 #z = 1/sin( #z ) elseif @formula1 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula1 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula1 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula1 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula1 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula1 == 38 #z = log(-#z) elseif @formula1 == 39 #z = 1/log( #z ) elseif @formula1 == 40 #z = #z * log( #z ) elseif @formula1 == 41 #z = sin( #z ) / #z elseif @formula1 == 42 #z = cos( #z ) / #z elseif @formula1 == 43 #z = sin( #z ) * cos( #z ) elseif @formula1 == 44 #z = sin( #z^2 ) elseif @formula1 == 45 #z = exp( -1/#z ) elseif @formula1 == 46 #z = #z * exp( #z ) elseif @formula1 == 47 #z = #z * exp( -#z ) elseif @formula1 == 48 #z = #z * exp( 1/#z ) elseif @formula1 == 49 #z = #z * exp( -1/#z ) elseif @formula1 == 50 #z = #z * #z * #z elseif @formula1 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula1 == 52 #z = atan( 1 / #z ) elseif @formula1 == 53 #z = acos( 1 / #z ) elseif @formula1 == 54 #z = asin( 1 / #z ) elseif @formula1 == 55 #z = tan( #z ) / #z elseif @formula1 == 56 #z = cotan( #z ) / #z elseif @formula1 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula1 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula1 == 59 #z = #z * sin( #z ) else ; @formula1 == 60 #z = #z * cos( #z ) endif ; formula1-3 endif ; formula1-2 elseif @formula1 <= 90 if @formula1 == 61 #z = #z * tan( #z ) elseif @formula1 == 62 #z = #z * cotan( #z ) elseif @formula1 == 63 #z = #z/cos( #z ) elseif @formula1 == 64 #z = #z/sin( #z ) elseif @formula1 == 65 #z = sin( 1/#z ) elseif @formula1 == 66 #z = cos( 1/#z ) elseif @formula1 == 67 #z = tan( 1/#z ) elseif @formula1 == 68 #z = cotan( 1/#z ) elseif @formula1 == 69 #z = 1/cos( 1/#z ) elseif @formula1 == 70 #z = 1/sin( 1/#z ) elseif @formula1 == 71 #z = cotanh( #z ) elseif @formula1 == 72 #z = 1/cosh( #z ) elseif @formula1 == 73 #z = 1/sinh( #z ) elseif @formula1 == 74 #z = atanh( 1/#z ) elseif @formula1 == 75 #z = acosh( 1/#z ) elseif @formula1 == 76 #z = asinh( 1/#z ) elseif @formula1 == 77 #z = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c elseif @formula1 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula1 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula1 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula1 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula1 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula1 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula1 == 84 #z = sinh(1/#z) elseif @formula1 == 85 #z = cosh(1/#z) elseif @formula1 == 86 #z = tanh(1/#z) elseif @formula1 == 87 #z = cotanh(1/#z) elseif @formula1 == 88 #z = (1,0)/cosh(1/#z) elseif @formula1 == 89 #z = (1,0)/sinh(1/#z) else ; @formula1 == 90 #z = sin( #z ) * tan(#z) endif ; formula1-2 else ; 90 < @formula1 <= 120 if @formula1 == 91 #z = sinh(#z) * tanh(#z) elseif @formula1 == 92 #z = sinh(#z) * cosh(#z) elseif @formula1 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula1 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula1 == 97 #z = sin(#z) * cos(1/#z) elseif @formula1 == 98 #z = sin(#z) * sin(1/#z) elseif @formula1 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula1 == 100 #z = sin(#z) * sin(2*#z) elseif @formula1 == 101 #z = exp(2*#z) elseif @formula1 == 102 #z = exp(-2*#z) elseif @formula1 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula1 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula1 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula1 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula1 == 107 #z = sin(#z) * sinh(#z) elseif @formula1 == 108 #z = sin(#z) * cosh(#z) elseif @formula1 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 110 #z = sin(#z)*exp(#z) elseif @formula1 == 111 #z = cos(#z)*exp(#z) elseif @formula1 == 112 #z = sinh(#z)*exp(#z) elseif @formula1 == 113 #z = cosh(#z)*exp(#z) elseif @formula1 == 114 #z = sin(#z)*log(#z) elseif @formula1 == 115 #z = cos(#z)*log(#z) elseif @formula1 == 116 #z = sinh(#z)*log(#z) else ; @formula1 == 117 #z = cosh(#z)*log(#z) endif ; formula1-2 endif ; formula1-1 elseif remainder == 2 ; Execute 2nd formula selection if @formula2 == 0 #z = #z * #z elseif @formula2 == 1 #z = #z * #z * #z elseif @formula2 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula2 <= 60 if @formula2 <= 30 if @formula2 == 3 #z = #z ^ @power2 elseif @formula2 == 4 #z = 1/#z elseif @formula2 == 5 #z = sqrt(#z) elseif @formula2 == 6 #z = 1 / ( #z * #z ) elseif @formula2 == 7 #z = log(#z) elseif @formula2 == 8 #z = exp( #z) elseif @formula2 == 9 #z = #z^#z elseif @formula2 == 10 #z = sin( #z ) elseif @formula2 == 11 #z = cos( #z ) elseif @formula2 == 12 #z = tan( #z ) elseif @formula2 == 13 #z = asin( #z ) elseif @formula2 == 14 #z = acos( #z ) elseif @formula2 == 15 #z = atan( #z ) elseif @formula2 == 16 #z = sinh( #z ) elseif @formula2 == 17 #z = cosh( #z ) elseif @formula2 == 18 #z = tanh( #z ) elseif @formula2 == 19 #z = asinh( #z ) elseif @formula2 == 20 #z = acosh( #z ) elseif @formula2 == 21 #z = atanh( #z ) elseif @formula2 == 22 #z = log( 1/#z ) elseif @formula2 == 23 #z = log( log( #z )) elseif @formula2 == 24 #z = exp( -#z ) elseif @formula2 == 25 #z = exp( 1/#z ) elseif @formula2 == 26 #z = #z^(-#z) elseif @formula2 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula2 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula2 == 29 zextra = tan( #z ) #z = zextra * zextra else ; @formula2 == 30 #z = cotan( #z ) endif ; formula2-3 else ; 30 < @formula2 <= 60 if @formula2 == 31 #z = 1/cos( #z ) elseif @formula2 == 32 #z = 1/sin( #z ) elseif @formula2 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula2 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula2 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula2 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula2 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula2 == 38 #z = log(-#z) elseif @formula2 == 39 #z = 1/log( #z ) elseif @formula2 == 40 #z = #z * log( #z ) elseif @formula2 == 41 #z = sin( #z ) / #z elseif @formula2 == 42 #z = cos( #z ) / #z elseif @formula2 == 43 #z = sin( #z ) * cos( #z ) elseif @formula2 == 44 #z = sin( #z^2 ) elseif @formula2 == 45 #z = exp( -1/#z ) elseif @formula2 == 46 #z = #z * exp( #z ) elseif @formula2 == 47 #z = #z * exp( -#z ) elseif @formula2 == 48 #z = #z * exp( 1/#z ) elseif @formula2 == 49 #z = #z * exp( -1/#z ) elseif @formula2 == 50 #z = #z * #z * #z elseif @formula2 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula2 == 52 #z = atan( 1 / #z ) elseif @formula2 == 53 #z = acos( 1 / #z ) elseif @formula2 == 54 #z = asin( 1 / #z ) elseif @formula2 == 55 #z = tan( #z ) / #z elseif @formula2 == 56 #z = cotan( #z ) / #z elseif @formula2 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula2 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula2 == 59 #z = #z * sin( #z ) else ; @formula2 == 60 #z = #z * cos( #z ) endif ; formula2-3 endif ; formula2-2 elseif @formula2 <= 90 if @formula2 == 61 #z = #z * tan( #z ) elseif @formula2 == 62 #z = #z * cotan( #z ) elseif @formula2 == 63 #z = #z/cos( #z ) elseif @formula2 == 64 #z = #z/sin( #z ) elseif @formula2 == 65 #z = sin( 1/#z ) elseif @formula2 == 66 #z = cos( 1/#z ) elseif @formula2 == 67 #z = tan( 1/#z ) elseif @formula2 == 68 #z = cotan( 1/#z ) elseif @formula2 == 69 #z = 1/cos( 1/#z ) elseif @formula2 == 70 #z = 1/sin( 1/#z ) elseif @formula2 == 71 #z = cotanh( #z ) elseif @formula2 == 72 #z = 1/cosh( #z ) elseif @formula2 == 73 #z = 1/sinh( #z ) elseif @formula2 == 74 #z = atanh( 1/#z ) elseif @formula2 == 75 #z = acosh( 1/#z ) elseif @formula2 == 76 #z = asinh( 1/#z ) elseif @formula2 == 77 #z = @coeff2a * #z^@exponent2a + @coeff2b * #z^@exponent2b + @coeff2c * #z^@exponent2c elseif @formula2 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula2 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula2 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula2 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula2 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula2 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula2 == 84 #z = sinh(1/#z) elseif @formula2 == 85 #z = cosh(1/#z) elseif @formula2 == 86 #z = tanh(1/#z) elseif @formula2 == 87 #z = cotanh(1/#z) elseif @formula2 == 88 #z = (1,0)/cosh(1/#z) elseif @formula2 == 89 #z = (1,0)/sinh(1/#z) else ; @formula2 == 90 #z = sin( #z ) * tan(#z) endif ; formula2-2 else ; 90 < @formula2 <= 120 if @formula2 == 91 #z = sinh(#z) * tanh(#z) elseif @formula2 == 92 #z = sinh(#z) * cosh(#z) elseif @formula2 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula2 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula2 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula2 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula2 == 97 #z = sin(#z) * cos(1/#z) elseif @formula2 == 98 #z = sin(#z) * sin(1/#z) elseif @formula2 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula2 == 100 #z = sin(#z) * sin(2*#z) elseif @formula2 == 101 #z = exp(2*#z) elseif @formula2 == 102 #z = exp(-2*#z) elseif @formula2 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula2 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula2 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula2 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula2 == 107 #z = sin(#z) * sinh(#z) elseif @formula2 == 108 #z = sin(#z) * cosh(#z) elseif @formula2 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula2 == 110 #z = sin(#z)*exp(#z) elseif @formula2 == 111 #z = cos(#z)*exp(#z) elseif @formula2 == 112 #z = sinh(#z)*exp(#z) elseif @formula2 == 113 #z = cosh(#z)*exp(#z) elseif @formula2 == 114 #z = sin(#z)*log(#z) elseif @formula2 == 115 #z = cos(#z)*log(#z) elseif @formula2 == 116 #z = sinh(#z)*log(#z) else ; @formula2 == 117 #z = cosh(#z)*log(#z) endif ; formula2-2 endif ; formula2-1 else ; remainder == 0 ; Execute 3rd formula selection if @formula3 == 0 #z = #z * #z elseif @formula3 == 1 #z = #z * #z * #z elseif @formula3 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula3 <= 60 if @formula3 <= 30 if @formula3 == 3 #z = #z ^ @power3 elseif @formula3 == 4 #z = 1/#z elseif @formula3 == 5 #z = sqrt(#z) elseif @formula3 == 6 #z = 1 / ( #z * #z ) elseif @formula3 == 7 #z = log(#z) elseif @formula3 == 8 #z = exp( #z) elseif @formula3 == 9 #z = #z^#z elseif @formula3 == 10 #z = sin( #z ) elseif @formula3 == 11 #z = cos( #z ) elseif @formula3 == 12 #z = tan( #z ) elseif @formula3 == 13 #z = asin( #z ) elseif @formula3 == 14 #z = acos( #z ) elseif @formula3 == 15 #z = atan( #z ) elseif @formula3 == 16 #z = sinh( #z ) elseif @formula3 == 17 #z = cosh( #z ) elseif @formula3 == 18 #z = tanh( #z ) elseif @formula3 == 19 #z = asinh( #z ) elseif @formula3 == 20 #z = acosh( #z ) elseif @formula3 == 21 #z = atanh( #z ) elseif @formula3 == 22 #z = log( 1/#z ) elseif @formula3 == 23 #z = log( log( #z )) elseif @formula3 == 24 #z = exp( -#z ) elseif @formula3 == 25 #z = exp( 1/#z ) elseif @formula3 == 26 #z = #z^(-#z) elseif @formula3 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula3 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula3 == 29 zextra = tan( #z ) #z = zextra * zextra else ; @formula3 == 30 #z = cotan( #z ) endif ; formula3-3 else ; 30 < @formula3 <= 60 if @formula3 == 31 #z = 1/cos( #z ) elseif @formula3 == 32 #z = 1/sin( #z ) elseif @formula3 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula3 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula3 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula3 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula3 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula3 == 38 #z = log(-#z) elseif @formula3 == 39 #z = 1/log( #z ) elseif @formula3 == 40 #z = #z * log( #z ) elseif @formula3 == 41 #z = sin( #z ) / #z elseif @formula3 == 42 #z = cos( #z ) / #z elseif @formula3 == 43 #z = sin( #z ) * cos( #z ) elseif @formula3 == 44 #z = sin( #z^2 ) elseif @formula3 == 45 #z = exp( -1/#z ) elseif @formula3 == 46 #z = #z * exp( #z ) elseif @formula3 == 47 #z = #z * exp( -#z ) elseif @formula3 == 48 #z = #z * exp( 1/#z ) elseif @formula3 == 49 #z = #z * exp( -1/#z ) elseif @formula3 == 50 #z = #z * #z * #z elseif @formula3 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula3 == 52 #z = atan( 1 / #z ) elseif @formula3 == 53 #z = acos( 1 / #z ) elseif @formula3 == 54 #z = asin( 1 / #z ) elseif @formula3 == 55 #z = tan( #z ) / #z elseif @formula3 == 56 #z = cotan( #z ) / #z elseif @formula3 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula3 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula3 == 59 #z = #z * sin( #z ) else ; @formula3 == 60 #z = #z * cos( #z ) endif ; formula3-3 endif ; formula3-2 elseif @formula3 <= 90 if @formula3 == 61 #z = #z * tan( #z ) elseif @formula3 == 62 #z = #z * cotan( #z ) elseif @formula3 == 63 #z = #z/cos( #z ) elseif @formula3 == 64 #z = #z/sin( #z ) elseif @formula3 == 65 #z = sin( 1/#z ) elseif @formula3 == 66 #z = cos( 1/#z ) elseif @formula3 == 67 #z = tan( 1/#z ) elseif @formula3 == 68 #z = cotan( 1/#z ) elseif @formula3 == 69 #z = 1/cos( 1/#z ) elseif @formula3 == 70 #z = 1/sin( 1/#z ) elseif @formula3 == 71 #z = cotanh( #z ) elseif @formula3 == 72 #z = 1/cosh( #z ) elseif @formula3 == 73 #z = 1/sinh( #z ) elseif @formula3 == 74 #z = atanh( 1/#z ) elseif @formula3 == 75 #z = acosh( 1/#z ) elseif @formula3 == 76 #z = asinh( 1/#z ) elseif @formula3 == 77 #z = @coeff3a * #z^@exponent3a + @coeff3b * #z^@exponent3b + @coeff3c * #z^@exponent3c elseif @formula3 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula3 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula3 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula3 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula3 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula3 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula3 == 84 #z = sinh(1/#z) elseif @formula3 == 85 #z = cosh(1/#z) elseif @formula3 == 86 #z = tanh(1/#z) elseif @formula3 == 87 #z = cotanh(1/#z) elseif @formula3 == 88 #z = (1,0)/cosh(1/#z) elseif @formula3 == 89 #z = (1,0)/sinh(1/#z) else ; @formula3 == 90 #z = sin( #z ) * tan(#z) endif ; formula3-2 else ; 90 < @formula3 <= 120 if @formula3 == 91 #z = sinh(#z) * tanh(#z) elseif @formula3 == 92 #z = sinh(#z) * cosh(#z) elseif @formula3 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula3 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula3 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula3 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula3 == 97 #z = sin(#z) * cos(1/#z) elseif @formula3 == 98 #z = sin(#z) * sin(1/#z) elseif @formula3 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula3 == 100 #z = sin(#z) * sin(2*#z) elseif @formula3 == 101 #z = exp(2*#z) elseif @formula3 == 102 #z = exp(-2*#z) elseif @formula3 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula3 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula3 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula3 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula3 == 107 #z = sin(#z) * sinh(#z) elseif @formula3 == 108 #z = sin(#z) * cosh(#z) elseif @formula3 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula3 == 110 #z = sin(#z)*exp(#z) elseif @formula3 == 111 #z = cos(#z)*exp(#z) elseif @formula3 == 112 #z = sinh(#z)*exp(#z) elseif @formula3 == 113 #z = cosh(#z)*exp(#z) elseif @formula3 == 114 #z = sin(#z)*log(#z) elseif @formula3 == 115 #z = cos(#z)*log(#z) elseif @formula3 == 116 #z = sinh(#z)*log(#z) else ; @formula3 == 117 #z = cosh(#z)*log(#z) endif ; formula3-2 endif ; formula3-1 endif ; remainder if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend if @pmode != 1 #z = #z + jc endif ; pmode bailout: |z| < @bail default: title = "3Cycle General Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param formula1 caption = "Formula 1" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula executed during the 1st series of iterations (iters 1,4,7,...). \ For 'z^power', use parameter 'Power 1' to set power. For '3-term polynomial' set \ params 'Coeff 1a', 'Exponent 1a', 'Coeff 1b', 'Exponent 1b', 'Coeff 1c', \ 'Exponent 1c'." endparam param formula2 caption = "Formula 2" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula executed during the 2nd series of iterations (iters 2,5,8,...). \ For 'z^power', use parameter 'Power 2' to set power. For '3-term polynomial' set \ params 'Coeff 2a', 'Exponent 2a', 'Coeff 2b', 'Exponent 2b', 'Coeff 2c', \ 'Exponent 2c'." endparam param formula3 caption = "Formula 3" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula executed during the 3rd series of iterations (iter 3,6,9,...). \ For 'z^power', use parameter 'Power 3' to set power. For '3-term polynomial' set \ params 'Coeff 3a', 'Exponent 3a', 'Coeff 3b', 'Exponent 3b', 'Coeff 3c', \ 'Exponent 3c'." endparam param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param power1 caption = "Power 1" default = (5,0) hint = "This is the power used for the first formula series if parameter \ 'Formula 1' is set to 'z^power'" endparam param power2 caption = "Power 2" default = (6,0) hint = "This is the power used for the second formula series if parameter \ 'Formula 2' is set to 'z^power'" endparam param power3 caption = "Power 3" default = (6,0) hint = "This is the power used for the third formula series if parameter \ 'Formula 3' is set to 'z^power'" endparam param coeff1a caption = "Coeff 1A" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent1a caption = "Exponent 1A" default = (6,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff1b caption = "Coeff 1B" default = (-1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent1b caption = "Exponent 1B" default = (4,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff1c caption = "Coeff 1C" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent1c caption = "Exponent 1C" default = (2,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param coeff2a caption = "Coeff 2A" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent2a caption = "Exponent 2A" default = (6,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff2b caption = "Coeff 2B" default = (-1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent2b caption = "Exponent 2B" default = (4,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff2c caption = "Coeff 2C" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent2c caption = "Exponent 2C" default = (2,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param coeff3a caption = "Coeff 3A" default = (1,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent3a caption = "Exponent 3A" default = (6,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff3b caption = "Coeff 3B" default = (-1,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent3b caption = "Exponent 3B" default = (4,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff3c caption = "Coeff 3C" default = (1,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent3c caption = "Exponent 3C" default = (2,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" "p^p" \ "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-alt3Cycle-general" perturbation = #pixel bail = bail formula1 = formula1 formula2 = formula2 formula3 = formula3 blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower power1 = power1 power2 = power2 power3 = power3 coeff1a = coeff1a exponent1a = exponent1a coeff1b = coeff1b exponent1b = exponent1b coeff1c = coeff1c exponent1c = exponent1c coeff2a = coeff2a exponent2a = exponent2a coeff2b = coeff2b exponent2b = exponent2b coeff2c = coeff2c exponent2c = exponent2c coeff3a = coeff3a exponent3a = exponent3a coeff3b = coeff3b exponent3b = exponent3b coeff3c = coeff3c exponent3c = exponent3c pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-alt2Cycle-general { ; jam 011009 ; Alternating-type Mandelbrot/Julia in which 2 independent formulas ; are repeatedly, sequentially executed on alternate iterations. ; Formula 1 is executed on iterations 1,3,5,... (odd iterations; 1 mod 2); ; Formula 2 is executed on iterations 2,4,6,... (even; 0 mod 2). ; The 3-term polynomial formula option is ; z = ( CoeffA * z^ExponentA ) + ( CoeffB * z^ExponentB ) + ( CoeffC * z^ExponentC ) + constant init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0, int remainder = 0 complex zextra = complex ztemp = complex temp2 = (0,0) ; temp/spare scratch variable complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 ztemp = sinh(jc), zextra = cosh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 95 ztemp = sin(jc), zextra = cos(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), ztemp = sinh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: if @pmode != 0 #z = #z + jc endif ; pmode zblend = z iterations = iterations + 1 remainder = iterations % 2 if remainder == 1 ; Execute 1st formula selection if @formula1 == 0 #z = #z * #z elseif @formula1 == 1 #z = #z * #z * #z elseif @formula1 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula1 <= 60 if @formula1 <= 30 if @formula1 == 3 #z = #z ^ @power1 elseif @formula1 == 4 #z = 1/#z elseif @formula1 == 5 #z = sqrt(#z) elseif @formula1 == 6 #z = 1 / ( #z * #z ) elseif @formula1 == 7 #z = log(#z) elseif @formula1 == 8 #z = exp( #z) elseif @formula1 == 9 #z = #z^#z elseif @formula1 == 10 #z = sin( #z ) elseif @formula1 == 11 #z = cos( #z ) elseif @formula1 == 12 #z = tan( #z ) elseif @formula1 == 13 #z = asin( #z ) elseif @formula1 == 14 #z = acos( #z ) elseif @formula1 == 15 #z = atan( #z ) elseif @formula1 == 16 #z = sinh( #z ) elseif @formula1 == 17 #z = cosh( #z ) elseif @formula1 == 18 #z = tanh( #z ) elseif @formula1 == 19 #z = asinh( #z ) elseif @formula1 == 20 #z = acosh( #z ) elseif @formula1 == 21 #z = atanh( #z ) elseif @formula1 == 22 #z = log( 1/#z ) elseif @formula1 == 23 #z = log( log( #z )) elseif @formula1 == 24 #z = exp( -#z ) elseif @formula1 == 25 #z = exp( 1/#z ) elseif @formula1 == 26 #z = #z^(-#z) elseif @formula1 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula1 == 29 zextra = tan( #z ) #z = zextra * zextra else ; @formula1 == 30 #z = cotan( #z ) endif ; formula1-3 else ; 30 < @formula1 <= 60 if @formula1 == 31 #z = 1/cos( #z ) elseif @formula1 == 32 #z = 1/sin( #z ) elseif @formula1 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula1 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula1 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula1 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula1 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula1 == 38 #z = log(-#z) elseif @formula1 == 39 #z = 1/log( #z ) elseif @formula1 == 40 #z = #z * log( #z ) elseif @formula1 == 41 #z = sin( #z ) / #z elseif @formula1 == 42 #z = cos( #z ) / #z elseif @formula1 == 43 #z = sin( #z ) * cos( #z ) elseif @formula1 == 44 #z = sin( #z^2 ) elseif @formula1 == 45 #z = exp( -1/#z ) elseif @formula1 == 46 #z = #z * exp( #z ) elseif @formula1 == 47 #z = #z * exp( -#z ) elseif @formula1 == 48 #z = #z * exp( 1/#z ) elseif @formula1 == 49 #z = #z * exp( -1/#z ) elseif @formula1 == 50 #z = #z * #z * #z elseif @formula1 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula1 == 52 #z = atan( 1 / #z ) elseif @formula1 == 53 #z = acos( 1 / #z ) elseif @formula1 == 54 #z = asin( 1 / #z ) elseif @formula1 == 55 #z = tan( #z ) / #z elseif @formula1 == 56 #z = cotan( #z ) / #z elseif @formula1 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula1 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula1 == 59 #z = #z * sin( #z ) else ; @formula1 == 60 #z = #z * cos( #z ) endif ; formula1-3 endif ; formula1-2 elseif @formula1 <= 90 if @formula1 == 61 #z = #z * tan( #z ) elseif @formula1 == 62 #z = #z * cotan( #z ) elseif @formula1 == 63 #z = #z/cos( #z ) elseif @formula1 == 64 #z = #z/sin( #z ) elseif @formula1 == 65 #z = sin( 1/#z ) elseif @formula1 == 66 #z = cos( 1/#z ) elseif @formula1 == 67 #z = tan( 1/#z ) elseif @formula1 == 68 #z = cotan( 1/#z ) elseif @formula1 == 69 #z = 1/cos( 1/#z ) elseif @formula1 == 70 #z = 1/sin( 1/#z ) elseif @formula1 == 71 #z = cotanh( #z ) elseif @formula1 == 72 #z = 1/cosh( #z ) elseif @formula1 == 73 #z = 1/sinh( #z ) elseif @formula1 == 74 #z = atanh( 1/#z ) elseif @formula1 == 75 #z = acosh( 1/#z ) elseif @formula1 == 76 #z = asinh( 1/#z ) elseif @formula1 == 77 #z = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c elseif @formula1 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula1 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula1 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula1 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula1 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula1 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula1 == 84 #z = sinh(1/#z) elseif @formula1 == 85 #z = cosh(1/#z) elseif @formula1 == 86 #z = tanh(1/#z) elseif @formula1 == 87 #z = cotanh(1/#z) elseif @formula1 == 88 #z = (1,0)/cosh(1/#z) elseif @formula1 == 89 #z = (1,0)/sinh(1/#z) else ; @formula1 == 90 #z = sin( #z ) * tan(#z) endif ; formula1-2 else ; 90 < @formula1 <= 120 if @formula1 == 91 #z = sinh(#z) * tanh(#z) elseif @formula1 == 92 #z = sinh(#z) * cosh(#z) elseif @formula1 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula1 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula1 == 97 #z = sin(#z) * cos(1/#z) elseif @formula1 == 98 #z = sin(#z) * sin(1/#z) elseif @formula1 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula1 == 100 #z = sin(#z) * sin(2*#z) elseif @formula1 == 101 #z = exp(2*#z) elseif @formula1 == 102 #z = exp(-2*#z) elseif @formula1 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula1 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula1 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula1 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula1 == 107 #z = sin(#z) * sinh(#z) elseif @formula1 == 108 #z = sin(#z) * cosh(#z) elseif @formula1 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 110 #z = sin(#z)*exp(#z) elseif @formula1 == 111 #z = cos(#z)*exp(#z) elseif @formula1 == 112 #z = sinh(#z)*exp(#z) elseif @formula1 == 113 #z = cosh(#z)*exp(#z) elseif @formula1 == 114 #z = sin(#z)*log(#z) elseif @formula1 == 115 #z = cos(#z)*log(#z) elseif @formula1 == 116 #z = sinh(#z)*log(#z) else ; @formula1 == 117 #z = cosh(#z)*log(#z) endif ; formula1-2 endif ; formula1-1 else ; remainder == 0 ; Execute 2nd formula selection if @formula2 == 0 #z = #z * #z elseif @formula2 == 1 #z = #z * #z * #z elseif @formula2 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula2 <= 60 if @formula2 <= 30 if @formula2 == 3 #z = #z ^ @power2 elseif @formula2 == 4 #z = 1/#z elseif @formula2 == 5 #z = sqrt(#z) elseif @formula2 == 6 #z = 1 / ( #z * #z ) elseif @formula2 == 7 #z = log(#z) elseif @formula2 == 8 #z = exp( #z) elseif @formula2 == 9 #z = #z^#z elseif @formula2 == 10 #z = sin( #z ) elseif @formula2 == 11 #z = cos( #z ) elseif @formula2 == 12 #z = tan( #z ) elseif @formula2 == 13 #z = asin( #z ) elseif @formula2 == 14 #z = acos( #z ) elseif @formula2 == 15 #z = atan( #z ) elseif @formula2 == 16 #z = sinh( #z ) elseif @formula2 == 17 #z = cosh( #z ) elseif @formula2 == 18 #z = tanh( #z ) elseif @formula2 == 19 #z = asinh( #z ) elseif @formula2 == 20 #z = acosh( #z ) elseif @formula2 == 21 #z = atanh( #z ) elseif @formula2 == 22 #z = log( 1/#z ) elseif @formula2 == 23 #z = log( log( #z )) elseif @formula2 == 24 #z = exp( -#z ) elseif @formula2 == 25 #z = exp( 1/#z ) elseif @formula2 == 26 #z = #z^(-#z) elseif @formula2 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula2 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula2 == 29 zextra = tan( #z ) #z = zextra * zextra else ; @formula2 == 30 #z = cotan( #z ) endif ; formula2-3 else ; 30 < @formula2 <= 60 if @formula2 == 31 #z = 1/cos( #z ) elseif @formula2 == 32 #z = 1/sin( #z ) elseif @formula2 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula2 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula2 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula2 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula2 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula2 == 38 #z = log(-#z) elseif @formula2 == 39 #z = 1/log( #z ) elseif @formula2 == 40 #z = #z * log( #z ) elseif @formula2 == 41 #z = sin( #z ) / #z elseif @formula2 == 42 #z = cos( #z ) / #z elseif @formula2 == 43 #z = sin( #z ) * cos( #z ) elseif @formula2 == 44 #z = sin( #z^2 ) elseif @formula2 == 45 #z = exp( -1/#z ) elseif @formula2 == 46 #z = #z * exp( #z ) elseif @formula2 == 47 #z = #z * exp( -#z ) elseif @formula2 == 48 #z = #z * exp( 1/#z ) elseif @formula2 == 49 #z = #z * exp( -1/#z ) elseif @formula2 == 50 #z = #z * #z * #z elseif @formula2 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula2 == 52 #z = atan( 1 / #z ) elseif @formula2 == 53 #z = acos( 1 / #z ) elseif @formula2 == 54 #z = asin( 1 / #z ) elseif @formula2 == 55 #z = tan( #z ) / #z elseif @formula2 == 56 #z = cotan( #z ) / #z elseif @formula2 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula2 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula2 == 59 #z = #z * sin( #z ) else ; @formula2 == 60 #z = #z * cos( #z ) endif ; formula2-3 endif ; formula2-2 elseif @formula2 <= 90 if @formula2 == 61 #z = #z * tan( #z ) elseif @formula2 == 62 #z = #z * cotan( #z ) elseif @formula2 == 63 #z = #z/cos( #z ) elseif @formula2 == 64 #z = #z/sin( #z ) elseif @formula2 == 65 #z = sin( 1/#z ) elseif @formula2 == 66 #z = cos( 1/#z ) elseif @formula2 == 67 #z = tan( 1/#z ) elseif @formula2 == 68 #z = cotan( 1/#z ) elseif @formula2 == 69 #z = 1/cos( 1/#z ) elseif @formula2 == 70 #z = 1/sin( 1/#z ) elseif @formula2 == 71 #z = cotanh( #z ) elseif @formula2 == 72 #z = 1/cosh( #z ) elseif @formula2 == 73 #z = 1/sinh( #z ) elseif @formula2 == 74 #z = atanh( 1/#z ) elseif @formula2 == 75 #z = acosh( 1/#z ) elseif @formula2 == 76 #z = asinh( 1/#z ) elseif @formula2 == 77 #z = @coeff2a * #z^@exponent2a + @coeff2b * #z^@exponent2b + @coeff2c * #z^@exponent2c elseif @formula2 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula2 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula2 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula2 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula2 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula2 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula2 == 84 #z = sinh(1/#z) elseif @formula2 == 85 #z = cosh(1/#z) elseif @formula2 == 86 #z = tanh(1/#z) elseif @formula2 == 87 #z = cotanh(1/#z) elseif @formula2 == 88 #z = (1,0)/cosh(1/#z) elseif @formula2 == 89 #z = (1,0)/sinh(1/#z) else ; @formula2 == 90 #z = sin( #z ) * tan(#z) endif ; formula2-2 else ; 90 < @formula2 <= 120 if @formula2 == 91 #z = sinh(#z) * tanh(#z) elseif @formula2 == 92 #z = sinh(#z) * cosh(#z) elseif @formula2 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula2 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula2 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula2 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula2 == 97 #z = sin(#z) * cos(1/#z) elseif @formula2 == 98 #z = sin(#z) * sin(1/#z) elseif @formula2 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula2 == 100 #z = sin(#z) * sin(2*#z) elseif @formula2 == 101 #z = exp(2*#z) elseif @formula2 == 102 #z = exp(-2*#z) elseif @formula2 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula2 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula2 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula2 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula2 == 107 #z = sin(#z) * sinh(#z) elseif @formula2 == 108 #z = sin(#z) * cosh(#z) elseif @formula2 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula2 == 110 #z = sin(#z)*exp(#z) elseif @formula2 == 111 #z = cos(#z)*exp(#z) elseif @formula2 == 112 #z = sinh(#z)*exp(#z) elseif @formula2 == 113 #z = cosh(#z)*exp(#z) elseif @formula2 == 114 #z = sin(#z)*log(#z) elseif @formula2 == 115 #z = cos(#z)*log(#z) elseif @formula2 == 116 #z = sinh(#z)*log(#z) else ; @formula2 == 117 #z = cosh(#z)*log(#z) endif ; formula2-2 endif ; formula2-1 endif ; remainder if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend if @pmode != 1 #z = #z + jc endif ; pmode bailout: |z| < @bail default: title = "2Cycle General" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param formula1 caption = "Formula 1" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula executed during the 1st series (ODD-NUMBERED) iterations. \ For 'z^power', use parameter 'Power 1' to set power. For '3-term polynomial' set \ params 'Coeff 1a', 'Exponent 1a', 'Coeff 1b', 'Exponent 1b', 'Coeff 1c', \ 'Exponent 1c'." endparam param formula2 caption = "Formula 2" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 7 hint = "Sets the formula executed during the 2nd series (EVEN-NUMBERED) iterations. \ For 'z^power', use parameter 'Power 2' to set power. For '3-term polynomial' set \ params 'Coeff 2a', 'Exponent 2a', 'Coeff 2b', 'Exponent 2b', 'Coeff 2c', \ 'Exponent 2c'." endparam param power1 caption = "Power 1" default = (5,0) hint = "This is the power used for the first formula series if parameter \ 'Formula 1' is set to 'z^power'" visible = @formula1 == "z^power" endparam param power2 caption = "Power 2" default = (6,0) hint = "This is the power used for the second formula series if parameter \ 'Formula 2' is set to 'z^power'" visible = @formula2 == "z^power" endparam param coeff1a caption = "Coeff 1A" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula1 == "3-term polynomial" endparam param exponent1a caption = "Exponent 1A" default = (6,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula1 == "3-term polynomial" endparam param coeff1b caption = "Coeff 1B" default = (-1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula1 == "3-term polynomial" endparam param exponent1b caption = "Exponent 1B" default = (4,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula1 == "3-term polynomial" endparam param coeff1c caption = "Coeff 1C" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula1 == "3-term polynomial" endparam param exponent1c caption = "Exponent 1C" default = (2,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula1 == "3-term polynomial" endparam param coeff2a caption = "Coeff 2A" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula2 == "3-term polynomial" endparam param exponent2a caption = "Exponent 2A" default = (6,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula2 == "3-term polynomial" endparam param coeff2b caption = "Coeff 2B" default = (-1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula2 == "3-term polynomial" endparam param exponent2b caption = "Exponent 2B" default = (4,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula2 == "3-term polynomial" endparam param coeff2c caption = "Coeff 2C" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula2 == "3-term polynomial" endparam param exponent2c caption = "Exponent 2C" default = (2,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula2 == "3-term polynomial" endparam param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" "p^p" \ "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" visible = @pixelformula == "p^power" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-alt2Cycle-general-J" jconstant = #pixel bail = bail formula1 = formula1 formula2 = formula2 power1 = power1 power2 = power2 coeff1a = coeff1a exponent1a = exponent1a coeff1b = coeff1b exponent1b = exponent1b coeff1c = coeff1c exponent1c = exponent1c coeff2a = coeff2a exponent2a = exponent2a coeff2b = coeff2b exponent2b = exponent2b coeff2c = coeff2c exponent2c = exponent2c blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-alt2Cycle-general-J { ; jam 011009 ; Alternating-type Mandelbrot/Julia in which 2 independent formulas ; are repeatedly, sequentially executed on alternate iterations. ; Formula 1 is executed on iterations 1,3,5,... (odd iterations; 1 mod 2); ; Formula 2 is executed on iterations 2,4,6,... (even; 0 mod 2). ; The 3-term polynomial formula option is ; z = ( CoeffA * z^ExponentA ) + ( CoeffB * z^ExponentB ) + ( CoeffC * z^ExponentC ) + constant init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0, int remainder = 0 complex zextra = complex ztemp = complex temp2 = (0,0) ; temp/spare scratch variable complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 ztemp = sinh(jc), zextra = cosh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 95 ztemp = sin(jc), zextra = cos(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), ztemp = sinh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: if @pmode != 0 #z = #z + jc endif ; pmode iterations = iterations + 1 remainder = iterations % 2 zblend = z if remainder == 1 ; Execute 1st formula selection if @formula1 == 0 #z = #z * #z elseif @formula1 == 1 #z = #z * #z * #z elseif @formula1 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula1 <= 60 if @formula1 <= 30 if @formula1 == 3 #z = #z ^ @power1 elseif @formula1 == 4 #z = 1/#z elseif @formula1 == 5 #z = sqrt(#z) elseif @formula1 == 6 #z = 1 / ( #z * #z ) elseif @formula1 == 7 #z = log(#z) elseif @formula1 == 8 #z = exp( #z) elseif @formula1 == 9 #z = #z^#z elseif @formula1 == 10 #z = sin( #z ) elseif @formula1 == 11 #z = cos( #z ) elseif @formula1 == 12 #z = tan( #z ) elseif @formula1 == 13 #z = asin( #z ) elseif @formula1 == 14 #z = acos( #z ) elseif @formula1 == 15 #z = atan( #z ) elseif @formula1 == 16 #z = sinh( #z ) elseif @formula1 == 17 #z = cosh( #z ) elseif @formula1 == 18 #z = tanh( #z ) elseif @formula1 == 19 #z = asinh( #z ) elseif @formula1 == 20 #z = acosh( #z ) elseif @formula1 == 21 #z = atanh( #z ) elseif @formula1 == 22 #z = log( 1/#z ) elseif @formula1 == 23 #z = log( log( #z )) elseif @formula1 == 24 #z = exp( -#z ) elseif @formula1 == 25 #z = exp( 1/#z ) elseif @formula1 == 26 #z = #z^(-#z) elseif @formula1 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula1 == 29 zextra = tan( #z ) #z = zextra * zextra else ; @formula1 == 30 #z = cotan( #z ) endif ; formula1-3 else ; 30 < @formula1 <= 60 if @formula1 == 31 #z = 1/cos( #z ) elseif @formula1 == 32 #z = 1/sin( #z ) elseif @formula1 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula1 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula1 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula1 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula1 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula1 == 38 #z = log(-#z) elseif @formula1 == 39 #z = 1/log( #z ) elseif @formula1 == 40 #z = #z * log( #z ) elseif @formula1 == 41 #z = sin( #z ) / #z elseif @formula1 == 42 #z = cos( #z ) / #z elseif @formula1 == 43 #z = sin( #z ) * cos( #z ) elseif @formula1 == 44 #z = sin( #z^2 ) elseif @formula1 == 45 #z = exp( -1/#z ) elseif @formula1 == 46 #z = #z * exp( #z ) elseif @formula1 == 47 #z = #z * exp( -#z ) elseif @formula1 == 48 #z = #z * exp( 1/#z ) elseif @formula1 == 49 #z = #z * exp( -1/#z ) elseif @formula1 == 50 #z = #z * #z * #z elseif @formula1 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula1 == 52 #z = atan( 1 / #z ) elseif @formula1 == 53 #z = acos( 1 / #z ) elseif @formula1 == 54 #z = asin( 1 / #z ) elseif @formula1 == 55 #z = tan( #z ) / #z elseif @formula1 == 56 #z = cotan( #z ) / #z elseif @formula1 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula1 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula1 == 59 #z = #z * sin( #z ) else ; @formula1 == 60 #z = #z * cos( #z ) endif ; formula1-3 endif ; formula1-2 elseif @formula1 <= 90 if @formula1 == 61 #z = #z * tan( #z ) elseif @formula1 == 62 #z = #z * cotan( #z ) elseif @formula1 == 63 #z = #z/cos( #z ) elseif @formula1 == 64 #z = #z/sin( #z ) elseif @formula1 == 65 #z = sin( 1/#z ) elseif @formula1 == 66 #z = cos( 1/#z ) elseif @formula1 == 67 #z = tan( 1/#z ) elseif @formula1 == 68 #z = cotan( 1/#z ) elseif @formula1 == 69 #z = 1/cos( 1/#z ) elseif @formula1 == 70 #z = 1/sin( 1/#z ) elseif @formula1 == 71 #z = cotanh( #z ) elseif @formula1 == 72 #z = 1/cosh( #z ) elseif @formula1 == 73 #z = 1/sinh( #z ) elseif @formula1 == 74 #z = atanh( 1/#z ) elseif @formula1 == 75 #z = acosh( 1/#z ) elseif @formula1 == 76 #z = asinh( 1/#z ) elseif @formula1 == 77 #z = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c elseif @formula1 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula1 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula1 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula1 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula1 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula1 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula1 == 84 #z = sinh(1/#z) elseif @formula1 == 85 #z = cosh(1/#z) elseif @formula1 == 86 #z = tanh(1/#z) elseif @formula1 == 87 #z = cotanh(1/#z) elseif @formula1 == 88 #z = (1,0)/cosh(1/#z) elseif @formula1 == 89 #z = (1,0)/sinh(1/#z) else ; @formula1 == 90 #z = sin( #z ) * tan(#z) endif ; formula1-2 else ; 90 < @formula1 <= 120 if @formula1 == 91 #z = sinh(#z) * tanh(#z) elseif @formula1 == 92 #z = sinh(#z) * cosh(#z) elseif @formula1 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula1 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula1 == 97 #z = sin(#z) * cos(1/#z) elseif @formula1 == 98 #z = sin(#z) * sin(1/#z) elseif @formula1 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula1 == 100 #z = sin(#z) * sin(2*#z) elseif @formula1 == 101 #z = exp(2*#z) elseif @formula1 == 102 #z = exp(-2*#z) elseif @formula1 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula1 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula1 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula1 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula1 == 107 #z = sin(#z) * sinh(#z) elseif @formula1 == 108 #z = sin(#z) * cosh(#z) elseif @formula1 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 110 #z = sin(#z)*exp(#z) elseif @formula1 == 111 #z = cos(#z)*exp(#z) elseif @formula1 == 112 #z = sinh(#z)*exp(#z) elseif @formula1 == 113 #z = cosh(#z)*exp(#z) elseif @formula1 == 114 #z = sin(#z)*log(#z) elseif @formula1 == 115 #z = cos(#z)*log(#z) elseif @formula1 == 116 #z = sinh(#z)*log(#z) else ; @formula1 == 117 #z = cosh(#z)*log(#z) endif ; formula1-2 endif ; formula1-1 else ; remainder == 0 ; Execute 2nd formula selection if @formula2 == 0 #z = #z * #z elseif @formula2 == 1 #z = #z * #z * #z elseif @formula2 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula2 <= 60 if @formula2 <= 30 if @formula2 == 3 #z = #z ^ @power2 elseif @formula2 == 4 #z = 1/#z elseif @formula2 == 5 #z = sqrt(#z) elseif @formula2 == 6 #z = 1 / ( #z * #z ) elseif @formula2 == 7 #z = log(#z) elseif @formula2 == 8 #z = exp( #z) elseif @formula2 == 9 #z = #z^#z elseif @formula2 == 10 #z = sin( #z ) elseif @formula2 == 11 #z = cos( #z ) elseif @formula2 == 12 #z = tan( #z ) elseif @formula2 == 13 #z = asin( #z ) elseif @formula2 == 14 #z = acos( #z ) elseif @formula2 == 15 #z = atan( #z ) elseif @formula2 == 16 #z = sinh( #z ) elseif @formula2 == 17 #z = cosh( #z ) elseif @formula2 == 18 #z = tanh( #z ) elseif @formula2 == 19 #z = asinh( #z ) elseif @formula2 == 20 #z = acosh( #z ) elseif @formula2 == 21 #z = atanh( #z ) elseif @formula2 == 22 #z = log( 1/#z ) elseif @formula2 == 23 #z = log( log( #z )) elseif @formula2 == 24 #z = exp( -#z ) elseif @formula2 == 25 #z = exp( 1/#z ) elseif @formula2 == 26 #z = #z^(-#z) elseif @formula2 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula2 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula2 == 29 zextra = tan( #z ) #z = zextra * zextra else ; @formula2 == 30 #z = cotan( #z ) endif ; formula2-3 else ; 30 < @formula2 <= 60 if @formula2 == 31 #z = 1/cos( #z ) elseif @formula2 == 32 #z = 1/sin( #z ) elseif @formula2 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula2 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula2 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula2 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula2 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula2 == 38 #z = log(-#z) elseif @formula2 == 39 #z = 1/log( #z ) elseif @formula2 == 40 #z = #z * log( #z ) elseif @formula2 == 41 #z = sin( #z ) / #z elseif @formula2 == 42 #z = cos( #z ) / #z elseif @formula2 == 43 #z = sin( #z ) * cos( #z ) elseif @formula2 == 44 #z = sin( #z^2 ) elseif @formula2 == 45 #z = exp( -1/#z ) elseif @formula2 == 46 #z = #z * exp( #z ) elseif @formula2 == 47 #z = #z * exp( -#z ) elseif @formula2 == 48 #z = #z * exp( 1/#z ) elseif @formula2 == 49 #z = #z * exp( -1/#z ) elseif @formula2 == 50 #z = #z * #z * #z elseif @formula2 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula2 == 52 #z = atan( 1 / #z ) elseif @formula2 == 53 #z = acos( 1 / #z ) elseif @formula2 == 54 #z = asin( 1 / #z ) elseif @formula2 == 55 #z = tan( #z ) / #z elseif @formula2 == 56 #z = cotan( #z ) / #z elseif @formula2 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula2 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula2 == 59 #z = #z * sin( #z ) else ; @formula2 == 60 #z = #z * cos( #z ) endif ; formula2-3 endif ; formula2-2 elseif @formula2 <= 90 if @formula2 == 61 #z = #z * tan( #z ) elseif @formula2 == 62 #z = #z * cotan( #z ) elseif @formula2 == 63 #z = #z/cos( #z ) elseif @formula2 == 64 #z = #z/sin( #z ) elseif @formula2 == 65 #z = sin( 1/#z ) elseif @formula2 == 66 #z = cos( 1/#z ) elseif @formula2 == 67 #z = tan( 1/#z ) elseif @formula2 == 68 #z = cotan( 1/#z ) elseif @formula2 == 69 #z = 1/cos( 1/#z ) elseif @formula2 == 70 #z = 1/sin( 1/#z ) elseif @formula2 == 71 #z = cotanh( #z ) elseif @formula2 == 72 #z = 1/cosh( #z ) elseif @formula2 == 73 #z = 1/sinh( #z ) elseif @formula2 == 74 #z = atanh( 1/#z ) elseif @formula2 == 75 #z = acosh( 1/#z ) elseif @formula2 == 76 #z = asinh( 1/#z ) elseif @formula2 == 77 #z = @coeff2a * #z^@exponent2a + @coeff2b * #z^@exponent2b + @coeff2c * #z^@exponent2c elseif @formula2 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula2 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula2 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula2 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula2 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula2 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula2 == 84 #z = sinh(1/#z) elseif @formula2 == 85 #z = cosh(1/#z) elseif @formula2 == 86 #z = tanh(1/#z) elseif @formula2 == 87 #z = cotanh(1/#z) elseif @formula2 == 88 #z = (1,0)/cosh(1/#z) elseif @formula2 == 89 #z = (1,0)/sinh(1/#z) else ; @formula2 == 90 #z = sin( #z ) * tan(#z) endif ; formula2-2 else ; 90 < @formula2 <= 120 if @formula2 == 91 #z = sinh(#z) * tanh(#z) elseif @formula2 == 92 #z = sinh(#z) * cosh(#z) elseif @formula2 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula2 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula2 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula2 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula2 == 97 #z = sin(#z) * cos(1/#z) elseif @formula2 == 98 #z = sin(#z) * sin(1/#z) elseif @formula2 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula2 == 100 #z = sin(#z) * sin(2*#z) elseif @formula2 == 101 #z = exp(2*#z) elseif @formula2 == 102 #z = exp(-2*#z) elseif @formula2 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula2 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula2 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula2 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula2 == 107 #z = sin(#z) * sinh(#z) elseif @formula2 == 108 #z = sin(#z) * cosh(#z) elseif @formula2 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula2 == 110 #z = sin(#z)*exp(#z) elseif @formula2 == 111 #z = cos(#z)*exp(#z) elseif @formula2 == 112 #z = sinh(#z)*exp(#z) elseif @formula2 == 113 #z = cosh(#z)*exp(#z) elseif @formula2 == 114 #z = sin(#z)*log(#z) elseif @formula2 == 115 #z = cos(#z)*log(#z) elseif @formula2 == 116 #z = sinh(#z)*log(#z) else ; @formula2 == 117 #z = cosh(#z)*log(#z) endif ; formula2-2 endif ; formula2-1 endif ; remainder if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend if @pmode != 1 #z = #z + jc endif ; pmode bailout: |z| < @bail default: title = "2Cycle General Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param formula1 caption = "Formula 1" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula executed during the 1st series (ODD-NUMBERED) iterations. \ For 'z^power', use parameter 'Power 1' to set power. For '3-term polynomial' set \ params 'Coeff 1a', 'Exponent 1a', 'Coeff 1b', 'Exponent 1b', 'Coeff 1c', \ 'Exponent 1c'." endparam param formula2 caption = "Formula 2" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 7 hint = "Sets the formula executed during the 2nd series (EVEN-NUMBERED) iterations. \ For 'z^power', use parameter 'Power 2' to set power. For '3-term polynomial' set \ params 'Coeff 2a', 'Exponent 2a', 'Coeff 2b', 'Exponent 2b', 'Coeff 2c', \ 'Exponent 2c'." endparam param power1 caption = "Power 1" default = (5,0) hint = "This is the power used for the first formula series if parameter \ 'Formula 1' is set to 'z^power'" visible = @formula1 == "z^power" endparam param power2 caption = "Power 2" default = (6,0) hint = "This is the power used for the second formula series if parameter \ 'Formula 2' is set to 'z^power'" visible = @formula2 == "z^power" endparam param coeff1a caption = "Coeff 1A" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula1 == "3-term polynomial" endparam param exponent1a caption = "Exponent 1A" default = (6,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula1 == "3-term polynomial" endparam param coeff1b caption = "Coeff 1B" default = (-1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula1 == "3-term polynomial" endparam param exponent1b caption = "Exponent 1B" default = (4,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula1 == "3-term polynomial" endparam param coeff1c caption = "Coeff 1C" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula1 == "3-term polynomial" endparam param exponent1c caption = "Exponent 1C" default = (2,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula1 == "3-term polynomial" endparam param coeff2a caption = "Coeff 2A" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula2 == "3-term polynomial" endparam param exponent2a caption = "Exponent 2A" default = (6,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula2 == "3-term polynomial" endparam param coeff2b caption = "Coeff 2B" default = (-1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula2 == "3-term polynomial" endparam param exponent2b caption = "Exponent 2B" default = (4,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula2 == "3-term polynomial" endparam param coeff2c caption = "Coeff 2C" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula2 == "3-term polynomial" endparam param exponent2c caption = "Exponent 2C" default = (2,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula2 == "3-term polynomial" endparam param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" "p^p" \ "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" visible = @pixelformula == "p^power" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-alt2Cycle-general" perturbation = #pixel bail = bail formula1 = formula1 formula2 = formula2 power1 = power1 power2 = power2 coeff1a = coeff1a exponent1a = exponent1a coeff1b = coeff1b exponent1b = exponent1b coeff1c = coeff1c exponent1c = exponent1c coeff2a = coeff2a exponent2a = exponent2a coeff2b = coeff2b exponent2b = exponent2b coeff2c = coeff2c exponent2c = exponent2c blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-altNCycle-general { ; jam 011009 ; Alternating-type Mandelbrot/Julia in which 4 independent formulas ; are repeatedly, sequentially executed on alternate iterations. ; Formula 1 is executed on iteration 1,N+1,2N+1,... (all iterations 1 mod N), ; and also on all iterations where none of Formulas 2, 3, or 4 are iterated; ; Formula 2 is executed on iteration N,2N,3N,... (all iterations 0 mod N); ; Formula 3, if set, is executed on iterations a mod N, where 1 < a < N; ; Formula 4, if set, is executed on iterations b mod N, where 1 < b < N. ; The 3-term polynomial formula option is ; z = ( CoeffA * z^ExponentA ) + ( CoeffB * z^ExponentB ) + ( CoeffC * z^ExponentC ) + constant init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0, int remainder = 0 complex zextra = complex ztemp = complex temp2 = (0,0) ; temp/spare scratch variables complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 ztemp = sinh(jc), zextra = cosh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 95 ztemp = sin(jc), zextra = cos(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), ztemp = sinh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: if @pmode != 0 #z = #z + jc endif ; pmode zblend = z iterations = iterations + 1 remainder = iterations % @divisor if remainder == 1 ; Execute 1st formula selection if @formula1 == 0 #z = #z * #z elseif @formula1 == 1 #z = #z * #z * #z elseif @formula1 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula1 == 3 #z = #z ^ @power1 elseif @formula1 == 4 #z = 1/#z elseif @formula1 == 5 #z = sqrt(#z) elseif @formula1 == 6 #z = 1 / ( #z * #z ) elseif @formula1 == 7 #z = log(#z) elseif @formula1 == 8 #z = exp( #z) elseif @formula1 == 9 #z = #z^#z elseif @formula1 == 10 #z = sin( #z ) elseif @formula1 == 11 #z = cos( #z ) elseif @formula1 == 12 #z = tan( #z ) elseif @formula1 == 13 #z = asin( #z ) elseif @formula1 == 14 #z = acos( #z ) elseif @formula1 == 15 #z = atan( #z ) elseif @formula1 == 16 #z = sinh( #z ) elseif @formula1 == 17 #z = cosh( #z ) elseif @formula1 == 18 #z = tanh( #z ) elseif @formula1 == 19 #z = asinh( #z ) elseif @formula1 == 20 #z = acosh( #z ) elseif @formula1 == 21 #z = atanh( #z ) elseif @formula1 == 22 #z = log( 1/#z ) elseif @formula1 == 23 #z = log( log( #z )) elseif @formula1 == 24 #z = exp( -#z ) elseif @formula1 == 25 #z = exp( 1/#z ) elseif @formula1 == 26 #z = #z^(-#z) elseif @formula1 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula1 == 29 zextra = tan( #z ) #z = zextra * zextra elseif @formula1 == 30 #z = cotan( #z ) elseif @formula1 == 31 #z = 1/cos( #z ) elseif @formula1 == 32 #z = 1/sin( #z ) elseif @formula1 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula1 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula1 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula1 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula1 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula1 == 38 #z = log(-#z) elseif @formula1 == 39 #z = 1/log( #z ) elseif @formula1 == 40 #z = #z * log( #z ) elseif @formula1 == 41 #z = sin( #z ) / #z elseif @formula1 == 42 #z = cos( #z ) / #z elseif @formula1 == 43 #z = sin( #z ) * cos( #z ) elseif @formula1 == 44 #z = sin( #z^2 ) elseif @formula1 == 45 #z = exp( -1/#z ) elseif @formula1 == 46 #z = #z * exp( #z ) elseif @formula1 == 47 #z = #z * exp( -#z ) elseif @formula1 == 48 #z = #z * exp( 1/#z ) elseif @formula1 == 49 #z = #z * exp( -1/#z ) elseif @formula1 == 50 #z = #z * #z * #z elseif @formula1 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula1 == 52 #z = atan( 1 / #z ) elseif @formula1 == 53 #z = acos( 1 / #z ) elseif @formula1 == 54 #z = asin( 1 / #z ) elseif @formula1 == 55 #z = tan( #z ) / #z elseif @formula1 == 56 #z = cotan( #z ) / #z elseif @formula1 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula1 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula1 == 59 #z = #z * sin( #z ) elseif @formula1 == 60 #z = #z * cos( #z ) elseif @formula1 == 61 #z = #z * tan( #z ) elseif @formula1 == 62 #z = #z * cotan( #z ) elseif @formula1 == 63 #z = #z/cos( #z ) elseif @formula1 == 64 #z = #z/sin( #z ) elseif @formula1 == 65 #z = sin( 1/#z ) elseif @formula1 == 66 #z = cos( 1/#z ) elseif @formula1 == 67 #z = tan( 1/#z ) elseif @formula1 == 68 #z = cotan( 1/#z ) elseif @formula1 == 69 #z = 1/cos( 1/#z ) elseif @formula1 == 70 #z = 1/sin( 1/#z ) elseif @formula1 == 71 #z = cotanh( #z ) elseif @formula1 == 72 #z = 1/cosh( #z ) elseif @formula1 == 73 #z = 1/sinh( #z ) elseif @formula1 == 74 #z = atanh( 1/#z ) elseif @formula1 == 75 #z = acosh( 1/#z ) elseif @formula1 == 76 #z = asinh( 1/#z ) elseif @formula1 == 77 #z = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c elseif @formula1 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula1 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula1 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula1 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula1 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula1 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula1 == 84 #z = sinh(1/#z) elseif @formula1 == 85 #z = cosh(1/#z) elseif @formula1 == 86 #z = tanh(1/#z) elseif @formula1 == 87 #z = cotanh(1/#z) elseif @formula1 == 88 #z = (1,0)/cosh(1/#z) elseif @formula1 == 89 #z = (1,0)/sinh(1/#z) elseif @formula1 == 90 #z = sin( #z ) * tan(#z) elseif @formula1 == 91 #z = sinh(#z) * tanh(#z) elseif @formula1 == 92 #z = sinh(#z) * cosh(#z) elseif @formula1 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula1 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula1 == 97 #z = sin(#z) * cos(1/#z) elseif @formula1 == 98 #z = sin(#z) * sin(1/#z) elseif @formula1 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula1 == 100 #z = sin(#z) * sin(2*#z) elseif @formula1 == 101 #z = exp(2*#z) elseif @formula1 == 102 #z = exp(-2*#z) elseif @formula1 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula1 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula1 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula1 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula1 == 107 #z = sin(#z) * sinh(#z) elseif @formula1 == 108 #z = sin(#z) * cosh(#z) elseif @formula1 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 110 #z = sin(#z)*exp(#z) elseif @formula1 == 111 #z = cos(#z)*exp(#z) elseif @formula1 == 112 #z = sinh(#z)*exp(#z) elseif @formula1 == 113 #z = cosh(#z)*exp(#z) elseif @formula1 == 114 #z = sin(#z)*log(#z) elseif @formula1 == 115 #z = cos(#z)*log(#z) elseif @formula1 == 116 #z = sinh(#z)*log(#z) elseif @formula1 == 117 #z = cosh(#z)*log(#z) elseif @formula1 == 118 #z = exp(#z*#z) elseif @formula1 == 119 #z = exp(-(#z*#z)) elseif @formula1 == 120 #z = exp(1/(#z*#z)) else ; @formula1 == 121 #z = exp(-1/(#z*#z)) endif ; formula1-1 elseif remainder == 0 ; Execute 2nd formula selection if @formula2 == 0 #z = #z * #z elseif @formula2 == 1 #z = #z * #z * #z elseif @formula2 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula2 == 3 #z = #z ^ @power1 elseif @formula2 == 4 #z = 1/#z elseif @formula2 == 5 #z = sqrt(#z) elseif @formula2 == 6 #z = 1 / ( #z * #z ) elseif @formula2 == 7 #z = log(#z) elseif @formula2 == 8 #z = exp( #z) elseif @formula2 == 9 #z = #z^#z elseif @formula2 == 10 #z = sin( #z ) elseif @formula2 == 11 #z = cos( #z ) elseif @formula2 == 12 #z = tan( #z ) elseif @formula2 == 13 #z = asin( #z ) elseif @formula2 == 14 #z = acos( #z ) elseif @formula2 == 15 #z = atan( #z ) elseif @formula2 == 16 #z = sinh( #z ) elseif @formula2 == 17 #z = cosh( #z ) elseif @formula2 == 18 #z = tanh( #z ) elseif @formula2 == 19 #z = asinh( #z ) elseif @formula2 == 20 #z = acosh( #z ) elseif @formula2 == 21 #z = atanh( #z ) elseif @formula2 == 22 #z = log( 1/#z ) elseif @formula2 == 23 #z = log( log( #z )) elseif @formula2 == 24 #z = exp( -#z ) elseif @formula2 == 25 #z = exp( 1/#z ) elseif @formula2 == 26 #z = #z^(-#z) elseif @formula2 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula2 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula2 == 29 zextra = tan( #z ) #z = zextra * zextra elseif @formula2 == 30 #z = cotan( #z ) elseif @formula2 == 31 #z = 1/cos( #z ) elseif @formula2 == 32 #z = 1/sin( #z ) elseif @formula2 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula2 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula2 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula2 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula2 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula2 == 38 #z = log(-#z) elseif @formula2 == 39 #z = 1/log( #z ) elseif @formula2 == 40 #z = #z * log( #z ) elseif @formula2 == 41 #z = sin( #z ) / #z elseif @formula2 == 42 #z = cos( #z ) / #z elseif @formula2 == 43 #z = sin( #z ) * cos( #z ) elseif @formula2 == 44 #z = sin( #z^2 ) elseif @formula2 == 45 #z = exp( -1/#z ) elseif @formula2 == 46 #z = #z * exp( #z ) elseif @formula2 == 47 #z = #z * exp( -#z ) elseif @formula2 == 48 #z = #z * exp( 1/#z ) elseif @formula2 == 49 #z = #z * exp( -1/#z ) elseif @formula2 == 50 #z = #z * #z * #z elseif @formula2 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula2 == 52 #z = atan( 1 / #z ) elseif @formula2 == 53 #z = acos( 1 / #z ) elseif @formula2 == 54 #z = asin( 1 / #z ) elseif @formula2 == 55 #z = tan( #z ) / #z elseif @formula2 == 56 #z = cotan( #z ) / #z elseif @formula2 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula2 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula2 == 59 #z = #z * sin( #z ) elseif @formula2 == 60 #z = #z * cos( #z ) elseif @formula2 == 61 #z = #z * tan( #z ) elseif @formula2 == 62 #z = #z * cotan( #z ) elseif @formula2 == 63 #z = #z/cos( #z ) elseif @formula2 == 64 #z = #z/sin( #z ) elseif @formula2 == 65 #z = sin( 1/#z ) elseif @formula2 == 66 #z = cos( 1/#z ) elseif @formula2 == 67 #z = tan( 1/#z ) elseif @formula2 == 68 #z = cotan( 1/#z ) elseif @formula2 == 69 #z = 1/cos( 1/#z ) elseif @formula2 == 70 #z = 1/sin( 1/#z ) elseif @formula2 == 71 #z = cotanh( #z ) elseif @formula2 == 72 #z = 1/cosh( #z ) elseif @formula2 == 73 #z = 1/sinh( #z ) elseif @formula2 == 74 #z = atanh( 1/#z ) elseif @formula2 == 75 #z = acosh( 1/#z ) elseif @formula2 == 76 #z = asinh( 1/#z ) elseif @formula2 == 77 #z = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c elseif @formula2 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula2 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula2 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula2 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula2 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula2 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula2 == 84 #z = sinh(1/#z) elseif @formula2 == 85 #z = cosh(1/#z) elseif @formula2 == 86 #z = tanh(1/#z) elseif @formula2 == 87 #z = cotanh(1/#z) elseif @formula2 == 88 #z = (1,0)/cosh(1/#z) elseif @formula2 == 89 #z = (1,0)/sinh(1/#z) elseif @formula2 == 90 #z = sin( #z ) * tan(#z) elseif @formula2 == 91 #z = sinh(#z) * tanh(#z) elseif @formula2 == 92 #z = sinh(#z) * cosh(#z) elseif @formula2 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula2 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula2 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula2 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula2 == 97 #z = sin(#z) * cos(1/#z) elseif @formula2 == 98 #z = sin(#z) * sin(1/#z) elseif @formula2 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula2 == 100 #z = sin(#z) * sin(2*#z) elseif @formula2 == 101 #z = exp(2*#z) elseif @formula2 == 102 #z = exp(-2*#z) elseif @formula2 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula2 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula2 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula2 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula2 == 107 #z = sin(#z) * sinh(#z) elseif @formula2 == 108 #z = sin(#z) * cosh(#z) elseif @formula2 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula2 == 110 #z = sin(#z)*exp(#z) elseif @formula2 == 111 #z = cos(#z)*exp(#z) elseif @formula2 == 112 #z = sinh(#z)*exp(#z) elseif @formula2 == 113 #z = cosh(#z)*exp(#z) elseif @formula2 == 114 #z = sin(#z)*log(#z) elseif @formula2 == 115 #z = cos(#z)*log(#z) elseif @formula2 == 116 #z = sinh(#z)*log(#z) elseif @formula2 == 117 #z = cosh(#z)*log(#z) elseif @formula2 == 118 #z = exp(#z*#z) elseif @formula2 == 119 #z = exp(-(#z*#z)) elseif @formula2 == 120 #z = exp(1/(#z*#z)) else ; @formula2 == 121 #z = exp(-1/(#z*#z)) endif ; formula2-1 elseif remainder == @freq3 ; Execute 3rd formula selection if @formula3 == 0 #z = #z * #z elseif @formula3 == 1 #z = #z * #z * #z elseif @formula3 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula3 == 3 #z = #z ^ @power1 elseif @formula3 == 4 #z = 1/#z elseif @formula3 == 5 #z = sqrt(#z) elseif @formula3 == 6 #z = 1 / ( #z * #z ) elseif @formula3 == 7 #z = log(#z) elseif @formula3 == 8 #z = exp( #z) elseif @formula3 == 9 #z = #z^#z elseif @formula3 == 10 #z = sin( #z ) elseif @formula3 == 11 #z = cos( #z ) elseif @formula3 == 12 #z = tan( #z ) elseif @formula3 == 13 #z = asin( #z ) elseif @formula3 == 14 #z = acos( #z ) elseif @formula3 == 15 #z = atan( #z ) elseif @formula3 == 16 #z = sinh( #z ) elseif @formula3 == 17 #z = cosh( #z ) elseif @formula3 == 18 #z = tanh( #z ) elseif @formula3 == 19 #z = asinh( #z ) elseif @formula3 == 20 #z = acosh( #z ) elseif @formula3 == 21 #z = atanh( #z ) elseif @formula3 == 22 #z = log( 1/#z ) elseif @formula3 == 23 #z = log( log( #z )) elseif @formula3 == 24 #z = exp( -#z ) elseif @formula3 == 25 #z = exp( 1/#z ) elseif @formula3 == 26 #z = #z^(-#z) elseif @formula3 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula3 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula3 == 29 zextra = tan( #z ) #z = zextra * zextra elseif @formula3 == 30 #z = cotan( #z ) elseif @formula3 == 31 #z = 1/cos( #z ) elseif @formula3 == 32 #z = 1/sin( #z ) elseif @formula3 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula3 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula3 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula3 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula3 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula3 == 38 #z = log(-#z) elseif @formula3 == 39 #z = 1/log( #z ) elseif @formula3 == 40 #z = #z * log( #z ) elseif @formula3 == 41 #z = sin( #z ) / #z elseif @formula3 == 42 #z = cos( #z ) / #z elseif @formula3 == 43 #z = sin( #z ) * cos( #z ) elseif @formula3 == 44 #z = sin( #z^2 ) elseif @formula3 == 45 #z = exp( -1/#z ) elseif @formula3 == 46 #z = #z * exp( #z ) elseif @formula3 == 47 #z = #z * exp( -#z ) elseif @formula3 == 48 #z = #z * exp( 1/#z ) elseif @formula3 == 49 #z = #z * exp( -1/#z ) elseif @formula3 == 50 #z = #z * #z * #z elseif @formula3 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula3 == 52 #z = atan( 1 / #z ) elseif @formula3 == 53 #z = acos( 1 / #z ) elseif @formula3 == 54 #z = asin( 1 / #z ) elseif @formula3 == 55 #z = tan( #z ) / #z elseif @formula3 == 56 #z = cotan( #z ) / #z elseif @formula3 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula3 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula3 == 59 #z = #z * sin( #z ) elseif @formula3 == 60 #z = #z * cos( #z ) elseif @formula3 == 61 #z = #z * tan( #z ) elseif @formula3 == 62 #z = #z * cotan( #z ) elseif @formula3 == 63 #z = #z/cos( #z ) elseif @formula3 == 64 #z = #z/sin( #z ) elseif @formula3 == 65 #z = sin( 1/#z ) elseif @formula3 == 66 #z = cos( 1/#z ) elseif @formula3 == 67 #z = tan( 1/#z ) elseif @formula3 == 68 #z = cotan( 1/#z ) elseif @formula3 == 69 #z = 1/cos( 1/#z ) elseif @formula3 == 70 #z = 1/sin( 1/#z ) elseif @formula3 == 71 #z = cotanh( #z ) elseif @formula3 == 72 #z = 1/cosh( #z ) elseif @formula3 == 73 #z = 1/sinh( #z ) elseif @formula3 == 74 #z = atanh( 1/#z ) elseif @formula3 == 75 #z = acosh( 1/#z ) elseif @formula3 == 76 #z = asinh( 1/#z ) elseif @formula3 == 77 #z = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c elseif @formula3 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula3 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula3 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula3 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula3 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula3 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula3 == 84 #z = sinh(1/#z) elseif @formula3 == 85 #z = cosh(1/#z) elseif @formula3 == 86 #z = tanh(1/#z) elseif @formula3 == 87 #z = cotanh(1/#z) elseif @formula3 == 88 #z = (1,0)/cosh(1/#z) elseif @formula3 == 89 #z = (1,0)/sinh(1/#z) elseif @formula3 == 90 #z = sin( #z ) * tan(#z) elseif @formula3 == 91 #z = sinh(#z) * tanh(#z) elseif @formula3 == 92 #z = sinh(#z) * cosh(#z) elseif @formula3 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula3 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula3 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula3 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula3 == 97 #z = sin(#z) * cos(1/#z) elseif @formula3 == 98 #z = sin(#z) * sin(1/#z) elseif @formula3 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula3 == 100 #z = sin(#z) * sin(2*#z) elseif @formula3 == 101 #z = exp(2*#z) elseif @formula3 == 102 #z = exp(-2*#z) elseif @formula3 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula3 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula3 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula3 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula3 == 107 #z = sin(#z) * sinh(#z) elseif @formula3 == 108 #z = sin(#z) * cosh(#z) elseif @formula3 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula3 == 110 #z = sin(#z)*exp(#z) elseif @formula3 == 111 #z = cos(#z)*exp(#z) elseif @formula3 == 112 #z = sinh(#z)*exp(#z) elseif @formula3 == 113 #z = cosh(#z)*exp(#z) elseif @formula3 == 114 #z = sin(#z)*log(#z) elseif @formula3 == 115 #z = cos(#z)*log(#z) elseif @formula3 == 116 #z = sinh(#z)*log(#z) elseif @formula3 == 117 #z = cosh(#z)*log(#z) elseif @formula3 == 118 #z = exp(#z*#z) elseif @formula3 == 119 #z = exp(-(#z*#z)) elseif @formula3 == 120 #z = exp(1/(#z*#z)) else ; @formula3 == 121 #z = exp(-1/(#z*#z)) endif ; formula3-1 elseif remainder == @freq4 ; Execute 4th formula selection if @formula4 == 0 #z = #z * #z elseif @formula4 == 1 #z = #z * #z * #z elseif @formula4 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula4 == 3 #z = #z ^ @power1 elseif @formula4 == 4 #z = 1/#z elseif @formula4 == 5 #z = sqrt(#z) elseif @formula4 == 6 #z = 1 / ( #z * #z ) elseif @formula4 == 7 #z = log(#z) elseif @formula4 == 8 #z = exp( #z) elseif @formula4 == 9 #z = #z^#z elseif @formula4 == 10 #z = sin( #z ) elseif @formula4 == 11 #z = cos( #z ) elseif @formula4 == 12 #z = tan( #z ) elseif @formula4 == 13 #z = asin( #z ) elseif @formula4 == 14 #z = acos( #z ) elseif @formula4 == 15 #z = atan( #z ) elseif @formula4 == 16 #z = sinh( #z ) elseif @formula4 == 17 #z = cosh( #z ) elseif @formula4 == 18 #z = tanh( #z ) elseif @formula4 == 19 #z = asinh( #z ) elseif @formula4 == 20 #z = acosh( #z ) elseif @formula4 == 21 #z = atanh( #z ) elseif @formula4 == 22 #z = log( 1/#z ) elseif @formula4 == 23 #z = log( log( #z )) elseif @formula4 == 24 #z = exp( -#z ) elseif @formula4 == 25 #z = exp( 1/#z ) elseif @formula4 == 26 #z = #z^(-#z) elseif @formula4 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula4 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula4 == 29 zextra = tan( #z ) #z = zextra * zextra elseif @formula4 == 30 #z = cotan( #z ) elseif @formula4 == 31 #z = 1/cos( #z ) elseif @formula4 == 32 #z = 1/sin( #z ) elseif @formula4 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula4 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula4 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula4 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula4 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula4 == 38 #z = log(-#z) elseif @formula4 == 39 #z = 1/log( #z ) elseif @formula4 == 40 #z = #z * log( #z ) elseif @formula4 == 41 #z = sin( #z ) / #z elseif @formula4 == 42 #z = cos( #z ) / #z elseif @formula4 == 43 #z = sin( #z ) * cos( #z ) elseif @formula4 == 44 #z = sin( #z^2 ) elseif @formula4 == 45 #z = exp( -1/#z ) elseif @formula4 == 46 #z = #z * exp( #z ) elseif @formula4 == 47 #z = #z * exp( -#z ) elseif @formula4 == 48 #z = #z * exp( 1/#z ) elseif @formula4 == 49 #z = #z * exp( -1/#z ) elseif @formula4 == 50 #z = #z * #z * #z elseif @formula4 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula4 == 52 #z = atan( 1 / #z ) elseif @formula4 == 53 #z = acos( 1 / #z ) elseif @formula4 == 54 #z = asin( 1 / #z ) elseif @formula4 == 55 #z = tan( #z ) / #z elseif @formula4 == 56 #z = cotan( #z ) / #z elseif @formula4 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula4 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula4 == 59 #z = #z * sin( #z ) elseif @formula4 == 60 #z = #z * cos( #z ) elseif @formula4 == 61 #z = #z * tan( #z ) elseif @formula4 == 62 #z = #z * cotan( #z ) elseif @formula4 == 63 #z = #z/cos( #z ) elseif @formula4 == 64 #z = #z/sin( #z ) elseif @formula4 == 65 #z = sin( 1/#z ) elseif @formula4 == 66 #z = cos( 1/#z ) elseif @formula4 == 67 #z = tan( 1/#z ) elseif @formula4 == 68 #z = cotan( 1/#z ) elseif @formula4 == 69 #z = 1/cos( 1/#z ) elseif @formula4 == 70 #z = 1/sin( 1/#z ) elseif @formula4 == 71 #z = cotanh( #z ) elseif @formula4 == 72 #z = 1/cosh( #z ) elseif @formula4 == 73 #z = 1/sinh( #z ) elseif @formula4 == 74 #z = atanh( 1/#z ) elseif @formula4 == 75 #z = acosh( 1/#z ) elseif @formula4 == 76 #z = asinh( 1/#z ) elseif @formula4 == 77 #z = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c elseif @formula4 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula4 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula4 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula4 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula4 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula4 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula4 == 84 #z = sinh(1/#z) elseif @formula4 == 85 #z = cosh(1/#z) elseif @formula4 == 86 #z = tanh(1/#z) elseif @formula4 == 87 #z = cotanh(1/#z) elseif @formula4 == 88 #z = (1,0)/cosh(1/#z) elseif @formula4 == 89 #z = (1,0)/sinh(1/#z) elseif @formula4 == 90 #z = sin( #z ) * tan(#z) elseif @formula4 == 91 #z = sinh(#z) * tanh(#z) elseif @formula4 == 92 #z = sinh(#z) * cosh(#z) elseif @formula4 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula4 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula4 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula4 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula4 == 97 #z = sin(#z) * cos(1/#z) elseif @formula4 == 98 #z = sin(#z) * sin(1/#z) elseif @formula4 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula4 == 100 #z = sin(#z) * sin(2*#z) elseif @formula4 == 101 #z = exp(2*#z) elseif @formula4 == 102 #z = exp(-2*#z) elseif @formula4 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula4 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula4 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula4 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula4 == 107 #z = sin(#z) * sinh(#z) elseif @formula4 == 108 #z = sin(#z) * cosh(#z) elseif @formula4 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula4 == 110 #z = sin(#z)*exp(#z) elseif @formula4 == 111 #z = cos(#z)*exp(#z) elseif @formula4 == 112 #z = sinh(#z)*exp(#z) elseif @formula4 == 113 #z = cosh(#z)*exp(#z) elseif @formula4 == 114 #z = sin(#z)*log(#z) elseif @formula4 == 115 #z = cos(#z)*log(#z) elseif @formula4 == 116 #z = sinh(#z)*log(#z) elseif @formula4 == 117 #z = cosh(#z)*log(#z) elseif @formula4 == 118 #z = exp(#z*#z) elseif @formula4 == 119 #z = exp(-(#z*#z)) elseif @formula4 == 120 #z = exp(1/(#z*#z)) else ; @formula4 == 121 #z = exp(-1/(#z*#z)) endif ; formula4-1 else ; execute primary formula (Formula 1) as default ; Execute 1st formula selection if @formula1 == 0 #z = #z * #z elseif @formula1 == 1 #z = #z * #z * #z elseif @formula1 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula1 == 3 #z = #z ^ @power1 elseif @formula1 == 4 #z = 1/#z elseif @formula1 == 5 #z = sqrt(#z) elseif @formula1 == 6 #z = 1 / ( #z * #z ) elseif @formula1 == 7 #z = log(#z) elseif @formula1 == 8 #z = exp( #z) elseif @formula1 == 9 #z = #z^#z elseif @formula1 == 10 #z = sin( #z ) elseif @formula1 == 11 #z = cos( #z ) elseif @formula1 == 12 #z = tan( #z ) elseif @formula1 == 13 #z = asin( #z ) elseif @formula1 == 14 #z = acos( #z ) elseif @formula1 == 15 #z = atan( #z ) elseif @formula1 == 16 #z = sinh( #z ) elseif @formula1 == 17 #z = cosh( #z ) elseif @formula1 == 18 #z = tanh( #z ) elseif @formula1 == 19 #z = asinh( #z ) elseif @formula1 == 20 #z = acosh( #z ) elseif @formula1 == 21 #z = atanh( #z ) elseif @formula1 == 22 #z = log( 1/#z ) elseif @formula1 == 23 #z = log( log( #z )) elseif @formula1 == 24 #z = exp( -#z ) elseif @formula1 == 25 #z = exp( 1/#z ) elseif @formula1 == 26 #z = #z^(-#z) elseif @formula1 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula1 == 29 zextra = tan( #z ) #z = zextra * zextra elseif @formula1 == 30 #z = cotan( #z ) elseif @formula1 == 31 #z = 1/cos( #z ) elseif @formula1 == 32 #z = 1/sin( #z ) elseif @formula1 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula1 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula1 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula1 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula1 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula1 == 38 #z = log(-#z) elseif @formula1 == 39 #z = 1/log( #z ) elseif @formula1 == 40 #z = #z * log( #z ) elseif @formula1 == 41 #z = sin( #z ) / #z elseif @formula1 == 42 #z = cos( #z ) / #z elseif @formula1 == 43 #z = sin( #z ) * cos( #z ) elseif @formula1 == 44 #z = sin( #z^2 ) elseif @formula1 == 45 #z = exp( -1/#z ) elseif @formula1 == 46 #z = #z * exp( #z ) elseif @formula1 == 47 #z = #z * exp( -#z ) elseif @formula1 == 48 #z = #z * exp( 1/#z ) elseif @formula1 == 49 #z = #z * exp( -1/#z ) elseif @formula1 == 50 #z = #z * #z * #z elseif @formula1 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula1 == 52 #z = atan( 1 / #z ) elseif @formula1 == 53 #z = acos( 1 / #z ) elseif @formula1 == 54 #z = asin( 1 / #z ) elseif @formula1 == 55 #z = tan( #z ) / #z elseif @formula1 == 56 #z = cotan( #z ) / #z elseif @formula1 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula1 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula1 == 59 #z = #z * sin( #z ) elseif @formula1 == 60 #z = #z * cos( #z ) elseif @formula1 == 61 #z = #z * tan( #z ) elseif @formula1 == 62 #z = #z * cotan( #z ) elseif @formula1 == 63 #z = #z/cos( #z ) elseif @formula1 == 64 #z = #z/sin( #z ) elseif @formula1 == 65 #z = sin( 1/#z ) elseif @formula1 == 66 #z = cos( 1/#z ) elseif @formula1 == 67 #z = tan( 1/#z ) elseif @formula1 == 68 #z = cotan( 1/#z ) elseif @formula1 == 69 #z = 1/cos( 1/#z ) elseif @formula1 == 70 #z = 1/sin( 1/#z ) elseif @formula1 == 71 #z = cotanh( #z ) elseif @formula1 == 72 #z = 1/cosh( #z ) elseif @formula1 == 73 #z = 1/sinh( #z ) elseif @formula1 == 74 #z = atanh( 1/#z ) elseif @formula1 == 75 #z = acosh( 1/#z ) elseif @formula1 == 76 #z = asinh( 1/#z ) elseif @formula1 == 77 #z = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c elseif @formula1 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula1 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula1 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula1 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula1 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula1 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula1 == 84 #z = sinh(1/#z) elseif @formula1 == 85 #z = cosh(1/#z) elseif @formula1 == 86 #z = tanh(1/#z) elseif @formula1 == 87 #z = cotanh(1/#z) elseif @formula1 == 88 #z = (1,0)/cosh(1/#z) elseif @formula1 == 89 #z = (1,0)/sinh(1/#z) elseif @formula1 == 90 #z = sin( #z ) * tan(#z) elseif @formula1 == 91 #z = sinh(#z) * tanh(#z) elseif @formula1 == 92 #z = sinh(#z) * cosh(#z) elseif @formula1 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula1 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula1 == 97 #z = sin(#z) * cos(1/#z) elseif @formula1 == 98 #z = sin(#z) * sin(1/#z) elseif @formula1 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula1 == 100 #z = sin(#z) * sin(2*#z) elseif @formula1 == 101 #z = exp(2*#z) elseif @formula1 == 102 #z = exp(-2*#z) elseif @formula1 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula1 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula1 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula1 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula1 == 107 #z = sin(#z) * sinh(#z) elseif @formula1 == 108 #z = sin(#z) * cosh(#z) elseif @formula1 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 110 #z = sin(#z)*exp(#z) elseif @formula1 == 111 #z = cos(#z)*exp(#z) elseif @formula1 == 112 #z = sinh(#z)*exp(#z) elseif @formula1 == 113 #z = cosh(#z)*exp(#z) elseif @formula1 == 114 #z = sin(#z)*log(#z) elseif @formula1 == 115 #z = cos(#z)*log(#z) elseif @formula1 == 116 #z = sinh(#z)*log(#z) elseif @formula1 == 117 #z = cosh(#z)*log(#z) elseif @formula1 == 118 #z = exp(#z*#z) elseif @formula1 == 119 #z = exp(-(#z*#z)) elseif @formula1 == 120 #z = exp(1/(#z*#z)) else ; @formula1 == 121 #z = exp(-1/(#z*#z)) endif ; formula1-1 endif ; remainder if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend if @pmode != 1 #z = #z + jc endif ; pmode if @biomorph if @biomorphtype == "real + imag" bail = (abs(real(z)) < @biomorphtest) || (abs(imag(z)) < @biomorphtest) elseif @biomorphtype == "real + imag + cabs" bail = (abs(real(z)) < @biomorphtest) || (abs(imag(z)) < @biomorphtest) || (cabs(z) < sqr(@biomorphtest)) elseif @biomorphtype == "real" bail = abs(real(z)) < @biomorphtest elseif @biomorphtype == "imag" bail = abs(imag(z)) < @biomorphtest elseif @biomorphtype == "cabs" bail = cabs(z) < sqr(@biomorphtest) endif ; @biomorphtype else bail = |z| < @bail endif ; @biomorph bailout: bail default: title = "NCycle General" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param divisor caption = "N, Cycle Length" default = 20 hint = "Formula 2 will be executed every Nth iteration (iterations 0 mod N)" endparam param formula1 caption = "Formula 1" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "Formula executed during iterations 1,N+1,2N+1,... (1 mod N), \ and all other iterations not specified by Formulas 2-4. \ For 'z^power', parameter 'Power 1' sets power. For '3-term polynomial' set \ params 'Coeff 1a', 'Exponent 1a', 'Coeff 1b', 'Exponent 1b', 'Coeff 1c', \ 'Exponent 1c'." endparam param power1 caption = "Power 1" default = (5,0) hint = "This is the power used for the first formula series if parameter \ 'Formula 1' is set to 'z^power'" visible = @formula1 == "z^power" endparam param coeff1a caption = "Coeff 1A" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula1 == "3-term polynomial" endparam param exponent1a caption = "Exponent 1A" default = (6,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula1 == "3-term polynomial" endparam param coeff1b caption = "Coeff 1B" default = (-1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula1 == "3-term polynomial" endparam param exponent1b caption = "Exponent 1B" default = (4,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula1 == "3-term polynomial" endparam param coeff1c caption = "Coeff 1C" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula1 == "3-term polynomial" endparam param exponent1c caption = "Exponent 1C" default = (2,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula1 == "3-term polynomial" endparam param formula2 caption = "Formula 2" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "Secondary formula executed on iterations N,2N,3N,... (0 mod N). \ For 'z^power', use parameter 'Power 2' to set power. For '3-term polynomial' set \ params 'Coeff 2a', 'Exponent 2a', 'Coeff 2b', 'Exponent 2b', 'Coeff 2c', \ 'Exponent 2c'." endparam param power2 caption = "Power 2" default = (6,0) hint = "This is the power used for the second formula series if parameter \ 'Formula 2' is set to 'z^power'" visible = @formula2 == "z^power" endparam param coeff2a caption = "Coeff 2A" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula2 == "3-term polynomial" endparam param exponent2a caption = "Exponent 2A" default = (6,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula2 == "3-term polynomial" endparam param coeff2b caption = "Coeff 2B" default = (-1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula2 == "3-term polynomial" endparam param exponent2b caption = "Exponent 2B" default = (4,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula2 == "3-term polynomial" endparam param coeff2c caption = "Coeff 2C" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula2 == "3-term polynomial" endparam param exponent2c caption = "Exponent 2C" default = (2,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula2 == "3-term polynomial" endparam param freq3 caption = "Freq3" default = 0 hint = "Formula 3 will be executed on iterations 'Freq3' mod N i.e., \ iterations Freq3, N+Freq3, 2N+Freq3,... If Freq3 doesn't fall within \ the range 1 < Freq3 < N, then Formula 3 is not executed" endparam param formula3 caption = "Formula 3" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "Formula executed during the 3rd series of iterations \ (iter Freq3,N+Freq3,...). \ For 'z^power', parameter 'Power 3' sets power. For '3-term polynomial' set \ params 'Coeff 3a', 'Exponent 3a', 'Coeff 3b', 'Exponent 3b', 'Coeff 3c', \ 'Exponent 3c'." visible = @freq3 != 0 endparam param power3 caption = "Power 3" default = (6,0) hint = "This is the power used for the third formula series if parameter \ 'Formula 3' is set to 'z^power'" visible = @formula3 == "z^power" endparam param coeff3a caption = "Coeff 3A" default = (1,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula3 == "3-term polynomial" endparam param exponent3a caption = "Exponent 3A" default = (6,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula3 == "3-term polynomial" endparam param coeff3b caption = "Coeff 3B" default = (-1,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula3 == "3-term polynomial" endparam param exponent3b caption = "Exponent 3B" default = (4,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula3 == "3-term polynomial" endparam param coeff3c caption = "Coeff 3C" default = (1,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula3 == "3-term polynomial" endparam param exponent3c caption = "Exponent 3C" default = (2,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula3 == "3-term polynomial" endparam param freq4 caption = "Freq4" default = 0 hint = "Formula 4 will be executed on iterations 'Freq4' mod N i.e., \ iterations Freq4, N+Freq4, 2N+Freq4,... If Freq4 doesn't fall within \ the range 1 < Freq4 < N, then Formula 4 is not executed" endparam param formula4 caption = "Formula 4" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "Formula executed during the 4th series of iterations \ (iters Freq4,N+Freq4,...). \ For 'z^power', parameter 'Power 4' sets power. For '3-term polynomial' set \ params 'Coeff 4a', 'Exponent 4a', 'Coeff 4b', 'Exponent 4b', 'Coeff 4c', \ 'Exponent 4c'." visible = @freq4 != 0 endparam param power4 caption = "Power 4" default = (6,0) hint = "This is the power used for the fourth formula series if parameter \ 'Formula 4' is set to 'z^power'" visible = @formula4 == "z^power" endparam param coeff4a caption = "Coeff 4A" default = (1,0) hint = "If 'Formula 4' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula4 == "3-term polynomial" endparam param exponent4a caption = "Exponent 4A" default = (6,0) hint = "If 'Formula 4' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula4 == "3-term polynomial" endparam param coeff4b caption = "Coeff 4B" default = (-1,0) hint = "If 'Formula 4' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula4 == "3-term polynomial" endparam param exponent4b caption = "Exponent 4B" default = (4,0) hint = "If 'Formula 4' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula4 == "3-term polynomial" endparam param coeff4c caption = "Coeff 4C" default = (1,0) hint = "If 'Formula 4' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula4 == "3-term polynomial" endparam param exponent4c caption = "Exponent 4C" default = (2,0) hint = "If 'Formula 4' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula4 == "3-term polynomial" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" "p^p" \ "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" visible = @pixelformula == "p^power" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" visible = !@biomorph endparam param biomorph caption = "Biomorph Bailout?" default = FALSE hint = "Enabling this setting changes the bailout condition to match \ Pickover's 'biomorph' definition. For coloring, consider using \ 'Biomorph' in the public folder 'jam2.ucl'." endparam param biomorphtest caption = "Biomorph Bailout Test" default = 10.0 hint = "The bailout value for the 'Biomorph' test." visible = @biomorph endparam param biomorphtype caption = "Biomorph Type" enum = "real" "imag" "real + imag" "real + imag + cabs" "cabs" default = 3 hint = "This determines the bailout condition for the Biomorph." visible = @biomorph endparam switch: type = "jam-altNCycle-general-J" jconstant = #pixel bail = bail biomorph = biomorph biomorphtype = biomorphtype biomorphtest = biomorphtest blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower formula1 = formula1 divisor = divisor formula2 = formula2 freq3 = freq3 formula3 = formula3 freq4 = freq4 formula4 = formula4 power1 = power1 power2 = power2 power3 = power3 power4 = power4 coeff1a = coeff1a exponent1a = exponent1a coeff1b = coeff1b exponent1b = exponent1b coeff1c = coeff1c exponent1c = exponent1c coeff2a = coeff2a exponent2a = exponent2a coeff2b = coeff2b exponent2b = exponent2b coeff2c = coeff2c exponent2c = exponent2c coeff3a = coeff3a exponent3a = exponent3a coeff3b = coeff3b exponent3b = exponent3b coeff3c = coeff3c exponent3c = exponent3c coeff4a = coeff4a exponent4a = exponent4a coeff4b = coeff4b exponent4b = exponent4b coeff4c = coeff4c exponent4c = exponent4c pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-altNCycle-general-J { ; jam 011009 ; Alternating-type Mandelbrot/Julia in which 4 independent formulas ; are repeatedly, sequentially executed on alternate iterations. ; Formula 1 is executed on iteration 1,N+1,2N+1,... (all iterations 1 mod N), ; and also on all iterations where none of Formulas 2, 3, or 4 are iterated; ; Formula 2 is executed on iteration N,2N,3N,... (all iterations 0 mod N); ; Formula 3, if set, is executed on iterations a mod N, where 1 < a < N; ; Formula 4, if set, is executed on iterations b mod N, where 1 < b < N. ; The 3-term polynomial formula option is ; z = ( CoeffA * z^ExponentA ) + ( CoeffB * z^ExponentB ) + ( CoeffC * z^ExponentC ) + constant init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0, int remainder = 0 complex zextra = complex ztemp = complex temp2 = (0,0) ; temp/spare scratch variables complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 ztemp = sinh(jc), zextra = cosh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 95 ztemp = sin(jc), zextra = cos(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), ztemp = sinh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: if @pmode != 0 #z = #z + jc endif ; pmode zblend = z iterations = iterations + 1 remainder = iterations % @divisor if remainder == 1 ; Execute 1st formula selection if @formula1 == 0 #z = #z * #z elseif @formula1 == 1 #z = #z * #z * #z elseif @formula1 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula1 == 3 #z = #z ^ @power1 elseif @formula1 == 4 #z = 1/#z elseif @formula1 == 5 #z = sqrt(#z) elseif @formula1 == 6 #z = 1 / ( #z * #z ) elseif @formula1 == 7 #z = log(#z) elseif @formula1 == 8 #z = exp( #z) elseif @formula1 == 9 #z = #z^#z elseif @formula1 == 10 #z = sin( #z ) elseif @formula1 == 11 #z = cos( #z ) elseif @formula1 == 12 #z = tan( #z ) elseif @formula1 == 13 #z = asin( #z ) elseif @formula1 == 14 #z = acos( #z ) elseif @formula1 == 15 #z = atan( #z ) elseif @formula1 == 16 #z = sinh( #z ) elseif @formula1 == 17 #z = cosh( #z ) elseif @formula1 == 18 #z = tanh( #z ) elseif @formula1 == 19 #z = asinh( #z ) elseif @formula1 == 20 #z = acosh( #z ) elseif @formula1 == 21 #z = atanh( #z ) elseif @formula1 == 22 #z = log( 1/#z ) elseif @formula1 == 23 #z = log( log( #z )) elseif @formula1 == 24 #z = exp( -#z ) elseif @formula1 == 25 #z = exp( 1/#z ) elseif @formula1 == 26 #z = #z^(-#z) elseif @formula1 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula1 == 29 zextra = tan( #z ) #z = zextra * zextra elseif @formula1 == 30 #z = cotan( #z ) elseif @formula1 == 31 #z = 1/cos( #z ) elseif @formula1 == 32 #z = 1/sin( #z ) elseif @formula1 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula1 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula1 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula1 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula1 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula1 == 38 #z = log(-#z) elseif @formula1 == 39 #z = 1/log( #z ) elseif @formula1 == 40 #z = #z * log( #z ) elseif @formula1 == 41 #z = sin( #z ) / #z elseif @formula1 == 42 #z = cos( #z ) / #z elseif @formula1 == 43 #z = sin( #z ) * cos( #z ) elseif @formula1 == 44 #z = sin( #z^2 ) elseif @formula1 == 45 #z = exp( -1/#z ) elseif @formula1 == 46 #z = #z * exp( #z ) elseif @formula1 == 47 #z = #z * exp( -#z ) elseif @formula1 == 48 #z = #z * exp( 1/#z ) elseif @formula1 == 49 #z = #z * exp( -1/#z ) elseif @formula1 == 50 #z = #z * #z * #z elseif @formula1 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula1 == 52 #z = atan( 1 / #z ) elseif @formula1 == 53 #z = acos( 1 / #z ) elseif @formula1 == 54 #z = asin( 1 / #z ) elseif @formula1 == 55 #z = tan( #z ) / #z elseif @formula1 == 56 #z = cotan( #z ) / #z elseif @formula1 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula1 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula1 == 59 #z = #z * sin( #z ) elseif @formula1 == 60 #z = #z * cos( #z ) elseif @formula1 == 61 #z = #z * tan( #z ) elseif @formula1 == 62 #z = #z * cotan( #z ) elseif @formula1 == 63 #z = #z/cos( #z ) elseif @formula1 == 64 #z = #z/sin( #z ) elseif @formula1 == 65 #z = sin( 1/#z ) elseif @formula1 == 66 #z = cos( 1/#z ) elseif @formula1 == 67 #z = tan( 1/#z ) elseif @formula1 == 68 #z = cotan( 1/#z ) elseif @formula1 == 69 #z = 1/cos( 1/#z ) elseif @formula1 == 70 #z = 1/sin( 1/#z ) elseif @formula1 == 71 #z = cotanh( #z ) elseif @formula1 == 72 #z = 1/cosh( #z ) elseif @formula1 == 73 #z = 1/sinh( #z ) elseif @formula1 == 74 #z = atanh( 1/#z ) elseif @formula1 == 75 #z = acosh( 1/#z ) elseif @formula1 == 76 #z = asinh( 1/#z ) elseif @formula1 == 77 #z = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c elseif @formula1 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula1 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula1 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula1 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula1 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula1 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula1 == 84 #z = sinh(1/#z) elseif @formula1 == 85 #z = cosh(1/#z) elseif @formula1 == 86 #z = tanh(1/#z) elseif @formula1 == 87 #z = cotanh(1/#z) elseif @formula1 == 88 #z = (1,0)/cosh(1/#z) elseif @formula1 == 89 #z = (1,0)/sinh(1/#z) elseif @formula1 == 90 #z = sin( #z ) * tan(#z) elseif @formula1 == 91 #z = sinh(#z) * tanh(#z) elseif @formula1 == 92 #z = sinh(#z) * cosh(#z) elseif @formula1 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula1 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula1 == 97 #z = sin(#z) * cos(1/#z) elseif @formula1 == 98 #z = sin(#z) * sin(1/#z) elseif @formula1 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula1 == 100 #z = sin(#z) * sin(2*#z) elseif @formula1 == 101 #z = exp(2*#z) elseif @formula1 == 102 #z = exp(-2*#z) elseif @formula1 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula1 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula1 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula1 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula1 == 107 #z = sin(#z) * sinh(#z) elseif @formula1 == 108 #z = sin(#z) * cosh(#z) elseif @formula1 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 110 #z = sin(#z)*exp(#z) elseif @formula1 == 111 #z = cos(#z)*exp(#z) elseif @formula1 == 112 #z = sinh(#z)*exp(#z) elseif @formula1 == 113 #z = cosh(#z)*exp(#z) elseif @formula1 == 114 #z = sin(#z)*log(#z) elseif @formula1 == 115 #z = cos(#z)*log(#z) elseif @formula1 == 116 #z = sinh(#z)*log(#z) elseif @formula1 == 117 #z = cosh(#z)*log(#z) elseif @formula1 == 118 #z = exp(#z*#z) elseif @formula1 == 119 #z = exp(-(#z*#z)) elseif @formula1 == 120 #z = exp(1/(#z*#z)) else ; @formula1 == 121 #z = exp(-1/(#z*#z)) endif ; formula1-1 elseif remainder == 0 ; Execute 2nd formula selection if @formula2 == 0 #z = #z * #z elseif @formula2 == 1 #z = #z * #z * #z elseif @formula2 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula2 == 3 #z = #z ^ @power1 elseif @formula2 == 4 #z = 1/#z elseif @formula2 == 5 #z = sqrt(#z) elseif @formula2 == 6 #z = 1 / ( #z * #z ) elseif @formula2 == 7 #z = log(#z) elseif @formula2 == 8 #z = exp( #z) elseif @formula2 == 9 #z = #z^#z elseif @formula2 == 10 #z = sin( #z ) elseif @formula2 == 11 #z = cos( #z ) elseif @formula2 == 12 #z = tan( #z ) elseif @formula2 == 13 #z = asin( #z ) elseif @formula2 == 14 #z = acos( #z ) elseif @formula2 == 15 #z = atan( #z ) elseif @formula2 == 16 #z = sinh( #z ) elseif @formula2 == 17 #z = cosh( #z ) elseif @formula2 == 18 #z = tanh( #z ) elseif @formula2 == 19 #z = asinh( #z ) elseif @formula2 == 20 #z = acosh( #z ) elseif @formula2 == 21 #z = atanh( #z ) elseif @formula2 == 22 #z = log( 1/#z ) elseif @formula2 == 23 #z = log( log( #z )) elseif @formula2 == 24 #z = exp( -#z ) elseif @formula2 == 25 #z = exp( 1/#z ) elseif @formula2 == 26 #z = #z^(-#z) elseif @formula2 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula2 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula2 == 29 zextra = tan( #z ) #z = zextra * zextra elseif @formula2 == 30 #z = cotan( #z ) elseif @formula2 == 31 #z = 1/cos( #z ) elseif @formula2 == 32 #z = 1/sin( #z ) elseif @formula2 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula2 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula2 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula2 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula2 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula2 == 38 #z = log(-#z) elseif @formula2 == 39 #z = 1/log( #z ) elseif @formula2 == 40 #z = #z * log( #z ) elseif @formula2 == 41 #z = sin( #z ) / #z elseif @formula2 == 42 #z = cos( #z ) / #z elseif @formula2 == 43 #z = sin( #z ) * cos( #z ) elseif @formula2 == 44 #z = sin( #z^2 ) elseif @formula2 == 45 #z = exp( -1/#z ) elseif @formula2 == 46 #z = #z * exp( #z ) elseif @formula2 == 47 #z = #z * exp( -#z ) elseif @formula2 == 48 #z = #z * exp( 1/#z ) elseif @formula2 == 49 #z = #z * exp( -1/#z ) elseif @formula2 == 50 #z = #z * #z * #z elseif @formula2 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula2 == 52 #z = atan( 1 / #z ) elseif @formula2 == 53 #z = acos( 1 / #z ) elseif @formula2 == 54 #z = asin( 1 / #z ) elseif @formula2 == 55 #z = tan( #z ) / #z elseif @formula2 == 56 #z = cotan( #z ) / #z elseif @formula2 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula2 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula2 == 59 #z = #z * sin( #z ) elseif @formula2 == 60 #z = #z * cos( #z ) elseif @formula2 == 61 #z = #z * tan( #z ) elseif @formula2 == 62 #z = #z * cotan( #z ) elseif @formula2 == 63 #z = #z/cos( #z ) elseif @formula2 == 64 #z = #z/sin( #z ) elseif @formula2 == 65 #z = sin( 1/#z ) elseif @formula2 == 66 #z = cos( 1/#z ) elseif @formula2 == 67 #z = tan( 1/#z ) elseif @formula2 == 68 #z = cotan( 1/#z ) elseif @formula2 == 69 #z = 1/cos( 1/#z ) elseif @formula2 == 70 #z = 1/sin( 1/#z ) elseif @formula2 == 71 #z = cotanh( #z ) elseif @formula2 == 72 #z = 1/cosh( #z ) elseif @formula2 == 73 #z = 1/sinh( #z ) elseif @formula2 == 74 #z = atanh( 1/#z ) elseif @formula2 == 75 #z = acosh( 1/#z ) elseif @formula2 == 76 #z = asinh( 1/#z ) elseif @formula2 == 77 #z = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c elseif @formula2 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula2 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula2 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula2 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula2 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula2 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula2 == 84 #z = sinh(1/#z) elseif @formula2 == 85 #z = cosh(1/#z) elseif @formula2 == 86 #z = tanh(1/#z) elseif @formula2 == 87 #z = cotanh(1/#z) elseif @formula2 == 88 #z = (1,0)/cosh(1/#z) elseif @formula2 == 89 #z = (1,0)/sinh(1/#z) elseif @formula2 == 90 #z = sin( #z ) * tan(#z) elseif @formula2 == 91 #z = sinh(#z) * tanh(#z) elseif @formula2 == 92 #z = sinh(#z) * cosh(#z) elseif @formula2 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula2 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula2 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula2 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula2 == 97 #z = sin(#z) * cos(1/#z) elseif @formula2 == 98 #z = sin(#z) * sin(1/#z) elseif @formula2 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula2 == 100 #z = sin(#z) * sin(2*#z) elseif @formula2 == 101 #z = exp(2*#z) elseif @formula2 == 102 #z = exp(-2*#z) elseif @formula2 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula2 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula2 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula2 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula2 == 107 #z = sin(#z) * sinh(#z) elseif @formula2 == 108 #z = sin(#z) * cosh(#z) elseif @formula2 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula2 == 110 #z = sin(#z)*exp(#z) elseif @formula2 == 111 #z = cos(#z)*exp(#z) elseif @formula2 == 112 #z = sinh(#z)*exp(#z) elseif @formula2 == 113 #z = cosh(#z)*exp(#z) elseif @formula2 == 114 #z = sin(#z)*log(#z) elseif @formula2 == 115 #z = cos(#z)*log(#z) elseif @formula2 == 116 #z = sinh(#z)*log(#z) elseif @formula2 == 117 #z = cosh(#z)*log(#z) elseif @formula2 == 118 #z = exp(#z*#z) elseif @formula2 == 119 #z = exp(-(#z*#z)) elseif @formula2 == 120 #z = exp(1/(#z*#z)) else ; @formula2 == 121 #z = exp(-1/(#z*#z)) endif ; formula2-1 elseif remainder == @freq3 ; Execute 3rd formula selection if @formula3 == 0 #z = #z * #z elseif @formula3 == 1 #z = #z * #z * #z elseif @formula3 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula3 == 3 #z = #z ^ @power1 elseif @formula3 == 4 #z = 1/#z elseif @formula3 == 5 #z = sqrt(#z) elseif @formula3 == 6 #z = 1 / ( #z * #z ) elseif @formula3 == 7 #z = log(#z) elseif @formula3 == 8 #z = exp( #z) elseif @formula3 == 9 #z = #z^#z elseif @formula3 == 10 #z = sin( #z ) elseif @formula3 == 11 #z = cos( #z ) elseif @formula3 == 12 #z = tan( #z ) elseif @formula3 == 13 #z = asin( #z ) elseif @formula3 == 14 #z = acos( #z ) elseif @formula3 == 15 #z = atan( #z ) elseif @formula3 == 16 #z = sinh( #z ) elseif @formula3 == 17 #z = cosh( #z ) elseif @formula3 == 18 #z = tanh( #z ) elseif @formula3 == 19 #z = asinh( #z ) elseif @formula3 == 20 #z = acosh( #z ) elseif @formula3 == 21 #z = atanh( #z ) elseif @formula3 == 22 #z = log( 1/#z ) elseif @formula3 == 23 #z = log( log( #z )) elseif @formula3 == 24 #z = exp( -#z ) elseif @formula3 == 25 #z = exp( 1/#z ) elseif @formula3 == 26 #z = #z^(-#z) elseif @formula3 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula3 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula3 == 29 zextra = tan( #z ) #z = zextra * zextra elseif @formula3 == 30 #z = cotan( #z ) elseif @formula3 == 31 #z = 1/cos( #z ) elseif @formula3 == 32 #z = 1/sin( #z ) elseif @formula3 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula3 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula3 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula3 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula3 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula3 == 38 #z = log(-#z) elseif @formula3 == 39 #z = 1/log( #z ) elseif @formula3 == 40 #z = #z * log( #z ) elseif @formula3 == 41 #z = sin( #z ) / #z elseif @formula3 == 42 #z = cos( #z ) / #z elseif @formula3 == 43 #z = sin( #z ) * cos( #z ) elseif @formula3 == 44 #z = sin( #z^2 ) elseif @formula3 == 45 #z = exp( -1/#z ) elseif @formula3 == 46 #z = #z * exp( #z ) elseif @formula3 == 47 #z = #z * exp( -#z ) elseif @formula3 == 48 #z = #z * exp( 1/#z ) elseif @formula3 == 49 #z = #z * exp( -1/#z ) elseif @formula3 == 50 #z = #z * #z * #z elseif @formula3 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula3 == 52 #z = atan( 1 / #z ) elseif @formula3 == 53 #z = acos( 1 / #z ) elseif @formula3 == 54 #z = asin( 1 / #z ) elseif @formula3 == 55 #z = tan( #z ) / #z elseif @formula3 == 56 #z = cotan( #z ) / #z elseif @formula3 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula3 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula3 == 59 #z = #z * sin( #z ) elseif @formula3 == 60 #z = #z * cos( #z ) elseif @formula3 == 61 #z = #z * tan( #z ) elseif @formula3 == 62 #z = #z * cotan( #z ) elseif @formula3 == 63 #z = #z/cos( #z ) elseif @formula3 == 64 #z = #z/sin( #z ) elseif @formula3 == 65 #z = sin( 1/#z ) elseif @formula3 == 66 #z = cos( 1/#z ) elseif @formula3 == 67 #z = tan( 1/#z ) elseif @formula3 == 68 #z = cotan( 1/#z ) elseif @formula3 == 69 #z = 1/cos( 1/#z ) elseif @formula3 == 70 #z = 1/sin( 1/#z ) elseif @formula3 == 71 #z = cotanh( #z ) elseif @formula3 == 72 #z = 1/cosh( #z ) elseif @formula3 == 73 #z = 1/sinh( #z ) elseif @formula3 == 74 #z = atanh( 1/#z ) elseif @formula3 == 75 #z = acosh( 1/#z ) elseif @formula3 == 76 #z = asinh( 1/#z ) elseif @formula3 == 77 #z = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c elseif @formula3 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula3 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula3 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula3 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula3 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula3 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula3 == 84 #z = sinh(1/#z) elseif @formula3 == 85 #z = cosh(1/#z) elseif @formula3 == 86 #z = tanh(1/#z) elseif @formula3 == 87 #z = cotanh(1/#z) elseif @formula3 == 88 #z = (1,0)/cosh(1/#z) elseif @formula3 == 89 #z = (1,0)/sinh(1/#z) elseif @formula3 == 90 #z = sin( #z ) * tan(#z) elseif @formula3 == 91 #z = sinh(#z) * tanh(#z) elseif @formula3 == 92 #z = sinh(#z) * cosh(#z) elseif @formula3 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula3 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula3 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula3 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula3 == 97 #z = sin(#z) * cos(1/#z) elseif @formula3 == 98 #z = sin(#z) * sin(1/#z) elseif @formula3 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula3 == 100 #z = sin(#z) * sin(2*#z) elseif @formula3 == 101 #z = exp(2*#z) elseif @formula3 == 102 #z = exp(-2*#z) elseif @formula3 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula3 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula3 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula3 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula3 == 107 #z = sin(#z) * sinh(#z) elseif @formula3 == 108 #z = sin(#z) * cosh(#z) elseif @formula3 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula3 == 110 #z = sin(#z)*exp(#z) elseif @formula3 == 111 #z = cos(#z)*exp(#z) elseif @formula3 == 112 #z = sinh(#z)*exp(#z) elseif @formula3 == 113 #z = cosh(#z)*exp(#z) elseif @formula3 == 114 #z = sin(#z)*log(#z) elseif @formula3 == 115 #z = cos(#z)*log(#z) elseif @formula3 == 116 #z = sinh(#z)*log(#z) elseif @formula3 == 117 #z = cosh(#z)*log(#z) elseif @formula3 == 118 #z = exp(#z*#z) elseif @formula3 == 119 #z = exp(-(#z*#z)) elseif @formula3 == 120 #z = exp(1/(#z*#z)) else ; @formula3 == 121 #z = exp(-1/(#z*#z)) endif ; formula3-1 elseif remainder == @freq4 ; Execute 4th formula selection if @formula4 == 0 #z = #z * #z elseif @formula4 == 1 #z = #z * #z * #z elseif @formula4 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula4 == 3 #z = #z ^ @power1 elseif @formula4 == 4 #z = 1/#z elseif @formula4 == 5 #z = sqrt(#z) elseif @formula4 == 6 #z = 1 / ( #z * #z ) elseif @formula4 == 7 #z = log(#z) elseif @formula4 == 8 #z = exp( #z) elseif @formula4 == 9 #z = #z^#z elseif @formula4 == 10 #z = sin( #z ) elseif @formula4 == 11 #z = cos( #z ) elseif @formula4 == 12 #z = tan( #z ) elseif @formula4 == 13 #z = asin( #z ) elseif @formula4 == 14 #z = acos( #z ) elseif @formula4 == 15 #z = atan( #z ) elseif @formula4 == 16 #z = sinh( #z ) elseif @formula4 == 17 #z = cosh( #z ) elseif @formula4 == 18 #z = tanh( #z ) elseif @formula4 == 19 #z = asinh( #z ) elseif @formula4 == 20 #z = acosh( #z ) elseif @formula4 == 21 #z = atanh( #z ) elseif @formula4 == 22 #z = log( 1/#z ) elseif @formula4 == 23 #z = log( log( #z )) elseif @formula4 == 24 #z = exp( -#z ) elseif @formula4 == 25 #z = exp( 1/#z ) elseif @formula4 == 26 #z = #z^(-#z) elseif @formula4 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula4 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula4 == 29 zextra = tan( #z ) #z = zextra * zextra elseif @formula4 == 30 #z = cotan( #z ) elseif @formula4 == 31 #z = 1/cos( #z ) elseif @formula4 == 32 #z = 1/sin( #z ) elseif @formula4 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula4 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula4 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula4 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula4 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula4 == 38 #z = log(-#z) elseif @formula4 == 39 #z = 1/log( #z ) elseif @formula4 == 40 #z = #z * log( #z ) elseif @formula4 == 41 #z = sin( #z ) / #z elseif @formula4 == 42 #z = cos( #z ) / #z elseif @formula4 == 43 #z = sin( #z ) * cos( #z ) elseif @formula4 == 44 #z = sin( #z^2 ) elseif @formula4 == 45 #z = exp( -1/#z ) elseif @formula4 == 46 #z = #z * exp( #z ) elseif @formula4 == 47 #z = #z * exp( -#z ) elseif @formula4 == 48 #z = #z * exp( 1/#z ) elseif @formula4 == 49 #z = #z * exp( -1/#z ) elseif @formula4 == 50 #z = #z * #z * #z elseif @formula4 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula4 == 52 #z = atan( 1 / #z ) elseif @formula4 == 53 #z = acos( 1 / #z ) elseif @formula4 == 54 #z = asin( 1 / #z ) elseif @formula4 == 55 #z = tan( #z ) / #z elseif @formula4 == 56 #z = cotan( #z ) / #z elseif @formula4 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula4 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula4 == 59 #z = #z * sin( #z ) elseif @formula4 == 60 #z = #z * cos( #z ) elseif @formula4 == 61 #z = #z * tan( #z ) elseif @formula4 == 62 #z = #z * cotan( #z ) elseif @formula4 == 63 #z = #z/cos( #z ) elseif @formula4 == 64 #z = #z/sin( #z ) elseif @formula4 == 65 #z = sin( 1/#z ) elseif @formula4 == 66 #z = cos( 1/#z ) elseif @formula4 == 67 #z = tan( 1/#z ) elseif @formula4 == 68 #z = cotan( 1/#z ) elseif @formula4 == 69 #z = 1/cos( 1/#z ) elseif @formula4 == 70 #z = 1/sin( 1/#z ) elseif @formula4 == 71 #z = cotanh( #z ) elseif @formula4 == 72 #z = 1/cosh( #z ) elseif @formula4 == 73 #z = 1/sinh( #z ) elseif @formula4 == 74 #z = atanh( 1/#z ) elseif @formula4 == 75 #z = acosh( 1/#z ) elseif @formula4 == 76 #z = asinh( 1/#z ) elseif @formula4 == 77 #z = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c elseif @formula4 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula4 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula4 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula4 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula4 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula4 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula4 == 84 #z = sinh(1/#z) elseif @formula4 == 85 #z = cosh(1/#z) elseif @formula4 == 86 #z = tanh(1/#z) elseif @formula4 == 87 #z = cotanh(1/#z) elseif @formula4 == 88 #z = (1,0)/cosh(1/#z) elseif @formula4 == 89 #z = (1,0)/sinh(1/#z) elseif @formula4 == 90 #z = sin( #z ) * tan(#z) elseif @formula4 == 91 #z = sinh(#z) * tanh(#z) elseif @formula4 == 92 #z = sinh(#z) * cosh(#z) elseif @formula4 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula4 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula4 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula4 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula4 == 97 #z = sin(#z) * cos(1/#z) elseif @formula4 == 98 #z = sin(#z) * sin(1/#z) elseif @formula4 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula4 == 100 #z = sin(#z) * sin(2*#z) elseif @formula4 == 101 #z = exp(2*#z) elseif @formula4 == 102 #z = exp(-2*#z) elseif @formula4 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula4 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula4 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula4 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula4 == 107 #z = sin(#z) * sinh(#z) elseif @formula4 == 108 #z = sin(#z) * cosh(#z) elseif @formula4 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula4 == 110 #z = sin(#z)*exp(#z) elseif @formula4 == 111 #z = cos(#z)*exp(#z) elseif @formula4 == 112 #z = sinh(#z)*exp(#z) elseif @formula4 == 113 #z = cosh(#z)*exp(#z) elseif @formula4 == 114 #z = sin(#z)*log(#z) elseif @formula4 == 115 #z = cos(#z)*log(#z) elseif @formula4 == 116 #z = sinh(#z)*log(#z) elseif @formula4 == 117 #z = cosh(#z)*log(#z) elseif @formula4 == 118 #z = exp(#z*#z) elseif @formula4 == 119 #z = exp(-(#z*#z)) elseif @formula4 == 120 #z = exp(1/(#z*#z)) else ; @formula4 == 121 #z = exp(-1/(#z*#z)) endif ; formula4-1 else ; execute primary formula (Formula 1) as default ; Execute 1st formula selection if @formula1 == 0 #z = #z * #z elseif @formula1 == 1 #z = #z * #z * #z elseif @formula1 == 2 zextra = #z * #z #z = zextra * zextra elseif @formula1 == 3 #z = #z ^ @power1 elseif @formula1 == 4 #z = 1/#z elseif @formula1 == 5 #z = sqrt(#z) elseif @formula1 == 6 #z = 1 / ( #z * #z ) elseif @formula1 == 7 #z = log(#z) elseif @formula1 == 8 #z = exp( #z) elseif @formula1 == 9 #z = #z^#z elseif @formula1 == 10 #z = sin( #z ) elseif @formula1 == 11 #z = cos( #z ) elseif @formula1 == 12 #z = tan( #z ) elseif @formula1 == 13 #z = asin( #z ) elseif @formula1 == 14 #z = acos( #z ) elseif @formula1 == 15 #z = atan( #z ) elseif @formula1 == 16 #z = sinh( #z ) elseif @formula1 == 17 #z = cosh( #z ) elseif @formula1 == 18 #z = tanh( #z ) elseif @formula1 == 19 #z = asinh( #z ) elseif @formula1 == 20 #z = acosh( #z ) elseif @formula1 == 21 #z = atanh( #z ) elseif @formula1 == 22 #z = log( 1/#z ) elseif @formula1 == 23 #z = log( log( #z )) elseif @formula1 == 24 #z = exp( -#z ) elseif @formula1 == 25 #z = exp( 1/#z ) elseif @formula1 == 26 #z = #z^(-#z) elseif @formula1 == 27 zextra = sin( #z ) #z = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) #z = zextra * zextra elseif @formula1 == 29 zextra = tan( #z ) #z = zextra * zextra elseif @formula1 == 30 #z = cotan( #z ) elseif @formula1 == 31 #z = 1/cos( #z ) elseif @formula1 == 32 #z = 1/sin( #z ) elseif @formula1 == 33 zextra = cotan( #z ) #z = zextra * zextra elseif @formula1 == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif @formula1 == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif @formula1 == 36 zextra = #z^(#z) #z = #z^zextra elseif @formula1 == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif @formula1 == 38 #z = log(-#z) elseif @formula1 == 39 #z = 1/log( #z ) elseif @formula1 == 40 #z = #z * log( #z ) elseif @formula1 == 41 #z = sin( #z ) / #z elseif @formula1 == 42 #z = cos( #z ) / #z elseif @formula1 == 43 #z = sin( #z ) * cos( #z ) elseif @formula1 == 44 #z = sin( #z^2 ) elseif @formula1 == 45 #z = exp( -1/#z ) elseif @formula1 == 46 #z = #z * exp( #z ) elseif @formula1 == 47 #z = #z * exp( -#z ) elseif @formula1 == 48 #z = #z * exp( 1/#z ) elseif @formula1 == 49 #z = #z * exp( -1/#z ) elseif @formula1 == 50 #z = #z * #z * #z elseif @formula1 == 51 #z = 1 / ( #z * #z * #z ) elseif @formula1 == 52 #z = atan( 1 / #z ) elseif @formula1 == 53 #z = acos( 1 / #z ) elseif @formula1 == 54 #z = asin( 1 / #z ) elseif @formula1 == 55 #z = tan( #z ) / #z elseif @formula1 == 56 #z = cotan( #z ) / #z elseif @formula1 == 57 #z = 1 / ( #z * cos( #z )) elseif @formula1 == 58 #z = 1 / ( #z * sin( #z )) elseif @formula1 == 59 #z = #z * sin( #z ) elseif @formula1 == 60 #z = #z * cos( #z ) elseif @formula1 == 61 #z = #z * tan( #z ) elseif @formula1 == 62 #z = #z * cotan( #z ) elseif @formula1 == 63 #z = #z/cos( #z ) elseif @formula1 == 64 #z = #z/sin( #z ) elseif @formula1 == 65 #z = sin( 1/#z ) elseif @formula1 == 66 #z = cos( 1/#z ) elseif @formula1 == 67 #z = tan( 1/#z ) elseif @formula1 == 68 #z = cotan( 1/#z ) elseif @formula1 == 69 #z = 1/cos( 1/#z ) elseif @formula1 == 70 #z = 1/sin( 1/#z ) elseif @formula1 == 71 #z = cotanh( #z ) elseif @formula1 == 72 #z = 1/cosh( #z ) elseif @formula1 == 73 #z = 1/sinh( #z ) elseif @formula1 == 74 #z = atanh( 1/#z ) elseif @formula1 == 75 #z = acosh( 1/#z ) elseif @formula1 == 76 #z = asinh( 1/#z ) elseif @formula1 == 77 #z = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c elseif @formula1 == 78 zextra = sinh(#z) #z = zextra * zextra elseif @formula1 == 79 zextra = cosh( #z ) #z = zextra * zextra elseif @formula1 == 80 zextra = tanh(#z) #z = zextra * zextra elseif @formula1 == 81 zextra = cotanh( #z ) #z = zextra * zextra elseif @formula1 == 82 zextra = (1,0)/cosh(#z) #z = zextra * zextra elseif @formula1 == 83 zextra = (1,0) / sinh( #z ) #z = zextra * zextra elseif @formula1 == 84 #z = sinh(1/#z) elseif @formula1 == 85 #z = cosh(1/#z) elseif @formula1 == 86 #z = tanh(1/#z) elseif @formula1 == 87 #z = cotanh(1/#z) elseif @formula1 == 88 #z = (1,0)/cosh(1/#z) elseif @formula1 == 89 #z = (1,0)/sinh(1/#z) elseif @formula1 == 90 #z = sin( #z ) * tan(#z) elseif @formula1 == 91 #z = sinh(#z) * tanh(#z) elseif @formula1 == 92 #z = sinh(#z) * cosh(#z) elseif @formula1 == 93 temp2 = sinh(#z), zextra = cosh(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 94 temp2 = sin(#z), zextra = cos(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 95 zextra = 1/#z #z = sin(zextra)*cos(zextra) elseif @formula1 == 96 zextra = sin( 1/#z ) #z = zextra*zextra elseif @formula1 == 97 #z = sin(#z) * cos(1/#z) elseif @formula1 == 98 #z = sin(#z) * sin(1/#z) elseif @formula1 == 99 zextra = log(#z) #z = zextra*zextra elseif @formula1 == 100 #z = sin(#z) * sin(2*#z) elseif @formula1 == 101 #z = exp(2*#z) elseif @formula1 == 102 #z = exp(-2*#z) elseif @formula1 == 103 zextra = 1/#z #z = sinh(zextra)*cosh(zextra) elseif @formula1 == 104 zextra = sinh( 1/#z ) #z = zextra*zextra elseif @formula1 == 105 #z = sinh(#z) * cosh(1/#z) elseif @formula1 == 106 #z = sinh(#z) * sinh(1/#z) elseif @formula1 == 107 #z = sin(#z) * sinh(#z) elseif @formula1 == 108 #z = sin(#z) * cosh(#z) elseif @formula1 == 109 zextra = sin(#z), temp2 = sinh(#z) #z = temp2*temp2*zextra*zextra elseif @formula1 == 110 #z = sin(#z)*exp(#z) elseif @formula1 == 111 #z = cos(#z)*exp(#z) elseif @formula1 == 112 #z = sinh(#z)*exp(#z) elseif @formula1 == 113 #z = cosh(#z)*exp(#z) elseif @formula1 == 114 #z = sin(#z)*log(#z) elseif @formula1 == 115 #z = cos(#z)*log(#z) elseif @formula1 == 116 #z = sinh(#z)*log(#z) elseif @formula1 == 117 #z = cosh(#z)*log(#z) elseif @formula1 == 118 #z = exp(#z*#z) elseif @formula1 == 119 #z = exp(-(#z*#z)) elseif @formula1 == 120 #z = exp(1/(#z*#z)) else ; @formula1 == 121 #z = exp(-1/(#z*#z)) endif ; formula1-1 endif ; remainder if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend if @pmode != 1 #z = #z + jc endif ; pmode if @biomorph if @biomorphtype == "real + imag" bail = (abs(real(z)) < @biomorphtest) || (abs(imag(z)) < @biomorphtest) elseif @biomorphtype == "real + imag + cabs" bail = (abs(real(z)) < @biomorphtest) || (abs(imag(z)) < @biomorphtest) || (cabs(z) < sqr(@biomorphtest)) elseif @biomorphtype == "real" bail = abs(real(z)) < @biomorphtest elseif @biomorphtype == "imag" bail = abs(imag(z)) < @biomorphtest elseif @biomorphtype == "cabs" bail = cabs(z) < sqr(@biomorphtest) endif ; @biomorphtype else bail = |z| < @bail endif ; @biomorph bailout: bail default: title = "NCycle General Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param divisor caption = "N, Cycle Length" default = 20 hint = "Formula 2 will be executed every Nth iteration (iterations 0 mod N)" endparam param formula1 caption = "Formula 1" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "Formula executed during iterations 1,N+1,2N+1,... (1 mod N), \ and all other iterations not specified by Formulas 2-4. \ For 'z^power', parameter 'Power 1' sets power. For '3-term polynomial' set \ params 'Coeff 1a', 'Exponent 1a', 'Coeff 1b', 'Exponent 1b', 'Coeff 1c', \ 'Exponent 1c'." endparam param power1 caption = "Power 1" default = (5,0) hint = "This is the power used for the first formula series if parameter \ 'Formula 1' is set to 'z^power'" visible = @formula1 == "z^power" endparam param coeff1a caption = "Coeff 1A" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula1 == "3-term polynomial" endparam param exponent1a caption = "Exponent 1A" default = (6,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula1 == "3-term polynomial" endparam param coeff1b caption = "Coeff 1B" default = (-1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula1 == "3-term polynomial" endparam param exponent1b caption = "Exponent 1B" default = (4,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula1 == "3-term polynomial" endparam param coeff1c caption = "Coeff 1C" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula1 == "3-term polynomial" endparam param exponent1c caption = "Exponent 1C" default = (2,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula1 == "3-term polynomial" endparam param formula2 caption = "Formula 2" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "Secondary formula executed on iterations N,2N,3N,... (0 mod N). \ For 'z^power', use parameter 'Power 2' to set power. For '3-term polynomial' set \ params 'Coeff 2a', 'Exponent 2a', 'Coeff 2b', 'Exponent 2b', 'Coeff 2c', \ 'Exponent 2c'." endparam param power2 caption = "Power 2" default = (6,0) hint = "This is the power used for the second formula series if parameter \ 'Formula 2' is set to 'z^power'" visible = @formula2 == "z^power" endparam param coeff2a caption = "Coeff 2A" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula2 == "3-term polynomial" endparam param exponent2a caption = "Exponent 2A" default = (6,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula2 == "3-term polynomial" endparam param coeff2b caption = "Coeff 2B" default = (-1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula2 == "3-term polynomial" endparam param exponent2b caption = "Exponent 2B" default = (4,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula2 == "3-term polynomial" endparam param coeff2c caption = "Coeff 2C" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula2 == "3-term polynomial" endparam param exponent2c caption = "Exponent 2C" default = (2,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula2 == "3-term polynomial" endparam param freq3 caption = "Freq3" default = 0 hint = "Formula 3 will be executed on iterations 'Freq3' mod N i.e., \ iterations Freq3, N+Freq3, 2N+Freq3,... If Freq3 doesn't fall within \ the range 1 < Freq3 < N, then Formula 3 is not executed" endparam param formula3 caption = "Formula 3" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "Formula executed during the 3rd series of iterations \ (iter Freq3,N+Freq3,...). \ For 'z^power', parameter 'Power 3' sets power. For '3-term polynomial' set \ params 'Coeff 3a', 'Exponent 3a', 'Coeff 3b', 'Exponent 3b', 'Coeff 3c', \ 'Exponent 3c'." visible = @freq3 != 0 endparam param power3 caption = "Power 3" default = (6,0) hint = "This is the power used for the third formula series if parameter \ 'Formula 3' is set to 'z^power'" visible = @formula3 == "z^power" endparam param coeff3a caption = "Coeff 3A" default = (1,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula3 == "3-term polynomial" endparam param exponent3a caption = "Exponent 3A" default = (6,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula3 == "3-term polynomial" endparam param coeff3b caption = "Coeff 3B" default = (-1,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula3 == "3-term polynomial" endparam param exponent3b caption = "Exponent 3B" default = (4,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula3 == "3-term polynomial" endparam param coeff3c caption = "Coeff 3C" default = (1,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula3 == "3-term polynomial" endparam param exponent3c caption = "Exponent 3C" default = (2,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula3 == "3-term polynomial" endparam param freq4 caption = "Freq4" default = 0 hint = "Formula 4 will be executed on iterations 'Freq4' mod N i.e., \ iterations Freq4, N+Freq4, 2N+Freq4,... If Freq4 doesn't fall within \ the range 1 < Freq4 < N, then Formula 4 is not executed" endparam param formula4 caption = "Formula 4" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "Formula executed during the 4th series of iterations \ (iters Freq4,N+Freq4,...). \ For 'z^power', parameter 'Power 4' sets power. For '3-term polynomial' set \ params 'Coeff 4a', 'Exponent 4a', 'Coeff 4b', 'Exponent 4b', 'Coeff 4c', \ 'Exponent 4c'." visible = @freq4 != 0 endparam param power4 caption = "Power 4" default = (6,0) hint = "This is the power used for the fourth formula series if parameter \ 'Formula 4' is set to 'z^power'" visible = @formula4 == "z^power" endparam param coeff4a caption = "Coeff 4A" default = (1,0) hint = "If 'Formula 4' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula4 == "3-term polynomial" endparam param exponent4a caption = "Exponent 4A" default = (6,0) hint = "If 'Formula 4' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula4 == "3-term polynomial" endparam param coeff4b caption = "Coeff 4B" default = (-1,0) hint = "If 'Formula 4' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula4 == "3-term polynomial" endparam param exponent4b caption = "Exponent 4B" default = (4,0) hint = "If 'Formula 4' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula4 == "3-term polynomial" endparam param coeff4c caption = "Coeff 4C" default = (1,0) hint = "If 'Formula 4' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula4 == "3-term polynomial" endparam param exponent4c caption = "Exponent 4C" default = (2,0) hint = "If 'Formula 4' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula4 == "3-term polynomial" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" "p^p" \ "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" visible = @pixelformula == "p^power" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" visible = !@biomorph endparam param biomorph caption = "Biomorph Bailout?" default = FALSE hint = "Enabling this setting changes the bailout condition to match \ Pickover's 'biomorph' definition. For coloring, consider using \ 'Biomorph' in the public folder 'jam2.ucl'." endparam param biomorphtest caption = "Biomorph Bailout Test" default = 10.0 hint = "The bailout value for the 'Biomorph' test." visible = @biomorph endparam param biomorphtype caption = "Biomorph Type" enum = "real" "imag" "real + imag" "real + imag + cabs" "cabs" default = 3 hint = "This determines the bailout condition for the Biomorph." visible = @biomorph endparam switch: type = "jam-altNCycle-general" perturbation = #pixel bail = bail biomorph = biomorph biomorphtype = biomorphtype biomorphtest = biomorphtest blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower formula1 = formula1 divisor = divisor formula2 = formula2 freq3 = freq3 formula3 = formula3 freq4 = freq4 formula4 = formula4 power1 = power1 power2 = power2 power3 = power3 power4 = power4 coeff1a = coeff1a exponent1a = exponent1a coeff1b = coeff1b exponent1b = exponent1b coeff1c = coeff1c exponent1c = exponent1c coeff2a = coeff2a exponent2a = exponent2a coeff2b = coeff2b exponent2b = exponent2b coeff2c = coeff2c exponent2c = exponent2c coeff3a = coeff3a exponent3a = exponent3a coeff3b = coeff3b exponent3b = exponent3b coeff3c = coeff3c exponent3c = exponent3c coeff4a = coeff4a exponent4a = exponent4a coeff4b = coeff4b exponent4b = exponent4b coeff4c = coeff4c exponent4c = exponent4c pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-3functions { ; jam 020221 ; 2 or 3 different Mandelbrot/Julia style formulas are executed ; and combined in a user-specified manner, either each iteration ; or every N iterations. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 complex zblend = (0,0) complex zextra = complex ztemp = (0,0) ; temp/spare scratch variable complex zf1 = complex zf2 = complex zf3 = (0,0) bool bail = FALSE ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 ztemp = sinh(jc), zextra = cosh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 95 ztemp = sin(jc), zextra = cos(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), ztemp = sinh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: if @pmode != 0 z = z + jc endif ; pmode zblend = z iterations = iterations + 1 if @formula1 == 0 zf1 = z * z elseif @formula1 == 1 zf1 = z * z * z elseif @formula1 == 2 zextra = z * z zf1 = zextra * zextra elseif @formula1 == 3 zf1 = z ^ @power1 elseif @formula1 == 4 zf1 = 1/z elseif @formula1 == 5 zf1 = sqrt(z) elseif @formula1 == 6 zf1 = 1 / ( z * z ) elseif @formula1 == 7 zf1 = log(z) elseif @formula1 == 8 zf1 = exp( z) elseif @formula1 == 9 zf1 = z^z elseif @formula1 == 10 zf1 = sin( z ) elseif @formula1 == 11 zf1 = cos( z ) elseif @formula1 == 12 zf1 = tan( z ) elseif @formula1 == 13 zf1 = asin( z ) elseif @formula1 == 14 zf1 = acos( z ) elseif @formula1 == 15 zf1 = atan( z ) elseif @formula1 == 16 zf1 = sinh( z ) elseif @formula1 == 17 zf1 = cosh( z ) elseif @formula1 == 18 zf1 = tanh( z ) elseif @formula1 == 19 zf1 = asinh( z ) elseif @formula1 == 20 zf1 = acosh( z ) elseif @formula1 == 21 zf1 = atanh( z ) elseif @formula1 == 22 zf1 = log( 1/z ) elseif @formula1 == 23 zf1 = log( log( z )) elseif @formula1 == 24 zf1 = exp( -z ) elseif @formula1 == 25 zf1 = exp( 1/z ) elseif @formula1 == 26 zf1 = z^(-z) elseif @formula1 == 27 zextra = sin( z ) zf1 = zextra * zextra elseif @formula1 == 28 zextra = cos( z ) zf1 = zextra * zextra elseif @formula1 == 29 zextra = tan( z ) zf1 = zextra * zextra elseif @formula1 == 30 zf1 = cotan( z ) elseif @formula1 == 31 zf1 = 1/cos( z ) elseif @formula1 == 32 zf1 = 1/sin( z ) elseif @formula1 == 33 zextra = cotan( z ) zf1 = zextra * zextra elseif @formula1 == 34 zextra = 1/cos( z ) zf1 = zextra * zextra elseif @formula1 == 35 zextra = 1/sin( z ) zf1 = zextra * zextra elseif @formula1 == 36 zextra = z^(z) zf1 = z^zextra elseif @formula1 == 37 zextra = z^(z) zf1 = 1/( z^zextra ) elseif @formula1 == 38 zf1 = log(-z) elseif @formula1 == 39 zf1 = 1/log( z ) elseif @formula1 == 40 zf1 = z * log( z ) elseif @formula1 == 41 zf1 = sin( z ) / z elseif @formula1 == 42 zf1 = cos( z ) / z elseif @formula1 == 43 zf1 = sin( z ) * cos( z ) elseif @formula1 == 44 zf1 = sin( z^2 ) elseif @formula1 == 45 zf1 = exp( -1/z ) elseif @formula1 == 46 zf1 = z * exp( z ) elseif @formula1 == 47 zf1 = z * exp( -z ) elseif @formula1 == 48 zf1 = z * exp( 1/z ) elseif @formula1 == 49 zf1 = z * exp( -1/z ) elseif @formula1 == 50 zf1 = z * z * z elseif @formula1 == 51 zf1 = 1 / ( z * z * z ) elseif @formula1 == 52 zf1 = atan( 1 / z ) elseif @formula1 == 53 zf1 = acos( 1 / z ) elseif @formula1 == 54 zf1 = asin( 1 / z ) elseif @formula1 == 55 zf1 = tan( z ) / z elseif @formula1 == 56 zf1 = cotan( z ) / z elseif @formula1 == 57 zf1 = 1 / ( z * cos( z )) elseif @formula1 == 58 zf1 = 1 / ( z * sin( z )) elseif @formula1 == 59 zf1 = z * sin( z ) elseif @formula1 == 60 zf1 = z * cos( z ) elseif @formula1 == 61 zf1 = z * tan( z ) elseif @formula1 == 62 zf1 = z * cotan( z ) elseif @formula1 == 63 zf1 = z/cos( z ) elseif @formula1 == 64 zf1 = z/sin( z ) elseif @formula1 == 65 zf1 = sin( 1/z ) elseif @formula1 == 66 zf1 = cos( 1/z ) elseif @formula1 == 67 zf1 = tan( 1/z ) elseif @formula1 == 68 zf1 = cotan( 1/z ) elseif @formula1 == 69 zf1 = 1/cos( 1/z ) elseif @formula1 == 70 zf1 = 1/sin( 1/z ) elseif @formula1 == 71 zf1 = cotanh( z ) elseif @formula1 == 72 zf1 = 1/cosh( z ) elseif @formula1 == 73 zf1 = 1/sinh( z ) elseif @formula1 == 74 zf1 = atanh( 1/z ) elseif @formula1 == 75 zf1 = acosh( 1/z ) elseif @formula1 == 76 zf1 = asinh( 1/z ) elseif @formula1 == 77 zf1 = @coeff1a * z^@exponent1a + @coeff1b * z^@exponent1b + \ @coeff1c * z^@exponent1c elseif @formula1 == 78 zextra = sinh(z) zf1 = zextra * zextra elseif @formula1 == 79 zextra = cosh( z ) zf1 = zextra * zextra elseif @formula1 == 80 zextra = tanh(z) zf1 = zextra * zextra elseif @formula1 == 81 zextra = cotanh( z ) zf1 = zextra * zextra elseif @formula1 == 82 zextra = (1,0)/cosh(z) zf1 = zextra * zextra elseif @formula1 == 83 zextra = (1,0) / sinh( z ) zf1 = zextra * zextra elseif @formula1 == 84 zf1 = sinh(1/z) elseif @formula1 == 85 zf1 = cosh(1/z) elseif @formula1 == 86 zf1 = tanh(1/z) elseif @formula1 == 87 zf1 = cotanh(1/z) elseif @formula1 == 88 zf1 = (1,0)/cosh(1/z) elseif @formula1 == 89 zf1 = (1,0)/sinh(1/z) elseif @formula1 == 90 zf1 = sin( z ) * tan(z) elseif @formula1 == 91 zf1 = sinh(z) * tanh(z) elseif @formula1 == 92 zf1 = sinh(z) * cosh(z) elseif @formula1 == 93 ztemp = sinh(z), zextra = cosh(z) zf1 = ztemp*ztemp*zextra*zextra elseif @formula1 == 94 ztemp = sin(z), zextra = cos(z) zf1 = ztemp*ztemp*zextra*zextra elseif @formula1 == 95 zextra = 1/z zf1 = sin(zextra)*cos(zextra) elseif @formula1 == 96 zextra = sin( 1/z ) zf1 = zextra*zextra elseif @formula1 == 97 zf1 = sin(z) * cos(1/z) elseif @formula1 == 98 zf1 = sin(z) * sin(1/z) elseif @formula1 == 99 zextra = log(z) zf1 = zextra*zextra elseif @formula1 == 100 zf1 = sin(z) * sin(2*z) elseif @formula1 == 101 zf1 = exp(2*z) elseif @formula1 == 102 zf1 = exp(-2*z) elseif @formula1 == 103 zextra = 1/z zf1 = sinh(zextra)*cosh(zextra) elseif @formula1 == 104 zextra = sinh( 1/z ) zf1 = zextra*zextra elseif @formula1 == 105 zf1 = sinh(z) * cosh(1/z) elseif @formula1 == 106 zf1 = sinh(z) * sinh(1/z) elseif @formula1 == 107 zf1 = sin(z) * sinh(z) elseif @formula1 == 108 zf1 = sin(z) * cosh(z) elseif @formula1 == 109 zextra = sin(z), ztemp = sinh(z) zf1 = ztemp*ztemp*zextra*zextra elseif @formula1 == 110 zf1 = sin(z)*exp(z) elseif @formula1 == 111 zf1 = cos(z)*exp(z) elseif @formula1 == 112 zf1 = sinh(z)*exp(z) elseif @formula1 == 113 zf1 = cosh(z)*exp(z) elseif @formula1 == 114 zf1 = sin(z)*log(z) elseif @formula1 == 115 zf1 = cos(z)*log(z) elseif @formula1 == 116 zf1 = sinh(z)*log(z) elseif @formula1 == 117 zf1 = cosh(z)*log(z) elseif @formula1 == 118 zf1 = exp(z*z) elseif @formula1 == 119 zf1 = exp(-(z*z)) elseif @formula1 == 120 zf1 = exp(1/(z*z)) else ; @formula1 == 121 zf1 = exp(-1/(z*z)) endif ; @formula1 if iterations % @frequency == 0 ; execute other formulas and combine zf1 = @weight1*zf1 if ( @combo == 3 ) || ( @combo == 9 ) z = zf1 endif ; @combo if @formula2 == 0 zf2 = z * z elseif @formula2 == 1 zf2 = z * z * z elseif @formula2 == 2 zextra = z * z zf2 = zextra * zextra elseif @formula2 == 3 zf2 = z ^ @power2 elseif @formula2 == 4 zf2 = 1/z elseif @formula2 == 5 zf2 = sqrt(z) elseif @formula2 == 6 zf2 = 1 / ( z * z ) elseif @formula2 == 7 zf2 = log(z) elseif @formula2 == 8 zf2 = exp( z) elseif @formula2 == 9 zf2 = z^z elseif @formula2 == 10 zf2 = sin( z ) elseif @formula2 == 11 zf2 = cos( z ) elseif @formula2 == 12 zf2 = tan( z ) elseif @formula2 == 13 zf2 = asin( z ) elseif @formula2 == 14 zf2 = acos( z ) elseif @formula2 == 15 zf2 = atan( z ) elseif @formula2 == 16 zf2 = sinh( z ) elseif @formula2 == 17 zf2 = cosh( z ) elseif @formula2 == 18 zf2 = tanh( z ) elseif @formula2 == 19 zf2 = asinh( z ) elseif @formula2 == 20 zf2 = acosh( z ) elseif @formula2 == 21 zf2 = atanh( z ) elseif @formula2 == 22 zf2 = log( 1/z ) elseif @formula2 == 23 zf2 = log( log( z )) elseif @formula2 == 24 zf2 = exp( -z ) elseif @formula2 == 25 zf2 = exp( 1/z ) elseif @formula2 == 26 zf2 = z^(-z) elseif @formula2 == 27 zextra = sin( z ) zf2 = zextra * zextra elseif @formula2 == 28 zextra = cos( z ) zf2 = zextra * zextra elseif @formula2 == 29 zextra = tan( z ) zf2 = zextra * zextra elseif @formula2 == 30 zf2 = cotan( z ) elseif @formula2 == 31 zf2 = 1/cos( z ) elseif @formula2 == 32 zf2 = 1/sin( z ) elseif @formula2 == 33 zextra = cotan( z ) zf2 = zextra * zextra elseif @formula2 == 34 zextra = 1/cos( z ) zf2 = zextra * zextra elseif @formula2 == 35 zextra = 1/sin( z ) zf2 = zextra * zextra elseif @formula2 == 36 zextra = z^(z) zf2 = z^zextra elseif @formula2 == 37 zextra = z^(z) zf2 = 1/( z^zextra ) elseif @formula2 == 38 zf2 = log(-z) elseif @formula2 == 39 zf2 = 1/log( z ) elseif @formula2 == 40 zf2 = z * log( z ) elseif @formula2 == 41 zf2 = sin( z ) / z elseif @formula2 == 42 zf2 = cos( z ) / z elseif @formula2 == 43 zf2 = sin( z ) * cos( z ) elseif @formula2 == 44 zf2 = sin( z^2 ) elseif @formula2 == 45 zf2 = exp( -1/z ) elseif @formula2 == 46 zf2 = z * exp( z ) elseif @formula2 == 47 zf2 = z * exp( -z ) elseif @formula2 == 48 zf2 = z * exp( 1/z ) elseif @formula2 == 49 zf2 = z * exp( -1/z ) elseif @formula2 == 50 zf2 = z * z * z elseif @formula2 == 51 zf2 = 1 / ( z * z * z ) elseif @formula2 == 52 zf2 = atan( 1 / z ) elseif @formula2 == 53 zf2 = acos( 1 / z ) elseif @formula2 == 54 zf2 = asin( 1 / z ) elseif @formula2 == 55 zf2 = tan( z ) / z elseif @formula2 == 56 zf2 = cotan( z ) / z elseif @formula2 == 57 zf2 = 1 / ( z * cos( z )) elseif @formula2 == 58 zf2 = 1 / ( z * sin( z )) elseif @formula2 == 59 zf2 = z * sin( z ) elseif @formula2 == 60 zf2 = z * cos( z ) elseif @formula2 == 61 zf2 = z * tan( z ) elseif @formula2 == 62 zf2 = z * cotan( z ) elseif @formula2 == 63 zf2 = z/cos( z ) elseif @formula2 == 64 zf2 = z/sin( z ) elseif @formula2 == 65 zf2 = sin( 1/z ) elseif @formula2 == 66 zf2 = cos( 1/z ) elseif @formula2 == 67 zf2 = tan( 1/z ) elseif @formula2 == 68 zf2 = cotan( 1/z ) elseif @formula2 == 69 zf2 = 1/cos( 1/z ) elseif @formula2 == 70 zf2 = 1/sin( 1/z ) elseif @formula2 == 71 zf2 = cotanh( z ) elseif @formula2 == 72 zf2 = 1/cosh( z ) elseif @formula2 == 73 zf2 = 1/sinh( z ) elseif @formula2 == 74 zf2 = atanh( 1/z ) elseif @formula2 == 75 zf2 = acosh( 1/z ) elseif @formula2 == 76 zf2 = asinh( 1/z ) elseif @formula2 == 77 zf2 = @coeff2a * z^@exponent2a + @coeff2b * z^@exponent2b + \ @coeff2c * z^@exponent2c elseif @formula2 == 78 zextra = sinh(z) zf2 = zextra * zextra elseif @formula2 == 79 zextra = cosh( z ) zf2 = zextra * zextra elseif @formula2 == 80 zextra = tanh(z) zf2 = zextra * zextra elseif @formula2 == 81 zextra = cotanh( z ) zf2 = zextra * zextra elseif @formula2 == 82 zextra = (1,0)/cosh(z) zf2 = zextra * zextra elseif @formula2 == 83 zextra = (1,0) / sinh( z ) zf2 = zextra * zextra elseif @formula2 == 84 zf2 = sinh(1/z) elseif @formula2 == 85 zf2 = cosh(1/z) elseif @formula2 == 86 zf2 = tanh(1/z) elseif @formula2 == 87 zf2 = cotanh(1/z) elseif @formula2 == 88 zf2 = (1,0)/cosh(1/z) elseif @formula2 == 89 zf2 = (1,0)/sinh(1/z) elseif @formula2 == 90 zf2 = sin( z ) * tan(z) elseif @formula2 == 91 zf2 = sinh(z) * tanh(z) elseif @formula2 == 92 zf2 = sinh(z) * cosh(z) elseif @formula2 == 93 ztemp = sinh(z), zextra = cosh(z) zf2 = ztemp*ztemp*zextra*zextra elseif @formula2 == 94 ztemp = sin(z), zextra = cos(z) zf2 = ztemp*ztemp*zextra*zextra elseif @formula2 == 95 zextra = 1/z zf2 = sin(zextra)*cos(zextra) elseif @formula2 == 96 zextra = sin( 1/z ) zf2 = zextra*zextra elseif @formula2 == 97 zf2 = sin(z) * cos(1/z) elseif @formula2 == 98 zf2 = sin(z) * sin(1/z) elseif @formula2 == 99 zextra = log(z) zf2 = zextra*zextra elseif @formula2 == 100 zf2 = sin(z) * sin(2*z) elseif @formula2 == 101 zf2 = exp(2*z) elseif @formula2 == 102 zf2 = exp(-2*z) elseif @formula2 == 103 zextra = 1/z zf2 = sinh(zextra)*cosh(zextra) elseif @formula2 == 104 zextra = sinh( 1/z ) zf2 = zextra*zextra elseif @formula2 == 105 zf2 = sinh(z) * cosh(1/z) elseif @formula2 == 106 zf2 = sinh(z) * sinh(1/z) elseif @formula2 == 107 zf2 = sin(z) * sinh(z) elseif @formula2 == 108 zf2 = sin(z) * cosh(z) elseif @formula2 == 109 zextra = sin(z), ztemp = sinh(z) zf2 = ztemp*ztemp*zextra*zextra elseif @formula2 == 110 zf2 = sin(z)*exp(z) elseif @formula2 == 111 zf2 = cos(z)*exp(z) elseif @formula2 == 112 zf2 = sinh(z)*exp(z) elseif @formula2 == 113 zf2 = cosh(z)*exp(z) elseif @formula2 == 114 zf2 = sin(z)*log(z) elseif @formula2 == 115 zf2 = cos(z)*log(z) elseif @formula2 == 116 zf2 = sinh(z)*log(z) elseif @formula2 == 117 zf2 = cosh(z)*log(z) elseif @formula2 == 118 zf2 = exp(z*z) elseif @formula2 == 119 zf2 = exp(-(z*z)) elseif @formula2 == 120 zf2 = exp(1/(z*z)) else ; @formula2 == 121 zf2 = exp(-1/(z*z)) endif ; @formula2 zf2 = zf2 * @weight2 if @combo > 5 ; also need func 3 for these combinations if @combo == 9 z = zf2 elseif @combo == 17 z = zf1 + zf2 elseif @combo == 18 z = zf1 * zf2 elseif @combo == 19 z = zf1 / zf2 elseif @combo == 20 z = zf1 ^ zf2 elseif @combo == 21 z = log(zf1)/log(zf2) endif; @combo if @formula3 == 0 zf3 = z * z elseif @formula3 == 1 zf3 = z * z * z elseif @formula3 == 2 zextra = z * z zf3 = zextra * zextra elseif @formula3 == 3 zf3 = z ^ @power3 elseif @formula3 == 4 zf3 = 1/z elseif @formula3 == 5 zf3 = sqrt(z) elseif @formula3 == 6 zf3 = 1 / ( z * z ) elseif @formula3 == 7 zf3 = log(z) elseif @formula3 == 8 zf3 = exp( z) elseif @formula3 == 9 zf3 = z^z elseif @formula3 == 10 zf3 = sin( z ) elseif @formula3 == 11 zf3 = cos( z ) elseif @formula3 == 12 zf3 = tan( z ) elseif @formula3 == 13 zf3 = asin( z ) elseif @formula3 == 14 zf3 = acos( z ) elseif @formula3 == 15 zf3 = atan( z ) elseif @formula3 == 16 zf3 = sinh( z ) elseif @formula3 == 17 zf3 = cosh( z ) elseif @formula3 == 18 zf3 = tanh( z ) elseif @formula3 == 19 zf3 = asinh( z ) elseif @formula3 == 20 zf3 = acosh( z ) elseif @formula3 == 21 zf3 = atanh( z ) elseif @formula3 == 22 zf3 = log( 1/z ) elseif @formula3 == 23 zf3 = log( log( z )) elseif @formula3 == 24 zf3 = exp( -z ) elseif @formula3 == 25 zf3 = exp( 1/z ) elseif @formula3 == 26 zf3 = z^(-z) elseif @formula3 == 27 zextra = sin( z ) zf3 = zextra * zextra elseif @formula3 == 28 zextra = cos( z ) zf3 = zextra * zextra elseif @formula3 == 29 zextra = tan( z ) zf3 = zextra * zextra elseif @formula3 == 30 zf3 = cotan( z ) elseif @formula3 == 31 zf3 = 1/cos( z ) elseif @formula3 == 32 zf3 = 1/sin( z ) elseif @formula3 == 33 zextra = cotan( z ) zf3 = zextra * zextra elseif @formula3 == 34 zextra = 1/cos( z ) zf3 = zextra * zextra elseif @formula3 == 35 zextra = 1/sin( z ) zf3 = zextra * zextra elseif @formula3 == 36 zextra = z^(z) zf3 = z^zextra elseif @formula3 == 37 zextra = z^(z) zf3 = 1/( z^zextra ) elseif @formula3 == 38 zf3 = log(-z) elseif @formula3 == 39 zf3 = 1/log( z ) elseif @formula3 == 40 zf3 = z * log( z ) elseif @formula3 == 41 zf3 = sin( z ) / z elseif @formula3 == 42 zf3 = cos( z ) / z elseif @formula3 == 43 zf3 = sin( z ) * cos( z ) elseif @formula3 == 44 zf3 = sin( z^2 ) elseif @formula3 == 45 zf3 = exp( -1/z ) elseif @formula3 == 46 zf3 = z * exp( z ) elseif @formula3 == 47 zf3 = z * exp( -z ) elseif @formula3 == 48 zf3 = z * exp( 1/z ) elseif @formula3 == 49 zf3 = z * exp( -1/z ) elseif @formula3 == 50 zf3 = z * z * z elseif @formula3 == 51 zf3 = 1 / ( z * z * z ) elseif @formula3 == 52 zf3 = atan( 1 / z ) elseif @formula3 == 53 zf3 = acos( 1 / z ) elseif @formula3 == 54 zf3 = asin( 1 / z ) elseif @formula3 == 55 zf3 = tan( z ) / z elseif @formula3 == 56 zf3 = cotan( z ) / z elseif @formula3 == 57 zf3 = 1 / ( z * cos( z )) elseif @formula3 == 58 zf3 = 1 / ( z * sin( z )) elseif @formula3 == 59 zf3 = z * sin( z ) elseif @formula3 == 60 zf3 = z * cos( z ) elseif @formula3 == 61 zf3 = z * tan( z ) elseif @formula3 == 62 zf3 = z * cotan( z ) elseif @formula3 == 63 zf3 = z/cos( z ) elseif @formula3 == 64 zf3 = z/sin( z ) elseif @formula3 == 65 zf3 = sin( 1/z ) elseif @formula3 == 66 zf3 = cos( 1/z ) elseif @formula3 == 67 zf3 = tan( 1/z ) elseif @formula3 == 68 zf3 = cotan( 1/z ) elseif @formula3 == 69 zf3 = 1/cos( 1/z ) elseif @formula3 == 70 zf3 = 1/sin( 1/z ) elseif @formula3 == 71 zf3 = cotanh( z ) elseif @formula3 == 72 zf3 = 1/cosh( z ) elseif @formula3 == 73 zf3 = 1/sinh( z ) elseif @formula3 == 74 zf3 = atanh( 1/z ) elseif @formula3 == 75 zf3 = acosh( 1/z ) elseif @formula3 == 76 zf3 = asinh( 1/z ) elseif @formula3 == 77 zf3 = @coeff3a * z^@exponent3a + @coeff3b * z^@exponent3b + \ @coeff3c * z^@exponent3c elseif @formula3 == 78 zextra = sinh(z) zf3 = zextra * zextra elseif @formula3 == 79 zextra = cosh( z ) zf3 = zextra * zextra elseif @formula3 == 80 zextra = tanh(z) zf3 = zextra * zextra elseif @formula3 == 81 zextra = cotanh( z ) zf3 = zextra * zextra elseif @formula3 == 82 zextra = (1,0)/cosh(z) zf3 = zextra * zextra elseif @formula3 == 83 zextra = (1,0) / sinh( z ) zf3 = zextra * zextra elseif @formula3 == 84 zf3 = sinh(1/z) elseif @formula3 == 85 zf3 = cosh(1/z) elseif @formula3 == 86 zf3 = tanh(1/z) elseif @formula3 == 87 zf3 = cotanh(1/z) elseif @formula3 == 88 zf3 = (1,0)/cosh(1/z) elseif @formula3 == 89 zf3 = (1,0)/sinh(1/z) elseif @formula3 == 90 zf3 = sin( z ) * tan(z) elseif @formula3 == 91 zf3 = sinh(z) * tanh(z) elseif @formula3 == 92 zf3 = sinh(z) * cosh(z) elseif @formula3 == 93 ztemp = sinh(z), zextra = cosh(z) zf3 = ztemp*ztemp*zextra*zextra elseif @formula3 == 94 ztemp = sin(z), zextra = cos(z) zf3 = ztemp*ztemp*zextra*zextra elseif @formula3 == 95 zextra = 1/z zf3 = sin(zextra)*cos(zextra) elseif @formula3 == 96 zextra = sin( 1/z ) zf3 = zextra*zextra elseif @formula3 == 97 zf3 = sin(z) * cos(1/z) elseif @formula3 == 98 zf3 = sin(z) * sin(1/z) elseif @formula3 == 99 zextra = log(z) zf3 = zextra*zextra elseif @formula3 == 100 zf3 = sin(z) * sin(2*z) elseif @formula3 == 101 zf3 = exp(2*z) elseif @formula3 == 102 zf3 = exp(-2*z) elseif @formula3 == 103 zextra = 1/z zf3 = sinh(zextra)*cosh(zextra) elseif @formula3 == 104 zextra = sinh( 1/z ) zf3 = zextra*zextra elseif @formula3 == 105 zf3 = sinh(z) * cosh(1/z) elseif @formula3 == 106 zf3 = sinh(z) * sinh(1/z) elseif @formula3 == 107 zf3 = sin(z) * sinh(z) elseif @formula3 == 108 zf3 = sin(z) * cosh(z) elseif @formula3 == 109 zextra = sin(z), ztemp = sinh(z) zf3 = ztemp*ztemp*zextra*zextra elseif @formula3 == 110 zf3 = sin(z)*exp(z) elseif @formula3 == 111 zf3 = cos(z)*exp(z) elseif @formula3 == 112 zf3 = sinh(z)*exp(z) elseif @formula3 == 113 zf3 = cosh(z)*exp(z) elseif @formula3 == 114 zf3 = sin(z)*log(z) elseif @formula3 == 115 zf3 = cos(z)*log(z) elseif @formula3 == 116 zf3 = sinh(z)*log(z) elseif @formula3 == 117 zf3 = cosh(z)*log(z) elseif @formula3 == 118 zf3 = exp(z*z) elseif @formula3 == 119 zf3 = exp(-(z*z)) elseif @formula3 == 120 zf3 = exp(1/(z*z)) else ; @formula3 == 121 zf3 = exp(-1/(z*z)) endif ; @formula3 zf3 = zf3 * @weight3 endif ; @combo if @combo == 0 z = zf1 + zf2 elseif @combo == 1 z = zf1 * zf2 elseif @combo == 2 z = zf1 / zf2 elseif @combo == 3 z = zf2 elseif @combo == 4 z = zf1 ^ zf2 elseif @combo == 5 z = log(zf1)/log(zf2) elseif @combo == 6 z = zf1 + zf2 + zf3 elseif @combo == 7 z = zf1 * zf2 * zf3 elseif @combo == 8 z = zf1 ^ ( zf2 ^ zf3 ) elseif @combo == 9 z = zf3 elseif @combo == 10 z = log(log(zf1)/log(zf2))/log(zf3) elseif @combo == 11 z = zf1 * ( zf2 + zf3 ) elseif @combo == 12 z = zf1 + ( zf2 * zf3 ) elseif @combo == 13 z = zf1 + ( zf2 / zf3 ) elseif @combo == 14 z = ( zf1 + zf2 ) / zf3 elseif @combo == 15 z = zf1 / ( zf2 + zf3 ) elseif @combo == 16 z = ( zf1 * zf2 ) / zf3 elseif @combo == 17 z = zf3 elseif @combo == 18 z = zf3 elseif @combo == 19 z = zf3 elseif @combo == 20 z = zf3 elseif @combo == 21 z = zf3 elseif @combo == 22 z = zf1 + ( zf2 ^ zf3 ) elseif @combo == 23 z = zf1 * ( zf2 ^ zf3 ) elseif @combo == 24 z = zf1 / ( zf2 ^ zf3 ) elseif @combo == 25 z = ( zf1 ^ zf2 ) / zf3 elseif @combo == 26 z = zf3 + (log(zf1)/log(zf2)) elseif @combo == 27 z = zf3 * (log(zf1)/log(zf2)) elseif @combo == 28 z = zf3 / (log(zf1)/log(zf2)) elseif @combo == 29 z = (log(zf1)/log(zf2)) / zf3 else ; @combo == 30 z = zf3 ^ (log(zf1)/log(zf2)) endif ; @combo else z = zf1 endif ; iterations if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend if @pmode != 1 z = z + jc endif ; pmode if @biomorph bail = (abs(real(z)) < @biomorphtest) || (abs(imag(z)) < @biomorphtest) else bail = |z| < @bail endif ; @biomorph bailout: bail default: title = "3 Functions" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param frequency caption = "Cycle Length" default = 1 min = 1 hint = "This is the frequency that Formulas G and H are executed (Formula \ F is executed every iteration). If 'Cycle length' = 1, then Formulas \ G and H are also executed every iter, else every N iters" endparam param combo caption = "Func Combo" enum = "f[z]+g[z]" "f[z]*g[z]" "f/g" "g[f[z]]" "f^g" "logg[f[z]]" \ "f[z]+g[z]+h[z]" "f*g*h" "f^(g^h)" "h[g[f[z]]]" "logh[logg[f[z]]]" \ "f*(g+h)" "f+(g*h)" "f+(g/h)" "(f+g)/h" "f/(g+h)" "(f*g)/h" \ "h[f[z]+g[z]]" "h[f*g]" "h[f/g]" "h[f^g]" "h[logg[f]]" "f+(g^h)" \ "f*(g^h)" "f/(g^h)" "(f^g)/h" "h+logg[f]" "h*logg[f]" "h/logg[f]" \ "logg[f]/h" "h^(logg[f])" default = 0 min = 0 hint = "Selects the number of functions and how they will be \ combined. 'Formula H' is unused in the 2-function options. 'logg(f)' \ means the logarithm of f to the base g; similarly for the other log \ options" endparam param formula1 caption = "Formula F" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "Default formula, executed each iteration. For 'z^power', set \ parameter 'Power F'. For '3-term polynomial' set \ 6 params 'Coefficient' & 'Exponent' FA, FB, and FC" endparam param power1 caption = "Power F" default = (5,0) hint = "This is the power used for the first formula series if parameter \ 'Formula F' is set to 'z^power'" endparam param formula2 caption = "Formula G" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 1 hint = "Formula g, executed every N iterations, where N is set \ by param 'Cycle Length'. For 'z^power', set param 'Power G'. For \ '3-term polynomial' set 6 params 'Coefficient' & 'Exponent' GA, GB, \ and GC" endparam param power2 caption = "Power G" default = (6,0) hint = "This is the power used for the second formula series if parameter \ 'Formula G' is set to 'z^power'" endparam param formula3 caption = "Formula H" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 2 hint = "Formula h, executed every N iterations if param 'Func Combo' \ requires func h. N is set by param 'Cycle Length'. For 'z^power', \ set param 'Power H'. For '3-term polynomial' set 6 params 'Coefficient' \ & 'Exponent' HA, HB, and HC" endparam param power3 caption = "Power H" default = (6,0) hint = "This is the power used for the third formula series if parameter \ 'Formula H' is set to 'z^power'" endparam param weight1 caption = "Formula F Weight" default = 1.0 hint = "This is the relative proportion of Formula F that is combined with \ the other formulas every N iterations" endparam param weight2 caption = "Formula G Weight" default = 1.0 hint = "This is the relative proportion of Formula G that is combined with \ the other formulas every N iterations" endparam param weight3 caption = "Formula H Weight" default = 1.0 hint = "This is the relative proportion of Formula H that is combined with \ the other formulas every N iterations" endparam param coeff1a caption = "Coefficient FA" default = (1,0) hint = "If 'Formula F' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent1a caption = "Exponent FA" default = (6,0) hint = "If 'Formula F' is set to '3-term polynomial', this is the exponent \ of the 1st term" endparam param coeff1b caption = "Coefficient FB" default = (-1,0) hint = "If 'Formula F' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent1b caption = "Exponent FB" default = (4,0) hint = "If 'Formula F' is set to '3-term polynomial', this is the exponent \ of the 2nd term" endparam param coeff1c caption = "Coefficient FC" default = (1,0) hint = "If 'Formula F' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent1c caption = "Exponent FC" default = (2,0) hint = "If 'Formula F' is set to '3-term polynomial', this is the exponent \ of the 3rd term" endparam param coeff2a caption = "Coefficient GA" default = (1,0) hint = "If 'Formula G' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent2a caption = "Exponent GA" default = (6,0) hint = "If 'Formula G' is set to '3-term polynomial', this is the exponent \ of the 1st term" endparam param coeff2b caption = "Coefficient GB" default = (-1,0) hint = "If 'Formula G' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent2b caption = "Exponent GB" default = (4,0) hint = "If 'Formula G' is set to '3-term polynomial', this is the exponent \ of the 2nd term" endparam param coeff2c caption = "Coefficient GC" default = (1,0) hint = "If 'Formula G' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent2c caption = "Exponent GC" default = (2,0) hint = "If 'Formula G' is set to '3-term polynomial', this is the exponent \ of the 3rd term" endparam param coeff3a caption = "Coefficient HA" default = (1,0) hint = "If 'Formula H' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent3a caption = "Exponent HA" default = (6,0) hint = "If 'Formula H' is set to '3-term polynomial', this is the exponent \ of the 1st term" endparam param coeff3b caption = "Coefficient HB" default = (-1,0) hint = "If 'Formula H' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent3b caption = "Exponent HB" default = (4,0) hint = "If 'Formula H' is set to '3-term polynomial', this is the exponent \ of the 2nd term" endparam param coeff3c caption = "Coefficient HC" default = (1,0) hint = "If 'Formula H' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent3c caption = "Exponent HC" default = (2,0) hint = "If 'Formula H' is set to '3-term polynomial', this is the exponent \ of the 3rd term" endparam param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" "p^p" \ "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param biomorph caption = "Biomorph Bailout?" default = FALSE hint = "Enabling this setting changes the bailout condition to match \ Pickover's 'biomorph' definition." endparam param biomorphtest caption = "Biomorph Bailout Test" default = 10.0 hint = "The bailout value for the 'Biomorph' test." visible = @biomorph endparam switch: type = "jam-3functions-J" jconstant = #pixel bail = bail frequency = frequency combo = combo formula1 = formula1 formula2 = formula2 formula3 = formula3 power1 = power1 power2 = power2 power3 = power3 weight1 = weight1 weight2 = weight2 weight3 = weight3 coeff1a = coeff1a exponent1a = exponent1a coeff1b = coeff1b exponent1b = exponent1b coeff1c = coeff1c exponent1c = exponent1c coeff2a = coeff2a exponent2a = exponent2a coeff2b = coeff2b exponent2b = exponent2b coeff2c = coeff2c exponent2c = exponent2c coeff3a = coeff3a exponent3a = exponent3a coeff3b = coeff3b exponent3b = exponent3b coeff3c = coeff3c exponent3c = exponent3c blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode biomorph = biomorph biomorphtest = biomorphtest } jam-3functions-J { ; jam 020221 ; 2 or 3 different Mandelbrot/Julia style formulas are executed ; and combined in a user-specified manner, either each iteration ; or every N iterations. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif int iterations = 0 complex zextra = complex ztemp = (0,0) ; temp/spare scratch variable complex zf1 = complex zf2 = complex zf3 = (0,0) complex zblend = (0,0) bool bail = FALSE ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 ztemp = sinh(jc), zextra = cosh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 95 ztemp = sin(jc), zextra = cos(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), ztemp = sinh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: if @pmode != 0 z = z + jc endif ; pmode zblend = z iterations = iterations + 1 if @formula1 == 0 zf1 = z * z elseif @formula1 == 1 zf1 = z * z * z elseif @formula1 == 2 zextra = z * z zf1 = zextra * zextra elseif @formula1 == 3 zf1 = z ^ @power1 elseif @formula1 == 4 zf1 = 1/z elseif @formula1 == 5 zf1 = sqrt(z) elseif @formula1 == 6 zf1 = 1 / ( z * z ) elseif @formula1 == 7 zf1 = log(z) elseif @formula1 == 8 zf1 = exp( z) elseif @formula1 == 9 zf1 = z^z elseif @formula1 == 10 zf1 = sin( z ) elseif @formula1 == 11 zf1 = cos( z ) elseif @formula1 == 12 zf1 = tan( z ) elseif @formula1 == 13 zf1 = asin( z ) elseif @formula1 == 14 zf1 = acos( z ) elseif @formula1 == 15 zf1 = atan( z ) elseif @formula1 == 16 zf1 = sinh( z ) elseif @formula1 == 17 zf1 = cosh( z ) elseif @formula1 == 18 zf1 = tanh( z ) elseif @formula1 == 19 zf1 = asinh( z ) elseif @formula1 == 20 zf1 = acosh( z ) elseif @formula1 == 21 zf1 = atanh( z ) elseif @formula1 == 22 zf1 = log( 1/z ) elseif @formula1 == 23 zf1 = log( log( z )) elseif @formula1 == 24 zf1 = exp( -z ) elseif @formula1 == 25 zf1 = exp( 1/z ) elseif @formula1 == 26 zf1 = z^(-z) elseif @formula1 == 27 zextra = sin( z ) zf1 = zextra * zextra elseif @formula1 == 28 zextra = cos( z ) zf1 = zextra * zextra elseif @formula1 == 29 zextra = tan( z ) zf1 = zextra * zextra elseif @formula1 == 30 zf1 = cotan( z ) elseif @formula1 == 31 zf1 = 1/cos( z ) elseif @formula1 == 32 zf1 = 1/sin( z ) elseif @formula1 == 33 zextra = cotan( z ) zf1 = zextra * zextra elseif @formula1 == 34 zextra = 1/cos( z ) zf1 = zextra * zextra elseif @formula1 == 35 zextra = 1/sin( z ) zf1 = zextra * zextra elseif @formula1 == 36 zextra = z^(z) zf1 = z^zextra elseif @formula1 == 37 zextra = z^(z) zf1 = 1/( z^zextra ) elseif @formula1 == 38 zf1 = log(-z) elseif @formula1 == 39 zf1 = 1/log( z ) elseif @formula1 == 40 zf1 = z * log( z ) elseif @formula1 == 41 zf1 = sin( z ) / z elseif @formula1 == 42 zf1 = cos( z ) / z elseif @formula1 == 43 zf1 = sin( z ) * cos( z ) elseif @formula1 == 44 zf1 = sin( z^2 ) elseif @formula1 == 45 zf1 = exp( -1/z ) elseif @formula1 == 46 zf1 = z * exp( z ) elseif @formula1 == 47 zf1 = z * exp( -z ) elseif @formula1 == 48 zf1 = z * exp( 1/z ) elseif @formula1 == 49 zf1 = z * exp( -1/z ) elseif @formula1 == 50 zf1 = z * z * z elseif @formula1 == 51 zf1 = 1 / ( z * z * z ) elseif @formula1 == 52 zf1 = atan( 1 / z ) elseif @formula1 == 53 zf1 = acos( 1 / z ) elseif @formula1 == 54 zf1 = asin( 1 / z ) elseif @formula1 == 55 zf1 = tan( z ) / z elseif @formula1 == 56 zf1 = cotan( z ) / z elseif @formula1 == 57 zf1 = 1 / ( z * cos( z )) elseif @formula1 == 58 zf1 = 1 / ( z * sin( z )) elseif @formula1 == 59 zf1 = z * sin( z ) elseif @formula1 == 60 zf1 = z * cos( z ) elseif @formula1 == 61 zf1 = z * tan( z ) elseif @formula1 == 62 zf1 = z * cotan( z ) elseif @formula1 == 63 zf1 = z/cos( z ) elseif @formula1 == 64 zf1 = z/sin( z ) elseif @formula1 == 65 zf1 = sin( 1/z ) elseif @formula1 == 66 zf1 = cos( 1/z ) elseif @formula1 == 67 zf1 = tan( 1/z ) elseif @formula1 == 68 zf1 = cotan( 1/z ) elseif @formula1 == 69 zf1 = 1/cos( 1/z ) elseif @formula1 == 70 zf1 = 1/sin( 1/z ) elseif @formula1 == 71 zf1 = cotanh( z ) elseif @formula1 == 72 zf1 = 1/cosh( z ) elseif @formula1 == 73 zf1 = 1/sinh( z ) elseif @formula1 == 74 zf1 = atanh( 1/z ) elseif @formula1 == 75 zf1 = acosh( 1/z ) elseif @formula1 == 76 zf1 = asinh( 1/z ) elseif @formula1 == 77 zf1 = @coeff1a * z^@exponent1a + @coeff1b * z^@exponent1b + \ @coeff1c * z^@exponent1c elseif @formula1 == 78 zextra = sinh(z) zf1 = zextra * zextra elseif @formula1 == 79 zextra = cosh( z ) zf1 = zextra * zextra elseif @formula1 == 80 zextra = tanh(z) zf1 = zextra * zextra elseif @formula1 == 81 zextra = cotanh( z ) zf1 = zextra * zextra elseif @formula1 == 82 zextra = (1,0)/cosh(z) zf1 = zextra * zextra elseif @formula1 == 83 zextra = (1,0) / sinh( z ) zf1 = zextra * zextra elseif @formula1 == 84 zf1 = sinh(1/z) elseif @formula1 == 85 zf1 = cosh(1/z) elseif @formula1 == 86 zf1 = tanh(1/z) elseif @formula1 == 87 zf1 = cotanh(1/z) elseif @formula1 == 88 zf1 = (1,0)/cosh(1/z) elseif @formula1 == 89 zf1 = (1,0)/sinh(1/z) elseif @formula1 == 90 zf1 = sin( z ) * tan(z) elseif @formula1 == 91 zf1 = sinh(z) * tanh(z) elseif @formula1 == 92 zf1 = sinh(z) * cosh(z) elseif @formula1 == 93 ztemp = sinh(z), zextra = cosh(z) zf1 = ztemp*ztemp*zextra*zextra elseif @formula1 == 94 ztemp = sin(z), zextra = cos(z) zf1 = ztemp*ztemp*zextra*zextra elseif @formula1 == 95 zextra = 1/z zf1 = sin(zextra)*cos(zextra) elseif @formula1 == 96 zextra = sin( 1/z ) zf1 = zextra*zextra elseif @formula1 == 97 zf1 = sin(z) * cos(1/z) elseif @formula1 == 98 zf1 = sin(z) * sin(1/z) elseif @formula1 == 99 zextra = log(z) zf1 = zextra*zextra elseif @formula1 == 100 zf1 = sin(z) * sin(2*z) elseif @formula1 == 101 zf1 = exp(2*z) elseif @formula1 == 102 zf1 = exp(-2*z) elseif @formula1 == 103 zextra = 1/z zf1 = sinh(zextra)*cosh(zextra) elseif @formula1 == 104 zextra = sinh( 1/z ) zf1 = zextra*zextra elseif @formula1 == 105 zf1 = sinh(z) * cosh(1/z) elseif @formula1 == 106 zf1 = sinh(z) * sinh(1/z) elseif @formula1 == 107 zf1 = sin(z) * sinh(z) elseif @formula1 == 108 zf1 = sin(z) * cosh(z) elseif @formula1 == 109 zextra = sin(z), ztemp = sinh(z) zf1 = ztemp*ztemp*zextra*zextra elseif @formula1 == 110 zf1 = sin(z)*exp(z) elseif @formula1 == 111 zf1 = cos(z)*exp(z) elseif @formula1 == 112 zf1 = sinh(z)*exp(z) elseif @formula1 == 113 zf1 = cosh(z)*exp(z) elseif @formula1 == 114 zf1 = sin(z)*log(z) elseif @formula1 == 115 zf1 = cos(z)*log(z) elseif @formula1 == 116 zf1 = sinh(z)*log(z) elseif @formula1 == 117 zf1 = cosh(z)*log(z) elseif @formula1 == 118 zf1 = exp(z*z) elseif @formula1 == 119 zf1 = exp(-(z*z)) elseif @formula1 == 120 zf1 = exp(1/(z*z)) else ; @formula1 == 121 zf1 = exp(-1/(z*z)) endif ; @formula1 if iterations % @frequency == 0 ; execute other formulas and combine zf1 = @weight1*zf1 if ( @combo == 3 ) || ( @combo == 9 ) z = zf1 endif ; @combo if @formula2 == 0 zf2 = z * z elseif @formula2 == 1 zf2 = z * z * z elseif @formula2 == 2 zextra = z * z zf2 = zextra * zextra elseif @formula2 == 3 zf2 = z ^ @power2 elseif @formula2 == 4 zf2 = 1/z elseif @formula2 == 5 zf2 = sqrt(z) elseif @formula2 == 6 zf2 = 1 / ( z * z ) elseif @formula2 == 7 zf2 = log(z) elseif @formula2 == 8 zf2 = exp( z) elseif @formula2 == 9 zf2 = z^z elseif @formula2 == 10 zf2 = sin( z ) elseif @formula2 == 11 zf2 = cos( z ) elseif @formula2 == 12 zf2 = tan( z ) elseif @formula2 == 13 zf2 = asin( z ) elseif @formula2 == 14 zf2 = acos( z ) elseif @formula2 == 15 zf2 = atan( z ) elseif @formula2 == 16 zf2 = sinh( z ) elseif @formula2 == 17 zf2 = cosh( z ) elseif @formula2 == 18 zf2 = tanh( z ) elseif @formula2 == 19 zf2 = asinh( z ) elseif @formula2 == 20 zf2 = acosh( z ) elseif @formula2 == 21 zf2 = atanh( z ) elseif @formula2 == 22 zf2 = log( 1/z ) elseif @formula2 == 23 zf2 = log( log( z )) elseif @formula2 == 24 zf2 = exp( -z ) elseif @formula2 == 25 zf2 = exp( 1/z ) elseif @formula2 == 26 zf2 = z^(-z) elseif @formula2 == 27 zextra = sin( z ) zf2 = zextra * zextra elseif @formula2 == 28 zextra = cos( z ) zf2 = zextra * zextra elseif @formula2 == 29 zextra = tan( z ) zf2 = zextra * zextra elseif @formula2 == 30 zf2 = cotan( z ) elseif @formula2 == 31 zf2 = 1/cos( z ) elseif @formula2 == 32 zf2 = 1/sin( z ) elseif @formula2 == 33 zextra = cotan( z ) zf2 = zextra * zextra elseif @formula2 == 34 zextra = 1/cos( z ) zf2 = zextra * zextra elseif @formula2 == 35 zextra = 1/sin( z ) zf2 = zextra * zextra elseif @formula2 == 36 zextra = z^(z) zf2 = z^zextra elseif @formula2 == 37 zextra = z^(z) zf2 = 1/( z^zextra ) elseif @formula2 == 38 zf2 = log(-z) elseif @formula2 == 39 zf2 = 1/log( z ) elseif @formula2 == 40 zf2 = z * log( z ) elseif @formula2 == 41 zf2 = sin( z ) / z elseif @formula2 == 42 zf2 = cos( z ) / z elseif @formula2 == 43 zf2 = sin( z ) * cos( z ) elseif @formula2 == 44 zf2 = sin( z^2 ) elseif @formula2 == 45 zf2 = exp( -1/z ) elseif @formula2 == 46 zf2 = z * exp( z ) elseif @formula2 == 47 zf2 = z * exp( -z ) elseif @formula2 == 48 zf2 = z * exp( 1/z ) elseif @formula2 == 49 zf2 = z * exp( -1/z ) elseif @formula2 == 50 zf2 = z * z * z elseif @formula2 == 51 zf2 = 1 / ( z * z * z ) elseif @formula2 == 52 zf2 = atan( 1 / z ) elseif @formula2 == 53 zf2 = acos( 1 / z ) elseif @formula2 == 54 zf2 = asin( 1 / z ) elseif @formula2 == 55 zf2 = tan( z ) / z elseif @formula2 == 56 zf2 = cotan( z ) / z elseif @formula2 == 57 zf2 = 1 / ( z * cos( z )) elseif @formula2 == 58 zf2 = 1 / ( z * sin( z )) elseif @formula2 == 59 zf2 = z * sin( z ) elseif @formula2 == 60 zf2 = z * cos( z ) elseif @formula2 == 61 zf2 = z * tan( z ) elseif @formula2 == 62 zf2 = z * cotan( z ) elseif @formula2 == 63 zf2 = z/cos( z ) elseif @formula2 == 64 zf2 = z/sin( z ) elseif @formula2 == 65 zf2 = sin( 1/z ) elseif @formula2 == 66 zf2 = cos( 1/z ) elseif @formula2 == 67 zf2 = tan( 1/z ) elseif @formula2 == 68 zf2 = cotan( 1/z ) elseif @formula2 == 69 zf2 = 1/cos( 1/z ) elseif @formula2 == 70 zf2 = 1/sin( 1/z ) elseif @formula2 == 71 zf2 = cotanh( z ) elseif @formula2 == 72 zf2 = 1/cosh( z ) elseif @formula2 == 73 zf2 = 1/sinh( z ) elseif @formula2 == 74 zf2 = atanh( 1/z ) elseif @formula2 == 75 zf2 = acosh( 1/z ) elseif @formula2 == 76 zf2 = asinh( 1/z ) elseif @formula2 == 77 zf2 = @coeff2a * z^@exponent2a + @coeff2b * z^@exponent2b + \ @coeff2c * z^@exponent2c elseif @formula2 == 78 zextra = sinh(z) zf2 = zextra * zextra elseif @formula2 == 79 zextra = cosh( z ) zf2 = zextra * zextra elseif @formula2 == 80 zextra = tanh(z) zf2 = zextra * zextra elseif @formula2 == 81 zextra = cotanh( z ) zf2 = zextra * zextra elseif @formula2 == 82 zextra = (1,0)/cosh(z) zf2 = zextra * zextra elseif @formula2 == 83 zextra = (1,0) / sinh( z ) zf2 = zextra * zextra elseif @formula2 == 84 zf2 = sinh(1/z) elseif @formula2 == 85 zf2 = cosh(1/z) elseif @formula2 == 86 zf2 = tanh(1/z) elseif @formula2 == 87 zf2 = cotanh(1/z) elseif @formula2 == 88 zf2 = (1,0)/cosh(1/z) elseif @formula2 == 89 zf2 = (1,0)/sinh(1/z) elseif @formula2 == 90 zf2 = sin( z ) * tan(z) elseif @formula2 == 91 zf2 = sinh(z) * tanh(z) elseif @formula2 == 92 zf2 = sinh(z) * cosh(z) elseif @formula2 == 93 ztemp = sinh(z), zextra = cosh(z) zf2 = ztemp*ztemp*zextra*zextra elseif @formula2 == 94 ztemp = sin(z), zextra = cos(z) zf2 = ztemp*ztemp*zextra*zextra elseif @formula2 == 95 zextra = 1/z zf2 = sin(zextra)*cos(zextra) elseif @formula2 == 96 zextra = sin( 1/z ) zf2 = zextra*zextra elseif @formula2 == 97 zf2 = sin(z) * cos(1/z) elseif @formula2 == 98 zf2 = sin(z) * sin(1/z) elseif @formula2 == 99 zextra = log(z) zf2 = zextra*zextra elseif @formula2 == 100 zf2 = sin(z) * sin(2*z) elseif @formula2 == 101 zf2 = exp(2*z) elseif @formula2 == 102 zf2 = exp(-2*z) elseif @formula2 == 103 zextra = 1/z zf2 = sinh(zextra)*cosh(zextra) elseif @formula2 == 104 zextra = sinh( 1/z ) zf2 = zextra*zextra elseif @formula2 == 105 zf2 = sinh(z) * cosh(1/z) elseif @formula2 == 106 zf2 = sinh(z) * sinh(1/z) elseif @formula2 == 107 zf2 = sin(z) * sinh(z) elseif @formula2 == 108 zf2 = sin(z) * cosh(z) elseif @formula2 == 109 zextra = sin(z), ztemp = sinh(z) zf2 = ztemp*ztemp*zextra*zextra elseif @formula2 == 110 zf2 = sin(z)*exp(z) elseif @formula2 == 111 zf2 = cos(z)*exp(z) elseif @formula2 == 112 zf2 = sinh(z)*exp(z) elseif @formula2 == 113 zf2 = cosh(z)*exp(z) elseif @formula2 == 114 zf2 = sin(z)*log(z) elseif @formula2 == 115 zf2 = cos(z)*log(z) elseif @formula2 == 116 zf2 = sinh(z)*log(z) elseif @formula2 == 117 zf2 = cosh(z)*log(z) elseif @formula2 == 118 zf2 = exp(z*z) elseif @formula2 == 119 zf2 = exp(-(z*z)) elseif @formula2 == 120 zf2 = exp(1/(z*z)) else ; @formula2 == 121 zf2 = exp(-1/(z*z)) endif ; @formula2 zf2 = zf2 * @weight2 if @combo > 5 ; also need func 3 for these combinations if @combo == 9 z = zf2 elseif @combo == 17 z = zf1 + zf2 elseif @combo == 18 z = zf1 * zf2 elseif @combo == 19 z = zf1 / zf2 elseif @combo == 20 z = zf1 ^ zf2 elseif @combo == 21 z = log(zf1)/log(zf2) endif; @combo if @formula3 == 0 zf3 = z * z elseif @formula3 == 1 zf3 = z * z * z elseif @formula3 == 2 zextra = z * z zf3 = zextra * zextra elseif @formula3 == 3 zf3 = z ^ @power3 elseif @formula3 == 4 zf3 = 1/z elseif @formula3 == 5 zf3 = sqrt(z) elseif @formula3 == 6 zf3 = 1 / ( z * z ) elseif @formula3 == 7 zf3 = log(z) elseif @formula3 == 8 zf3 = exp( z) elseif @formula3 == 9 zf3 = z^z elseif @formula3 == 10 zf3 = sin( z ) elseif @formula3 == 11 zf3 = cos( z ) elseif @formula3 == 12 zf3 = tan( z ) elseif @formula3 == 13 zf3 = asin( z ) elseif @formula3 == 14 zf3 = acos( z ) elseif @formula3 == 15 zf3 = atan( z ) elseif @formula3 == 16 zf3 = sinh( z ) elseif @formula3 == 17 zf3 = cosh( z ) elseif @formula3 == 18 zf3 = tanh( z ) elseif @formula3 == 19 zf3 = asinh( z ) elseif @formula3 == 20 zf3 = acosh( z ) elseif @formula3 == 21 zf3 = atanh( z ) elseif @formula3 == 22 zf3 = log( 1/z ) elseif @formula3 == 23 zf3 = log( log( z )) elseif @formula3 == 24 zf3 = exp( -z ) elseif @formula3 == 25 zf3 = exp( 1/z ) elseif @formula3 == 26 zf3 = z^(-z) elseif @formula3 == 27 zextra = sin( z ) zf3 = zextra * zextra elseif @formula3 == 28 zextra = cos( z ) zf3 = zextra * zextra elseif @formula3 == 29 zextra = tan( z ) zf3 = zextra * zextra elseif @formula3 == 30 zf3 = cotan( z ) elseif @formula3 == 31 zf3 = 1/cos( z ) elseif @formula3 == 32 zf3 = 1/sin( z ) elseif @formula3 == 33 zextra = cotan( z ) zf3 = zextra * zextra elseif @formula3 == 34 zextra = 1/cos( z ) zf3 = zextra * zextra elseif @formula3 == 35 zextra = 1/sin( z ) zf3 = zextra * zextra elseif @formula3 == 36 zextra = z^(z) zf3 = z^zextra elseif @formula3 == 37 zextra = z^(z) zf3 = 1/( z^zextra ) elseif @formula3 == 38 zf3 = log(-z) elseif @formula3 == 39 zf3 = 1/log( z ) elseif @formula3 == 40 zf3 = z * log( z ) elseif @formula3 == 41 zf3 = sin( z ) / z elseif @formula3 == 42 zf3 = cos( z ) / z elseif @formula3 == 43 zf3 = sin( z ) * cos( z ) elseif @formula3 == 44 zf3 = sin( z^2 ) elseif @formula3 == 45 zf3 = exp( -1/z ) elseif @formula3 == 46 zf3 = z * exp( z ) elseif @formula3 == 47 zf3 = z * exp( -z ) elseif @formula3 == 48 zf3 = z * exp( 1/z ) elseif @formula3 == 49 zf3 = z * exp( -1/z ) elseif @formula3 == 50 zf3 = z * z * z elseif @formula3 == 51 zf3 = 1 / ( z * z * z ) elseif @formula3 == 52 zf3 = atan( 1 / z ) elseif @formula3 == 53 zf3 = acos( 1 / z ) elseif @formula3 == 54 zf3 = asin( 1 / z ) elseif @formula3 == 55 zf3 = tan( z ) / z elseif @formula3 == 56 zf3 = cotan( z ) / z elseif @formula3 == 57 zf3 = 1 / ( z * cos( z )) elseif @formula3 == 58 zf3 = 1 / ( z * sin( z )) elseif @formula3 == 59 zf3 = z * sin( z ) elseif @formula3 == 60 zf3 = z * cos( z ) elseif @formula3 == 61 zf3 = z * tan( z ) elseif @formula3 == 62 zf3 = z * cotan( z ) elseif @formula3 == 63 zf3 = z/cos( z ) elseif @formula3 == 64 zf3 = z/sin( z ) elseif @formula3 == 65 zf3 = sin( 1/z ) elseif @formula3 == 66 zf3 = cos( 1/z ) elseif @formula3 == 67 zf3 = tan( 1/z ) elseif @formula3 == 68 zf3 = cotan( 1/z ) elseif @formula3 == 69 zf3 = 1/cos( 1/z ) elseif @formula3 == 70 zf3 = 1/sin( 1/z ) elseif @formula3 == 71 zf3 = cotanh( z ) elseif @formula3 == 72 zf3 = 1/cosh( z ) elseif @formula3 == 73 zf3 = 1/sinh( z ) elseif @formula3 == 74 zf3 = atanh( 1/z ) elseif @formula3 == 75 zf3 = acosh( 1/z ) elseif @formula3 == 76 zf3 = asinh( 1/z ) elseif @formula3 == 77 zf3 = @coeff3a * z^@exponent3a + @coeff3b * z^@exponent3b + \ @coeff3c * z^@exponent3c elseif @formula3 == 78 zextra = sinh(z) zf3 = zextra * zextra elseif @formula3 == 79 zextra = cosh( z ) zf3 = zextra * zextra elseif @formula3 == 80 zextra = tanh(z) zf3 = zextra * zextra elseif @formula3 == 81 zextra = cotanh( z ) zf3 = zextra * zextra elseif @formula3 == 82 zextra = (1,0)/cosh(z) zf3 = zextra * zextra elseif @formula3 == 83 zextra = (1,0) / sinh( z ) zf3 = zextra * zextra elseif @formula3 == 84 zf3 = sinh(1/z) elseif @formula3 == 85 zf3 = cosh(1/z) elseif @formula3 == 86 zf3 = tanh(1/z) elseif @formula3 == 87 zf3 = cotanh(1/z) elseif @formula3 == 88 zf3 = (1,0)/cosh(1/z) elseif @formula3 == 89 zf3 = (1,0)/sinh(1/z) elseif @formula3 == 90 zf3 = sin( z ) * tan(z) elseif @formula3 == 91 zf3 = sinh(z) * tanh(z) elseif @formula3 == 92 zf3 = sinh(z) * cosh(z) elseif @formula3 == 93 ztemp = sinh(z), zextra = cosh(z) zf3 = ztemp*ztemp*zextra*zextra elseif @formula3 == 94 ztemp = sin(z), zextra = cos(z) zf3 = ztemp*ztemp*zextra*zextra elseif @formula3 == 95 zextra = 1/z zf3 = sin(zextra)*cos(zextra) elseif @formula3 == 96 zextra = sin( 1/z ) zf3 = zextra*zextra elseif @formula3 == 97 zf3 = sin(z) * cos(1/z) elseif @formula3 == 98 zf3 = sin(z) * sin(1/z) elseif @formula3 == 99 zextra = log(z) zf3 = zextra*zextra elseif @formula3 == 100 zf3 = sin(z) * sin(2*z) elseif @formula3 == 101 zf3 = exp(2*z) elseif @formula3 == 102 zf3 = exp(-2*z) elseif @formula3 == 103 zextra = 1/z zf3 = sinh(zextra)*cosh(zextra) elseif @formula3 == 104 zextra = sinh( 1/z ) zf3 = zextra*zextra elseif @formula3 == 105 zf3 = sinh(z) * cosh(1/z) elseif @formula3 == 106 zf3 = sinh(z) * sinh(1/z) elseif @formula3 == 107 zf3 = sin(z) * sinh(z) elseif @formula3 == 108 zf3 = sin(z) * cosh(z) elseif @formula3 == 109 zextra = sin(z), ztemp = sinh(z) zf3 = ztemp*ztemp*zextra*zextra elseif @formula3 == 110 zf3 = sin(z)*exp(z) elseif @formula3 == 111 zf3 = cos(z)*exp(z) elseif @formula3 == 112 zf3 = sinh(z)*exp(z) elseif @formula3 == 113 zf3 = cosh(z)*exp(z) elseif @formula3 == 114 zf3 = sin(z)*log(z) elseif @formula3 == 115 zf3 = cos(z)*log(z) elseif @formula3 == 116 zf3 = sinh(z)*log(z) elseif @formula3 == 117 zf3 = cosh(z)*log(z) elseif @formula3 == 118 zf3 = exp(z*z) elseif @formula3 == 119 zf3 = exp(-(z*z)) elseif @formula3 == 120 zf3 = exp(1/(z*z)) else ; @formula3 == 121 zf3 = exp(-1/(z*z)) endif ; @formula3 zf3 = zf3 * @weight3 endif ; @combo if @combo == 0 z = zf1 + zf2 elseif @combo == 1 z = zf1 * zf2 elseif @combo == 2 z = zf1 / zf2 elseif @combo == 3 z = zf2 elseif @combo == 4 z = zf1 ^ zf2 elseif @combo == 5 z = log(zf1)/log(zf2) elseif @combo == 6 z = zf1 + zf2 + zf3 elseif @combo == 7 z = zf1 * zf2 * zf3 elseif @combo == 8 z = zf1 ^ ( zf2 ^ zf3 ) elseif @combo == 9 z = zf3 elseif @combo == 10 z = log(log(zf1)/log(zf2))/log(zf3) elseif @combo == 11 z = zf1 * ( zf2 + zf3 ) elseif @combo == 12 z = zf1 + ( zf2 * zf3 ) elseif @combo == 13 z = zf1 + ( zf2 / zf3 ) elseif @combo == 14 z = ( zf1 + zf2 ) / zf3 elseif @combo == 15 z = zf1 / ( zf2 + zf3 ) elseif @combo == 16 z = ( zf1 * zf2 ) / zf3 elseif @combo == 17 z = zf3 elseif @combo == 18 z = zf3 elseif @combo == 19 z = zf3 elseif @combo == 20 z = zf3 elseif @combo == 21 z = zf3 elseif @combo == 22 z = zf1 + ( zf2 ^ zf3 ) elseif @combo == 23 z = zf1 * ( zf2 ^ zf3 ) elseif @combo == 24 z = zf1 / ( zf2 ^ zf3 ) elseif @combo == 25 z = ( zf1 ^ zf2 ) / zf3 elseif @combo == 26 z = zf3 + (log(zf1)/log(zf2)) elseif @combo == 27 z = zf3 * (log(zf1)/log(zf2)) elseif @combo == 28 z = zf3 / (log(zf1)/log(zf2)) elseif @combo == 29 z = (log(zf1)/log(zf2)) / zf3 else ; @combo == 30 z = zf3 ^ (log(zf1)/log(zf2)) endif ; @combo else z = zf1 endif ; iterations if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend if @pmode != 1 z = z + jc endif ; pmode if @biomorph bail = (abs(real(z)) < @biomorphtest) || (abs(imag(z)) < @biomorphtest) else bail = |z| < @bail endif ; @biomorph bailout: bail default: title = "3 Functions Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param frequency caption = "Cycle Length" default = 1 min = 1 hint = "This is the frequency that Formulas G and H are executed (Formula \ F is executed every iteration). If 'Cycle length' = 1, then Formulas \ G and H are also executed every iter, else every N iters" endparam param combo caption = "Func Combo" enum = "f[z]+g[z]" "f[z]*g[z]" "f/g" "g[f[z]]" "f^g" "logg[f[z]]" \ "f[z]+g[z]+h[z]" "f*g*h" "f^(g^h)" "h[g[f[z]]]" "logh[logg[f[z]]]" \ "f*(g+h)" "f+(g*h)" "f+(g/h)" "(f+g)/h" "f/(g+h)" "(f*g)/h" \ "h[f[z]+g[z]]" "h[f*g]" "h[f/g]" "h[f^g]" "h[logg[f]]" "f+(g^h)" \ "f*(g^h)" "f/(g^h)" "(f^g)/h" "h+logg[f]" "h*logg[f]" "h/logg[f]" \ "logg[f]/h" "h^(logg[f])" default = 0 min = 0 hint = "Selects the number of functions and how they will be \ combined. 'Formula H' is unused in the 2-function options. 'logg(f)' \ means the logarithm of f to the base g; similarly for the other log \ options" endparam param formula1 caption = "Formula F" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "Default formula, executed each iteration. For 'z^power', set \ parameter 'Power F'. For '3-term polynomial' set \ 6 params 'Coefficient' & 'Exponent' FA, FB, and FC" endparam param power1 caption = "Power F" default = (5,0) hint = "This is the power used for the first formula series if parameter \ 'Formula F' is set to 'z^power'" endparam param formula2 caption = "Formula G" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 1 hint = "Formula g, executed every N iterations, where N is set \ by param 'Cycle Length'. For 'z^power', set param 'Power G'. For \ '3-term polynomial' set 6 params 'Coefficient' & 'Exponent' GA, GB, \ and GC" endparam param power2 caption = "Power G" default = (6,0) hint = "This is the power used for the second formula series if parameter \ 'Formula G' is set to 'z^power'" endparam param formula3 caption = "Formula H" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 2 hint = "Formula h, executed every N iterations if param 'Func Combo' \ requires func h. N is set by param 'Cycle Length'. For 'z^power', \ set param 'Power H'. For '3-term polynomial' set 6 params 'Coefficient' \ & 'Exponent' HA, HB, and HC" endparam param power3 caption = "Power H" default = (6,0) hint = "This is the power used for the third formula series if parameter \ 'Formula H' is set to 'z^power'" endparam param weight1 caption = "Formula F Weight" default = 1.0 hint = "This is the relative proportion of Formula F that is combined with \ the other formulas every N iterations" endparam param weight2 caption = "Formula G Weight" default = 1.0 hint = "This is the relative proportion of Formula G that is combined with \ the other formulas every N iterations" endparam param weight3 caption = "Formula H Weight" default = 1.0 hint = "This is the relative proportion of Formula H that is combined with \ the other formulas every N iterations" endparam param coeff1a caption = "Coefficient FA" default = (1,0) hint = "If 'Formula F' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent1a caption = "Exponent FA" default = (6,0) hint = "If 'Formula F' is set to '3-term polynomial', this is the exponent \ of the 1st term" endparam param coeff1b caption = "Coefficient FB" default = (-1,0) hint = "If 'Formula F' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent1b caption = "Exponent FB" default = (4,0) hint = "If 'Formula F' is set to '3-term polynomial', this is the exponent \ of the 2nd term" endparam param coeff1c caption = "Coefficient FC" default = (1,0) hint = "If 'Formula F' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent1c caption = "Exponent FC" default = (2,0) hint = "If 'Formula F' is set to '3-term polynomial', this is the exponent \ of the 3rd term" endparam param coeff2a caption = "Coefficient GA" default = (1,0) hint = "If 'Formula G' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent2a caption = "Exponent GA" default = (6,0) hint = "If 'Formula G' is set to '3-term polynomial', this is the exponent \ of the 1st term" endparam param coeff2b caption = "Coefficient GB" default = (-1,0) hint = "If 'Formula G' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent2b caption = "Exponent GB" default = (4,0) hint = "If 'Formula G' is set to '3-term polynomial', this is the exponent \ of the 2nd term" endparam param coeff2c caption = "Coefficient GC" default = (1,0) hint = "If 'Formula G' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent2c caption = "Exponent GC" default = (2,0) hint = "If 'Formula G' is set to '3-term polynomial', this is the exponent \ of the 3rd term" endparam param coeff3a caption = "Coefficient HA" default = (1,0) hint = "If 'Formula H' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent3a caption = "Exponent HA" default = (6,0) hint = "If 'Formula H' is set to '3-term polynomial', this is the exponent \ of the 1st term" endparam param coeff3b caption = "Coefficient HB" default = (-1,0) hint = "If 'Formula H' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent3b caption = "Exponent HB" default = (4,0) hint = "If 'Formula H' is set to '3-term polynomial', this is the exponent \ of the 2nd term" endparam param coeff3c caption = "Coefficient HC" default = (1,0) hint = "If 'Formula H' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent3c caption = "Exponent HC" default = (2,0) hint = "If 'Formula H' is set to '3-term polynomial', this is the exponent \ of the 3rd term" endparam param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" "p^p" \ "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param biomorph caption = "Biomorph Bailout?" default = FALSE hint = "Enabling this setting changes the bailout condition to match \ Pickover's 'biomorph' definition." endparam param biomorphtest caption = "Biomorph Bailout Test" default = 10.0 hint = "The bailout value for the 'Biomorph' test." visible = @biomorph endparam switch: type = "jam-3functions" perturbation = #pixel bail = bail frequency = frequency combo = combo formula1 = formula1 formula2 = formula2 formula3 = formula3 power1 = power1 power2 = power2 power3 = power3 weight1 = weight1 weight2 = weight2 weight3 = weight3 coeff1a = coeff1a exponent1a = exponent1a coeff1b = coeff1b exponent1b = exponent1b coeff1c = coeff1c exponent1c = exponent1c coeff2a = coeff2a exponent2a = exponent2a coeff2b = coeff2b exponent2b = exponent2b coeff2c = coeff2c exponent2c = exponent2c coeff3a = coeff3a exponent3a = exponent3a coeff3b = coeff3b exponent3b = exponent3b coeff3c = coeff3c exponent3c = exponent3c blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode biomorph = biomorph biomorphtest = biomorphtest } jam-JacobiElliptics { ; jam 020306 ; Mandelbrot/Julia based on the Jocobi elliptic functions f(z,m), ; where parameter m ranges from 0 to 1. ; The function is implemented as a series expansion about z=0. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = complex ztemp = complex zold = (0,0) ; temp/spare scratch variables ; declare vars for powers of z complex z2 = complex z3 = complex z4 = complex z5 = complex z6 = (0,0) complex z7 = complex z8 = complex z9 = complex z10 = (0,0) ; declare vars for powers of m float m2 = @m*@m float m3 = @m*m2 float m4 = @m*m3 if @fn > 6 ; m5, com5 unneeded otherwise float m5 = @m*m4 float com5 = -256*@m-15808*m2-30768*m3-3688*m4-m5 else float m5 = 0.0 float com5 = 0.0 endif ; @fn ; define other m coefficients float com2 = 4*@m+m2, float com3 = -16*@m-44*m2-m3 float com4 = 64*@m+912*m2+408*m3+m4 ; declare vars for am, dn coefficients float am3 = float am5 = float am7 = float am9 = 0.0 float dn0 = 1.0 float dn2 = float dn4 = float dn6 = float dn8 = float dn10 = 0.0 ; compute coefficients for am series if @fn < 11 ; fn am needed am3 = @m/6 am5 = com2/120 am7 = com3/5040 am9 = com4/362880 endif ; @fn ; compute coefficients for dn series if @fn > 6 ; fn dn needed dn2 = @m/2 dn4 = com2/24 dn6 = com3/720 dn8 = com4/40320 dn10 = com5/3628800 endif ; @fn ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 ztemp = sinh(jc), zextra = cosh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 95 ztemp = sin(jc), zextra = cos(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), ztemp = sinh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: if @pmode != 0 z = z + jc endif ; pmode zold = z ; compute powers of z z2 = z*z, z3 = z2*z, z4 = z3*z, z5 = z4*z, z6 = z5*z z7 = z6*z, z8 = z7*z, z9 = z8*z ; Execute the appropriate Jacobi formula ; first, get am if needed, store in ztemp if @fn < 11 ztemp = z - am3*z3 + am5*z5 + am7*z7 + am9*z9 endif ; @fn ; next, get dn if needed, store in zextra if @fn > 6 z10 = z9*z zextra = dn0 - dn2*z2 + dn4*z4 + dn6*z6 + dn8*z8 + dn10*z10 endif ; @fn ; Compute final Jacobi elliptic function if @fn == 0 ; am z = ztemp elseif @fn == 1 ; cn z = cos(ztemp) elseif @fn == 2 ; nc z = 1/cos(ztemp) elseif @fn == 3 ; sn z = sin(ztemp) elseif @fn == 4 ; ns z = 1/sin(ztemp) elseif @fn == 5 ; cs z = cotan(ztemp) elseif @fn == 6 ; sc z = tan(ztemp) elseif @fn == 7 ; cd z = cos(ztemp)/zextra elseif @fn == 8 ; dc z = zextra/cos(ztemp) elseif @fn == 9 ; sd z = sin(ztemp)/zextra elseif @fn == 10 ;ds z = zextra/sin(ztemp) elseif @fn == 11 ;dn z = zextra elseif @fn == 12 ;nd z = 1/zextra endif ; @fn if @blend z = @weight1*z + @weight2*zold^@zpower endif ; blend if @pmode != 1 z = z + jc endif ; pmode bailout: |z| < @bail default: title = "Jacobi Elliptic Funcs" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param m caption = "Jacobi Parameter" default = 0.25 hint = "This is the constant Jacobi parameter, m, used as a second argument, \ along with z, to the particular Jacobi function; range should be \ restricted to 0<= m <= 1, but I left the limits open" endparam param fn caption = "Jacobi Function" enum = "am" "cn" "nc" "sn" "ns" "cs" "sc" "cd" "dc" "sd" "ds" "dn" "nd" default = 3 hint = "This determines which of the Jacobi elliptic functions is used" endparam param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the elliptic function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Elliptic Weight' to fix blend proportions" endparam param weight1 caption = "Elliptic Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ elliptic function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weight2 caption = "Z Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the elliptic function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-JacobiElliptics-J" jconstant = #pixel bail = bail m = m fn = fn blend = blend weight1 = weight1 weight2 = weight2 zpower = zpower pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-JacobiElliptics-J { ; jam 020306 ; Mandelbrot/Julia based on the Jocobi elliptic functions f(z,m), ; where parameter m ranges from 0 to 1. ; The function is implemented as a series expansion about z=0. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = complex ztemp = complex zold = (0,0) ; temp/spare scratch variables ; declare vars for powers of z complex z2 = complex z3 = complex z4 = complex z5 = complex z6 = (0,0) complex z7 = complex z8 = complex z9 = complex z10 = (0,0) ; declare vars for powers of m float m2 = @m*@m float m3 = @m*m2 float m4 = @m*m3 if @fn > 6 ; m5, com5 unneeded otherwise float m5 = @m*m4 float com5 = -256*@m-15808*m2-30768*m3-3688*m4-m5 else float m5 = 0.0 float com5 = 0.0 endif ; @fn ; define other m coefficients float com2 = 4*@m+m2, float com3 = -16*@m-44*m2-m3 float com4 = 64*@m+912*m2+408*m3+m4 ; declare vars for am, dn coefficients float am3 = float am5 = float am7 = float am9 = 0.0 float dn0 = 1.0 float dn2 = float dn4 = float dn6 = float dn8 = float dn10 = 0.0 ; compute coefficients for am series if @fn < 11 ; fn am needed am3 = @m/6 am5 = com2/120 am7 = com3/5040 am9 = com4/362880 endif ; @fn ; compute coefficients for dn series if @fn > 6 ; fn dn needed dn2 = @m/2 dn4 = com2/24 dn6 = com3/720 dn8 = com4/40320 dn10 = com5/3628800 endif ; @fn ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 ztemp = sinh(jc), zextra = cosh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 95 ztemp = sin(jc), zextra = cos(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), ztemp = sinh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: if @pmode != 0 z = z + jc endif ; pmode zold = z ; compute powers of z z2 = z*z, z3 = z2*z, z4 = z3*z, z5 = z4*z, z6 = z5*z z7 = z6*z, z8 = z7*z, z9 = z8*z ; Execute the appropriate Jacobi formula ; first, get am if needed, store in ztemp if @fn < 11 ztemp = z - am3*z3 + am5*z5 + am7*z7 + am9*z9 endif ; @fn ; next, get dn if needed, store in zextra if @fn > 6 z10 = z9*z zextra = dn0 - dn2*z2 + dn4*z4 + dn6*z6 + dn8*z8 + dn10*z10 endif ; @fn ; Compute final Jacobi elliptic function if @fn == 0 ; am z = ztemp elseif @fn == 1 ; cn z = cos(ztemp) elseif @fn == 2 ; nc z = 1/cos(ztemp) elseif @fn == 3 ; sn z = sin(ztemp) elseif @fn == 4 ; ns z = 1/sin(ztemp) elseif @fn == 5 ; cs z = cotan(ztemp) elseif @fn == 6 ; sc z = tan(ztemp) elseif @fn == 7 ; cd z = cos(ztemp)/zextra elseif @fn == 8 ; dc z = zextra/cos(ztemp) elseif @fn == 9 ; sd z = sin(ztemp)/zextra elseif @fn == 10 ;ds z = zextra/sin(ztemp) elseif @fn == 11 ;dn z = zextra elseif @fn == 12 ;nd z = 1/zextra endif ; @fn if @blend z = @weight1*z + @weight2*zold^@zpower endif ; blend if @pmode != 1 z = z + jc endif ; pmode bailout: |z| < @bail default: title = "Jacobi Elliptics Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param m caption = "Jacobi Parameter" default = 0.25 hint = "This is the constant Jacobi parameter, m, used as a second argument, \ along with z, to the particular Jacobi function; range should be \ restricted to 0<= m <= 1, but I left the limits open" endparam param fn caption = "Jacobi Function" enum = "am" "cn" "nc" "sn" "ns" "cs" "sc" "cd" "dc" "sd" "ds" "dn" "nd" default = 3 hint = "This determines which of the Jacobi elliptic functions is used" endparam param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the elliptic function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Elliptic Weight' to fix blend proportions" endparam param weight1 caption = "Elliptic Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ elliptic function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weight2 caption = "Z Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the elliptic function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-JacobiElliptics" perturbation = #pixel bail = bail m = m fn = fn blend = blend weight1 = weight1 weight2 = weight2 zpower = zpower pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } erf-v2 { ; jam 160824 ; Error function ; Series expansion to 8 terms. global: complex onebyrtpi = 1/( sqrt( #pi ) ) complex c1 = 2.0, complex c3 = -2/3, complex c5 = 0.2 complex c7 = -1/21, complex c9 = 1/108, complex c11 = -1/660 complex c13 = 1/4680, complex c15 = -1/37800 c1 = c1*onebyrtpi, c3 = c3*onebyrtpi, c5 = c5*onebyrtpi c7 = c7*onebyrtpi, c9 = c9*onebyrtpi, c11 = c11*onebyrtpi c13 = c13*onebyrtpi, c15 = c15*onebyrtpi init: if @mandy z = @jconstant, jc = #pixel else ; Julia z = #pixel, jc = @jconstant endif complex zblend = (0,0) complex z2 = 0.0, complex z3 = 0.0, complex z5 = 0.0 complex z7 = 0.0, complex z9 = 0.0, complex z11 = 0.0 complex z13 = 0.0, complex z15 = 0.0 loop: zblend = z z2 = z*z, z3 = z2*z, z5 = z3*z2, z7 = z5*z2, z9 = z7*z2 z11 = z9*z2, z11 = z9*z2, z13 = z11*z2, z15 = z13*z2 z = c1*z + c3*z3 + c5*z5 + c7*z7 + c9*z9 + c11*z11 + c13*z13 + c15*z15 if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend z = z + jc bailout: |z| < @bail default: title = "Erf V2" center = (0,0) maxiter = 2000 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param jconstant caption = "Seed/Perturbation" default = (0,0) hint = "This is the seed constant for Julia-type fractals, or the initial \ perturbation for Mandelbrot-types" endparam param mandy caption = "Mandelbrot flag" default = TRUE hint = "Works in combination with the Julia flag for switching" endparam param julia caption = "Julia flag" default = FALSE hint = "Works in combination with the Mandelbrot flag for switching" endparam switch: type = "erf-v2" blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower jconstant = #pixel bail = bail mandy = julia julia = mandy }