; jam-Newtons.ufm ; Various takes on the Newton method, ; begun 161111 by jam ; These formulas use Newton's method or higher order methods ; to find the roots of various equations. ; The variable 'zworking' is ; used for the orbit computation, and #z ; is set to the reciprocal of the correction adjustment to ; 'zworking' after each iteration. That is, when the orbit ; has settled down into a root, #z approaches infinity. ; Consequently, set the bailout value to some large ; number. This method is employed for compatibility with ; coloring schemes that expect #z to be large on bailout. ; ; To my knowledge, Kerry Mitchell devised the reciprocal ; bailout method. Thanks! jam-explogNewt4 { ; ; Uses Newton's method to find the roots ; of exp(z)-log(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zexp = complex zlog = complex zrecip = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 zexp = exp(zworking + jc1) zlog = log(zworking) zrecip = 1/zworking elseif @eqselection == 1 zexp = exp(zworking) zlog = log(zworking + jc2) zrecip = 1/zworking elseif @eqselection == 2 zexp = exp(zworking) zlog = log(zworking) zrecip = 1/(zworking + jc3) elseif @eqselection == 3 zexp = exp(zworking + jc1) zlog = log(zworking + jc2) zrecip = 1/zworking elseif @eqselection == 4 zexp = exp(zworking) zlog = log(zworking + jc2) zrecip = 1/(zworking + jc3) elseif @eqselection == 5 zexp = exp(zworking + jc1) zlog = log(zworking) zrecip = 1/(zworking + jc3) elseif @eqselection == 6 zexp = exp(zworking + jc1) zlog = log(zworking + jc2) zrecip = 1/(zworking + jc3) elseif @eqselection == 7 zexp = exp(zworking * jc1) zlog = log(zworking) zrecip = 1/zworking elseif @eqselection == 8 zexp = exp(zworking) zlog = log(zworking * jc2) zrecip = 1/zworking elseif @eqselection == 9 zexp = exp(zworking) zlog = log(zworking) zrecip = 1/(zworking * jc3) elseif @eqselection == 10 zexp = exp(zworking * jc1) zlog = log(zworking * jc2) zrecip = 1/zworking elseif @eqselection == 11 zexp = exp(zworking) zlog = log(zworking * jc2) zrecip = 1/(zworking * jc3) elseif @eqselection == 12 zexp = exp(zworking * jc1) zlog = log(zworking) zrecip = 1/(zworking * jc3) elseif @eqselection == 13 zexp = exp(zworking * jc1) zlog = log(zworking * jc2) zrecip = 1/(zworking * jc3) elseif @eqselection == 14 zexp = exp(zworking + jc1) zlog = log(zworking * jc2) zrecip = 1/zworking elseif @eqselection == 15 zexp = exp(zworking) zlog = log(zworking + jc2) zrecip = 1/(zworking * jc3) elseif @eqselection == 16 zexp = exp(zworking + jc1) zlog = log(zworking) zrecip = 1/(zworking * jc3) elseif @eqselection == 17 zexp = exp(zworking * jc1) zlog = log(zworking + jc2) zrecip = 1/zworking elseif @eqselection == 18 zexp = exp(zworking) zlog = log(zworking * jc2) zrecip = 1/(zworking + jc3) elseif @eqselection == 19 zexp = exp(zworking * jc1) zlog = log(zworking) zrecip = 1/(zworking + jc3) elseif @eqselection == 20 zexp = exp(zworking + jc1) zlog = log(zworking * jc2) zrecip = 1/(zworking * jc3) elseif @eqselection == 21 zexp = exp(zworking + jc1) zlog = log(zworking + jc2) zrecip = 1/(zworking * jc3) elseif @eqselection == 22 zexp = exp(zworking + jc1) zlog = log(zworking * jc2) zrecip = 1/(zworking + jc3) elseif @eqselection == 23 zexp = exp(zworking * jc1) zlog = log(zworking + jc2) zrecip = 1/(zworking + jc3) elseif @eqselection == 24 zexp = exp(zworking * jc1) zlog = log(zworking + jc2) zrecip = 1/(zworking * jc3) elseif @eqselection == 25 zexp = exp(zworking * jc1) zlog = log(zworking * jc2) zrecip = 1/(zworking + jc3) endif ; @eqselection funcresult = zexp - zlog + @const derivresult = zexp - zrecip zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "e^z - log(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-expcosNewt2 { ; jam 161111 ; ; Uses Newton's method to find the roots ; of exp(z)cos(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zexp = complex zcos = complex zsin = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 zexp = exp(zworking + jc1) zcos = cos(zworking) zsin = sin(zworking) elseif @eqselection == 1 zexp = exp(zworking) zcos = cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 2 zexp = exp(zworking) zcos = cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 3 zexp = exp(zworking + jc1) zcos = cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 4 zexp = exp(zworking) zcos = cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 5 zexp = exp(zworking + jc1) zcos = cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 6 zexp = exp(zworking + jc1) zcos = cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 7 zexp = exp(zworking * jc1) zcos = cos(zworking) zsin = sin(zworking) elseif @eqselection == 8 zexp = exp(zworking) zcos = cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 9 zexp = exp(zworking) zcos = cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 10 zexp = exp(zworking * jc1) zcos = cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 11 zexp = exp(zworking) zcos = cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 12 zexp = exp(zworking * jc1) zcos = cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 13 zexp = exp(zworking * jc1) zcos = cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 14 zexp = exp(zworking + jc1) zcos = cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 15 zexp = exp(zworking) zcos = cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 16 zexp = exp(zworking + jc1) zcos = cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 17 zexp = exp(zworking * jc1) zcos = cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 18 zexp = exp(zworking) zcos = cos(zworking * jc2) zsin = sin(zworking + jc3) elseif @eqselection == 19 zexp = exp(zworking * jc1) zcos = cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 20 zexp = exp(zworking + jc1) zcos = cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 21 zexp = exp(zworking + jc1) zcos = cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 22 zexp = exp(zworking + jc1) zcos = cos(zworking * jc2) zsin = sin(zworking + jc3) elseif @eqselection == 23 zexp = exp(zworking * jc1) zcos = cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 24 zexp = exp(zworking * jc1) zcos = cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 25 zexp = exp(zworking * jc1) zcos = cos(zworking * jc2) zsin = sin(zworking + jc3) endif ; @eqselection funcresult = zexp * zcos + @const derivresult = zexp * (zcos - zsin) zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "e^z * cos(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-ex2tanxNewt2 { ; jam 161111 ; ; Uses Newton's method to find the roots ; of exp(z^2)tan(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zsqr = complex ezsqr = complex ztan = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 zsqr = sqr(zworking + jc1) ezsqr = exp(zsqr) ztan = tan(zworking) elseif @eqselection == 1 zsqr = sqr(zworking) ezsqr = exp(zsqr + jc2) ztan = tan(zworking) elseif @eqselection == 2 zsqr = sqr(zworking) ezsqr = exp(zsqr) ztan = tan(zworking + jc3) elseif @eqselection == 3 zsqr = sqr(zworking + jc1) ezsqr = exp(zsqr + jc2) ztan = tan(zworking) elseif @eqselection == 4 zsqr = sqr(zworking) ezsqr = exp(zsqr + jc2) ztan = tan(zworking + jc3) elseif @eqselection == 5 zsqr = sqr(zworking + jc1) ezsqr = exp(zsqr) ztan = tan(zworking + jc3) elseif @eqselection == 6 zsqr = sqr(zworking + jc1) ezsqr = exp(zsqr + jc2) ztan = tan(zworking + jc3) elseif @eqselection == 7 zsqr = sqr(zworking * jc1) ezsqr = exp(zsqr) ztan = tan(zworking) elseif @eqselection == 8 zsqr = sqr(zworking) ezsqr = exp(zsqr * jc2) ztan = tan(zworking) elseif @eqselection == 9 zsqr = sqr(zworking) ezsqr = exp(zsqr) ztan = tan(zworking * jc3) elseif @eqselection == 10 zsqr = sqr(zworking * jc1) ezsqr = exp(zsqr * jc2) ztan = tan(zworking) elseif @eqselection == 11 zsqr = sqr(zworking) ezsqr = exp(zsqr * jc2) ztan = tan(zworking * jc3) elseif @eqselection == 12 zsqr = sqr(zworking * jc1) ezsqr = exp(zsqr) ztan = tan(zworking * jc3) elseif @eqselection == 13 zsqr = sqr(zworking * jc1) ezsqr = exp(zsqr * jc2) ztan = tan(zworking * jc3) elseif @eqselection == 14 zsqr = sqr(zworking + jc1) ezsqr = exp(zsqr * jc2) ztan = tan(zworking) elseif @eqselection == 15 zsqr = sqr(zworking) ezsqr = exp(zsqr + jc2) ztan = tan(zworking * jc3) elseif @eqselection == 16 zsqr = sqr(zworking + jc1) ezsqr = exp(zsqr) ztan = tan(zworking * jc3) elseif @eqselection == 17 zsqr = sqr(zworking * jc1) ezsqr = exp(zsqr + jc2) ztan = tan(zworking) elseif @eqselection == 18 zsqr = sqr(zworking) ezsqr = exp(zsqr * jc2) ztan = tan(zworking + jc3) elseif @eqselection == 19 zsqr = sqr(zworking * jc1) ezsqr = exp(zsqr) ztan = tan(zworking + jc3) elseif @eqselection == 20 zsqr = sqr(zworking + jc1) ezsqr = exp(zsqr * jc2) ztan = tan(zworking * jc3) elseif @eqselection == 21 zsqr = sqr(zworking + jc1) ezsqr = exp(zsqr + jc2) ztan = tan(zworking * jc3) elseif @eqselection == 22 zsqr = sqr(zworking + jc1) ezsqr = exp(zsqr * jc2) ztan = tan(zworking + jc3) elseif @eqselection == 23 zsqr = sqr(zworking * jc1) ezsqr = exp(zsqr + jc2) ztan = tan(zworking + jc3) elseif @eqselection == 24 zsqr = sqr(zworking * jc1) ezsqr = exp(zsqr + jc2) ztan = tan(zworking * jc3) elseif @eqselection == 25 zsqr = sqr(zworking * jc1) ezsqr = exp(zsqr * jc2) ztan = tan(zworking + jc3) endif ; @eqselection funcresult = ezsqr * ztan + @const derivresult = ezsqr * (2 * zworking * ztan + sqr(ztan) + 1) zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "e^z^2 * tan(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-znseczNewt { ; jam 161112 ; ; Uses Newton's method to find the roots ; of z^n - sec(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = complex ztan = (0,0) complex zcos = complex zsec = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zcos = cos(zworking) ztan = tan(zworking) elseif @eqselection == 1 znminus = (zworking)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking) elseif @eqselection == 2 znminus = (zworking)^powerminus zcos = cos(zworking) ztan = tan(zworking + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking) elseif @eqselection == 4 znminus = (zworking)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zcos = cos(zworking) ztan = tan(zworking + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zcos = cos(zworking) ztan = tan(zworking) elseif @eqselection == 8 znminus = (zworking)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking) elseif @eqselection == 9 znminus = (zworking)^powerminus zcos = cos(zworking) ztan = tan(zworking * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking) elseif @eqselection == 11 znminus = (zworking)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zcos = cos(zworking) ztan = tan(zworking * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking) elseif @eqselection == 15 znminus = (zworking)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zcos = cos(zworking) ztan = tan(zworking * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking) elseif @eqselection == 18 znminus = (zworking)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zcos = cos(zworking) ztan = tan(zworking + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking + jc3) endif ; @eqselection zn = znminus * zworking zsec = 1/zcos funcresult = zn - zsec + @const derivresult = @power * znminus - zsec * ztan zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n - sec(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (2,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-znsinzNewt { ; jam 161112 ; ; Uses Newton's method to find the roots ; of z^n - sin(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = (0,0) complex zcos = complex zsin = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zcos = cos(zworking) zsin = sin(zworking) elseif @eqselection == 1 znminus = (zworking)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 2 znminus = (zworking)^powerminus zcos = cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 4 znminus = (zworking)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zcos = cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zcos = cos(zworking) zsin = sin(zworking) elseif @eqselection == 8 znminus = (zworking)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 9 znminus = (zworking)^powerminus zcos = cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 11 znminus = (zworking)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zcos = cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 15 znminus = (zworking)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zcos = cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 18 znminus = (zworking)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zcos = cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking + jc3) endif ; @eqselection zn = znminus * zworking funcresult = zn - zsin + @const derivresult = @power * znminus - zcos zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n - sin(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (2,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-zncoszNewt { ; jam 161112 ; ; Uses Newton's method to find the roots ; of z^n - cos(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = (0,0) complex zcos = complex zsin = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zcos = cos(zworking) zsin = sin(zworking) elseif @eqselection == 1 znminus = (zworking)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 2 znminus = (zworking)^powerminus zcos = cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 4 znminus = (zworking)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zcos = cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zcos = cos(zworking) zsin = sin(zworking) elseif @eqselection == 8 znminus = (zworking)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 9 znminus = (zworking)^powerminus zcos = cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 11 znminus = (zworking)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zcos = cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 15 znminus = (zworking)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zcos = cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 18 znminus = (zworking)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zcos = cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking + jc3) endif ; @eqselection zn = znminus * zworking funcresult = zn - zcos + @const derivresult = @power * znminus + zsin zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n - cos(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (2,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-zntanzNewt { ; jam 161112 ; ; Uses Newton's method to find the roots ; of z^n - tan(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = (0,0) complex ztan = complex ztan2 = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zn = zworking * znminus ztan = tan(zworking) elseif @eqselection == 1 znminus = (zworking)^powerminus zn = (zworking + jc2) * znminus ztan = tan(zworking) elseif @eqselection == 2 znminus = (zworking)^powerminus zn = zworking * znminus ztan = tan(zworking + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zn = (zworking + jc2) * znminus ztan = tan(zworking) elseif @eqselection == 4 znminus = (zworking)^powerminus zn = (zworking + jc2) * znminus ztan = tan(zworking + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zn = zworking * znminus ztan = tan(zworking + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zn = (zworking + jc2) * znminus ztan = tan(zworking + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zn = zworking * znminus ztan = tan(zworking) elseif @eqselection == 8 znminus = (zworking)^powerminus zn = (zworking * jc2) * znminus ztan = tan(zworking) elseif @eqselection == 9 znminus = (zworking)^powerminus zn = zworking * znminus ztan = tan(zworking * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zn = (zworking * jc2) * znminus ztan = tan(zworking) elseif @eqselection == 11 znminus = (zworking)^powerminus zn = (zworking * jc2) * znminus ztan = tan(zworking * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zn = zworking * znminus ztan = tan(zworking * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zn = (zworking * jc2) * znminus ztan = tan(zworking * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zn = (zworking * jc2) * znminus ztan = tan(zworking) elseif @eqselection == 15 znminus = (zworking)^powerminus zn = (zworking + jc2) * znminus ztan = tan(zworking * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zn = zworking * znminus ztan = tan(zworking * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zn = (zworking + jc2) * znminus ztan = tan(zworking) elseif @eqselection == 18 znminus = (zworking)^powerminus zn = (zworking * jc2) * znminus ztan = tan(zworking + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zn = zworking * znminus ztan = tan(zworking + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zn = (zworking * jc2) * znminus ztan = tan(zworking * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zn = (zworking + jc2) * znminus ztan = tan(zworking * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zn = (zworking * jc2) * znminus ztan = tan(zworking + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zn = (zworking + jc2) * znminus ztan = tan(zworking + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zn = (zworking + jc2) * znminus ztan = tan(zworking * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zn = (zworking * jc2) * znminus ztan = tan(zworking + jc3) endif ; @eqselection ztan2 = sqr(ztan) funcresult = zn - ztan + @const derivresult = @power * znminus - ztan2 - 1 zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n - tan(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (2,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-genz3Newt { ; ; Uses Newton's method to find the roots ; of z^3 + az^2 + bz + c = 0. Set the ; bailout value to some large number ; jam 161113 global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; 'Explore Mode' is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex z3 = complex z2 = complex z1 = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 elseif @eqselection == 1 z1 = zworking z2 = sqr(z1) + jc2 z3 = z2 * z1 elseif @eqselection == 2 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 + jc3 elseif @eqselection == 3 z1 = zworking + jc1 z2 = sqr(z1) + jc2 z3 = z2 * z1 elseif @eqselection == 4 z1 = zworking z2 = sqr(z1) + jc2 z3 = z2 * z1 + jc3 elseif @eqselection == 5 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 + jc3 elseif @eqselection == 6 z1 = zworking + jc1 z2 = sqr(z1) + jc2 z3 = z2 * z1 + jc3 elseif @eqselection == 7 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 elseif @eqselection == 8 z1 = zworking z2 = sqr(z1) * jc2 z3 = z2 * z1 elseif @eqselection == 9 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 * jc3 elseif @eqselection == 10 z1 = zworking * jc1 z2 = sqr(z1) * jc2 z3 = z2 * z1 elseif @eqselection == 11 z1 = zworking z2 = sqr(z1)* jc2 z3 = z2 * z1 * jc3 elseif @eqselection == 12 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 * jc3 elseif @eqselection == 13 z1 = zworking * jc1 z2 = sqr(z1) * jc2 z3 = z2 * z1 * jc3 elseif @eqselection == 14 z1 = zworking + jc1 z2 = sqr(z1) * jc2 z3 = z2 * z1 elseif @eqselection == 15 z1 = zworking z2 = sqr(z1) + jc2 z3 = z2 * z1 * jc3 elseif @eqselection == 16 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 * jc3 elseif @eqselection == 17 z1 = zworking * jc1 z2 = sqr(z1) + jc2 z3 = z2 * z1 elseif @eqselection == 18 z1 = zworking z2 = sqr(z1) * jc2 z3 = z2 * z1 + jc3 elseif @eqselection == 19 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 + jc3 elseif @eqselection == 20 z1 = zworking + jc1 z2 = sqr(z1) * jc2 z3 = z2 * z1 * jc3 elseif @eqselection == 21 z1 = zworking + jc1 z2 = sqr(z1) + jc2 z3 = z2 * z1 * jc3 elseif @eqselection == 22 z1 = zworking + jc1 z2 = sqr(z1) * jc2 z3 = z2 * z1 + jc3 elseif @eqselection == 23 z1 = zworking * jc1 z2 = sqr(z1) + jc2 z3 = z2 * z1 + jc3 elseif @eqselection == 24 z1 = zworking * jc1 z2 = sqr(z1) + jc2 z3 = z2 * z1 * jc3 elseif @eqselection == 25 z1 = zworking * jc1 z2 = sqr(z1) * jc2 z3 = z2 * z1 + jc3 endif ; @eqselection funcresult = z3 + @coeff2 * z2 + @coeff1 * z1 + @constant derivresult = 3 * z2 + + 2 * @coeff2 * z1 + @coeff1 zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "General Degree 3 Newton" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param coeff2 caption = "Coefficient 2" default = (3,0) hint = "This parameter if the coefficient of the quadratic z term." endparam param coeff1 caption = "Coefficient 1" default = (-2,0) hint = "This parameter if the coefficient of the linear z term." endparam param constant caption = "Constant Term" default = (-1,0) hint = "This parameter is the constant term in the quadratic equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-zncotzNewt { ; jam 161113 ; ; Uses Newton's method to find the roots ; of z^n - cotan(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = (0,0) complex zcot = complex zcot2 = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zn = zworking * znminus zcot = cotan(zworking) elseif @eqselection == 1 znminus = (zworking)^powerminus zn = (zworking + jc2) * znminus zcot = cotan(zworking) elseif @eqselection == 2 znminus = (zworking)^powerminus zn = zworking * znminus zcot = cotan(zworking + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zn = (zworking + jc2) * znminus zcot = cotan(zworking) elseif @eqselection == 4 znminus = (zworking)^powerminus zn = (zworking + jc2) * znminus zcot = cotan(zworking + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zn = zworking * znminus zcot = cotan(zworking + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zn = (zworking + jc2) * znminus zcot = cotan(zworking + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zn = zworking * znminus zcot = cotan(zworking) elseif @eqselection == 8 znminus = (zworking)^powerminus zn = (zworking * jc2) * znminus zcot = cotan(zworking) elseif @eqselection == 9 znminus = (zworking)^powerminus zn = zworking * znminus zcot = cotan(zworking * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zn = (zworking * jc2) * znminus zcot = cotan(zworking) elseif @eqselection == 11 znminus = (zworking)^powerminus zn = (zworking * jc2) * znminus zcot = cotan(zworking * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zn = zworking * znminus zcot = cotan(zworking * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zn = (zworking * jc2) * znminus zcot = cotan(zworking * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zn = (zworking * jc2) * znminus zcot = cotan(zworking) elseif @eqselection == 15 znminus = (zworking)^powerminus zn = (zworking + jc2) * znminus zcot = cotan(zworking * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zn = zworking * znminus zcot = cotan(zworking * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zn = (zworking + jc2) * znminus zcot = cotan(zworking) elseif @eqselection == 18 znminus = (zworking)^powerminus zn = (zworking * jc2) * znminus zcot = cotan(zworking + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zn = zworking * znminus zcot = cotan(zworking + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zn = (zworking * jc2) * znminus zcot = cotan(zworking * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zn = (zworking + jc2) * znminus zcot = cotan(zworking * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zn = (zworking * jc2) * znminus zcot = cotan(zworking + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zn = (zworking + jc2) * znminus zcot = cotan(zworking + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zn = (zworking + jc2) * znminus zcot = cotan(zworking * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zn = (zworking * jc2) * znminus zcot = cotan(zworking + jc3) endif ; @eqselection zcot2 = sqr(zcot) funcresult = zn - zcot + @const derivresult = @power * znminus + zcot2 + 1 zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n - cotan(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (2,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-zncsczNewt { ; jam 161112 ; ; Uses Newton's method to find the roots ; of z^n - csc(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = complex zcot = (0,0) complex zcsc = complex zsin = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcot = cotan(zworking) elseif @eqselection == 1 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking) elseif @eqselection == 2 znminus = (zworking)^powerminus zsin = sin(zworking) zcot = cotan(zworking + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking) elseif @eqselection == 4 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcot = cotan(zworking + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcot = cotan(zworking) elseif @eqselection == 8 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking) elseif @eqselection == 9 znminus = (zworking)^powerminus zsin = sin(zworking) zcot = cotan(zworking * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking) elseif @eqselection == 11 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcot = cotan(zworking * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking) elseif @eqselection == 15 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcot = cotan(zworking * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking) elseif @eqselection == 18 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcot = cotan(zworking + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking + jc3) endif ; @eqselection zn = znminus * zworking zcsc = 1/zsin funcresult = zn - zcsc + @const derivresult = @power * znminus + zcsc * zcot zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n - csc(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (2,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-znxsinzNewt { ; jam 161113 ; ; Uses Newton's method to find the roots ; of z^n * sin(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = (0,0) complex zcos = complex zsin = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zcos = cos(zworking) zsin = sin(zworking) elseif @eqselection == 1 znminus = (zworking)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 2 znminus = (zworking)^powerminus zcos = cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 4 znminus = (zworking)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zcos = cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zcos = cos(zworking) zsin = sin(zworking) elseif @eqselection == 8 znminus = (zworking)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 9 znminus = (zworking)^powerminus zcos = cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 11 znminus = (zworking)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zcos = cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 15 znminus = (zworking)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zcos = cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 18 znminus = (zworking)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zcos = cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking + jc3) endif ; @eqselection zn = znminus * zworking funcresult = zn * zsin + @const derivresult = @power * znminus * zsin + zn * zcos zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n * sin(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (2,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-znxcoszNewt { ; jam 161113 ; ; Uses Newton's method to find the roots ; of z^n * cos(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = (0,0) complex zcos = complex zsin = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zcos = cos(zworking) zsin = sin(zworking) elseif @eqselection == 1 znminus = (zworking)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 2 znminus = (zworking)^powerminus zcos = cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 4 znminus = (zworking)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zcos = cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zcos = cos(zworking) zsin = sin(zworking) elseif @eqselection == 8 znminus = (zworking)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 9 znminus = (zworking)^powerminus zcos = cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 11 znminus = (zworking)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zcos = cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 15 znminus = (zworking)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zcos = cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 18 znminus = (zworking)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zcos = cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zcos = cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zcos = cos(zworking * jc2) zsin = sin(zworking + jc3) endif ; @eqselection zn = znminus * zworking funcresult = zn * zcos + @const derivresult = @power * znminus * zcos - zn * zsin zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n * cos(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (2,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-znxtanzNewt { ; jam 161113 ; ; Uses Newton's method to find the roots ; of z^n * tan(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = (0,0) complex ztan = complex ztan2 = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zn = zworking * znminus ztan = tan(zworking) elseif @eqselection == 1 znminus = (zworking)^powerminus zn = (zworking + jc2) * znminus ztan = tan(zworking) elseif @eqselection == 2 znminus = (zworking)^powerminus zn = zworking * znminus ztan = tan(zworking + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zn = (zworking + jc2) * znminus ztan = tan(zworking) elseif @eqselection == 4 znminus = (zworking)^powerminus zn = (zworking + jc2) * znminus ztan = tan(zworking + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zn = zworking * znminus ztan = tan(zworking + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zn = (zworking + jc2) * znminus ztan = tan(zworking + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zn = zworking * znminus ztan = tan(zworking) elseif @eqselection == 8 znminus = (zworking)^powerminus zn = (zworking * jc2) * znminus ztan = tan(zworking) elseif @eqselection == 9 znminus = (zworking)^powerminus zn = zworking * znminus ztan = tan(zworking * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zn = (zworking * jc2) * znminus ztan = tan(zworking) elseif @eqselection == 11 znminus = (zworking)^powerminus zn = (zworking * jc2) * znminus ztan = tan(zworking * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zn = zworking * znminus ztan = tan(zworking * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zn = (zworking * jc2) * znminus ztan = tan(zworking * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zn = (zworking * jc2) * znminus ztan = tan(zworking) elseif @eqselection == 15 znminus = (zworking)^powerminus zn = (zworking + jc2) * znminus ztan = tan(zworking * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zn = zworking * znminus ztan = tan(zworking * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zn = (zworking + jc2) * znminus ztan = tan(zworking) elseif @eqselection == 18 znminus = (zworking)^powerminus zn = (zworking * jc2) * znminus ztan = tan(zworking + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zn = zworking * znminus ztan = tan(zworking + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zn = (zworking * jc2) * znminus ztan = tan(zworking * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zn = (zworking + jc2) * znminus ztan = tan(zworking * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zn = (zworking * jc2) * znminus ztan = tan(zworking + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zn = (zworking + jc2) * znminus ztan = tan(zworking + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zn = (zworking + jc2) * znminus ztan = tan(zworking * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zn = (zworking * jc2) * znminus ztan = tan(zworking + jc3) endif ; @eqselection ztan2 = sqr(ztan) funcresult = zn * ztan + @const derivresult = @power * znminus * ztan + zn + zn * ztan2 zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n * tan(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (2,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-znxcotzNewt { ; jam 161113 ; ; Uses Newton's method to find the roots ; of z^n * cotan(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = (0,0) complex zcot = complex zcot2 = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zn = zworking * znminus zcot = cotan(zworking) elseif @eqselection == 1 znminus = (zworking)^powerminus zn = (zworking + jc2) * znminus zcot = cotan(zworking) elseif @eqselection == 2 znminus = (zworking)^powerminus zn = zworking * znminus zcot = cotan(zworking + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zn = (zworking + jc2) * znminus zcot = cotan(zworking) elseif @eqselection == 4 znminus = (zworking)^powerminus zn = (zworking + jc2) * znminus zcot = cotan(zworking + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zn = zworking * znminus zcot = cotan(zworking + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zn = (zworking + jc2) * znminus zcot = cotan(zworking + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zn = zworking * znminus zcot = cotan(zworking) elseif @eqselection == 8 znminus = (zworking)^powerminus zn = (zworking * jc2) * znminus zcot = cotan(zworking) elseif @eqselection == 9 znminus = (zworking)^powerminus zn = zworking * znminus zcot = cotan(zworking * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zn = (zworking * jc2) * znminus zcot = cotan(zworking) elseif @eqselection == 11 znminus = (zworking)^powerminus zn = (zworking * jc2) * znminus zcot = cotan(zworking * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zn = zworking * znminus zcot = cotan(zworking * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zn = (zworking * jc2) * znminus zcot = cotan(zworking * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zn = (zworking * jc2) * znminus zcot = cotan(zworking) elseif @eqselection == 15 znminus = (zworking)^powerminus zn = (zworking + jc2) * znminus zcot = cotan(zworking * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zn = zworking * znminus zcot = cotan(zworking * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zn = (zworking + jc2) * znminus zcot = cotan(zworking) elseif @eqselection == 18 znminus = (zworking)^powerminus zn = (zworking * jc2) * znminus zcot = cotan(zworking + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zn = zworking * znminus zcot = cotan(zworking + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zn = (zworking * jc2) * znminus zcot = cotan(zworking * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zn = (zworking + jc2) * znminus zcot = cotan(zworking * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zn = (zworking * jc2) * znminus zcot = cotan(zworking + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zn = (zworking + jc2) * znminus zcot = cotan(zworking + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zn = (zworking + jc2) * znminus zcot = cotan(zworking * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zn = (zworking * jc2) * znminus zcot = cotan(zworking + jc3) endif ; @eqselection zcot2 = sqr(zcot) funcresult = zn * zcot + @const derivresult = @power * znminus * zcot - zn - zn * zcot2 zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n * cotan(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (2,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-znxseczNewt { ; jam 161113 ; ; Uses Newton's method to find the roots ; of z^n * sec(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = complex ztan = (0,0) complex zcos = complex zsec = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zcos = cos(zworking) ztan = tan(zworking) elseif @eqselection == 1 znminus = (zworking)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking) elseif @eqselection == 2 znminus = (zworking)^powerminus zcos = cos(zworking) ztan = tan(zworking + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking) elseif @eqselection == 4 znminus = (zworking)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zcos = cos(zworking) ztan = tan(zworking + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zcos = cos(zworking) ztan = tan(zworking) elseif @eqselection == 8 znminus = (zworking)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking) elseif @eqselection == 9 znminus = (zworking)^powerminus zcos = cos(zworking) ztan = tan(zworking * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking) elseif @eqselection == 11 znminus = (zworking)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zcos = cos(zworking) ztan = tan(zworking * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking) elseif @eqselection == 15 znminus = (zworking)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zcos = cos(zworking) ztan = tan(zworking * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking) elseif @eqselection == 18 znminus = (zworking)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zcos = cos(zworking) ztan = tan(zworking + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking + jc3) endif ; @eqselection zn = znminus * zworking zsec = 1/zcos funcresult = zn * zsec + @const derivresult = @power * znminus * zsec + zn * zsec * ztan zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n * sec(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (2,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-znxcsczNewt { ; jam 161113 ; ; Uses Newton's method to find the roots ; of z^n * csc(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = complex zcot = (0,0) complex zcsc = complex zsin = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcot = cotan(zworking) elseif @eqselection == 1 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking) elseif @eqselection == 2 znminus = (zworking)^powerminus zsin = sin(zworking) zcot = cotan(zworking + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking) elseif @eqselection == 4 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcot = cotan(zworking + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcot = cotan(zworking) elseif @eqselection == 8 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking) elseif @eqselection == 9 znminus = (zworking)^powerminus zsin = sin(zworking) zcot = cotan(zworking * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking) elseif @eqselection == 11 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcot = cotan(zworking * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking) elseif @eqselection == 15 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcot = cotan(zworking * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking) elseif @eqselection == 18 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcot = cotan(zworking + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking + jc3) endif ; @eqselection zn = znminus * zworking zcsc = 1/zsin funcresult = zn * zcsc + @const derivresult = @power * znminus * zcsc - zn * zcsc * zcot zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n * csc(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (2,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-genz4Nwt { ; ; Uses Newton's method to find the roots ; of z^4 + az^3 + bz^2 + cz + d = 0. Set the ; bailout value to some large number ; jam 161113 global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; 'Explore Mode' is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex z4 = complex z3 = complex z2 = complex z1 = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 z1 = zworking + jc1 z2 = sqr(z1) z4 = sqr(z2) z3 = z2 * z1 elseif @eqselection == 1 z1 = zworking z2 = sqr(z1) z4 = sqr(z2) + jc2 z3 = z2 * z1 elseif @eqselection == 2 z1 = zworking z2 = sqr(z1) z4 = sqr(z2) z3 = z2 * z1 + jc3 elseif @eqselection == 3 z1 = zworking + jc1 z2 = sqr(z1) z4 = sqr(z2) + jc2 z3 = z2 * z1 elseif @eqselection == 4 z1 = zworking z2 = sqr(z1) z4 = sqr(z2) + jc2 z3 = z2 * z1 + jc3 elseif @eqselection == 5 z1 = zworking + jc1 z2 = sqr(z1) z4 = sqr(z2) z3 = z2 * z1 + jc3 elseif @eqselection == 6 z1 = zworking + jc1 z2 = sqr(z1) z4 = sqr(z2) + jc2 z3 = z2 * z1 + jc3 elseif @eqselection == 7 z1 = zworking * jc1 z2 = sqr(z1) z4 = sqr(z2) z3 = z2 * z1 elseif @eqselection == 8 z1 = zworking z2 = sqr(z1) z4 = sqr(z2) * jc2 z3 = z2 * z1 elseif @eqselection == 9 z1 = zworking z2 = sqr(z1) z4 = sqr(z2) z3 = z2 * z1 * jc3 elseif @eqselection == 10 z1 = zworking * jc1 z2 = sqr(z1) z4 = sqr(z2) * jc2 z3 = z2 * z1 elseif @eqselection == 11 z1 = zworking z2 = sqr(z1) z4 = sqr(z2)* jc2 z3 = z2 * z1 * jc3 elseif @eqselection == 12 z1 = zworking * jc1 z2 = sqr(z1) z4 = sqr(z2) z3 = z2 * z1 * jc3 elseif @eqselection == 13 z1 = zworking * jc1 z2 = sqr(z1) z4 = sqr(z2) * jc2 z3 = z2 * z1 * jc3 elseif @eqselection == 14 z1 = zworking + jc1 z2 = sqr(z1) z4 = sqr(z2) * jc2 z3 = z2 * z1 elseif @eqselection == 15 z1 = zworking z2 = sqr(z1) z4 = sqr(z2) + jc2 z3 = z2 * z1 * jc3 elseif @eqselection == 16 z1 = zworking + jc1 z2 = sqr(z1) z4 = sqr(z2) z3 = z2 * z1 * jc3 elseif @eqselection == 17 z1 = zworking * jc1 z2 = sqr(z1) z4 = sqr(z2) + jc2 z3 = z2 * z1 elseif @eqselection == 18 z1 = zworking z2 = sqr(z1) z4 = sqr(z2) * jc2 z3 = z2 * z1 + jc3 elseif @eqselection == 19 z1 = zworking * jc1 z2 = sqr(z1) z4 = sqr(z2) z3 = z2 * z1 + jc3 elseif @eqselection == 20 z1 = zworking + jc1 z2 = sqr(z1) z4 = sqr(z2) * jc2 z3 = z2 * z1 * jc3 elseif @eqselection == 21 z1 = zworking + jc1 z2 = sqr(z1) z4 = sqr(z2) + jc2 z3 = z2 * z1 * jc3 elseif @eqselection == 22 z1 = zworking + jc1 z2 = sqr(z1) z4 = sqr(z2) * jc2 z3 = z2 * z1 + jc3 elseif @eqselection == 23 z1 = zworking * jc1 z2 = sqr(z1) z4 = sqr(z2) + jc2 z3 = z2 * z1 + jc3 elseif @eqselection == 24 z1 = zworking * jc1 z2 = sqr(z1) z4 = sqr(z2) + jc2 z3 = z2 * z1 * jc3 elseif @eqselection == 25 z1 = zworking * jc1 z2 = sqr(z1) z4 = sqr(z2) * jc2 z3 = z2 * z1 + jc3 endif ; @eqselection funcresult = z4 + @coeff3 * z3 + @coeff2 * z2 + @coeff1 * z1 + @constant derivresult = 4 * z3 + 3 * @coeff3 * z2 + 2 * @coeff2 * z1 + @coeff1 zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "General Degree 4 Newton" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param coeff3 caption = "Coefficient 3" default = (3,0) hint = "This parameter if the coefficient of the cubic z term." endparam param coeff2 caption = "Coefficient 2" default = (3,0) hint = "This parameter if the coefficient of the quadratic z term." endparam param coeff1 caption = "Coefficient 1" default = (-2,0) hint = "This parameter if the coefficient of the linear z term." endparam param constant caption = "Constant Term" default = (-1,0) hint = "This parameter is the constant term in the quadratic equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-znexszNewt { ; jam 161114 ; ; Uses Newton's method to find the roots ; of z^n - exs(z) + constant = 0 (exsecant function). Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = complex ztan = (0,0) complex zcos = complex zsec = complex zexs = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zcos = cos(zworking) ztan = tan(zworking) elseif @eqselection == 1 znminus = (zworking)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking) elseif @eqselection == 2 znminus = (zworking)^powerminus zcos = cos(zworking) ztan = tan(zworking + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking) elseif @eqselection == 4 znminus = (zworking)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zcos = cos(zworking) ztan = tan(zworking + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zcos = cos(zworking) ztan = tan(zworking) elseif @eqselection == 8 znminus = (zworking)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking) elseif @eqselection == 9 znminus = (zworking)^powerminus zcos = cos(zworking) ztan = tan(zworking * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking) elseif @eqselection == 11 znminus = (zworking)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zcos = cos(zworking) ztan = tan(zworking * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking) elseif @eqselection == 15 znminus = (zworking)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zcos = cos(zworking) ztan = tan(zworking * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking) elseif @eqselection == 18 znminus = (zworking)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zcos = cos(zworking) ztan = tan(zworking + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking + jc3) endif ; @eqselection zn = znminus * zworking zsec = 1/zcos zexs - zsec - 1 funcresult = zn - zexs + @const derivresult = @power * znminus - zsec * ztan zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n - exs(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (2,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } ; black screen for all options jam-znxexszNewt { ; jam 161114 ; ; Uses Newton's method to find the roots ; of z^n * exs(z) + constant = 0 (exsecant function). Set the ; bailout value to some large number. ; Included for completeness though most options fail ; to provide useful results. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = complex ztan = (0,0) complex zcos = complex zsec = complex zexs = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zcos = cos(zworking) ztan = tan(zworking) elseif @eqselection == 1 znminus = (zworking)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking) elseif @eqselection == 2 znminus = (zworking)^powerminus zcos = cos(zworking) ztan = tan(zworking + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking) elseif @eqselection == 4 znminus = (zworking)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zcos = cos(zworking) ztan = tan(zworking + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zcos = cos(zworking) ztan = tan(zworking) elseif @eqselection == 8 znminus = (zworking)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking) elseif @eqselection == 9 znminus = (zworking)^powerminus zcos = cos(zworking) ztan = tan(zworking * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking) elseif @eqselection == 11 znminus = (zworking)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zcos = cos(zworking) ztan = tan(zworking * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking) elseif @eqselection == 15 znminus = (zworking)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zcos = cos(zworking) ztan = tan(zworking * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking) elseif @eqselection == 18 znminus = (zworking)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zcos = cos(zworking) ztan = tan(zworking + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zcos = cos(zworking + jc2) ztan = tan(zworking * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zcos = cos(zworking * jc2) ztan = tan(zworking + jc3) endif ; @eqselection zn = znminus * zworking zsec = 1/zcos zexs - zsec - 1 funcresult = zn * zexs + @const derivresult = @power * znminus * zexs + zn * zsec * ztan zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n * exs(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (2,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-ez-2asin { ; ; Uses Newton's method to find the roots ; of exp(-(z^2))- arcsin(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex z2 = complex zasin = (0,0) complex zez2 = complex zrecip = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 z2 = sqr(zworking + jc1) zexp = exp(-z2) zrecip = 1/sqrt(1-z2) elseif @eqselection == 1 z2 = sqr(zworking) zexp = exp(-z2 + jc2) zrecip = 1/sqrt(1-z2) elseif @eqselection == 2 z2 = sqr(zworking) zexp = exp(-z2) zrecip = 1/(sqrt(1-z2) + jc3) elseif @eqselection == 3 z2 = sqr(zworking + jc1) zexp = exp(-z2 + jc2) zrecip = 1/sqrt(1-z2) elseif @eqselection == 4 z2 = sqr(zworking) zexp = exp(-z2 + jc2) zrecip = 1/(sqrt(1-z2) + jc3) elseif @eqselection == 5 z2 = sqr(zworking + jc1) zexp = exp(-z2) zrecip = 1/(sqrt(1-z2) + jc3) elseif @eqselection == 6 z2 = sqr(zworking + jc1) zexp = exp(-z2 + jc2) zrecip = 1/(sqrt(1-z2) + jc3) elseif @eqselection == 7 z2 = sqr(zworking * jc1) zexp = exp(-z2) zrecip = 1/sqrt(1-z2) elseif @eqselection == 8 z2 = sqr(zworking) zexp = exp(-z2 * jc2) zrecip = 1/sqrt(1-z2) elseif @eqselection == 9 z2 = sqr(zworking) zexp = exp(-z2) zrecip = 1/(sqrt(1-z2) * jc3) elseif @eqselection == 10 z2 = sqr(zworking * jc1) zexp = exp(-z2 * jc2) zrecip = 1/sqrt(1-z2) elseif @eqselection == 11 z2 = sqr(zworking) zexp = exp(-z2 * jc2) zrecip = 1/(sqrt(1-z2) * jc3) elseif @eqselection == 12 z2 = sqr(zworking * jc1) zexp = exp(-z2) zrecip = 1/(sqrt(1-z2) * jc3) elseif @eqselection == 13 z2 = sqr(zworking * jc1) zexp = exp(-z2 * jc2) zrecip = 1/(sqrt(1-z2) * jc3) elseif @eqselection == 14 z2 = sqr(zworking + jc1) zexp = exp(-z2 * jc2) zrecip = 1/sqrt(1-z2) elseif @eqselection == 15 z2 = sqr(zworking) zexp = exp(-z2 + jc2) zrecip = 1/(sqrt(1-z2) * jc3) elseif @eqselection == 16 z2 = sqr(zworking + jc1) zexp = exp(-z2) zrecip = 1/(sqrt(1-z2) * jc3) elseif @eqselection == 17 z2 = sqr(zworking * jc1) zexp = exp(-z2 + jc2) zrecip = 1/sqrt(1-z2) elseif @eqselection == 18 z2 = sqr(zworking) zexp = exp(-z2 * jc2) zrecip = 1/(sqrt(1-z2) + jc3) elseif @eqselection == 19 z2 = sqr(zworking * jc1) zexp = exp(-z2) zrecip = 1/(sqrt(1-z2) + jc3) elseif @eqselection == 20 z2 = sqr(zworking + jc1) zexp = exp(-z2 * jc2) zrecip = 1/(sqrt(1-z2) * jc3) elseif @eqselection == 21 z2 = sqr(zworking + jc1) zexp = exp(-z2 + jc2) zrecip = 1/(sqrt(1-z2) * jc3) elseif @eqselection == 22 z2 = sqr(zworking + jc1) zexp = exp(-z2 * jc2) zrecip = 1/(sqrt(1-z2) + jc3) elseif @eqselection == 23 z2 = sqr(zworking * jc1) zexp = exp(-z2 + jc2) zrecip = 1/(sqrt(1-z2) + jc3) elseif @eqselection == 24 z2 = sqr(zworking * jc1) zexp = exp(-z2 + jc2) zrecip = 1/(sqrt(1-z2) * jc3) elseif @eqselection == 25 z2 = sqr(zworking * jc1) zexp = exp(-z2 * jc2) zrecip = 1/(sqrt(1-z2) + jc3) endif ; @eqselection zasin = asin(zworking) funcresult = zexp - zasin + @const derivresult = -2 * zworking * zexp - zrecip zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "e^(-z^2) - asin(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-znexczNewt { ; jam 161116 ; ; Uses Newton's method to find the roots ; of z^n - exc(z) + constant = 0 (excosecant function). Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = complex zcot = (0,0) complex zsin = complex zcsc = complex zexc = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcot = cotan(zworking) elseif @eqselection == 1 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking) elseif @eqselection == 2 znminus = (zworking)^powerminus zsin = sin(zworking) zcot = cotan(zworking + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking) elseif @eqselection == 4 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcot = cotan(zworking + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcot = cotan(zworking) elseif @eqselection == 8 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking) elseif @eqselection == 9 znminus = (zworking)^powerminus zsin = sin(zworking) zcot = cotan(zworking * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking) elseif @eqselection == 11 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcot = cotan(zworking * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking) elseif @eqselection == 15 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcot = cotan(zworking * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking) elseif @eqselection == 18 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcot = cotan(zworking + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking + jc3) endif ; @eqselection zn = znminus * zworking zcsc = 1/zsin zexc - zcsc - 1 funcresult = zn - zexc + @const derivresult = @power * znminus + zcsc * zcot zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n - exc(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (2,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } ; gives black screen for all values jam-znxexczNewt { ; jam 161116 ; ; Uses Newton's method to find the roots ; of z^n * exc(z) + constant = 0 (excosecant function). Set the ; bailout value to some large number. ; Included for completeness though most options fail ; to provide useful results. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = complex zcot = (0,0) complex zsin = complex zcsc = complex zexc = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcot = cotan(zworking) elseif @eqselection == 1 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking) elseif @eqselection == 2 znminus = (zworking)^powerminus zsin = sin(zworking) zcot = cotan(zworking + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking) elseif @eqselection == 4 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcot = cotan(zworking + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcot = cotan(zworking) elseif @eqselection == 8 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking) elseif @eqselection == 9 znminus = (zworking)^powerminus zsin = sin(zworking) zcot = cotan(zworking * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking) elseif @eqselection == 11 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcot = cotan(zworking * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking) elseif @eqselection == 15 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcot = cotan(zworking * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking) elseif @eqselection == 18 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcot = cotan(zworking + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcot = cotan(zworking + jc3) endif ; @eqselection zn = znminus * zworking zcsc = 1/zsin zexc - zcsc - 1 funcresult = zn * zexc + @const derivresult = @power * znminus * zexc - zn * zcsc * zcot zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n * exc(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (2,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-znverzNewt { ; jam 161116 ; ; Uses Newton's method to find the roots ; of z^n - ver(z) + constant = 0 (versine function). Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = (0,0) complex zsin = complex zcos = complex zver = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking) elseif @eqselection == 1 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 2 znminus = (zworking)^powerminus zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 4 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking) elseif @eqselection == 8 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 9 znminus = (zworking)^powerminus zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 11 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 15 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 18 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) endif ; @eqselection zn = znminus * zworking zver = 1 - zcos funcresult = zn - zver + @const derivresult = @power * znminus - zsin zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n - ver(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (4,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-znxverzNewt { ; jam 161116 ; ; Uses Newton's method to find the roots ; of z^n * ver(z) + constant = 0 (versine function). Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = (0,0) complex zsin = complex zcos = complex zver = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking) elseif @eqselection == 1 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 2 znminus = (zworking)^powerminus zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 4 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking) elseif @eqselection == 8 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 9 znminus = (zworking)^powerminus zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 11 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 15 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 18 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) endif ; @eqselection zn = znminus * zworking zver = 1 - zcos funcresult = zn * zver + @const derivresult = @power * znminus * zver + zn * zsin zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n * ver(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (4,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-zncvszNewt { ; jam 161116 ; ; Uses Newton's method to find the roots ; of z^n - cvs(z) + constant = 0 (coversine function). Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = (0,0) complex zsin = complex zcos = complex zcvs = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking) elseif @eqselection == 1 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 2 znminus = (zworking)^powerminus zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 4 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking) elseif @eqselection == 8 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 9 znminus = (zworking)^powerminus zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 11 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 15 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 18 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) endif ; @eqselection zn = znminus * zworking zcvs = 1 - zsin funcresult = zn - zcvs + @const derivresult = @power * znminus + zcos zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n - cvs(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (4,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-znxcvszNewt { ; jam 161116 ; ; Uses Newton's method to find the roots ; of z^n * cvs(z) + constant = 0 (coversine function). Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = (0,0) complex zsin = complex zcos = complex zcvs = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking) elseif @eqselection == 1 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 2 znminus = (zworking)^powerminus zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 4 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking) elseif @eqselection == 8 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 9 znminus = (zworking)^powerminus zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 11 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 15 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 18 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) endif ; @eqselection zn = znminus * zworking zcvs = 1 - zsin funcresult = zn * zcvs + @const derivresult = @power * znminus * zcvs - zn * zcos zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n * cvs(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (4,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-expsinNwt { ; ; Uses Newton's method to find the roots ; of exp(z)- m * sin(nz) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zexp = complex zsin = complex zcos = (0,0) complex zfreq = complex zamp = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 zfreq = @freq*zworking zexp = exp(zworking + jc1) zsin = sin(zfreq) elseif @eqselection == 1 zfreq = @freq*zworking zexp = exp(zworking) zsin = sin(zfreq + jc2) elseif @eqselection == 2 zfreq = @freq*zworking + jc3 zexp = exp(zworking) zsin = sin(zfreq) elseif @eqselection == 3 zfreq = @freq*zworking zexp = exp(zworking + jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 4 zfreq = @freq*zworking + jc3 zexp = exp(zworking) zsin = sin(zfreq + jc2) elseif @eqselection == 5 zfreq = @freq*zworking + jc3 zexp = exp(zworking + jc1) zsin = sin(zfreq) elseif @eqselection == 6 zfreq = @freq*zworking + jc3 zexp = exp(zworking + jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 7 zfreq = @freq*zworking zexp = exp(zworking * jc1) zsin = sin(zfreq) elseif @eqselection == 8 zfreq = @freq*zworking zexp = exp(zworking) zsin = sin(zfreq * jc2) elseif @eqselection == 9 zfreq = @freq*zworking * jc3 zexp = exp(zworking) zsin = sin(zfreq) elseif @eqselection == 10 zfreq = @freq*zworking zexp = exp(zworking * jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 11 zfreq = @freq*zworking * jc3 zexp = exp(zworking) zsin = sin(zfreq * jc2) elseif @eqselection == 12 zfreq = @freq*zworking * jc3 zexp = exp(zworking * jc1) zsin = sin(zfreq) elseif @eqselection == 13 zfreq = @freq*zworking * jc3 zexp = exp(zworking * jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 14 zfreq = @freq*zworking zexp = exp(zworking + jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 15 zfreq = @freq*zworking * jc3 zexp = exp(zworking) zsin = sin(zfreq + jc2) elseif @eqselection == 16 zfreq = @freq*zworking * jc3 zexp = exp(zworking + jc1) zsin = sin(zfreq) elseif @eqselection == 17 zfreq = @freq*zworking zexp = exp(zworking * jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 18 zfreq = @freq*zworking + jc3 zexp = exp(zworking) zsin = sin(zfreq * jc2) elseif @eqselection == 19 zfreq = @freq*zworking + jc3 zexp = exp(zworking * jc1) zsin = sin(zfreq) elseif @eqselection == 20 zfreq = @freq*zworking * jc3 zexp = exp(zworking + jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 21 zfreq = @freq*zworking * jc3 zexp = exp(zworking + jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 22 zfreq = @freq*zworking + jc3 zexp = exp(zworking + jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 23 zfreq = @freq*zworking + jc3 zexp = exp(zworking * jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 24 zfreq = @freq*zworking * jc3 zexp = exp(zworking * jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 25 zfreq = @freq*zworking + jc3 zexp = exp(zworking * jc1) zsin = sin(zfreq * jc2) endif ; @eqselection zcos = cos(zfreq) funcresult = zexp - @amplitude * zsin + @const derivresult = zexp - @amplitude * zcos * @freq zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "e^z - m*sin(nz) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param amplitude caption = "Sine Amplitude" default = (4,0) hint = "This parameter sets the amplitude,'m' of the sine function." endparam param freq caption = "Sine Frequency" default = (4,0) hint = "This parameter sets the frequency,'n' of the sine function." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-expcosNwt { ; ; Uses Newton's method to find the roots ; of exp(z)- m * cos(nz) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zexp = complex zsin = complex zcos = (0,0) complex zfreq = complex zamp = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 zfreq = @freq*zworking zexp = exp(zworking + jc1) zcos = cos(zfreq) elseif @eqselection == 1 zfreq = @freq*zworking zexp = exp(zworking) zcos = cos(zfreq + jc2) elseif @eqselection == 2 zfreq = @freq*zworking + jc3 zexp = exp(zworking) zcos = cos(zfreq) elseif @eqselection == 3 zfreq = @freq*zworking zexp = exp(zworking + jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 4 zfreq = @freq*zworking + jc3 zexp = exp(zworking) zcos = cos(zfreq + jc2) elseif @eqselection == 5 zfreq = @freq*zworking + jc3 zexp = exp(zworking + jc1) zcos = cos(zfreq) elseif @eqselection == 6 zfreq = @freq*zworking + jc3 zexp = exp(zworking + jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 7 zfreq = @freq*zworking zexp = exp(zworking * jc1) zcos = cos(zfreq) elseif @eqselection == 8 zfreq = @freq*zworking zexp = exp(zworking) zcos = cos(zfreq * jc2) elseif @eqselection == 9 zfreq = @freq*zworking * jc3 zexp = exp(zworking) zcos = cos(zfreq) elseif @eqselection == 10 zfreq = @freq*zworking zexp = exp(zworking * jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 11 zfreq = @freq*zworking * jc3 zexp = exp(zworking) zcos = cos(zfreq * jc2) elseif @eqselection == 12 zfreq = @freq*zworking * jc3 zexp = exp(zworking * jc1) zcos = cos(zfreq) elseif @eqselection == 13 zfreq = @freq*zworking * jc3 zexp = exp(zworking * jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 14 zfreq = @freq*zworking zexp = exp(zworking + jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 15 zfreq = @freq*zworking * jc3 zexp = exp(zworking) zcos = cos(zfreq + jc2) elseif @eqselection == 16 zfreq = @freq*zworking * jc3 zexp = exp(zworking + jc1) zcos = cos(zfreq) elseif @eqselection == 17 zfreq = @freq*zworking zexp = exp(zworking * jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 18 zfreq = @freq*zworking + jc3 zexp = exp(zworking) zcos = cos(zfreq * jc2) elseif @eqselection == 19 zfreq = @freq*zworking + jc3 zexp = exp(zworking * jc1) zcos = cos(zfreq) elseif @eqselection == 20 zfreq = @freq*zworking * jc3 zexp = exp(zworking + jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 21 zfreq = @freq*zworking * jc3 zexp = exp(zworking + jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 22 zfreq = @freq*zworking + jc3 zexp = exp(zworking + jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 23 zfreq = @freq*zworking + jc3 zexp = exp(zworking * jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 24 zfreq = @freq*zworking * jc3 zexp = exp(zworking * jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 25 zfreq = @freq*zworking + jc3 zexp = exp(zworking * jc1) zcos = cos(zfreq * jc2) endif ; @eqselection zsin = sin(zfreq) funcresult = zexp - @amplitude * zcos + @const derivresult = zexp + @amplitude * zsin * @freq zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "e^z - m*cos(nz) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param amplitude caption = "Cosine Amplitude" default = (4,0) hint = "This parameter sets the amplitude,'m' of the cosine function." endparam param freq caption = "Cosine Frequency" default = (4,0) hint = "This parameter sets the frequency,'n' of the cosine function." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-expz2cosNwt { ; ; Uses Newton's method to find the roots ; of exp(z^2)- m * cos(nz) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zexp = complex zsin = complex zcos = (0,0) complex zfreq = complex zamp = (0,0) complex zquotient = (0,0) complex z2 = (0,0) loop: if @eqselection == 0 zfreq = @freq*zworking zexp = exp(sqr(zworking) + jc1) zcos = cos(zfreq) elseif @eqselection == 1 zfreq = @freq*zworking zexp = exp(sqr(zworking)) zcos = cos(zfreq + jc2) elseif @eqselection == 2 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking)) zcos = cos(zfreq) elseif @eqselection == 3 zfreq = @freq*zworking zexp = exp(sqr(zworking) + jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 4 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking)) zcos = cos(zfreq + jc2) elseif @eqselection == 5 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking) + jc1) zcos = cos(zfreq) elseif @eqselection == 6 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking) + jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 7 zfreq = @freq*zworking zexp = exp(sqr(zworking) * jc1) zcos = cos(zfreq) elseif @eqselection == 8 zfreq = @freq*zworking zexp = exp(sqr(zworking)) zcos = cos(zfreq * jc2) elseif @eqselection == 9 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking)) zcos = cos(zfreq) elseif @eqselection == 10 zfreq = @freq*zworking zexp = exp(sqr(zworking) * jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 11 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking)) zcos = cos(zfreq * jc2) elseif @eqselection == 12 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking) * jc1) zcos = cos(zfreq) elseif @eqselection == 13 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking) * jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 14 zfreq = @freq*zworking zexp = exp(sqr(zworking) + jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 15 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking)) zcos = cos(zfreq + jc2) elseif @eqselection == 16 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking) + jc1) zcos = cos(zfreq) elseif @eqselection == 17 zfreq = @freq*zworking zexp = exp(sqr(zworking) * jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 18 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking)) zcos = cos(zfreq * jc2) elseif @eqselection == 19 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking) * jc1) zcos = cos(zfreq) elseif @eqselection == 20 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking) + jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 21 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking) + jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 22 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking) + jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 23 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking) * jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 24 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking) * jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 25 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking) * jc1) zcos = cos(zfreq * jc2) endif ; @eqselection zsin = sin(zfreq) funcresult = zexp - @amplitude * zcos + @const derivresult = 2 * zworking * zexp + @amplitude * zsin * @freq zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "e^(z^2) - m*cos(nz) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param amplitude caption = "Cosine Amplitude" default = (4,0) hint = "This parameter sets the amplitude,'m' of the cosine function." endparam param freq caption = "Cosine Frequency" default = (4,0) hint = "This parameter sets the frequency,'n' of the cosine function." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-expz2sinNwt { ; ; Uses Newton's method to find the roots ; of exp(z^2)- m * sin(nz) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zexp = complex zsin = complex zcos = (0,0) complex zfreq = complex zamp = (0,0) complex zquotient = (0,0) complex z2 = (0,0) loop: if @eqselection == 0 zfreq = @freq*zworking zexp = exp(sqr(zworking) + jc1) zsin = sin(zfreq) elseif @eqselection == 1 zfreq = @freq*zworking zexp = exp(sqr(zworking)) zsin = sin(zfreq + jc2) elseif @eqselection == 2 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking)) zsin = sin(zfreq) elseif @eqselection == 3 zfreq = @freq*zworking zexp = exp(sqr(zworking) + jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 4 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking)) zsin = sin(zfreq + jc2) elseif @eqselection == 5 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking) + jc1) zsin = sin(zfreq) elseif @eqselection == 6 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking) + jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 7 zfreq = @freq*zworking zexp = exp(sqr(zworking) * jc1) zsin = sin(zfreq) elseif @eqselection == 8 zfreq = @freq*zworking zexp = exp(sqr(zworking)) zsin = sin(zfreq * jc2) elseif @eqselection == 9 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking)) zsin = sin(zfreq) elseif @eqselection == 10 zfreq = @freq*zworking zexp = exp(sqr(zworking) * jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 11 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking)) zsin = sin(zfreq * jc2) elseif @eqselection == 12 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking) * jc1) zsin = sin(zfreq) elseif @eqselection == 13 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking) * jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 14 zfreq = @freq*zworking zexp = exp(sqr(zworking) + jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 15 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking)) zsin = sin(zfreq + jc2) elseif @eqselection == 16 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking) + jc1) zsin = sin(zfreq) elseif @eqselection == 17 zfreq = @freq*zworking zexp = exp(sqr(zworking) * jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 18 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking)) zsin = sin(zfreq * jc2) elseif @eqselection == 19 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking) * jc1) zsin = sin(zfreq) elseif @eqselection == 20 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking) + jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 21 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking) + jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 22 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking) + jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 23 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking) * jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 24 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking) * jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 25 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking) * jc1) zsin = sin(zfreq * jc2) endif ; @eqselection zcos = cos(zfreq) funcresult = zexp - @amplitude * zsin + @const derivresult = 2 * zworking * zexp - @amplitude * zcos * @freq zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "e^(z^2) - m*sin(nz) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param amplitude caption = "Sine Amplitude" default = (4,0) hint = "This parameter sets the amplitude,'m' of the sine function." endparam param freq caption = "Sine Frequency" default = (4,0) hint = "This parameter sets the frequency,'n' of the sine function." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-genz5Nwt { ; ; Uses Newton's method to find the roots ; of z^5 + az^4 + bz^3 + cz^2 + dz + e = 0. Set the ; bailout value to some large number ; jam 161117 global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; 'Explore Mode' is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex z5 = complex z4 = complex z3 = complex z2 = complex z1 = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 elseif @eqselection == 1 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 elseif @eqselection == 2 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 + jc3 elseif @eqselection == 3 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 elseif @eqselection == 4 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 + jc3 elseif @eqselection == 5 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 + jc3 elseif @eqselection == 6 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 + jc3 elseif @eqselection == 7 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 elseif @eqselection == 8 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 elseif @eqselection == 9 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 * jc3 elseif @eqselection == 10 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 elseif @eqselection == 11 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2)* jc2 z5 = z3 * z2 * jc3 elseif @eqselection == 12 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 * jc3 elseif @eqselection == 13 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 * jc3 elseif @eqselection == 14 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 elseif @eqselection == 15 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 * jc3 elseif @eqselection == 16 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 * jc3 elseif @eqselection == 17 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 elseif @eqselection == 18 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 + jc3 elseif @eqselection == 19 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 + jc3 elseif @eqselection == 20 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 * jc3 elseif @eqselection == 21 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 * jc3 elseif @eqselection == 22 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 + jc3 elseif @eqselection == 23 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 + jc3 elseif @eqselection == 24 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 * jc3 elseif @eqselection == 25 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 + jc3 endif ; @eqselection funcresult = z5 + @coeff4 * z4 + @coeff3 * z3 + @coeff2 * z2 + @coeff1 * z1 + @constant derivresult = 5 * z4 + 4 * @coeff4 * z3 + 3 * @coeff3 * z2 + 2 * @coeff2 * z1 + @coeff1 zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "General Degree 5 Newton" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param coeff4 caption = "Coefficient 4" default = (1,0) hint = "This parameter if the coefficient of the quartic z term." endparam param coeff3 caption = "Coefficient 3" default = (3,0) hint = "This parameter if the coefficient of the cubic z term." endparam param coeff2 caption = "Coefficient 2" default = (3,0) hint = "This parameter if the coefficient of the quadratic z term." endparam param coeff1 caption = "Coefficient 1" default = (-2,0) hint = "This parameter if the coefficient of the linear z term." endparam param constant caption = "Constant Term" default = (-1,0) hint = "This parameter is the constant term in the quadratic equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-genz6Nwt { ; ; Uses Newton's method to find the roots ; of z^6 + az^5 + bz^4 + cz^3 + dz^2 + ez + f = 0. Set the ; bailout value to some large number ; jam 161117 global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; 'Explore Mode' is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex z6 = complex z5 = complex z4 = complex z3 = complex z2 = complex z1 = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 elseif @eqselection == 1 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 elseif @eqselection == 2 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 + jc3 elseif @eqselection == 3 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 elseif @eqselection == 4 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 + jc3 elseif @eqselection == 5 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 + jc3 elseif @eqselection == 6 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 + jc3 elseif @eqselection == 7 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 elseif @eqselection == 8 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 elseif @eqselection == 9 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 * jc3 elseif @eqselection == 10 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 elseif @eqselection == 11 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2)* jc2 z5 = z3 * z2 z6 = z4 * z2 * jc3 elseif @eqselection == 12 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 * jc3 elseif @eqselection == 13 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 * jc3 elseif @eqselection == 14 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 elseif @eqselection == 15 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 * jc3 elseif @eqselection == 16 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 * jc3 elseif @eqselection == 17 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 elseif @eqselection == 18 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 + jc3 elseif @eqselection == 19 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 + jc3 elseif @eqselection == 20 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 * jc3 elseif @eqselection == 21 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 * jc3 elseif @eqselection == 22 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 + jc3 elseif @eqselection == 23 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 + jc3 elseif @eqselection == 24 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 * jc3 elseif @eqselection == 25 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 + jc3 endif ; @eqselection funcresult = z6 + @coeff5 * z5 + @coeff4 * z4 + @coeff3 * z3 + @coeff2 * z2 + \ @coeff1 * z1 + @constant derivresult = 6 * z5 + 5 * @coeff5 * z4 + 4 * @coeff4 * z3 + 3 * @coeff3 * z2 + \ 2 * @coeff2 * z1 + @coeff1 zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "General Degree 6 Newton" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param coeff5 caption = "Coefficient 5" default = (2,0) hint = "This parameter if the coefficient of the quintic z term." endparam param coeff4 caption = "Coefficient 4" default = (-3,0) hint = "This parameter if the coefficient of the quartic z term." endparam param coeff3 caption = "Coefficient 3" default = (3,0) hint = "This parameter if the coefficient of the cubic z term." endparam param coeff2 caption = "Coefficient 2" default = (1,0) hint = "This parameter if the coefficient of the quadratic z term." endparam param coeff1 caption = "Coefficient 1" default = (-2,0) hint = "This parameter if the coefficient of the linear z term." endparam param constant caption = "Constant Term" default = (-1,0) hint = "This parameter is the constant term in the quadratic equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-znvcszNewt { ; jam 161117 ; ; Uses Newton's method to find the roots ; of z^n - vcs(z) + constant = 0 (vercosine function). Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = (0,0) complex zsin = complex zcos = complex zvcs = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking) elseif @eqselection == 1 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 2 znminus = (zworking)^powerminus zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 4 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking) elseif @eqselection == 8 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 9 znminus = (zworking)^powerminus zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 11 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 15 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 18 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) endif ; @eqselection zn = znminus * zworking zvcs = 1 + zcos funcresult = zn - zvcs + @const derivresult = @power * znminus + zsin zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n - vcs(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (4,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-znxvcszNewt { ; jam 161117 ; ; Uses Newton's method to find the roots ; of z^n * vcs(z) + constant = 0 (vercosine function). Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = (0,0) complex zsin = complex zcos = complex zvcs = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking) elseif @eqselection == 1 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 2 znminus = (zworking)^powerminus zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 4 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking) elseif @eqselection == 8 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 9 znminus = (zworking)^powerminus zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 11 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 15 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 18 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) endif ; @eqselection zn = znminus * zworking zvcs = 1 + zcos funcresult = zn * zvcs + @const derivresult = @power * znminus * zvcs - zn * zsin zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n * vcs(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (4,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-genz7Nwt { ; ; Uses Newton's method to find the roots ; of z^7 + az^6 + bz^5 + cz^4 + dz^3 + ez^2 + fz + g = 0. ; Set the bailout value to some large number ; jam 161118 global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; 'Explore Mode' is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex z7 = complex z6 = complex z5 = complex z4 = complex z3 = (0,0) complex z2 = complex z1 = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 elseif @eqselection == 1 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 elseif @eqselection == 2 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 + jc3 elseif @eqselection == 3 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 elseif @eqselection == 4 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 + jc3 elseif @eqselection == 5 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 + jc3 elseif @eqselection == 6 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 + jc3 elseif @eqselection == 7 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 elseif @eqselection == 8 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 elseif @eqselection == 9 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 * jc3 elseif @eqselection == 10 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 elseif @eqselection == 11 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2)* jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 * jc3 elseif @eqselection == 12 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 * jc3 elseif @eqselection == 13 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 * jc3 elseif @eqselection == 14 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 elseif @eqselection == 15 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 * jc3 elseif @eqselection == 16 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 * jc3 elseif @eqselection == 17 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 elseif @eqselection == 18 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 + jc3 elseif @eqselection == 19 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 + jc3 elseif @eqselection == 20 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 * jc3 elseif @eqselection == 21 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 * jc3 elseif @eqselection == 22 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 + jc3 elseif @eqselection == 23 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 + jc3 elseif @eqselection == 24 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 * jc3 elseif @eqselection == 25 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 + jc3 endif ; @eqselection funcresult = z7 + @coeff6 * z6 + @coeff5 * z5 + @coeff4 * z4 + @coeff3 * z3 + \ @coeff2 * z2 + @coeff1 * z1 + @constant derivresult = 7 * z6 + 6 * @coeff6 * z5 + 5 * @coeff5 * z4 + 4 * @coeff4 * z3 + \ 3 * @coeff3 * z2 + 2 * @coeff2 * z1 + @coeff1 zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "General Degree 7 Newton" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param coeff6 caption = "Coefficient 6" default = (1,0) hint = "This parameter if the coefficient of the sextic z term." endparam param coeff5 caption = "Coefficient 5" default = (2,0) hint = "This parameter if the coefficient of the quintic z term." endparam param coeff4 caption = "Coefficient 4" default = (-3,0) hint = "This parameter if the coefficient of the quartic z term." endparam param coeff3 caption = "Coefficient 3" default = (3,0) hint = "This parameter if the coefficient of the cubic z term." endparam param coeff2 caption = "Coefficient 2" default = (1,0) hint = "This parameter if the coefficient of the quadratic z term." endparam param coeff1 caption = "Coefficient 1" default = (-2,0) hint = "This parameter if the coefficient of the linear z term." endparam param constant caption = "Constant Term" default = (-1,0) hint = "This parameter is the constant term in the quadratic equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-zncvczNewt { ; jam 161119 ; ; Uses Newton's method to find the roots ; of z^n - cvc(z) + constant = 0 (covercosine function). Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = (0,0) complex zsin = complex zcos = complex zcvc = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking) elseif @eqselection == 1 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 2 znminus = (zworking)^powerminus zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 4 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking) elseif @eqselection == 8 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 9 znminus = (zworking)^powerminus zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 11 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 15 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 18 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) endif ; @eqselection zn = znminus * zworking zcvc = 1 + zsin funcresult = zn - zcvc + @const derivresult = @power * znminus - zcos zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n - cvc(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (3,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-znxcvczNewt { ; jam 161119 ; ; Uses Newton's method to find the roots ; of z^n * cvc(z) + constant = 0 (covercosine function). Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = (0,0) complex zsin = complex zcos = complex zcvc = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking) elseif @eqselection == 1 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 2 znminus = (zworking)^powerminus zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 4 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking) elseif @eqselection == 8 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 9 znminus = (zworking)^powerminus zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 11 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 15 znminus = (zworking)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 18 znminus = (zworking)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) endif ; @eqselection zn = znminus * zworking zcvc = 1 + zsin funcresult = zn * zcvc + @const derivresult = @power * znminus * zcvc + zn * zcos zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n * cvc(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (3,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-zncrdzNewt { ; jam 161119 ; ; Uses Newton's method to find the roots ; of z^n - crd(z) + constant = 0 (chord function). Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = complex zhalf = (0,0) complex zsin = complex zcos = complex zcrd = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zsin = sin(zworking/2) zcos = cos(zworking/2) elseif @eqselection == 1 znminus = (zworking)^powerminus zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2) elseif @eqselection == 2 znminus = (zworking)^powerminus zsin = sin(zworking/2) zcos = cos(zworking/2 + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2) elseif @eqselection == 4 znminus = (zworking)^powerminus zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2 + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zsin = sin(zworking/2) zcos = cos(zworking/2 + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2 + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zsin = sin(zworking/2) zcos = cos(zworking/2) elseif @eqselection == 8 znminus = (zworking)^powerminus zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2) elseif @eqselection == 9 znminus = (zworking)^powerminus zsin = sin(zworking/2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2) elseif @eqselection == 11 znminus = (zworking)^powerminus zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zsin = sin(zworking/2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2) elseif @eqselection == 15 znminus = (zworking)^powerminus zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zsin = sin(zworking/2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2) elseif @eqselection == 18 znminus = (zworking)^powerminus zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2 + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zsin = sin(zworking/2) zcos = cos(zworking/2 + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2 + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2 + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2 + jc3) endif ; @eqselection zn = znminus * zworking zcrd = 2 * zsin funcresult = zn - zcrd + @const derivresult = @power * znminus - zcos zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n - crd(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (3,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-znxcrdzNewt { ; jam 161119 ; ; Uses Newton's method to find the roots ; of z^n * crd(z) + constant = 0 (chord function). Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zn = complex znminus = complex zhalf = (0,0) complex zsin = complex zcos = complex zcrd = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus = (zworking + jc1)^powerminus zsin = sin(zworking/2) zcos = cos(zworking/2) elseif @eqselection == 1 znminus = (zworking)^powerminus zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2) elseif @eqselection == 2 znminus = (zworking)^powerminus zsin = sin(zworking/2) zcos = cos(zworking/2 + jc3) elseif @eqselection == 3 znminus = (zworking + jc1)^powerminus zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2) elseif @eqselection == 4 znminus = (zworking)^powerminus zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2 + jc3) elseif @eqselection == 5 znminus = (zworking + jc1)^powerminus zsin = sin(zworking/2) zcos = cos(zworking/2 + jc3) elseif @eqselection == 6 znminus = (zworking + jc1)^powerminus zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2 + jc3) elseif @eqselection == 7 znminus = (zworking * jc1)^powerminus zsin = sin(zworking/2) zcos = cos(zworking/2) elseif @eqselection == 8 znminus = (zworking)^powerminus zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2) elseif @eqselection == 9 znminus = (zworking)^powerminus zsin = sin(zworking/2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 10 znminus = (zworking * jc1)^powerminus zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2) elseif @eqselection == 11 znminus = (zworking)^powerminus zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 12 znminus = (zworking * jc1)^powerminus zsin = sin(zworking/2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 13 znminus = (zworking * jc1)^powerminus zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 14 znminus = (zworking + jc1)^powerminus zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2) elseif @eqselection == 15 znminus = (zworking)^powerminus zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 16 znminus = (zworking + jc1)^powerminus zsin = sin(zworking/2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 17 znminus = (zworking * jc1)^powerminus zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2) elseif @eqselection == 18 znminus = (zworking)^powerminus zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2 + jc3) elseif @eqselection == 19 znminus = (zworking * jc1)^powerminus zsin = sin(zworking/2) zcos = cos(zworking/2 + jc3) elseif @eqselection == 20 znminus = (zworking + jc1)^powerminus zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 21 znminus = (zworking + jc1)^powerminus zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 22 znminus = (zworking + jc1)^powerminus zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2 + jc3) elseif @eqselection == 23 znminus = (zworking * jc1)^powerminus zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2 + jc3) elseif @eqselection == 24 znminus = (zworking * jc1)^powerminus zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 25 znminus = (zworking * jc1)^powerminus zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2 + jc3) endif ; @eqselection zn = znminus * zworking zcrd = 2 * zsin funcresult = zn * zcrd + @const derivresult = @power * znminus * zcrd + zn * zcos zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n * crd(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (3,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-eztanzNwt { ; ; Uses Newton's method to find the roots ; of exp(z)- tan(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zexp = complex ztan = complex ztan2 = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 zexp = exp(zworking + jc1) ztan = tan(zworking) ztan2 = sqr(ztan) elseif @eqselection == 1 zexp = exp(zworking) ztan = tan(zworking) ztan2 = sqr(ztan + jc2) elseif @eqselection == 2 zexp = exp(zworking) ztan = tan(zworking + jc3) ztan2 = sqr(ztan) elseif @eqselection == 3 zexp = exp(zworking + jc1) ztan = tan(zworking) ztan2 = sqr(ztan + jc2) elseif @eqselection == 4 zexp = exp(zworking) ztan = tan(zworking + jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 5 zexp = exp(zworking + jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan) elseif @eqselection == 6 zexp = exp(zworking + jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 7 zexp = exp(zworking * jc1) ztan = tan(zworking) ztan2 = sqr(ztan) elseif @eqselection == 8 zexp = exp(zworking) ztan = tan(zworking) ztan2 = sqr(ztan * jc2) elseif @eqselection == 9 zexp = exp(zworking) ztan = tan(zworking * jc3) ztan2 = sqr(ztan) elseif @eqselection == 10 zexp = exp(zworking * jc1) ztan = tan(zworking) ztan2 = sqr(ztan * jc2) elseif @eqselection == 11 zexp = exp(zworking) ztan = tan(zworking * jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 12 zexp = exp(zworking * jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan) elseif @eqselection == 13 zexp = exp(zworking * jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 14 zexp = exp(zworking + jc1) ztan = tan(zworking) ztan2 = sqr(ztan * jc2) elseif @eqselection == 15 zexp = exp(zworking) ztan = tan(zworking * jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 16 zexp = exp(zworking + jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan) elseif @eqselection == 17 zexp = exp(zworking * jc1) ztan = tan(zworking) ztan2 = sqr(ztan + jc2) elseif @eqselection == 18 zexp = exp(zworking) ztan = tan(zworking + jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 19 zexp = exp(zworking * jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan) elseif @eqselection == 20 zexp = exp(zworking + jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 21 zexp = exp(zworking + jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 22 zexp = exp(zworking + jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 23 zexp = exp(zworking * jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 24 zexp = exp(zworking * jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 25 zexp = exp(zworking * jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan * jc2) endif ; @eqselection funcresult = zexp - ztan + @const derivresult = zexp - ztan2 - 1 zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "e^z - tan(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-e-ztanzNwt { ; ; Uses Newton's method to find the roots ; of exp(-z)- tan(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex zneg = -1 * zworking complex funcresult = complex derivresult = (0,0) complex zexp = complex ztan = complex ztan2 = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 zexp = exp(zneg + jc1) ztan = tan(zworking) ztan2 = sqr(ztan) elseif @eqselection == 1 zexp = exp(zneg) ztan = tan(zworking) ztan2 = sqr(ztan + jc2) elseif @eqselection == 2 zexp = exp(zneg) ztan = tan(zworking + jc3) ztan2 = sqr(ztan) elseif @eqselection == 3 zexp = exp(zneg + jc1) ztan = tan(zworking) ztan2 = sqr(ztan + jc2) elseif @eqselection == 4 zexp = exp(zneg) ztan = tan(zworking + jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 5 zexp = exp(zneg + jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan) elseif @eqselection == 6 zexp = exp(zneg + jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 7 zexp = exp(zneg * jc1) ztan = tan(zworking) ztan2 = sqr(ztan) elseif @eqselection == 8 zexp = exp(zneg) ztan = tan(zworking) ztan2 = sqr(ztan * jc2) elseif @eqselection == 9 zexp = exp(zneg) ztan = tan(zworking * jc3) ztan2 = sqr(ztan) elseif @eqselection == 10 zexp = exp(zneg * jc1) ztan = tan(zworking) ztan2 = sqr(ztan * jc2) elseif @eqselection == 11 zexp = exp(zneg) ztan = tan(zworking * jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 12 zexp = exp(zneg * jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan) elseif @eqselection == 13 zexp = exp(zneg * jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 14 zexp = exp(zneg + jc1) ztan = tan(zworking) ztan2 = sqr(ztan * jc2) elseif @eqselection == 15 zexp = exp(zneg) ztan = tan(zworking * jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 16 zexp = exp(zneg + jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan) elseif @eqselection == 17 zexp = exp(zneg * jc1) ztan = tan(zworking) ztan2 = sqr(ztan + jc2) elseif @eqselection == 18 zexp = exp(zneg) ztan = tan(zworking + jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 19 zexp = exp(zneg * jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan) elseif @eqselection == 20 zexp = exp(zneg + jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 21 zexp = exp(zneg + jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 22 zexp = exp(zneg + jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 23 zexp = exp(zneg * jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 24 zexp = exp(zneg * jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 25 zexp = exp(zneg * jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan * jc2) endif ; @eqselection funcresult = zexp - ztan + @const derivresult = -zexp - ztan2 - 1 zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "e^(-z) - tan(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-tansinNwt { ; ; Uses Newton's method to find the roots ; of tan(z)- m * sin(nz) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex ztan = complex ztan2 = complex zsin = complex zcos = (0,0) complex zfreq = complex zamp = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 zfreq = @freq*zworking ztan = tan(zworking + jc1) zsin = sin(zfreq) elseif @eqselection == 1 zfreq = @freq*zworking ztan = tan(zworking) zsin = sin(zfreq + jc2) elseif @eqselection == 2 zfreq = @freq*zworking + jc3 ztan = tan(zworking) zsin = sin(zfreq) elseif @eqselection == 3 zfreq = @freq*zworking ztan = tan(zworking + jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 4 zfreq = @freq*zworking + jc3 ztan = tan(zworking) zsin = sin(zfreq + jc2) elseif @eqselection == 5 zfreq = @freq*zworking + jc3 ztan = tan(zworking + jc1) zsin = sin(zfreq) elseif @eqselection == 6 zfreq = @freq*zworking + jc3 ztan = tan(zworking + jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 7 zfreq = @freq*zworking ztan = tan(zworking * jc1) zsin = sin(zfreq) elseif @eqselection == 8 zfreq = @freq*zworking ztan = tan(zworking) zsin = sin(zfreq * jc2) elseif @eqselection == 9 zfreq = @freq*zworking * jc3 ztan = tan(zworking) zsin = sin(zfreq) elseif @eqselection == 10 zfreq = @freq*zworking ztan = tan(zworking * jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 11 zfreq = @freq*zworking * jc3 ztan = tan(zworking) zsin = sin(zfreq * jc2) elseif @eqselection == 12 zfreq = @freq*zworking * jc3 ztan = tan(zworking * jc1) zsin = sin(zfreq) elseif @eqselection == 13 zfreq = @freq*zworking * jc3 ztan = tan(zworking * jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 14 zfreq = @freq*zworking ztan = tan(zworking + jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 15 zfreq = @freq*zworking * jc3 ztan = tan(zworking) zsin = sin(zfreq + jc2) elseif @eqselection == 16 zfreq = @freq*zworking * jc3 ztan = tan(zworking + jc1) zsin = sin(zfreq) elseif @eqselection == 17 zfreq = @freq*zworking ztan = tan(zworking * jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 18 zfreq = @freq*zworking + jc3 ztan = tan(zworking) zsin = sin(zfreq * jc2) elseif @eqselection == 19 zfreq = @freq*zworking + jc3 ztan = tan(zworking * jc1) zsin = sin(zfreq) elseif @eqselection == 20 zfreq = @freq*zworking * jc3 ztan = tan(zworking + jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 21 zfreq = @freq*zworking * jc3 ztan = tan(zworking + jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 22 zfreq = @freq*zworking + jc3 ztan = tan(zworking + jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 23 zfreq = @freq*zworking + jc3 ztan = tan(zworking * jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 24 zfreq = @freq*zworking * jc3 ztan = tan(zworking * jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 25 zfreq = @freq*zworking + jc3 ztan = tan(zworking * jc1) zsin = sin(zfreq * jc2) endif ; @eqselection zcos = cos(zfreq) ztan2 = sqr(ztan) funcresult = ztan - @amplitude * zsin + @const derivresult = 1 + ztan2 - @amplitude * zcos * @freq zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "tan(z) - m*sin(nz) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param amplitude caption = "Sine Amplitude" default = (4,0) hint = "This parameter sets the amplitude,'m' of the sine function." endparam param freq caption = "Sine Frequency" default = (4,0) hint = "This parameter sets the frequency,'n' of the sine function." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-tancosNwt { ; ; Uses Newton's method to find the roots ; of tan(z)- m * cos(nz) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex ztan = complex ztan2 = complex zsin = complex zcos = (0,0) complex zfreq = complex zamp = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 zfreq = @freq*zworking ztan = tan(zworking + jc1) zcos = cos(zfreq) elseif @eqselection == 1 zfreq = @freq*zworking ztan = tan(zworking) zcos = cos(zfreq + jc2) elseif @eqselection == 2 zfreq = @freq*zworking + jc3 ztan = tan(zworking) zcos = cos(zfreq) elseif @eqselection == 3 zfreq = @freq*zworking ztan = tan(zworking + jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 4 zfreq = @freq*zworking + jc3 ztan = tan(zworking) zcos = cos(zfreq + jc2) elseif @eqselection == 5 zfreq = @freq*zworking + jc3 ztan = tan(zworking + jc1) zcos = cos(zfreq) elseif @eqselection == 6 zfreq = @freq*zworking + jc3 ztan = tan(zworking + jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 7 zfreq = @freq*zworking ztan = tan(zworking * jc1) zcos = cos(zfreq) elseif @eqselection == 8 zfreq = @freq*zworking ztan = tan(zworking) zcos = cos(zfreq * jc2) elseif @eqselection == 9 zfreq = @freq*zworking * jc3 ztan = tan(zworking) zcos = cos(zfreq) elseif @eqselection == 10 zfreq = @freq*zworking ztan = tan(zworking * jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 11 zfreq = @freq*zworking * jc3 ztan = tan(zworking) zcos = cos(zfreq * jc2) elseif @eqselection == 12 zfreq = @freq*zworking * jc3 ztan = tan(zworking * jc1) zcos = cos(zfreq) elseif @eqselection == 13 zfreq = @freq*zworking * jc3 ztan = tan(zworking * jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 14 zfreq = @freq*zworking ztan = tan(zworking + jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 15 zfreq = @freq*zworking * jc3 ztan = tan(zworking) zcos = cos(zfreq + jc2) elseif @eqselection == 16 zfreq = @freq*zworking * jc3 ztan = tan(zworking + jc1) zcos = cos(zfreq) elseif @eqselection == 17 zfreq = @freq*zworking ztan = tan(zworking * jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 18 zfreq = @freq*zworking + jc3 ztan = tan(zworking) zcos = cos(zfreq * jc2) elseif @eqselection == 19 zfreq = @freq*zworking + jc3 ztan = tan(zworking * jc1) zcos = cos(zfreq) elseif @eqselection == 20 zfreq = @freq*zworking * jc3 ztan = tan(zworking + jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 21 zfreq = @freq*zworking * jc3 ztan = tan(zworking + jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 22 zfreq = @freq*zworking + jc3 ztan = tan(zworking + jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 23 zfreq = @freq*zworking + jc3 ztan = tan(zworking * jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 24 zfreq = @freq*zworking * jc3 ztan = tan(zworking * jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 25 zfreq = @freq*zworking + jc3 ztan = tan(zworking * jc1) zcos = cos(zfreq * jc2) endif ; @eqselection zsin = sin(zfreq) ztan2 = sqr(ztan) funcresult = ztan - @amplitude * zcos + @const derivresult = 1 + ztan2 + @amplitude * zsin * @freq zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "tan(z) - m*cos(nz) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param amplitude caption = "Cosine Amplitude" default = (4,0) hint = "This parameter sets the amplitude,'m' of the cosine function." endparam param freq caption = "Cosine Frequency" default = (4,0) hint = "This parameter sets the frequency,'n' of the cosine function." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-genz8Nwt { ; ; Uses Newton's method to find the roots ; of z^8 + az^7 + bz^6 + cz^5 + dz^4 + ez^3 + fz^2 + gz + h = 0. ; Set the bailout value to some large number ; jam 161121 global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; 'Explore Mode' is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex z8 = complex z7 = complex z6 = complex z5 = complex z4 = (0,0) complex z3 = complex z2 = complex z1 = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) elseif @eqselection == 1 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) elseif @eqselection == 2 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 elseif @eqselection == 3 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) elseif @eqselection == 4 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 elseif @eqselection == 5 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 elseif @eqselection == 6 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 elseif @eqselection == 7 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) elseif @eqselection == 8 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) elseif @eqselection == 9 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 10 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) elseif @eqselection == 11 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2)* jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 12 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 13 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 14 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) elseif @eqselection == 15 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 16 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 17 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) elseif @eqselection == 18 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 elseif @eqselection == 19 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 elseif @eqselection == 20 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 21 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 22 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 elseif @eqselection == 23 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 elseif @eqselection == 24 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 25 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 endif ; @eqselection funcresult = z8 + @coeff7 * z7 + @coeff6 * z6 + @coeff5 * z5 + @coeff4 * z4 + \ @coeff3 * z3 + @coeff2 * z2 + @coeff1 * z1 + @constant derivresult = 8 * z7 + 7 * @coeff7 * z6 + 6 * @coeff6 * z5 + 5 * @coeff5 * z4 + 4 * @coeff4 * z3 + \ 3 * @coeff3 * z2 + 2 * @coeff2 * z1 + @coeff1 zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "General Degree 8 Newton" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param coeff7 caption = "Coefficient 7" default = (1,0) hint = "This parameter if the coefficient of the degree 7 z term." endparam param coeff6 caption = "Coefficient 6" default = (1,0) hint = "This parameter if the coefficient of the sextic z term." endparam param coeff5 caption = "Coefficient 5" default = (2,0) hint = "This parameter if the coefficient of the quintic z term." endparam param coeff4 caption = "Coefficient 4" default = (-3,0) hint = "This parameter if the coefficient of the quartic z term." endparam param coeff3 caption = "Coefficient 3" default = (3,0) hint = "This parameter if the coefficient of the cubic z term." endparam param coeff2 caption = "Coefficient 2" default = (1,0) hint = "This parameter if the coefficient of the quadratic z term." endparam param coeff1 caption = "Coefficient 1" default = (-2,0) hint = "This parameter if the coefficient of the linear z term." endparam param constant caption = "Constant Term" default = (-1,0) hint = "This parameter is the constant term in the quadratic equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-genz8Hal { ; ; Uses Householder's, Halley's, or Newton's method to find the roots ; of az^8 + bz^7 + cz^6 + dz^5 + ez^4 + fz^3 + gz^2 + hz + i = 0. ; Set the bailout value to some large number ; jam 161211 global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex const2 = 2 * @coeff2 complex const3 = 6 * @coeff3 complex const4 = 24 * @coeff4 ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; 'Explore Mode' is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex z8 = complex z7 = complex z6 = complex z5 = complex z4 = (0,0) complex z3 = complex z2 = complex z1 = (0,0) ; powers of the current z complex funcresult = (0,0) ; result of function evaluation with current z complex derivresult = (0,0) ; evaluation of derivative function with current z complex deriv2result = (0,0) ; evaluation of 2nd derivative complex deriv3result = (0,0) ; evaluation of 3rd derivative complex deriv4result = (0,0) ; evaluation of 4th derivative complex numerator = complex denominator = (0,0) ; for clarity in higher order methods complex zquotient = (0,0) ; = numerator/denominator complex f0f2 = (0,0) ; function result * 2nd derivative, saves a multiplication step ; each iteration complex funcresult2 = (0,0) ; square of funcresult, storing it saves steps each iter complex derivresult2 = (0,0) ; square of derivresult complex derivresult3 = (0,0) ; cube of derivresult complex f0f1f2 = (0,0) ; function * derivative * 2nd derivative complex f02f3 = (0,0) ; function squared * 3rd derivative loop: if @eqselection == 0 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) elseif @eqselection == 1 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) elseif @eqselection == 2 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 elseif @eqselection == 3 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) elseif @eqselection == 4 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 elseif @eqselection == 5 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 elseif @eqselection == 6 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 elseif @eqselection == 7 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) elseif @eqselection == 8 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) elseif @eqselection == 9 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 10 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) elseif @eqselection == 11 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2)* jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 12 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 13 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 14 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) elseif @eqselection == 15 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 16 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 17 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) elseif @eqselection == 18 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 elseif @eqselection == 19 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 elseif @eqselection == 20 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 21 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 22 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 elseif @eqselection == 23 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 elseif @eqselection == 24 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 25 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 endif ; @eqselection funcresult = @coeff8 * z8 + @coeff7 * z7 + @coeff6 * z6 + @coeff5 * z5 + @coeff4 * z4 + \ @coeff3 * z3 + @coeff2 * z2 + @coeff1 * z1 + @constant derivresult = 8 * @coeff8 * z7 + 7 * @coeff7 * z6 + 6 * @coeff6 * z5 + 5 * @coeff5 * z4 + 4 * @coeff4 * z3 + \ 3 * @coeff3 * z2 + const2 * z1 + @coeff1 if @method == "Newton" zquotient = -funcresult/derivresult elseif @method == "Halley" deriv2result = 56 * @coeff8 * z6 + 42 * @coeff7 * z5 + 30 * @coeff6 * z4 + 20 * @coeff5 * z3 + \ 12 * @coeff4 * z2 + const3 * z1 + const2 zquotient = funcresult * derivresult / (0.5 * funcresult * deriv2result - sqr(derivresult)) elseif @method == "Order 3 Householder" deriv2result = 56 * @coeff8 * z6 + 42 * @coeff7 * z5 + 30 * @coeff6 * z4 + 20 * @coeff5 * z3 + \ 12 * @coeff4 * z2 + const3 * z1 + const2 deriv3result = 336 * @coeff8 * z5 + 210 * @coeff7 * z4 + 120 * @coeff6 * z3 + 60 * @coeff5 * z2 + \ const4 * z1 + const3 f0f2 = funcresult * deriv2result zquotient = 3 * funcresult * (-2 * derivresult2 + f0f2) / (6 * derivresult3 - \ 6 * f0f2 * derivresult + sqr(funcresult) * deriv3result) elseif @method == "Order 4 Householder" deriv2result = 56 * @coeff8 * z6 + 42 * @coeff7 * z5 + 30 * @coeff6 * z4 + 20 * @coeff5 * z3 + \ 12 * @coeff4 * z2 + const3 * z1 + const2 deriv3result = 336 * @coeff8 * z5 + 210 * @coeff7 * z4 + 120 * @coeff6 * z3 + 60 * @coeff5 * z2 + \ const4 * z1 + const3 deriv4result = 1680 * @coeff8 * z4 + 840 * @coeff7 * z3 + 360 * @coeff6 * z2 + 120 * @coeff5 * z1 \ + const4 funcresult2 = sqr(funcresult) derivresult2 = sqr(derivresult) derivresult3 = derivresult2 * derivresult f02f3 = funcresult2 * deriv3result f0f1f2 = funcresult * derivresult * deriv2result numerator = 4 * funcresult * (6 * derivresult3 - 6 * f0f1f2 + f02f3) denominator = derivresult * (-24 * derivresult3 + 36 * f0f1f2 - 8 * f02f3) + \ funcresult2 * (-6 * sqr(deriv2result) + funcresult * deriv4result) zquotient = numerator/denominator endif ; @method zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "GenDegree 8 (Comparison)" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param method caption = "Solving Method" enum = "Newton" "Halley" "Order 3 Householder" "Order 4 Householder" default = 1 hint = "This parameter chooses between the various root-finding methods." endparam param coeff8 caption = "Coefficient 8" default = (1,0) hint = "This parameter if the coefficient of the degree 8 z term." endparam param coeff7 caption = "Coefficient 7" default = (1,0) hint = "This parameter if the coefficient of the degree 7 z term." endparam param coeff6 caption = "Coefficient 6" default = (1,0) hint = "This parameter if the coefficient of the sextic z term." endparam param coeff5 caption = "Coefficient 5" default = (2,0) hint = "This parameter if the coefficient of the quintic z term." endparam param coeff4 caption = "Coefficient 4" default = (-3,0) hint = "This parameter if the coefficient of the quartic z term." endparam param coeff3 caption = "Coefficient 3" default = (3,0) hint = "This parameter if the coefficient of the cubic z term." endparam param coeff2 caption = "Coefficient 2" default = (1,0) hint = "This parameter if the coefficient of the quadratic z term." endparam param coeff1 caption = "Coefficient 1" default = (-2,0) hint = "This parameter if the coefficient of the linear z term." endparam param constant caption = "Constant Term" default = (-1,0) hint = "This parameter is the constant term in the quadratic equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-explogHalley { ; ; Uses Halley's method to find the roots ; of exp(z)-log(z) + constant = 0. Set the ; bailout value to some large number. ; jam 161121 ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = deriv2result = (0,0) complex zexp = complex zlog = complex zrecip = complex z2recip = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 zexp = exp(zworking + jc1) zlog = log(zworking) zrecip = 1/zworking elseif @eqselection == 1 zexp = exp(zworking) zlog = log(zworking + jc2) zrecip = 1/zworking elseif @eqselection == 2 zexp = exp(zworking) zlog = log(zworking) zrecip = 1/(zworking + jc3) elseif @eqselection == 3 zexp = exp(zworking + jc1) zlog = log(zworking + jc2) zrecip = 1/zworking elseif @eqselection == 4 zexp = exp(zworking) zlog = log(zworking + jc2) zrecip = 1/(zworking + jc3) elseif @eqselection == 5 zexp = exp(zworking + jc1) zlog = log(zworking) zrecip = 1/(zworking + jc3) elseif @eqselection == 6 zexp = exp(zworking + jc1) zlog = log(zworking + jc2) zrecip = 1/(zworking + jc3) elseif @eqselection == 7 zexp = exp(zworking * jc1) zlog = log(zworking) zrecip = 1/zworking elseif @eqselection == 8 zexp = exp(zworking) zlog = log(zworking * jc2) zrecip = 1/zworking elseif @eqselection == 9 zexp = exp(zworking) zlog = log(zworking) zrecip = 1/(zworking * jc3) elseif @eqselection == 10 zexp = exp(zworking * jc1) zlog = log(zworking * jc2) zrecip = 1/zworking elseif @eqselection == 11 zexp = exp(zworking) zlog = log(zworking * jc2) zrecip = 1/(zworking * jc3) elseif @eqselection == 12 zexp = exp(zworking * jc1) zlog = log(zworking) zrecip = 1/(zworking * jc3) elseif @eqselection == 13 zexp = exp(zworking * jc1) zlog = log(zworking * jc2) zrecip = 1/(zworking * jc3) elseif @eqselection == 14 zexp = exp(zworking + jc1) zlog = log(zworking * jc2) zrecip = 1/zworking elseif @eqselection == 15 zexp = exp(zworking) zlog = log(zworking + jc2) zrecip = 1/(zworking * jc3) elseif @eqselection == 16 zexp = exp(zworking + jc1) zlog = log(zworking) zrecip = 1/(zworking * jc3) elseif @eqselection == 17 zexp = exp(zworking * jc1) zlog = log(zworking + jc2) zrecip = 1/zworking elseif @eqselection == 18 zexp = exp(zworking) zlog = log(zworking * jc2) zrecip = 1/(zworking + jc3) elseif @eqselection == 19 zexp = exp(zworking * jc1) zlog = log(zworking) zrecip = 1/(zworking + jc3) elseif @eqselection == 20 zexp = exp(zworking + jc1) zlog = log(zworking * jc2) zrecip = 1/(zworking * jc3) elseif @eqselection == 21 zexp = exp(zworking + jc1) zlog = log(zworking + jc2) zrecip = 1/(zworking * jc3) elseif @eqselection == 22 zexp = exp(zworking + jc1) zlog = log(zworking * jc2) zrecip = 1/(zworking + jc3) elseif @eqselection == 23 zexp = exp(zworking * jc1) zlog = log(zworking + jc2) zrecip = 1/(zworking + jc3) elseif @eqselection == 24 zexp = exp(zworking * jc1) zlog = log(zworking + jc2) zrecip = 1/(zworking * jc3) elseif @eqselection == 25 zexp = exp(zworking * jc1) zlog = log(zworking * jc2) zrecip = 1/(zworking + jc3) endif ; @eqselection z2recip = sqr(zrecip) funcresult = zexp - zlog + @const derivresult = zexp - zrecip deriv2result = zexp + z2recip zquotient = (funcresult * derivresult) / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "e^z - log(z) + c Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-genz4Halley { ; ; Uses Halley's method to find the roots ; of z^4 + az^3 + bz^2 + cz + d = 0. Set the ; bailout value to some large number ; jam 161121 global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex const2 = 2.0 * @coeff2 ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; 'Explore Mode' is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex z4 = complex z3 = complex z2 = complex z1 = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 z1 = zworking + jc1 z2 = sqr(z1) z4 = sqr(z2) z3 = z2 * z1 elseif @eqselection == 1 z1 = zworking z2 = sqr(z1) z4 = sqr(z2) + jc2 z3 = z2 * z1 elseif @eqselection == 2 z1 = zworking z2 = sqr(z1) z4 = sqr(z2) z3 = z2 * z1 + jc3 elseif @eqselection == 3 z1 = zworking + jc1 z2 = sqr(z1) z4 = sqr(z2) + jc2 z3 = z2 * z1 elseif @eqselection == 4 z1 = zworking z2 = sqr(z1) z4 = sqr(z2) + jc2 z3 = z2 * z1 + jc3 elseif @eqselection == 5 z1 = zworking + jc1 z2 = sqr(z1) z4 = sqr(z2) z3 = z2 * z1 + jc3 elseif @eqselection == 6 z1 = zworking + jc1 z2 = sqr(z1) z4 = sqr(z2) + jc2 z3 = z2 * z1 + jc3 elseif @eqselection == 7 z1 = zworking * jc1 z2 = sqr(z1) z4 = sqr(z2) z3 = z2 * z1 elseif @eqselection == 8 z1 = zworking z2 = sqr(z1) z4 = sqr(z2) * jc2 z3 = z2 * z1 elseif @eqselection == 9 z1 = zworking z2 = sqr(z1) z4 = sqr(z2) z3 = z2 * z1 * jc3 elseif @eqselection == 10 z1 = zworking * jc1 z2 = sqr(z1) z4 = sqr(z2) * jc2 z3 = z2 * z1 elseif @eqselection == 11 z1 = zworking z2 = sqr(z1) z4 = sqr(z2)* jc2 z3 = z2 * z1 * jc3 elseif @eqselection == 12 z1 = zworking * jc1 z2 = sqr(z1) z4 = sqr(z2) z3 = z2 * z1 * jc3 elseif @eqselection == 13 z1 = zworking * jc1 z2 = sqr(z1) z4 = sqr(z2) * jc2 z3 = z2 * z1 * jc3 elseif @eqselection == 14 z1 = zworking + jc1 z2 = sqr(z1) z4 = sqr(z2) * jc2 z3 = z2 * z1 elseif @eqselection == 15 z1 = zworking z2 = sqr(z1) z4 = sqr(z2) + jc2 z3 = z2 * z1 * jc3 elseif @eqselection == 16 z1 = zworking + jc1 z2 = sqr(z1) z4 = sqr(z2) z3 = z2 * z1 * jc3 elseif @eqselection == 17 z1 = zworking * jc1 z2 = sqr(z1) z4 = sqr(z2) + jc2 z3 = z2 * z1 elseif @eqselection == 18 z1 = zworking z2 = sqr(z1) z4 = sqr(z2) * jc2 z3 = z2 * z1 + jc3 elseif @eqselection == 19 z1 = zworking * jc1 z2 = sqr(z1) z4 = sqr(z2) z3 = z2 * z1 + jc3 elseif @eqselection == 20 z1 = zworking + jc1 z2 = sqr(z1) z4 = sqr(z2) * jc2 z3 = z2 * z1 * jc3 elseif @eqselection == 21 z1 = zworking + jc1 z2 = sqr(z1) z4 = sqr(z2) + jc2 z3 = z2 * z1 * jc3 elseif @eqselection == 22 z1 = zworking + jc1 z2 = sqr(z1) z4 = sqr(z2) * jc2 z3 = z2 * z1 + jc3 elseif @eqselection == 23 z1 = zworking * jc1 z2 = sqr(z1) z4 = sqr(z2) + jc2 z3 = z2 * z1 + jc3 elseif @eqselection == 24 z1 = zworking * jc1 z2 = sqr(z1) z4 = sqr(z2) + jc2 z3 = z2 * z1 * jc3 elseif @eqselection == 25 z1 = zworking * jc1 z2 = sqr(z1) z4 = sqr(z2) * jc2 z3 = z2 * z1 + jc3 endif ; @eqselection funcresult = z4 + @coeff3 * z3 + @coeff2 * z2 + @coeff1 * z1 + @constant derivresult = 4 * z3 + 3 * @coeff3 * z2 + const2 * z1 + @coeff1 deriv2result = 12 * z2 + 6 * @coeff3 * z1 + const2 zquotient = (funcresult * derivresult) / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "General Degree 4 Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param coeff3 caption = "Coefficient 3" default = (3,0) hint = "This parameter if the coefficient of the cubic z term." endparam param coeff2 caption = "Coefficient 2" default = (3,0) hint = "This parameter if the coefficient of the quadratic z term." endparam param coeff1 caption = "Coefficient 1" default = (-2,0) hint = "This parameter if the coefficient of the linear z term." endparam param constant caption = "Constant Term" default = (-1,0) hint = "This parameter is the constant term in the quadratic equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-znsinzHalley { ; jam 161121 ; ; Uses Halley's method to find the roots ; of z^n - sin(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) complex powerminus2 = powerminus - (1,0) complex powercoeff = @power * powerminus ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex zn = complex znminus = complex znminus2 = (0,0) complex zcos = complex zsin = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking) zsin = sin(zworking) elseif @eqselection == 1 znminus2 = (zworking)^powerminus2 zcos = cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 2 znminus2 = (zworking)^powerminus2 zcos = cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 3 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 4 znminus2 = (zworking)^powerminus2 zcos = cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 5 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 6 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 7 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking) zsin = sin(zworking) elseif @eqselection == 8 znminus2 = (zworking)^powerminus2 zcos = cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 9 znminus2 = (zworking)^powerminus2 zcos = cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 10 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 11 znminus2 = (zworking)^powerminus2 zcos = cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 12 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 13 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 14 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 15 znminus2 = (zworking)^powerminus2 zcos = cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 16 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 17 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 18 znminus2 = (zworking)^powerminus2 zcos = cos(zworking * jc2) zsin = sin(zworking + jc3) elseif @eqselection == 19 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 20 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 21 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 22 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking * jc2) zsin = sin(zworking + jc3) elseif @eqselection == 23 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 24 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 25 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking * jc2) zsin = sin(zworking + jc3) endif ; @eqselection znminus = znminus2 * zworking zn = znminus * zworking funcresult = zn - zsin + @const derivresult = @power * znminus - zcos deriv2result = powercoeff * znminus2 + zsin zquotient = (funcresult * derivresult) / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n - sin(z) + c Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (4,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-eztanzHalley { ; ; Uses Halley's method to find the roots ; of exp(z)- tan(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex zexp = complex ztan = complex ztan2 = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 zexp = exp(zworking + jc1) ztan = tan(zworking) ztan2 = sqr(ztan) elseif @eqselection == 1 zexp = exp(zworking) ztan = tan(zworking) ztan2 = sqr(ztan + jc2) elseif @eqselection == 2 zexp = exp(zworking) ztan = tan(zworking + jc3) ztan2 = sqr(ztan) elseif @eqselection == 3 zexp = exp(zworking + jc1) ztan = tan(zworking) ztan2 = sqr(ztan + jc2) elseif @eqselection == 4 zexp = exp(zworking) ztan = tan(zworking + jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 5 zexp = exp(zworking + jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan) elseif @eqselection == 6 zexp = exp(zworking + jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 7 zexp = exp(zworking * jc1) ztan = tan(zworking) ztan2 = sqr(ztan) elseif @eqselection == 8 zexp = exp(zworking) ztan = tan(zworking) ztan2 = sqr(ztan * jc2) elseif @eqselection == 9 zexp = exp(zworking) ztan = tan(zworking * jc3) ztan2 = sqr(ztan) elseif @eqselection == 10 zexp = exp(zworking * jc1) ztan = tan(zworking) ztan2 = sqr(ztan * jc2) elseif @eqselection == 11 zexp = exp(zworking) ztan = tan(zworking * jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 12 zexp = exp(zworking * jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan) elseif @eqselection == 13 zexp = exp(zworking * jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 14 zexp = exp(zworking + jc1) ztan = tan(zworking) ztan2 = sqr(ztan * jc2) elseif @eqselection == 15 zexp = exp(zworking) ztan = tan(zworking * jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 16 zexp = exp(zworking + jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan) elseif @eqselection == 17 zexp = exp(zworking * jc1) ztan = tan(zworking) ztan2 = sqr(ztan + jc2) elseif @eqselection == 18 zexp = exp(zworking) ztan = tan(zworking + jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 19 zexp = exp(zworking * jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan) elseif @eqselection == 20 zexp = exp(zworking + jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 21 zexp = exp(zworking + jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 22 zexp = exp(zworking + jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 23 zexp = exp(zworking * jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 24 zexp = exp(zworking * jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 25 zexp = exp(zworking * jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan * jc2) endif ; @eqselection funcresult = zexp - ztan + @const derivresult = zexp - ztan2 - 1 deriv2result = zexp - 2 * ztan * (ztan2 + 1) zquotient = funcresult * derivresult / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "e^z - tan(z) + c Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-e-ztanzHalley { ; ; Uses Halley's method to find the roots ; of exp(-z)- tan(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex zneg = -1 * zworking complex funcresult = complex derivresult = complex deriv2result = (0,0) complex zexp = complex ztan = complex ztan2 = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 zexp = exp(zneg + jc1) ztan = tan(zworking) ztan2 = sqr(ztan) elseif @eqselection == 1 zexp = exp(zneg) ztan = tan(zworking) ztan2 = sqr(ztan + jc2) elseif @eqselection == 2 zexp = exp(zneg) ztan = tan(zworking + jc3) ztan2 = sqr(ztan) elseif @eqselection == 3 zexp = exp(zneg + jc1) ztan = tan(zworking) ztan2 = sqr(ztan + jc2) elseif @eqselection == 4 zexp = exp(zneg) ztan = tan(zworking + jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 5 zexp = exp(zneg + jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan) elseif @eqselection == 6 zexp = exp(zneg + jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 7 zexp = exp(zneg * jc1) ztan = tan(zworking) ztan2 = sqr(ztan) elseif @eqselection == 8 zexp = exp(zneg) ztan = tan(zworking) ztan2 = sqr(ztan * jc2) elseif @eqselection == 9 zexp = exp(zneg) ztan = tan(zworking * jc3) ztan2 = sqr(ztan) elseif @eqselection == 10 zexp = exp(zneg * jc1) ztan = tan(zworking) ztan2 = sqr(ztan * jc2) elseif @eqselection == 11 zexp = exp(zneg) ztan = tan(zworking * jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 12 zexp = exp(zneg * jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan) elseif @eqselection == 13 zexp = exp(zneg * jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 14 zexp = exp(zneg + jc1) ztan = tan(zworking) ztan2 = sqr(ztan * jc2) elseif @eqselection == 15 zexp = exp(zneg) ztan = tan(zworking * jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 16 zexp = exp(zneg + jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan) elseif @eqselection == 17 zexp = exp(zneg * jc1) ztan = tan(zworking) ztan2 = sqr(ztan + jc2) elseif @eqselection == 18 zexp = exp(zneg) ztan = tan(zworking + jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 19 zexp = exp(zneg * jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan) elseif @eqselection == 20 zexp = exp(zneg + jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 21 zexp = exp(zneg + jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 22 zexp = exp(zneg + jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 23 zexp = exp(zneg * jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 24 zexp = exp(zneg * jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 25 zexp = exp(zneg * jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan * jc2) endif ; @eqselection funcresult = zexp - ztan + @const derivresult = -zexp - ztan2 - 1 deriv2result = zexp - 2.0 * ztan * (ztan2 + 1) zquotient = funcresult * derivresult / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "e^(-z) - tan(z) + c Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-ez-2asinHalley { ; ; Uses Halley's method to find the roots ; of exp(-(z^2))- arcsin(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex z2 = complex zasin = (0,0) complex zez2 = complex zrecip = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 z2 = sqr(zworking + jc1) zexp = exp(-z2) zrecip = 1/sqrt(1-z2) elseif @eqselection == 1 z2 = sqr(zworking) zexp = exp(-z2 + jc2) zrecip = 1/sqrt(1-z2) elseif @eqselection == 2 z2 = sqr(zworking) zexp = exp(-z2) zrecip = 1/(sqrt(1-z2) + jc3) elseif @eqselection == 3 z2 = sqr(zworking + jc1) zexp = exp(-z2 + jc2) zrecip = 1/sqrt(1-z2) elseif @eqselection == 4 z2 = sqr(zworking) zexp = exp(-z2 + jc2) zrecip = 1/(sqrt(1-z2) + jc3) elseif @eqselection == 5 z2 = sqr(zworking + jc1) zexp = exp(-z2) zrecip = 1/(sqrt(1-z2) + jc3) elseif @eqselection == 6 z2 = sqr(zworking + jc1) zexp = exp(-z2 + jc2) zrecip = 1/(sqrt(1-z2) + jc3) elseif @eqselection == 7 z2 = sqr(zworking * jc1) zexp = exp(-z2) zrecip = 1/sqrt(1-z2) elseif @eqselection == 8 z2 = sqr(zworking) zexp = exp(-z2 * jc2) zrecip = 1/sqrt(1-z2) elseif @eqselection == 9 z2 = sqr(zworking) zexp = exp(-z2) zrecip = 1/(sqrt(1-z2) * jc3) elseif @eqselection == 10 z2 = sqr(zworking * jc1) zexp = exp(-z2 * jc2) zrecip = 1/sqrt(1-z2) elseif @eqselection == 11 z2 = sqr(zworking) zexp = exp(-z2 * jc2) zrecip = 1/(sqrt(1-z2) * jc3) elseif @eqselection == 12 z2 = sqr(zworking * jc1) zexp = exp(-z2) zrecip = 1/(sqrt(1-z2) * jc3) elseif @eqselection == 13 z2 = sqr(zworking * jc1) zexp = exp(-z2 * jc2) zrecip = 1/(sqrt(1-z2) * jc3) elseif @eqselection == 14 z2 = sqr(zworking + jc1) zexp = exp(-z2 * jc2) zrecip = 1/sqrt(1-z2) elseif @eqselection == 15 z2 = sqr(zworking) zexp = exp(-z2 + jc2) zrecip = 1/(sqrt(1-z2) * jc3) elseif @eqselection == 16 z2 = sqr(zworking + jc1) zexp = exp(-z2) zrecip = 1/(sqrt(1-z2) * jc3) elseif @eqselection == 17 z2 = sqr(zworking * jc1) zexp = exp(-z2 + jc2) zrecip = 1/sqrt(1-z2) elseif @eqselection == 18 z2 = sqr(zworking) zexp = exp(-z2 * jc2) zrecip = 1/(sqrt(1-z2) + jc3) elseif @eqselection == 19 z2 = sqr(zworking * jc1) zexp = exp(-z2) zrecip = 1/(sqrt(1-z2) + jc3) elseif @eqselection == 20 z2 = sqr(zworking + jc1) zexp = exp(-z2 * jc2) zrecip = 1/(sqrt(1-z2) * jc3) elseif @eqselection == 21 z2 = sqr(zworking + jc1) zexp = exp(-z2 + jc2) zrecip = 1/(sqrt(1-z2) * jc3) elseif @eqselection == 22 z2 = sqr(zworking + jc1) zexp = exp(-z2 * jc2) zrecip = 1/(sqrt(1-z2) + jc3) elseif @eqselection == 23 z2 = sqr(zworking * jc1) zexp = exp(-z2 + jc2) zrecip = 1/(sqrt(1-z2) + jc3) elseif @eqselection == 24 z2 = sqr(zworking * jc1) zexp = exp(-z2 + jc2) zrecip = 1/(sqrt(1-z2) * jc3) elseif @eqselection == 25 z2 = sqr(zworking * jc1) zexp = exp(-z2 * jc2) zrecip = 1/(sqrt(1-z2) + jc3) endif ; @eqselection zasin = asin(zworking) funcresult = zexp - zasin + @const derivresult = -2 * zworking * zexp - zrecip deriv2result = -2 * zexp + 4 * z2 * zexp - zworking * (1-z2)^(-1.5) zquotient = funcresult * derivresult / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "e^(-z^2) - asin(z) + c Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-expsinHalley { ; ; Uses Halley's method to find the roots ; of exp(z)- m * sin(nz) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex zexp = complex zsin = complex zcos = (0,0) complex zfreq = complex zamp = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 zfreq = @freq*zworking zexp = exp(zworking + jc1) zsin = sin(zfreq) elseif @eqselection == 1 zfreq = @freq*zworking zexp = exp(zworking) zsin = sin(zfreq + jc2) elseif @eqselection == 2 zfreq = @freq*zworking + jc3 zexp = exp(zworking) zsin = sin(zfreq) elseif @eqselection == 3 zfreq = @freq*zworking zexp = exp(zworking + jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 4 zfreq = @freq*zworking + jc3 zexp = exp(zworking) zsin = sin(zfreq + jc2) elseif @eqselection == 5 zfreq = @freq*zworking + jc3 zexp = exp(zworking + jc1) zsin = sin(zfreq) elseif @eqselection == 6 zfreq = @freq*zworking + jc3 zexp = exp(zworking + jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 7 zfreq = @freq*zworking zexp = exp(zworking * jc1) zsin = sin(zfreq) elseif @eqselection == 8 zfreq = @freq*zworking zexp = exp(zworking) zsin = sin(zfreq * jc2) elseif @eqselection == 9 zfreq = @freq*zworking * jc3 zexp = exp(zworking) zsin = sin(zfreq) elseif @eqselection == 10 zfreq = @freq*zworking zexp = exp(zworking * jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 11 zfreq = @freq*zworking * jc3 zexp = exp(zworking) zsin = sin(zfreq * jc2) elseif @eqselection == 12 zfreq = @freq*zworking * jc3 zexp = exp(zworking * jc1) zsin = sin(zfreq) elseif @eqselection == 13 zfreq = @freq*zworking * jc3 zexp = exp(zworking * jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 14 zfreq = @freq*zworking zexp = exp(zworking + jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 15 zfreq = @freq*zworking * jc3 zexp = exp(zworking) zsin = sin(zfreq + jc2) elseif @eqselection == 16 zfreq = @freq*zworking * jc3 zexp = exp(zworking + jc1) zsin = sin(zfreq) elseif @eqselection == 17 zfreq = @freq*zworking zexp = exp(zworking * jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 18 zfreq = @freq*zworking + jc3 zexp = exp(zworking) zsin = sin(zfreq * jc2) elseif @eqselection == 19 zfreq = @freq*zworking + jc3 zexp = exp(zworking * jc1) zsin = sin(zfreq) elseif @eqselection == 20 zfreq = @freq*zworking * jc3 zexp = exp(zworking + jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 21 zfreq = @freq*zworking * jc3 zexp = exp(zworking + jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 22 zfreq = @freq*zworking + jc3 zexp = exp(zworking + jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 23 zfreq = @freq*zworking + jc3 zexp = exp(zworking * jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 24 zfreq = @freq*zworking * jc3 zexp = exp(zworking * jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 25 zfreq = @freq*zworking + jc3 zexp = exp(zworking * jc1) zsin = sin(zfreq * jc2) endif ; @eqselection zcos = cos(zfreq) funcresult = zexp - @amplitude * zsin + @const derivresult = zexp - @amplitude * zcos * @freq deriv2result = zexp + @amplitude * sqr(@freq) * zsin zquotient = funcresult * derivresult / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "e^z - m*sin(nz) + c Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param amplitude caption = "Sine Amplitude" default = (4,0) hint = "This parameter sets the amplitude,'m' of the sine function." endparam param freq caption = "Sine Frequency" default = (4,0) hint = "This parameter sets the frequency,'n' of the sine function." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-exp-cosHalley { ; ; Uses Halley's method to find the roots ; of exp(z)- m * cos(nz) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex zexp = complex zsin = complex zcos = (0,0) complex zfreq = complex zamp = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 zfreq = @freq*zworking zexp = exp(zworking + jc1) zcos = cos(zfreq) elseif @eqselection == 1 zfreq = @freq*zworking zexp = exp(zworking) zcos = cos(zfreq + jc2) elseif @eqselection == 2 zfreq = @freq*zworking + jc3 zexp = exp(zworking) zcos = cos(zfreq) elseif @eqselection == 3 zfreq = @freq*zworking zexp = exp(zworking + jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 4 zfreq = @freq*zworking + jc3 zexp = exp(zworking) zcos = cos(zfreq + jc2) elseif @eqselection == 5 zfreq = @freq*zworking + jc3 zexp = exp(zworking + jc1) zcos = cos(zfreq) elseif @eqselection == 6 zfreq = @freq*zworking + jc3 zexp = exp(zworking + jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 7 zfreq = @freq*zworking zexp = exp(zworking * jc1) zcos = cos(zfreq) elseif @eqselection == 8 zfreq = @freq*zworking zexp = exp(zworking) zcos = cos(zfreq * jc2) elseif @eqselection == 9 zfreq = @freq*zworking * jc3 zexp = exp(zworking) zcos = cos(zfreq) elseif @eqselection == 10 zfreq = @freq*zworking zexp = exp(zworking * jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 11 zfreq = @freq*zworking * jc3 zexp = exp(zworking) zcos = cos(zfreq * jc2) elseif @eqselection == 12 zfreq = @freq*zworking * jc3 zexp = exp(zworking * jc1) zcos = cos(zfreq) elseif @eqselection == 13 zfreq = @freq*zworking * jc3 zexp = exp(zworking * jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 14 zfreq = @freq*zworking zexp = exp(zworking + jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 15 zfreq = @freq*zworking * jc3 zexp = exp(zworking) zcos = cos(zfreq + jc2) elseif @eqselection == 16 zfreq = @freq*zworking * jc3 zexp = exp(zworking + jc1) zcos = cos(zfreq) elseif @eqselection == 17 zfreq = @freq*zworking zexp = exp(zworking * jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 18 zfreq = @freq*zworking + jc3 zexp = exp(zworking) zcos = cos(zfreq * jc2) elseif @eqselection == 19 zfreq = @freq*zworking + jc3 zexp = exp(zworking * jc1) zcos = cos(zfreq) elseif @eqselection == 20 zfreq = @freq*zworking * jc3 zexp = exp(zworking + jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 21 zfreq = @freq*zworking * jc3 zexp = exp(zworking + jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 22 zfreq = @freq*zworking + jc3 zexp = exp(zworking + jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 23 zfreq = @freq*zworking + jc3 zexp = exp(zworking * jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 24 zfreq = @freq*zworking * jc3 zexp = exp(zworking * jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 25 zfreq = @freq*zworking + jc3 zexp = exp(zworking * jc1) zcos = cos(zfreq * jc2) endif ; @eqselection zsin = sin(zfreq) funcresult = zexp - @amplitude * zcos + @const derivresult = zexp + @amplitude * zsin * @freq deriv2result = zexp + @amplitude * sqr(@freq) * zcos zquotient = funcresult * derivresult / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "e^z - m*cos(nz) + c Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param amplitude caption = "Cosine Amplitude" default = (4,0) hint = "This parameter sets the amplitude,'m' of the cosine function." endparam param freq caption = "Cosine Frequency" default = (4,0) hint = "This parameter sets the frequency,'n' of the cosine function." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-expz2cosHalley { ; ; Uses Halley's method to find the roots ; of exp(z^2)- m * cos(nz) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex zexp = complex zsin = complex zcos = (0,0) complex zfreq = complex zamp = (0,0) complex zquotient = (0,0) complex z2 = (0,0) loop: if @eqselection == 0 zfreq = @freq*zworking zexp = exp(sqr(zworking) + jc1) zcos = cos(zfreq) elseif @eqselection == 1 zfreq = @freq*zworking zexp = exp(sqr(zworking)) zcos = cos(zfreq + jc2) elseif @eqselection == 2 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking)) zcos = cos(zfreq) elseif @eqselection == 3 zfreq = @freq*zworking zexp = exp(sqr(zworking) + jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 4 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking)) zcos = cos(zfreq + jc2) elseif @eqselection == 5 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking) + jc1) zcos = cos(zfreq) elseif @eqselection == 6 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking) + jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 7 zfreq = @freq*zworking zexp = exp(sqr(zworking) * jc1) zcos = cos(zfreq) elseif @eqselection == 8 zfreq = @freq*zworking zexp = exp(sqr(zworking)) zcos = cos(zfreq * jc2) elseif @eqselection == 9 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking)) zcos = cos(zfreq) elseif @eqselection == 10 zfreq = @freq*zworking zexp = exp(sqr(zworking) * jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 11 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking)) zcos = cos(zfreq * jc2) elseif @eqselection == 12 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking) * jc1) zcos = cos(zfreq) elseif @eqselection == 13 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking) * jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 14 zfreq = @freq*zworking zexp = exp(sqr(zworking) + jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 15 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking)) zcos = cos(zfreq + jc2) elseif @eqselection == 16 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking) + jc1) zcos = cos(zfreq) elseif @eqselection == 17 zfreq = @freq*zworking zexp = exp(sqr(zworking) * jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 18 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking)) zcos = cos(zfreq * jc2) elseif @eqselection == 19 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking) * jc1) zcos = cos(zfreq) elseif @eqselection == 20 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking) + jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 21 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking) + jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 22 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking) + jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 23 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking) * jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 24 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking) * jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 25 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking) * jc1) zcos = cos(zfreq * jc2) endif ; @eqselection zsin = sin(zfreq) z2 = sqr(zworking) funcresult = zexp - @amplitude * zcos + @const derivresult = 2 * zworking * zexp + @amplitude * zsin * @freq deriv2result = 2 * zexp + 4 * z2 * zexp + @amplitude * sqr(@freq) * zcos zquotient = funcresult * derivresult / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "e^(z^2)-m*cos(nz) + c Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param amplitude caption = "Cosine Amplitude" default = (4,0) hint = "This parameter sets the amplitude,'m' of the cosine function." endparam param freq caption = "Cosine Frequency" default = (4,0) hint = "This parameter sets the frequency,'n' of the cosine function." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-expz2sinHalley { ; ; Uses Halley's method to find the roots ; of exp(z^2)- m * sin(nz) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex zexp = complex zsin = complex zcos = (0,0) complex zfreq = complex zamp = (0,0) complex zquotient = (0,0) complex z2 = (0,0) loop: if @eqselection == 0 zfreq = @freq*zworking zexp = exp(sqr(zworking) + jc1) zsin = sin(zfreq) elseif @eqselection == 1 zfreq = @freq*zworking zexp = exp(sqr(zworking)) zsin = sin(zfreq + jc2) elseif @eqselection == 2 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking)) zsin = sin(zfreq) elseif @eqselection == 3 zfreq = @freq*zworking zexp = exp(sqr(zworking) + jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 4 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking)) zsin = sin(zfreq + jc2) elseif @eqselection == 5 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking) + jc1) zsin = sin(zfreq) elseif @eqselection == 6 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking) + jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 7 zfreq = @freq*zworking zexp = exp(sqr(zworking) * jc1) zsin = sin(zfreq) elseif @eqselection == 8 zfreq = @freq*zworking zexp = exp(sqr(zworking)) zsin = sin(zfreq * jc2) elseif @eqselection == 9 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking)) zsin = sin(zfreq) elseif @eqselection == 10 zfreq = @freq*zworking zexp = exp(sqr(zworking) * jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 11 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking)) zsin = sin(zfreq * jc2) elseif @eqselection == 12 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking) * jc1) zsin = sin(zfreq) elseif @eqselection == 13 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking) * jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 14 zfreq = @freq*zworking zexp = exp(sqr(zworking) + jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 15 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking)) zsin = sin(zfreq + jc2) elseif @eqselection == 16 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking) + jc1) zsin = sin(zfreq) elseif @eqselection == 17 zfreq = @freq*zworking zexp = exp(sqr(zworking) * jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 18 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking)) zsin = sin(zfreq * jc2) elseif @eqselection == 19 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking) * jc1) zsin = sin(zfreq) elseif @eqselection == 20 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking) + jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 21 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking) + jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 22 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking) + jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 23 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking) * jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 24 zfreq = @freq*zworking * jc3 zexp = exp(sqr(zworking) * jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 25 zfreq = @freq*zworking + jc3 zexp = exp(sqr(zworking) * jc1) zsin = sin(zfreq * jc2) endif ; @eqselection zcos = cos(zfreq) z2 = sqr(zworking) funcresult = zexp - @amplitude * zsin + @const derivresult = 2 * zworking * zexp - @amplitude * zcos * @freq deriv2result = 2 * zexp + 4 * z2 * zexp - @amplitude * sqr(@freq) * zsin zquotient = funcresult * derivresult / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "e^(z^2)-m*sin(nz) + c Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param amplitude caption = "Sine Amplitude" default = (4,0) hint = "This parameter sets the amplitude,'m' of the sine function." endparam param freq caption = "Sine Frequency" default = (4,0) hint = "This parameter sets the frequency,'n' of the sine function." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-expcosHalley { ; jam 161126 ; ; Uses Halley's method to find the roots ; of exp(z)cos(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex zexp = complex zcos = complex zsin = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 zexp = exp(zworking + jc1) zcos = cos(zworking) zsin = sin(zworking) elseif @eqselection == 1 zexp = exp(zworking) zcos = cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 2 zexp = exp(zworking) zcos = cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 3 zexp = exp(zworking + jc1) zcos = cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 4 zexp = exp(zworking) zcos = cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 5 zexp = exp(zworking + jc1) zcos = cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 6 zexp = exp(zworking + jc1) zcos = cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 7 zexp = exp(zworking * jc1) zcos = cos(zworking) zsin = sin(zworking) elseif @eqselection == 8 zexp = exp(zworking) zcos = cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 9 zexp = exp(zworking) zcos = cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 10 zexp = exp(zworking * jc1) zcos = cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 11 zexp = exp(zworking) zcos = cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 12 zexp = exp(zworking * jc1) zcos = cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 13 zexp = exp(zworking * jc1) zcos = cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 14 zexp = exp(zworking + jc1) zcos = cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 15 zexp = exp(zworking) zcos = cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 16 zexp = exp(zworking + jc1) zcos = cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 17 zexp = exp(zworking * jc1) zcos = cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 18 zexp = exp(zworking) zcos = cos(zworking * jc2) zsin = sin(zworking + jc3) elseif @eqselection == 19 zexp = exp(zworking * jc1) zcos = cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 20 zexp = exp(zworking + jc1) zcos = cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 21 zexp = exp(zworking + jc1) zcos = cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 22 zexp = exp(zworking + jc1) zcos = cos(zworking * jc2) zsin = sin(zworking + jc3) elseif @eqselection == 23 zexp = exp(zworking * jc1) zcos = cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 24 zexp = exp(zworking * jc1) zcos = cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 25 zexp = exp(zworking * jc1) zcos = cos(zworking * jc2) zsin = sin(zworking + jc3) endif ; @eqselection funcresult = zexp * zcos + @const derivresult = zexp * (zcos - zsin) deriv2result = -2 * zexp * zsin zquotient = funcresult * derivresult / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "e^z * cos(z) + c Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-ez2tanzHalley { ; jam 161126 ; ; Uses Halley's method to find the roots ; of exp(z^2)tan(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex zsqr = complex ezsqr = complex ztan = (0,0) complex ztan2 = complex zworking2 = complex zplus1 = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 zsqr = sqr(zworking + jc1) ezsqr = exp(zsqr) ztan = tan(zworking) elseif @eqselection == 1 zsqr = sqr(zworking) ezsqr = exp(zsqr + jc2) ztan = tan(zworking) elseif @eqselection == 2 zsqr = sqr(zworking) ezsqr = exp(zsqr) ztan = tan(zworking + jc3) elseif @eqselection == 3 zsqr = sqr(zworking + jc1) ezsqr = exp(zsqr + jc2) ztan = tan(zworking) elseif @eqselection == 4 zsqr = sqr(zworking) ezsqr = exp(zsqr + jc2) ztan = tan(zworking + jc3) elseif @eqselection == 5 zsqr = sqr(zworking + jc1) ezsqr = exp(zsqr) ztan = tan(zworking + jc3) elseif @eqselection == 6 zsqr = sqr(zworking + jc1) ezsqr = exp(zsqr + jc2) ztan = tan(zworking + jc3) elseif @eqselection == 7 zsqr = sqr(zworking * jc1) ezsqr = exp(zsqr) ztan = tan(zworking) elseif @eqselection == 8 zsqr = sqr(zworking) ezsqr = exp(zsqr * jc2) ztan = tan(zworking) elseif @eqselection == 9 zsqr = sqr(zworking) ezsqr = exp(zsqr) ztan = tan(zworking * jc3) elseif @eqselection == 10 zsqr = sqr(zworking * jc1) ezsqr = exp(zsqr * jc2) ztan = tan(zworking) elseif @eqselection == 11 zsqr = sqr(zworking) ezsqr = exp(zsqr * jc2) ztan = tan(zworking * jc3) elseif @eqselection == 12 zsqr = sqr(zworking * jc1) ezsqr = exp(zsqr) ztan = tan(zworking * jc3) elseif @eqselection == 13 zsqr = sqr(zworking * jc1) ezsqr = exp(zsqr * jc2) ztan = tan(zworking * jc3) elseif @eqselection == 14 zsqr = sqr(zworking + jc1) ezsqr = exp(zsqr * jc2) ztan = tan(zworking) elseif @eqselection == 15 zsqr = sqr(zworking) ezsqr = exp(zsqr + jc2) ztan = tan(zworking * jc3) elseif @eqselection == 16 zsqr = sqr(zworking + jc1) ezsqr = exp(zsqr) ztan = tan(zworking * jc3) elseif @eqselection == 17 zsqr = sqr(zworking * jc1) ezsqr = exp(zsqr + jc2) ztan = tan(zworking) elseif @eqselection == 18 zsqr = sqr(zworking) ezsqr = exp(zsqr * jc2) ztan = tan(zworking + jc3) elseif @eqselection == 19 zsqr = sqr(zworking * jc1) ezsqr = exp(zsqr) ztan = tan(zworking + jc3) elseif @eqselection == 20 zsqr = sqr(zworking + jc1) ezsqr = exp(zsqr * jc2) ztan = tan(zworking * jc3) elseif @eqselection == 21 zsqr = sqr(zworking + jc1) ezsqr = exp(zsqr + jc2) ztan = tan(zworking * jc3) elseif @eqselection == 22 zsqr = sqr(zworking + jc1) ezsqr = exp(zsqr * jc2) ztan = tan(zworking + jc3) elseif @eqselection == 23 zsqr = sqr(zworking * jc1) ezsqr = exp(zsqr + jc2) ztan = tan(zworking + jc3) elseif @eqselection == 24 zsqr = sqr(zworking * jc1) ezsqr = exp(zsqr + jc2) ztan = tan(zworking * jc3) elseif @eqselection == 25 zsqr = sqr(zworking * jc1) ezsqr = exp(zsqr * jc2) ztan = tan(zworking + jc3) endif ; @eqselection ztan2 = sqr(ztan) zworking2 = 2 * zworking zplus1 = ztan2 + 1 funcresult = ezsqr * ztan + @const derivresult = ezsqr * (zworking2 * ztan + zplus1) deriv2result = ezsqr * (4 * zsqr * ztan + zworking2 * ztan2 + zworking2 + 2 * ztan + zworking2 * \ zplus1 + 2 * ztan * zplus1) zquotient = funcresult * derivresult / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "e^z^2 * tan(z) + c Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-genz5Halley { ; ; Uses Halley's method to find the roots ; of z^5 + az^4 + bz^3 + cz^2 + dz + e = 0. Set the ; bailout value to some large number ; jam 161126 global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex twocoeff2 = 2 * @coeff2 ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; 'Explore Mode' is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex z5 = complex z4 = complex z3 = complex z2 = complex z1 = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 elseif @eqselection == 1 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 elseif @eqselection == 2 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 + jc3 elseif @eqselection == 3 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 elseif @eqselection == 4 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 + jc3 elseif @eqselection == 5 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 + jc3 elseif @eqselection == 6 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 + jc3 elseif @eqselection == 7 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 elseif @eqselection == 8 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 elseif @eqselection == 9 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 * jc3 elseif @eqselection == 10 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 elseif @eqselection == 11 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2)* jc2 z5 = z3 * z2 * jc3 elseif @eqselection == 12 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 * jc3 elseif @eqselection == 13 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 * jc3 elseif @eqselection == 14 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 elseif @eqselection == 15 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 * jc3 elseif @eqselection == 16 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 * jc3 elseif @eqselection == 17 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 elseif @eqselection == 18 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 + jc3 elseif @eqselection == 19 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 + jc3 elseif @eqselection == 20 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 * jc3 elseif @eqselection == 21 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 * jc3 elseif @eqselection == 22 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 + jc3 elseif @eqselection == 23 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 + jc3 elseif @eqselection == 24 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 * jc3 elseif @eqselection == 25 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 + jc3 endif ; @eqselection funcresult = z5 + @coeff4 * z4 + @coeff3 * z3 + @coeff2 * z2 + @coeff1 * z1 + @constant derivresult = 5 * z4 + 4 * @coeff4 * z3 + 3 * @coeff3 * z2 + twocoeff2 * z1 + @coeff1 deriv2result = 20 * z3 + 12 * @coeff4 * z2 + 6 * @coeff3 * z1 + twocoeff2 zquotient = funcresult * derivresult / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "General Degree 5 Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param coeff4 caption = "Coefficient 4" default = (1,0) hint = "This parameter if the coefficient of the quartic z term." endparam param coeff3 caption = "Coefficient 3" default = (3,0) hint = "This parameter if the coefficient of the cubic z term." endparam param coeff2 caption = "Coefficient 2" default = (3,0) hint = "This parameter if the coefficient of the quadratic z term." endparam param coeff1 caption = "Coefficient 1" default = (-2,0) hint = "This parameter if the coefficient of the linear z term." endparam param constant caption = "Constant Term" default = (-1,0) hint = "This parameter is the constant term in the quadratic equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-genz6Halley { ; ; Uses Halley's method to find the roots ; of z^6 + az^5 + bz^4 + cz^3 + dz^2 + ez + f = 0. Set the ; bailout value to some large number ; jam 161117 global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex twocoeff2 = 2 * @coeff2 ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; 'Explore Mode' is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex z6 = complex z5 = complex z4 = complex z3 = complex z2 = complex z1 = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 elseif @eqselection == 1 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 elseif @eqselection == 2 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 + jc3 elseif @eqselection == 3 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 elseif @eqselection == 4 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 + jc3 elseif @eqselection == 5 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 + jc3 elseif @eqselection == 6 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 + jc3 elseif @eqselection == 7 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 elseif @eqselection == 8 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 elseif @eqselection == 9 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 * jc3 elseif @eqselection == 10 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 elseif @eqselection == 11 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2)* jc2 z5 = z3 * z2 z6 = z4 * z2 * jc3 elseif @eqselection == 12 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 * jc3 elseif @eqselection == 13 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 * jc3 elseif @eqselection == 14 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 elseif @eqselection == 15 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 * jc3 elseif @eqselection == 16 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 * jc3 elseif @eqselection == 17 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 elseif @eqselection == 18 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 + jc3 elseif @eqselection == 19 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 + jc3 elseif @eqselection == 20 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 * jc3 elseif @eqselection == 21 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 * jc3 elseif @eqselection == 22 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 + jc3 elseif @eqselection == 23 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 + jc3 elseif @eqselection == 24 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 * jc3 elseif @eqselection == 25 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 + jc3 endif ; @eqselection funcresult = z6 + @coeff5 * z5 + @coeff4 * z4 + @coeff3 * z3 + @coeff2 * z2 + \ @coeff1 * z1 + @constant derivresult = 6 * z5 + 5 * @coeff5 * z4 + 4 * @coeff4 * z3 + 3 * @coeff3 * z2 + \ twocoeff2 * z1 + @coeff1 deriv2result = 30 * z4 + 20 * @coeff5 * z3 + 12 * @coeff4 * z2 + 6 * @coeff3 * z1 + \ twocoeff2 zquotient = funcresult * derivresult / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "General Degree 6 Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param coeff5 caption = "Coefficient 5" default = (2,0) hint = "This parameter if the coefficient of the quintic z term." endparam param coeff4 caption = "Coefficient 4" default = (-3,0) hint = "This parameter if the coefficient of the quartic z term." endparam param coeff3 caption = "Coefficient 3" default = (3,0) hint = "This parameter if the coefficient of the cubic z term." endparam param coeff2 caption = "Coefficient 2" default = (1,0) hint = "This parameter if the coefficient of the quadratic z term." endparam param coeff1 caption = "Coefficient 1" default = (-2,0) hint = "This parameter if the coefficient of the linear z term." endparam param constant caption = "Constant Term" default = (-1,0) hint = "This parameter is the constant term in the quadratic equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-genz7Halley { ; ; Uses Halley's method to find the roots ; of z^7 + az^6 + bz^5 + cz^4 + dz^3 + ez^2 + fz + g = 0. ; Set the bailout value to some large number ; jam 161206 global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex twocoeff2 = 2 * @coeff2 ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; 'Explore Mode' is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex z7 = complex z6 = complex z5 = complex z4 = complex z3 = (0,0) complex z2 = complex z1 = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 elseif @eqselection == 1 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 elseif @eqselection == 2 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 + jc3 elseif @eqselection == 3 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 elseif @eqselection == 4 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 + jc3 elseif @eqselection == 5 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 + jc3 elseif @eqselection == 6 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 + jc3 elseif @eqselection == 7 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 elseif @eqselection == 8 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 elseif @eqselection == 9 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 * jc3 elseif @eqselection == 10 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 elseif @eqselection == 11 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2)* jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 * jc3 elseif @eqselection == 12 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 * jc3 elseif @eqselection == 13 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 * jc3 elseif @eqselection == 14 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 elseif @eqselection == 15 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 * jc3 elseif @eqselection == 16 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 * jc3 elseif @eqselection == 17 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 elseif @eqselection == 18 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 + jc3 elseif @eqselection == 19 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 + jc3 elseif @eqselection == 20 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 * jc3 elseif @eqselection == 21 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 * jc3 elseif @eqselection == 22 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 + jc3 elseif @eqselection == 23 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 + jc3 elseif @eqselection == 24 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 * jc3 elseif @eqselection == 25 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 + jc3 endif ; @eqselection funcresult = z7 + @coeff6 * z6 + @coeff5 * z5 + @coeff4 * z4 + @coeff3 * z3 + \ @coeff2 * z2 + @coeff1 * z1 + @constant derivresult = 7 * z6 + 6 * @coeff6 * z5 + 5 * @coeff5 * z4 + 4 * @coeff4 * z3 + \ 3 * @coeff3 * z2 + twocoeff2 * z1 + @coeff1 deriv2result = 42 * z5 + 30 * @coeff6 * z4 + 20 * @coeff5 * z3 + 12 * @coeff4 * z2 \ + 6 * @coeff3 * z1 + twocoeff2 zquotient = funcresult * derivresult / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "General Degree 7 Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param coeff6 caption = "Coefficient 6" default = (1,0) hint = "This parameter if the coefficient of the sextic z term." endparam param coeff5 caption = "Coefficient 5" default = (2,0) hint = "This parameter if the coefficient of the quintic z term." endparam param coeff4 caption = "Coefficient 4" default = (-3,0) hint = "This parameter if the coefficient of the quartic z term." endparam param coeff3 caption = "Coefficient 3" default = (3,0) hint = "This parameter if the coefficient of the cubic z term." endparam param coeff2 caption = "Coefficient 2" default = (1,0) hint = "This parameter if the coefficient of the quadratic z term." endparam param coeff1 caption = "Coefficient 1" default = (-2,0) hint = "This parameter if the coefficient of the linear z term." endparam param constant caption = "Constant Term" default = (-1,0) hint = "This parameter is the constant term in the quadratic equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-genz8Halley2 { ; ; Uses Halley's method to find the roots ; of z^8 + az^7 + bz^6 + cz^5 + dz^4 + ez^3 + fz^2 + gz + h = 0. ; Set the bailout value to some large number ; jam 161206 global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex twocoeff2 = 2 * @coeff2 ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; 'Explore Mode' is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex z8 = complex z7 = complex z6 = complex z5 = complex z4 = (0,0) complex z3 = complex z2 = complex z1 = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) elseif @eqselection == 1 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) elseif @eqselection == 2 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 elseif @eqselection == 3 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) elseif @eqselection == 4 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 elseif @eqselection == 5 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 elseif @eqselection == 6 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 elseif @eqselection == 7 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) elseif @eqselection == 8 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) elseif @eqselection == 9 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 10 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) elseif @eqselection == 11 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2)* jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 12 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 13 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 14 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) elseif @eqselection == 15 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 16 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 17 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) elseif @eqselection == 18 z1 = zworking z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 elseif @eqselection == 19 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 elseif @eqselection == 20 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 21 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 22 z1 = zworking + jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 elseif @eqselection == 23 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 elseif @eqselection == 24 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) + jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) * jc3 elseif @eqselection == 25 z1 = zworking * jc1 z2 = sqr(z1) z3 = z2 * z1 z4 = sqr(z2) * jc2 z5 = z3 * z2 z6 = z4 * z2 z7 = z4 * z3 z8 = sqr(z4) + jc3 endif ; @eqselection funcresult = z8 + @coeff7 * z7 + @coeff6 * z6 + @coeff5 * z5 + @coeff4 * z4 + \ @coeff3 * z3 + @coeff2 * z2 + @coeff1 * z1 + @constant derivresult = 8 * z7 + 7 * @coeff7 * z6 + 6 * @coeff6 * z5 + 5 * @coeff5 * z4 + 4 * @coeff4 * z3 + \ 3 * @coeff3 * z2 + twocoeff2 * z1 + @coeff1 deriv2result = 56 * z6 + 42 * @coeff7 * z5 + 30 * @coeff6 * z4 + 20 * @coeff5 * z3 + \ 12 * @coeff4 * z2 + 6 * @coeff3 * z + twocoeff2 zquotient = funcresult * derivresult / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "General Degree 8 Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param coeff7 caption = "Coefficient 7" default = (1,0) hint = "This parameter if the coefficient of the degree 7 z term." endparam param coeff6 caption = "Coefficient 6" default = (1,0) hint = "This parameter if the coefficient of the sextic z term." endparam param coeff5 caption = "Coefficient 5" default = (2,0) hint = "This parameter if the coefficient of the quintic z term." endparam param coeff4 caption = "Coefficient 4" default = (-3,0) hint = "This parameter if the coefficient of the quartic z term." endparam param coeff3 caption = "Coefficient 3" default = (3,0) hint = "This parameter if the coefficient of the cubic z term." endparam param coeff2 caption = "Coefficient 2" default = (1,0) hint = "This parameter if the coefficient of the quadratic z term." endparam param coeff1 caption = "Coefficient 1" default = (-2,0) hint = "This parameter if the coefficient of the linear z term." endparam param constant caption = "Constant Term" default = (-1,0) hint = "This parameter is the constant term in the quadratic equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-tancosHalley { ; ; Uses Halley's method to find the roots ; of tan(z)- m * cos(nz) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex freq2 = sqr(@freq) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex ztan = complex ztan2 = complex zsin = complex zcos = (0,0) complex zfreq = complex zamp = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 zfreq = @freq*zworking ztan = tan(zworking + jc1) zcos = cos(zfreq) elseif @eqselection == 1 zfreq = @freq*zworking ztan = tan(zworking) zcos = cos(zfreq + jc2) elseif @eqselection == 2 zfreq = @freq*zworking + jc3 ztan = tan(zworking) zcos = cos(zfreq) elseif @eqselection == 3 zfreq = @freq*zworking ztan = tan(zworking + jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 4 zfreq = @freq*zworking + jc3 ztan = tan(zworking) zcos = cos(zfreq + jc2) elseif @eqselection == 5 zfreq = @freq*zworking + jc3 ztan = tan(zworking + jc1) zcos = cos(zfreq) elseif @eqselection == 6 zfreq = @freq*zworking + jc3 ztan = tan(zworking + jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 7 zfreq = @freq*zworking ztan = tan(zworking * jc1) zcos = cos(zfreq) elseif @eqselection == 8 zfreq = @freq*zworking ztan = tan(zworking) zcos = cos(zfreq * jc2) elseif @eqselection == 9 zfreq = @freq*zworking * jc3 ztan = tan(zworking) zcos = cos(zfreq) elseif @eqselection == 10 zfreq = @freq*zworking ztan = tan(zworking * jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 11 zfreq = @freq*zworking * jc3 ztan = tan(zworking) zcos = cos(zfreq * jc2) elseif @eqselection == 12 zfreq = @freq*zworking * jc3 ztan = tan(zworking * jc1) zcos = cos(zfreq) elseif @eqselection == 13 zfreq = @freq*zworking * jc3 ztan = tan(zworking * jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 14 zfreq = @freq*zworking ztan = tan(zworking + jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 15 zfreq = @freq*zworking * jc3 ztan = tan(zworking) zcos = cos(zfreq + jc2) elseif @eqselection == 16 zfreq = @freq*zworking * jc3 ztan = tan(zworking + jc1) zcos = cos(zfreq) elseif @eqselection == 17 zfreq = @freq*zworking ztan = tan(zworking * jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 18 zfreq = @freq*zworking + jc3 ztan = tan(zworking) zcos = cos(zfreq * jc2) elseif @eqselection == 19 zfreq = @freq*zworking + jc3 ztan = tan(zworking * jc1) zcos = cos(zfreq) elseif @eqselection == 20 zfreq = @freq*zworking * jc3 ztan = tan(zworking + jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 21 zfreq = @freq*zworking * jc3 ztan = tan(zworking + jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 22 zfreq = @freq*zworking + jc3 ztan = tan(zworking + jc1) zcos = cos(zfreq * jc2) elseif @eqselection == 23 zfreq = @freq*zworking + jc3 ztan = tan(zworking * jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 24 zfreq = @freq*zworking * jc3 ztan = tan(zworking * jc1) zcos = cos(zfreq + jc2) elseif @eqselection == 25 zfreq = @freq*zworking + jc3 ztan = tan(zworking * jc1) zcos = cos(zfreq * jc2) endif ; @eqselection zsin = sin(zfreq) ztan2 = sqr(ztan) funcresult = ztan - @amplitude * zcos + @const derivresult = 1 + ztan2 + @amplitude * zsin * @freq deriv2result = 2 * ztan * (1 + ztan2) + @amplitude * freq2 * zcos zquotient = funcresult * derivresult / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "tan(z) - m*cos(nz) + c Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param amplitude caption = "Cosine Amplitude" default = (4,0) hint = "This parameter sets the amplitude,'m' of the cosine function." endparam param freq caption = "Cosine Frequency" default = (4,0) hint = "This parameter sets the frequency,'n' of the cosine function." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-tansinHalley { ; ; Uses Halley's method to find the roots ; of tan(z)- m * sin(nz) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex freq2 = sqr(@freq) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex ztan = complex ztan2 = complex zsin = complex zcos = (0,0) complex zfreq = complex zamp = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 zfreq = @freq*zworking ztan = tan(zworking + jc1) zsin = sin(zfreq) elseif @eqselection == 1 zfreq = @freq*zworking ztan = tan(zworking) zsin = sin(zfreq + jc2) elseif @eqselection == 2 zfreq = @freq*zworking + jc3 ztan = tan(zworking) zsin = sin(zfreq) elseif @eqselection == 3 zfreq = @freq*zworking ztan = tan(zworking + jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 4 zfreq = @freq*zworking + jc3 ztan = tan(zworking) zsin = sin(zfreq + jc2) elseif @eqselection == 5 zfreq = @freq*zworking + jc3 ztan = tan(zworking + jc1) zsin = sin(zfreq) elseif @eqselection == 6 zfreq = @freq*zworking + jc3 ztan = tan(zworking + jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 7 zfreq = @freq*zworking ztan = tan(zworking * jc1) zsin = sin(zfreq) elseif @eqselection == 8 zfreq = @freq*zworking ztan = tan(zworking) zsin = sin(zfreq * jc2) elseif @eqselection == 9 zfreq = @freq*zworking * jc3 ztan = tan(zworking) zsin = sin(zfreq) elseif @eqselection == 10 zfreq = @freq*zworking ztan = tan(zworking * jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 11 zfreq = @freq*zworking * jc3 ztan = tan(zworking) zsin = sin(zfreq * jc2) elseif @eqselection == 12 zfreq = @freq*zworking * jc3 ztan = tan(zworking * jc1) zsin = sin(zfreq) elseif @eqselection == 13 zfreq = @freq*zworking * jc3 ztan = tan(zworking * jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 14 zfreq = @freq*zworking ztan = tan(zworking + jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 15 zfreq = @freq*zworking * jc3 ztan = tan(zworking) zsin = sin(zfreq + jc2) elseif @eqselection == 16 zfreq = @freq*zworking * jc3 ztan = tan(zworking + jc1) zsin = sin(zfreq) elseif @eqselection == 17 zfreq = @freq*zworking ztan = tan(zworking * jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 18 zfreq = @freq*zworking + jc3 ztan = tan(zworking) zsin = sin(zfreq * jc2) elseif @eqselection == 19 zfreq = @freq*zworking + jc3 ztan = tan(zworking * jc1) zsin = sin(zfreq) elseif @eqselection == 20 zfreq = @freq*zworking * jc3 ztan = tan(zworking + jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 21 zfreq = @freq*zworking * jc3 ztan = tan(zworking + jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 22 zfreq = @freq*zworking + jc3 ztan = tan(zworking + jc1) zsin = sin(zfreq * jc2) elseif @eqselection == 23 zfreq = @freq*zworking + jc3 ztan = tan(zworking * jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 24 zfreq = @freq*zworking * jc3 ztan = tan(zworking * jc1) zsin = sin(zfreq + jc2) elseif @eqselection == 25 zfreq = @freq*zworking + jc3 ztan = tan(zworking * jc1) zsin = sin(zfreq * jc2) endif ; @eqselection zcos = cos(zfreq) ztan2 = sqr(ztan) funcresult = ztan - @amplitude * zsin + @const derivresult = 1 + ztan2 - @amplitude * zcos * @freq deriv2result = 2 * ztan * (1 + ztan2) + @amplitude * freq2 * zsin zquotient = funcresult * derivresult / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "tan(z) - m*sin(nz) + c Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param amplitude caption = "Sine Amplitude" default = (4,0) hint = "This parameter sets the amplitude,'m' of the sine function." endparam param freq caption = "Sine Frequency" default = (4,0) hint = "This parameter sets the frequency,'n' of the sine function." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-zncoszHalley { ; jam 161206 ; ; Uses Halley's method to find the roots ; of z^n - cos(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) complex powerminus2 = powerminus - (1,0) complex powerpowerminus = powerminus * @power ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex zn = complex znminus = complex znminus2 = (0,0) complex zcos = complex zsin = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking) zsin = sin(zworking) elseif @eqselection == 1 znminus2 = (zworking)^powerminus2 zcos = cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 2 znminus2 = (zworking)^powerminus2 zcos = cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 3 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 4 znminus2 = (zworking)^powerminus2 zcos = cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 5 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 6 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 7 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking) zsin = sin(zworking) elseif @eqselection == 8 znminus2 = (zworking)^powerminus2 zcos = cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 9 znminus2 = (zworking)^powerminus2 zcos = cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 10 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 11 znminus2 = (zworking)^powerminus2 zcos = cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 12 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 13 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 14 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 15 znminus2 = (zworking)^powerminus2 zcos = cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 16 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 17 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 18 znminus2 = (zworking)^powerminus2 zcos = cos(zworking * jc2) zsin = sin(zworking + jc3) elseif @eqselection == 19 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 20 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 21 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 22 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking * jc2) zsin = sin(zworking + jc3) elseif @eqselection == 23 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 24 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 25 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking * jc2) zsin = sin(zworking + jc3) endif ; @eqselection znminus = znminus2 * zworking zn = znminus * zworking funcresult = zn - zcos + @const derivresult = @power * znminus + zsin deriv2result = powerpowerminus * znminus2 + zcos zquotient = funcresult * derivresult / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n - cos(z) + c Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (2,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-zncotzHalley { ; jam 161206 ; ; Uses Halley's method to find the roots ; of z^n - cotan(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) complex powerminus2 = powerminus - (1,0) complex powerpowerminus = powerminus * @power ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex zn = complex znminus = complex znminus2 = (0,0) complex zcot = complex zcot2 = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus2 = (zworking + jc1)^powerminus2 znminus = zworking * znminus2 zcot = cotan(zworking) elseif @eqselection == 1 znminus2 = (zworking)^powerminus2 znminus = (zworking + jc2) * znminus2 zcot = cotan(zworking) elseif @eqselection == 2 znminus2 = (zworking)^powerminus2 znminus = zworking * znminus2 zcot = cotan(zworking + jc3) elseif @eqselection == 3 znminus2 = (zworking + jc1)^powerminus2 znminus = (zworking + jc2) * znminus2 zcot = cotan(zworking) elseif @eqselection == 4 znminus2 = (zworking)^powerminus2 znminus = (zworking + jc2) * znminus2 zcot = cotan(zworking + jc3) elseif @eqselection == 5 znminus2 = (zworking + jc1)^powerminus2 znminus = zworking * znminus2 zcot = cotan(zworking + jc3) elseif @eqselection == 6 znminus2 = (zworking + jc1)^powerminus2 znminus = (zworking + jc2) * znminus2 zcot = cotan(zworking + jc3) elseif @eqselection == 7 znminus2 = (zworking * jc1)^powerminus2 znminus = zworking * znminus2 zcot = cotan(zworking) elseif @eqselection == 8 znminus2 = (zworking)^powerminus2 znminus = (zworking * jc2) * znminus2 zcot = cotan(zworking) elseif @eqselection == 9 znminus2 = (zworking)^powerminus2 znminus = zworking * znminus2 zcot = cotan(zworking * jc3) elseif @eqselection == 10 znminus2 = (zworking * jc1)^powerminus2 znminus = (zworking * jc2) * znminus2 zcot = cotan(zworking) elseif @eqselection == 11 znminus2 = (zworking)^powerminus2 znminus = (zworking * jc2) * znminus2 zcot = cotan(zworking * jc3) elseif @eqselection == 12 znminus2 = (zworking * jc1)^powerminus2 znminus = zworking * znminus2 zcot = cotan(zworking * jc3) elseif @eqselection == 13 znminus2 = (zworking * jc1)^powerminus2 znminus = (zworking * jc2) * znminus2 zcot = cotan(zworking * jc3) elseif @eqselection == 14 znminus2 = (zworking + jc1)^powerminus2 znminus = (zworking * jc2) * znminus2 zcot = cotan(zworking) elseif @eqselection == 15 znminus2 = (zworking)^powerminus2 znminus = (zworking + jc2) * znminus2 zcot = cotan(zworking * jc3) elseif @eqselection == 16 znminus2 = (zworking + jc1)^powerminus2 znminus = zworking * znminus2 zcot = cotan(zworking * jc3) elseif @eqselection == 17 znminus2 = (zworking * jc1)^powerminus2 znminus = (zworking + jc2) * znminus2 zcot = cotan(zworking) elseif @eqselection == 18 znminus2 = (zworking)^powerminus2 znminus = (zworking * jc2) * znminus2 zcot = cotan(zworking + jc3) elseif @eqselection == 19 znminus2 = (zworking * jc1)^powerminus2 znminus = zworking * znminus2 zcot = cotan(zworking + jc3) elseif @eqselection == 20 znminus2 = (zworking + jc1)^powerminus2 znminus = (zworking * jc2) * znminus2 zcot = cotan(zworking * jc3) elseif @eqselection == 21 znminus2 = (zworking + jc1)^powerminus2 znminus = (zworking + jc2) * znminus2 zcot = cotan(zworking * jc3) elseif @eqselection == 22 znminus2 = (zworking + jc1)^powerminus2 znminus = (zworking * jc2) * znminus2 zcot = cotan(zworking + jc3) elseif @eqselection == 23 znminus2 = (zworking * jc1)^powerminus2 znminus = (zworking + jc2) * znminus2 zcot = cotan(zworking + jc3) elseif @eqselection == 24 znminus2 = (zworking * jc1)^powerminus2 znminus = (zworking + jc2) * znminus2 zcot = cotan(zworking * jc3) elseif @eqselection == 25 znminus2 = (zworking * jc1)^powerminus2 znminus = (zworking * jc2) * znminus2 zcot = cotan(zworking + jc3) endif ; @eqselection zn = znminus * zworking zcot2 = sqr(zcot) funcresult = zn - zcot + @const derivresult = @power * znminus + zcot2 + 1 deriv2result = powerpowerminus * znminus2 - 2 * zcot * (1 + zcot2) zquotient = funcresult * derivresult / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n - cotan(z) + c Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (2,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-zncrdzHalley { ; jam 161207 ; ; Uses Halley's method to find the roots ; of z^n - crd(z) + constant = 0 (chord function). Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) complex powerminus2 = powerminus - (1,0) complex powerpowerminus = powerminus * @power ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex zn = complex znminus = complex zhalf = complex znminus2 = (0,0) complex zsin = complex zcos = complex zcrd = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking/2) zcos = cos(zworking/2) elseif @eqselection == 1 znminus2 = (zworking)^powerminus2 zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2) elseif @eqselection == 2 znminus2 = (zworking)^powerminus2 zsin = sin(zworking/2) zcos = cos(zworking/2 + jc3) elseif @eqselection == 3 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2) elseif @eqselection == 4 znminus2 = (zworking)^powerminus2 zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2 + jc3) elseif @eqselection == 5 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking/2) zcos = cos(zworking/2 + jc3) elseif @eqselection == 6 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2 + jc3) elseif @eqselection == 7 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking/2) zcos = cos(zworking/2) elseif @eqselection == 8 znminus2 = (zworking)^powerminus2 zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2) elseif @eqselection == 9 znminus2 = (zworking)^powerminus2 zsin = sin(zworking/2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 10 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2) elseif @eqselection == 11 znminus2 = (zworking)^powerminus2 zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 12 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking/2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 13 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 14 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2) elseif @eqselection == 15 znminus2 = (zworking)^powerminus2 zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 16 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking/2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 17 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2) elseif @eqselection == 18 znminus2 = (zworking)^powerminus2 zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2 + jc3) elseif @eqselection == 19 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking/2) zcos = cos(zworking/2 + jc3) elseif @eqselection == 20 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 21 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 22 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2 + jc3) elseif @eqselection == 23 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2 + jc3) elseif @eqselection == 24 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking/2 + jc2) zcos = cos(zworking/2 * jc3) elseif @eqselection == 25 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking/2 * jc2) zcos = cos(zworking/2 + jc3) endif ; @eqselection znminus = znminus2 * zworking zn = znminus * zworking zcrd = 2 * zsin funcresult = zn - zcrd + @const derivresult = @power * znminus - zcos deriv2result = powerpowerminus * znminus2 + 0.5 * zsin zquotient = funcresult * derivresult / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n - crd(z) + c Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (3,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-zncsczHalley { ; jam 161207 ; ; Uses Halley's method to find the roots ; of z^n - csc(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) complex powerminus2 = powerminus - (1,0) complex powerpowerminus = powerminus * @power ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex zn = complex znminus = complex zcot = complex zcot2 = (0,0) complex zcsc = complex zsin = complex znminus2 = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking) zcot = cotan(zworking) elseif @eqselection == 1 znminus2 = (zworking)^powerminus2 zsin = sin(zworking + jc2) zcot = cotan(zworking) elseif @eqselection == 2 znminus2 = (zworking)^powerminus2 zsin = sin(zworking) zcot = cotan(zworking + jc3) elseif @eqselection == 3 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking + jc2) zcot = cotan(zworking) elseif @eqselection == 4 znminus2 = (zworking)^powerminus2 zsin = sin(zworking + jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 5 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking) zcot = cotan(zworking + jc3) elseif @eqselection == 6 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking + jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 7 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking) zcot = cotan(zworking) elseif @eqselection == 8 znminus2 = (zworking)^powerminus2 zsin = sin(zworking * jc2) zcot = cotan(zworking) elseif @eqselection == 9 znminus2 = (zworking)^powerminus2 zsin = sin(zworking) zcot = cotan(zworking * jc3) elseif @eqselection == 10 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking * jc2) zcot = cotan(zworking) elseif @eqselection == 11 znminus2 = (zworking)^powerminus2 zsin = sin(zworking * jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 12 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking) zcot = cotan(zworking * jc3) elseif @eqselection == 13 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking * jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 14 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking * jc2) zcot = cotan(zworking) elseif @eqselection == 15 znminus2 = (zworking)^powerminus2 zsin = sin(zworking + jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 16 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking) zcot = cotan(zworking * jc3) elseif @eqselection == 17 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking + jc2) zcot = cotan(zworking) elseif @eqselection == 18 znminus2 = (zworking)^powerminus2 zsin = sin(zworking * jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 19 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking) zcot = cotan(zworking + jc3) elseif @eqselection == 20 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking * jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 21 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking + jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 22 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking * jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 23 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking + jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 24 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking + jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 25 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking * jc2) zcot = cotan(zworking + jc3) endif ; @eqselection znminus = znminus2 * zworking zn = znminus * zworking zcsc = 1/zsin zcot2 = sqr(zcot) funcresult = zn - zcsc + @const derivresult = @power * znminus + zcsc * zcot deriv2result = powerpowerminus * znminus2 - 2 * (zcsc * zcot2) - zcsc zquotient = funcresult * derivresult / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n - csc(z) + c Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (2,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-eztanzHouse3 { ; ; Uses 3rd-order Householder's method to find the roots ; of exp(z)- tan(z) + constant = 0. Set the ; bailout value to some large number. ; jam 161207 global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex zexp = complex ztan = complex ztan2 = (0,0) complex deriv3result = complex ztan2p1 = (0,0) complex zquotient = complex f0f2 = (0,0) complex derivresult2 = complex derivresult3 = (0,0) loop: if @eqselection == 0 zexp = exp(zworking + jc1) ztan = tan(zworking) ztan2 = sqr(ztan) elseif @eqselection == 1 zexp = exp(zworking) ztan = tan(zworking) ztan2 = sqr(ztan + jc2) elseif @eqselection == 2 zexp = exp(zworking) ztan = tan(zworking + jc3) ztan2 = sqr(ztan) elseif @eqselection == 3 zexp = exp(zworking + jc1) ztan = tan(zworking) ztan2 = sqr(ztan + jc2) elseif @eqselection == 4 zexp = exp(zworking) ztan = tan(zworking + jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 5 zexp = exp(zworking + jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan) elseif @eqselection == 6 zexp = exp(zworking + jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 7 zexp = exp(zworking * jc1) ztan = tan(zworking) ztan2 = sqr(ztan) elseif @eqselection == 8 zexp = exp(zworking) ztan = tan(zworking) ztan2 = sqr(ztan * jc2) elseif @eqselection == 9 zexp = exp(zworking) ztan = tan(zworking * jc3) ztan2 = sqr(ztan) elseif @eqselection == 10 zexp = exp(zworking * jc1) ztan = tan(zworking) ztan2 = sqr(ztan * jc2) elseif @eqselection == 11 zexp = exp(zworking) ztan = tan(zworking * jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 12 zexp = exp(zworking * jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan) elseif @eqselection == 13 zexp = exp(zworking * jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 14 zexp = exp(zworking + jc1) ztan = tan(zworking) ztan2 = sqr(ztan * jc2) elseif @eqselection == 15 zexp = exp(zworking) ztan = tan(zworking * jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 16 zexp = exp(zworking + jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan) elseif @eqselection == 17 zexp = exp(zworking * jc1) ztan = tan(zworking) ztan2 = sqr(ztan + jc2) elseif @eqselection == 18 zexp = exp(zworking) ztan = tan(zworking + jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 19 zexp = exp(zworking * jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan) elseif @eqselection == 20 zexp = exp(zworking + jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 21 zexp = exp(zworking + jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 22 zexp = exp(zworking + jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan * jc2) elseif @eqselection == 23 zexp = exp(zworking * jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 24 zexp = exp(zworking * jc1) ztan = tan(zworking * jc3) ztan2 = sqr(ztan + jc2) elseif @eqselection == 25 zexp = exp(zworking * jc1) ztan = tan(zworking + jc3) ztan2 = sqr(ztan * jc2) endif ; @eqselection ztan2p1 = ztan2 + 1 funcresult = zexp - ztan + @const derivresult = zexp - ztan2p1 deriv2result = zexp - 2 * ztan * ztan2p1 deriv3result = zexp - 2 * sqr(ztan2p1) - 4 * ztan2 * ztan2p1 f0f2 = funcresult * deriv2result derivresult2 = sqr(derivresult) derivresult3 = derivresult2 * derivresult zquotient = 3 * funcresult * (-2 * derivresult2 + f0f2) / (6 * derivresult3 - \ 6 * f0f2 * derivresult + sqr(funcresult) * deriv3result) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "e^z - tan(z) + c House3" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-zncvczHalley { ; jam 161207 ; ; Uses Halley's method to find the roots ; of z^n - cvc(z) + constant = 0 (covercosine function). Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) complex powerminus2 = powerminus - (1,0) complex powerpowerminus = powerminus * @power ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex zn = complex znminus = complex znminus2 = (0,0) complex zsin = complex zcos = complex zcvc = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking) zcos = cos(zworking) elseif @eqselection == 1 znminus2 = (zworking)^powerminus2 zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 2 znminus2 = (zworking)^powerminus2 zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 3 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 4 znminus2 = (zworking)^powerminus2 zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 5 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 6 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 7 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking) zcos = cos(zworking) elseif @eqselection == 8 znminus2 = (zworking)^powerminus2 zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 9 znminus2 = (zworking)^powerminus2 zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 10 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 11 znminus2 = (zworking)^powerminus2 zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 12 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 13 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 14 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 15 znminus2 = (zworking)^powerminus2 zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 16 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 17 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 18 znminus2 = (zworking)^powerminus2 zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) elseif @eqselection == 19 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 20 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 21 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 22 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) elseif @eqselection == 23 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 24 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 25 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) endif ; @eqselection znminus = znminus2 * zworking zn = znminus * zworking zcvc = 1 + zsin funcresult = zn - zcvc + @const derivresult = @power * znminus - zcos deriv2result = powerpowerminus * znminus2 + zsin zquotient = funcresult * derivresult / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n - cvc(z) + c Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (3,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-zncvszHalley { ; jam 161207 ; ; Uses Halley's method to find the roots ; of z^n - cvs(z) + constant = 0 (coversine function). Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) complex powerminus2 = powerminus - (1,0) complex powerpowerminus = powerminus * @power ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex zn = complex znminus = complex znminus2 = (0,0) complex zsin = complex zcos = complex zcvs = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking) zcos = cos(zworking) elseif @eqselection == 1 znminus2 = (zworking)^powerminus2 zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 2 znminus2 = (zworking)^powerminus2 zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 3 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 4 znminus2 = (zworking)^powerminus2 zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 5 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 6 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 7 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking) zcos = cos(zworking) elseif @eqselection == 8 znminus2 = (zworking)^powerminus2 zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 9 znminus2 = (zworking)^powerminus2 zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 10 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 11 znminus2 = (zworking)^powerminus2 zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 12 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 13 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 14 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking * jc2) zcos = cos(zworking) elseif @eqselection == 15 znminus2 = (zworking)^powerminus2 zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 16 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking) zcos = cos(zworking * jc3) elseif @eqselection == 17 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking + jc2) zcos = cos(zworking) elseif @eqselection == 18 znminus2 = (zworking)^powerminus2 zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) elseif @eqselection == 19 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking) zcos = cos(zworking + jc3) elseif @eqselection == 20 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking * jc2) zcos = cos(zworking * jc3) elseif @eqselection == 21 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 22 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) elseif @eqselection == 23 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking + jc2) zcos = cos(zworking + jc3) elseif @eqselection == 24 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking + jc2) zcos = cos(zworking * jc3) elseif @eqselection == 25 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking * jc2) zcos = cos(zworking + jc3) endif ; @eqselection znminus = znminus2 * zworking zn = znminus * zworking zcvs = 1 - zsin funcresult = zn - zcvs + @const derivresult = @power * znminus + zcos deriv2result = powerpowerminus * znminus2 - zsin zquotient = funcresult * derivresult / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n - cvs(z) + c Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (4,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-znexczHalley { ; jam 161207 ; ; Uses Halley's method to find the roots ; of z^n - exc(z) + constant = 0 (excosecant function). Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) complex powerminus2 = powerminus - (1,0) complex powerpowerminus = powerminus * @power ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex zn = complex znminus = complex znminus2 = complex zcot = (0,0) complex zsin = complex zcsc = complex zexc = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking) zcot = cotan(zworking) elseif @eqselection == 1 znminus2 = (zworking)^powerminus2 zsin = sin(zworking + jc2) zcot = cotan(zworking) elseif @eqselection == 2 znminus2 = (zworking)^powerminus2 zsin = sin(zworking) zcot = cotan(zworking + jc3) elseif @eqselection == 3 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking + jc2) zcot = cotan(zworking) elseif @eqselection == 4 znminus2 = (zworking)^powerminus2 zsin = sin(zworking + jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 5 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking) zcot = cotan(zworking + jc3) elseif @eqselection == 6 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking + jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 7 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking) zcot = cotan(zworking) elseif @eqselection == 8 znminus2 = (zworking)^powerminus2 zsin = sin(zworking * jc2) zcot = cotan(zworking) elseif @eqselection == 9 znminus2 = (zworking)^powerminus2 zsin = sin(zworking) zcot = cotan(zworking * jc3) elseif @eqselection == 10 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking * jc2) zcot = cotan(zworking) elseif @eqselection == 11 znminus2 = (zworking)^powerminus2 zsin = sin(zworking * jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 12 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking) zcot = cotan(zworking * jc3) elseif @eqselection == 13 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking * jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 14 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking * jc2) zcot = cotan(zworking) elseif @eqselection == 15 znminus2 = (zworking)^powerminus2 zsin = sin(zworking + jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 16 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking) zcot = cotan(zworking * jc3) elseif @eqselection == 17 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking + jc2) zcot = cotan(zworking) elseif @eqselection == 18 znminus2 = (zworking)^powerminus2 zsin = sin(zworking * jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 19 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking) zcot = cotan(zworking + jc3) elseif @eqselection == 20 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking * jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 21 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking + jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 22 znminus2 = (zworking + jc1)^powerminus2 zsin = sin(zworking * jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 23 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking + jc2) zcot = cotan(zworking + jc3) elseif @eqselection == 24 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking + jc2) zcot = cotan(zworking * jc3) elseif @eqselection == 25 znminus2 = (zworking * jc1)^powerminus2 zsin = sin(zworking * jc2) zcot = cotan(zworking + jc3) endif ; @eqselection znminus = znminus2 * zworking zn = znminus * zworking zcsc = 1/zsin zexc - zcsc - 1 funcresult = zn - zexc + @const derivresult = @power * znminus + zcsc * zcot deriv2result = powerpowerminus * znminus2 - zcsc * (2 * sqr(zcot) + 1) zquotient = funcresult * derivresult / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n - exc(z) + c Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (2,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-znexszHalley { ; jam 161207 ; ; Uses Halley's method to find the roots ; of z^n - exs(z) + constant = 0 (exsecant function). Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) complex powerminus = @power - (1,0) complex powerminus2 = powerminus - (1,0) complex powerpowerminus = powerminus * @power ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = complex deriv2result = (0,0) complex zn = complex znminus = complex znminus2 = complex ztan = (0,0) complex zcos = complex zsec = complex zexs = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking) ztan = tan(zworking) elseif @eqselection == 1 znminus2 = (zworking)^powerminus2 zcos = cos(zworking + jc2) ztan = tan(zworking) elseif @eqselection == 2 znminus2 = (zworking)^powerminus2 zcos = cos(zworking) ztan = tan(zworking + jc3) elseif @eqselection == 3 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking + jc2) ztan = tan(zworking) elseif @eqselection == 4 znminus2 = (zworking)^powerminus2 zcos = cos(zworking + jc2) ztan = tan(zworking + jc3) elseif @eqselection == 5 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking) ztan = tan(zworking + jc3) elseif @eqselection == 6 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking + jc2) ztan = tan(zworking + jc3) elseif @eqselection == 7 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking) ztan = tan(zworking) elseif @eqselection == 8 znminus2 = (zworking)^powerminus2 zcos = cos(zworking * jc2) ztan = tan(zworking) elseif @eqselection == 9 znminus2 = (zworking)^powerminus2 zcos = cos(zworking) ztan = tan(zworking * jc3) elseif @eqselection == 10 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking * jc2) ztan = tan(zworking) elseif @eqselection == 11 znminus2 = (zworking)^powerminus2 zcos = cos(zworking * jc2) ztan = tan(zworking * jc3) elseif @eqselection == 12 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking) ztan = tan(zworking * jc3) elseif @eqselection == 13 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking * jc2) ztan = tan(zworking * jc3) elseif @eqselection == 14 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking * jc2) ztan = tan(zworking) elseif @eqselection == 15 znminus2 = (zworking)^powerminus2 zcos = cos(zworking + jc2) ztan = tan(zworking * jc3) elseif @eqselection == 16 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking) ztan = tan(zworking * jc3) elseif @eqselection == 17 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking + jc2) ztan = tan(zworking) elseif @eqselection == 18 znminus2 = (zworking)^powerminus2 zcos = cos(zworking * jc2) ztan = tan(zworking + jc3) elseif @eqselection == 19 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking) ztan = tan(zworking + jc3) elseif @eqselection == 20 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking * jc2) ztan = tan(zworking * jc3) elseif @eqselection == 21 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking + jc2) ztan = tan(zworking * jc3) elseif @eqselection == 22 znminus2 = (zworking + jc1)^powerminus2 zcos = cos(zworking * jc2) ztan = tan(zworking + jc3) elseif @eqselection == 23 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking + jc2) ztan = tan(zworking + jc3) elseif @eqselection == 24 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking + jc2) ztan = tan(zworking * jc3) elseif @eqselection == 25 znminus2 = (zworking * jc1)^powerminus2 zcos = cos(zworking * jc2) ztan = tan(zworking + jc3) endif ; @eqselection znminus = znminus2 * zworking zn = znminus * zworking zsec = 1/zcos zexs - zsec - 1 funcresult = zn - zexs + @const derivresult = @power * znminus - zsec * ztan deriv2result = powerpowerminus * znminus2 - zsec * (2 * sqr(ztan) + 1) zquotient = funcresult * derivresult / (0.5 * funcresult * deriv2result - sqr(derivresult)) zworking = zworking + zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "z^n - exs(z) + c Halley" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param power caption = "Exponent" default = (2,0) hint = "This is the power to which #z will be raised." endparam param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-coszverzNwt { ; jam 161219 ; ; Uses Newton's method to find the roots ; of cos(z) - ver(z) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zcos = complex zsin = complex zver = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 zcos = cos(zworking + jc1) zver = 1 - cos(zworking) zsin = sin(zworking) elseif @eqselection == 1 zcos = cos(zworking) zver = 1 - cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 2 zcos = cos(zworking) zver = 1 - cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 3 zcos = cos(zworking + jc1) zver = 1 - cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 4 zcos = cos(zworking) zver = 1 - cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 5 zcos = cos(zworking + jc1) zver = 1 - cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 6 zcos = cos(zworking + jc1) zver = 1 - cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 7 zcos = cos(zworking * jc1) zver = 1 - cos(zworking) zsin = sin(zworking) elseif @eqselection == 8 zcos = cos(zworking) zver = 1 - cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 9 zcos = cos(zworking) zver = 1 - cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 10 zcos = cos(zworking * jc1) zver = 1 - cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 11 zcos = cos(zworking) zver = 1 - cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 12 zcos = cos(zworking * jc1) zver = 1 - cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 13 zcos = cos(zworking * jc1) zver = 1 - cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 14 zcos = cos(zworking + jc1) zver = 1 - cos(zworking * jc2) zsin = sin(zworking) elseif @eqselection == 15 zcos = cos(zworking) zver = 1 - cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 16 zcos = cos(zworking + jc1) zver = 1 - cos(zworking) zsin = sin(zworking * jc3) elseif @eqselection == 17 zcos = cos(zworking * jc1) zver = 1 - cos(zworking + jc2) zsin = sin(zworking) elseif @eqselection == 18 zcos = cos(zworking) zver = 1 - cos(zworking * jc2) zsin = sin(zworking + jc3) elseif @eqselection == 19 zcos = cos(zworking * jc1) zver = 1 - cos(zworking) zsin = sin(zworking + jc3) elseif @eqselection == 20 zcos = cos(zworking + jc1) zver = 1 - cos(zworking * jc2) zsin = sin(zworking * jc3) elseif @eqselection == 21 zcos = cos(zworking + jc1) zver = 1 - cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 22 zcos = cos(zworking + jc1) zver = 1 - cos(zworking * jc2) zsin = sin(zworking + jc3) elseif @eqselection == 23 zcos = cos(zworking * jc1) zver = 1 - cos(zworking + jc2) zsin = sin(zworking + jc3) elseif @eqselection == 24 zcos = cos(zworking * jc1) zver = 1 - cos(zworking + jc2) zsin = sin(zworking * jc3) elseif @eqselection == 25 zcos = cos(zworking * jc1) zver = 1 - cos(zworking * jc2) zsin = sin(zworking + jc3) endif ; @eqselection funcresult = zcos - zver + @const derivresult = -2 * zsin zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "cos(z) - ver(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam } jam-sinexpcosNwt { ; jam 170524 ; ; Uses Newton's method to find the roots ; of sin(e^-z) * sin(e^z) - cos(mz) + constant = 0. Set the ; bailout value to some large number. ; global: complex jc1 = complex jc2 = complex jc3 = (0,0) ; fix the jc's for those that are multiplicative rather than additive if !@explore if @eqselection == 7 jc1 = (1,0) elseif @eqselection == 8 jc2 = (1,0) elseif @eqselection == 9 jc3 = (1,0) elseif @eqselection == 10 jc1 = (1,0), jc2 = (1,0) elseif @eqselection == 11 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 12 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 13 jc1 = (1,0), jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 14 jc2 = (1,0) elseif @eqselection == 15 jc3 = (1,0) elseif @eqselection == 16 jc3 = (1,0) elseif @eqselection == 17 jc1 = (1,0) elseif @eqselection == 18 jc2 = (1,0) elseif @eqselection == 19 jc1 = (1,0) elseif @eqselection == 20 jc2 = (1,0), jc3 = (1,0) elseif @eqselection == 21 jc3 = (1,0) elseif @eqselection == 22 jc2 = (1,0) elseif @eqselection == 23 jc1 = (1,0) elseif @eqselection == 24 jc1 = (1,0), jc3 = (1,0) elseif @eqselection == 25 jc1 = (1,0), jc2 = (1,0) endif ; @eqselection else ; Explore Mode is enabled jc1 = @jconstant1 jc2 = @jconstant2 jc3 = @jconstant3 endif ; @explore init: complex zworking = #pixel complex funcresult = complex derivresult = (0,0) complex zcos = complex zsin = complex zexp = complex zmexp = (0,0) complex zmsin = (0,0) complex zquotient = (0,0) loop: if @eqselection == 0 zcos = cos(zworking + jc1) zexp = exp(zworking) zsin = sin(zworking) elseif @eqselection == 1 zcos = cos(zworking) zexp = exp(zworking + jc2) zsin = sin(zexp) elseif @eqselection == 2 zcos = cos(zworking) zexp = exp(zworking) zsin = sin(zexp + jc3) elseif @eqselection == 3 zcos = cos(zworking + jc1) zexp = exp(zworking + jc2) zsin = sin(zexp) elseif @eqselection == 4 zcos = cos(zworking) zexp = exp(zworking + jc2) zsin = sin(zexp + jc3) elseif @eqselection == 5 zcos = cos(zworking + jc1) zexp = exp(zworking) zsin = sin(zexp + jc3) elseif @eqselection == 6 zcos = cos(zworking + jc1) zexp = exp(zworking + jc2) zsin = sin(zexp + jc3) elseif @eqselection == 7 zcos = cos(zworking * jc1) zexp = exp(zworking) zsin = sin(zexp) elseif @eqselection == 8 zcos = cos(zworking) zexp = exp(zworking * jc2) zsin = sin(zexp) elseif @eqselection == 9 zcos = cos(zworking) zexp = exp(zworking) zsin = sin(zexp * jc3) elseif @eqselection == 10 zcos = cos(zworking * jc1) zexp = exp(zworking * jc2) zsin = sin(zexp) elseif @eqselection == 11 zcos = cos(zworking) zexp = exp(zworking * jc2) zsin = sin(zexp * jc3) elseif @eqselection == 12 zcos = cos(zworking * jc1) zexp = exp(zworking) zsin = sin(zexp * jc3) elseif @eqselection == 13 zcos = cos(zworking * jc1) zexp = exp(zworking * jc2) zsin = sin(zexp * jc3) elseif @eqselection == 14 zcos = cos(zworking + jc1) zexp = exp(zworking * jc2) zsin = sin(zexp) elseif @eqselection == 15 zcos = cos(zworking) zexp = exp(zworking + jc2) zsin = sin(zexp * jc3) elseif @eqselection == 16 zcos = cos(zworking + jc1) zexp = exp(zworking) zsin = sin(zexp * jc3) elseif @eqselection == 17 zcos = cos(zworking * jc1) zexp = exp(zworking + jc2) zsin = sin(zexp) elseif @eqselection == 18 zcos = cos(zworking) zexp = exp(zworking * jc2) zsin = sin(zexp + jc3) elseif @eqselection == 19 zcos = cos(zworking * jc1) zexp = exp(zworking) zsin = sin(zexp + jc3) elseif @eqselection == 20 zcos = cos(zworking + jc1) zexp = exp(zworking * jc2) zsin = sin(zexp * jc3) elseif @eqselection == 21 zcos = cos(zworking + jc1) zexp = exp(zworking + jc2) zsin = sin(zexp * jc3) elseif @eqselection == 22 zcos = cos(zworking + jc1) zexp = exp(zworking * jc2) zsin = sin(zexp + jc3) elseif @eqselection == 23 zcos = cos(zworking * jc1) zexp = exp(zworking + jc2) zsin = sin(zexp + jc3) elseif @eqselection == 24 zcos = cos(zworking * jc1) zexp = exp(zworking + jc2) zsin = sin(zexp * jc3) elseif @eqselection == 25 zcos = cos(zworking * jc1) zexp = exp(zworking * jc2) zsin = sin(zexp + jc3) endif ; @eqselection zmexp = exp(-z) zmsin = sin(zmexp) funcresult = zsin * zmsin - zcos + @const derivresult = zexp*cos(zexp)*zmsin - zmexp*zsin*cos(zmexp) + zsin zquotient = funcresult/derivresult zworking = zworking - zquotient #z = 1/zquotient bailout: |#z| < @bailout default: title = "sin(exp(z))*sin(exp(-z)) - cos(z) + c" maxiter = 1000 periodicity = 0 method = multipass center = (0,0) magn = 1.0 angle = 0.0 param const caption = "Constant Term" default = (0,0) hint = "This parameter is the constant term of the equation." endparam param explore caption = "Explore Mode" default = FALSE hint = "When enabled, the 'Equation Selection' options use the values set in parameters \ 'Seed 1', 'Seed 2', and 'Seed 3' rather than the default, built-in \ values. Use the Explore tool to find interesting values. Not \ all 'Equation Selection' options are affected by every 'Seed' \ constant." endparam param eqselection caption = "Equation Selection" enum = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" \ "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" \ "20" "21" "22" "23" "24" "25" default = 0 hint = "This parameter selects which modification of the equation to iterate. \ If 'Explore Mode' is NOT enabled, then all these 'Equation Selection' options \ use the same internal defaults and yield the same results." visible = @explore endparam param jconstant1 caption = "Seed 1" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 1' is used in 'Equation \ Selection' options 0, 3, 5, 6, 7, 10, 12, 13, 14, 16, 17, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant2 caption = "Seed 2" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 2' is used in 'Equation \ Selection' options 1, 3, 4, 6, 8, 10, 11, 13, 14, 15, 17, 18, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param jconstant3 caption = "Seed 3" default = (0,0) hint = "This seed is used for some of the 'Equation Selection' options \ if parameter 'Explore Mode' is enabled. 'Seed 3' is used in 'Equation \ Selection' options 2, 4, 5, 6, 9, 11, 12, 13, 15, 16, 18, 19, 20, \ 21, 22, 23, 24, and 25." visible = @explore endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "Use a large bailout value." endparam }