jam-TanhTrap2 { ; jam 011002 ; A Mandelbrot-type formula is iterated, but if z falls within the trap \ ; threshold of the tanh graph, the coordinates of the trap point are added \ ; to the calculation, rather than the pixel coordinates. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif float twopi = 2.0 * #pi complex center = @centr, float scale = @tscale ; tanh origin, size float rotation = @rotate * #pi / 180 if rotation < 0 rotation = rotation + twopi endif ; rotation rotation = -rotation ; so the routine won't have to negate at each iteration complex ztemp = (0,0), complex tempconstant = jc complex ttemp = (0,0) int iter = 0 loop: iter = iter + 1 tempconstant = jc if iter > @skipped ; Center z at the tanh center, rotate if appropriate ztemp = (z - center) * exp( flip( rotation)) ; Find point on tanh graph trapped by ztemp tempx = scale * real( ztemp ), tempy = tanh( tempx ) ttemp = tempx + flip( tempy ) ; Is z near trap? if cabs(ztemp - ttemp) <= @threshold ; yes, it is tempconstant = ttemp endif ; cabs endif ; iter ; Now execute the chosen fractal formula z = ( @zfunc(z))^@zpower + tempconstant bailout: |z| < @bail default: title = "TanhTrap 2" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param centr caption = "Tanh Origin" default = (-0.5,0) hint = "Where is the tanh graph centered?" endparam param tscale caption = "Tanh Scale" default = 1.0 hint = "How big is the tanh graph?" endparam param rotate caption = "Rotation" default = 30.0 min = -179.9 max = 359.9 hint = "How much should the tanh graph be rotated from its default position (degrees)?" endparam param threshold caption = "Threshold" default = 0.5 hint = "Depth of well; z is trapped if it lies within this distance of the tanh graph" endparam param zpower caption = "Z Exponent" default = (2,0) hint = "This parameter is the power used for the Mandelbrot/Julia iteration" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param skipped caption = "Iterations to Skip" default = 0 hint = "Trapping will not be monitored until after this many normal \ Mandelbrot/Julia iterations" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam func zfunc caption = "Z Function" default = ident() hint = "Optional function applied to z before exponentiation" endfunc switch: type = "jam-TanhTrap2-J" jconstant = #pixel bail = bail centr = centr tscale = tscale rotate = rotate threshold = threshold zpower = zpower skipped = skipped zfunc = zfunc } jam-TanhTrap2-J { ; jam 011002 ; A Mandelbrot-type formula is iterated, but if z falls within the trap \ ; threshold of the tanh graph, the coordinates of the trap point are added \ ; to the calculation, rather than the pixel coordinates. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif float twopi = 2.0 * #pi complex center = @centr, float scale = @tscale ; tanh origin, size float rotation = @rotate * #pi / 180 if rotation < 0 rotation = rotation + twopi endif ; rotation rotation = -rotation ; so the routine won't have to negate at each iteration complex ztemp = (0,0), complex tempconstant = jc complex ttemp = (0,0) int iter = 0 loop: iter = iter + 1 tempconstant = jc if iter > @skipped ; Center z at the tanh center, rotate if appropriate ztemp = (z - center) * exp( flip( rotation)) ; Find point on tanh graph trapped by ztemp tempx = scale * real( ztemp ), tempy = tanh( tempx ) ttemp = tempx + flip( tempy ) ; Is z near trap? if cabs(ztemp - ttemp) <= @threshold ; yes, it is tempconstant = ttemp endif ; cabs endif ; iter ; Now execute the chosen fractal formula z = ( @zfunc(z))^@zpower + tempconstant bailout: |z| < @bail default: title = "TanhTrap 2 Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param centr caption = "Tanh Origin" default = (-0.5,0) hint = "Where is the tanh graph centered?" endparam param tscale caption = "Tanh Scale" default = 1.0 hint = "How big is the tanh graph?" endparam param rotate caption = "Rotation" default = 30.0 min = -179.9 max = 359.9 hint = "How much should the tanh graph be rotated from its default position (degrees)?" endparam param threshold caption = "Threshold" default = 0.5 hint = "Depth of well; z is trapped if it lies within this distance of the tanh graph" endparam param zpower caption = "Z Exponent" default = (2,0) hint = "This parameter is the power used for the Mandelbrot/Julia iteration" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param skipped caption = "Iterations to Skip" default = 0 hint = "Trapping will not be monitored until after this many normal \ Mandelbrot/Julia iterations" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam func zfunc caption = "Z Function" default = ident() hint = "Optional function applied to z before exponentiation" endfunc switch: type = "jam-TanhTrap2" perturbation = #pixel bail = bail centr = centr tscale = tscale rotate = rotate threshold = threshold zpower = zpower skipped = skipped zfunc = zfunc } jam-CardioidTrap2 { ; jam 011001 ; A Mandelbrot-type formula is iterated, but if z falls within the trap \ ; threshold of the cardioid, the coordinates of the trap point are added \ ; to the calculation, rather than the pixel coordinates. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif float twopi = 2.0 * #pi complex center = @centr, float scale = @tscale ; cardioid origin, size float rotation = @rotate * #pi / 180 if rotation < 0 rotation = rotation + twopi endif ; rotation rotation = -rotation ; so the routine won't have to negate at each iteration complex ztemp = (0,0), complex tempconstant = jc float zangle = 0.0, complex ttemp = (0,0) int iter = 0, float temp = 0.0 loop: iter = iter + 1 tempconstant = jc if iter > @skipped ; Center z at the cardioid center, rotate if appropriate, then find its azimuth ztemp = (z - center) * exp( flip( rotation)) zangle = atan2( ztemp ) ; angle of z with respect to cardioid origin if zangle < 0 zangle = zangle + twopi ; 0 <= zangle <= twopi endif ; zangle temp = scale * ( 1 + cos( zangle )) ; radius to cardioid point in direction of z ttemp = temp * exp( flip( zangle )) ; point on cardioid trapped by z ; Is z near trap? if cabs(ztemp - ttemp) <= @threshold ; yes, it is tempconstant = ttemp endif ; cabs endif ; iter ; Now execute the chosen fractal formula z = ( @zfunc(z))^@zpower + tempconstant bailout: |z| < @bail default: title = "CardioidTrap 2" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param centr caption = "Cardioid Origin" default = (0,0) hint = "Where is the cardioid centered?" endparam param tscale caption = "Cardioid Scale" default = 1.0 hint = "How big is the cardioid?" endparam param rotate caption = "Rotation" default = 0.0 min = -179.9 max = 359.9 hint = "How much should the cardioid be rotated from its default position (degrees)?" endparam param threshold caption = "Threshold" default = 0.5 hint = "Depth of well; z is trapped if it lies within this distance of cardioid" endparam param zpower caption = "Z Exponent" default = (2,0) hint = "This parameter is the power used for the Mandelbrot/Julia iteration" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param skipped caption = "Iterations to Skip" default = 0 hint = "Trapping will not be monitored until after this many normal \ Mandelbrot/Julia iterations" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam func zfunc caption = "Z Function" default = ident() hint = "Optional function applied to z before exponentiation" endfunc switch: type = "jam-CardioidTrap2-J" jconstant = #pixel bail = bail centr = centr tscale = tscale rotate = rotate threshold = threshold zpower = zpower skipped = skipped zfunc = zfunc } jam-CardioidTrap2-J { ; jam 011001 ; A Mandelbrot-type formula is iterated, but if z falls within the trap \ ; threshold of the cardioid, the coordinates of the trap point are added \ ; to the calculation, rather than the pixel coordinates. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif float twopi = 2.0 * #pi complex center = @centr, float scale = @tscale ; cardioid origin, size float rotation = @rotate * #pi / 180 if rotation < 0 rotation = rotation + twopi endif ; rotation rotation = -rotation ; so the routine won't have to negate at each iteration complex ztemp = (0,0), complex tempconstant = jc float zangle = 0.0, complex ttemp = (0,0) int iter = 0, float temp = 0.0 loop: iter = iter + 1 tempconstant = jc if iter > @skipped ; Center z at the cardioid center, rotate if appropriate, then find its azimuth ztemp = (z - center) * exp( flip( rotation)) zangle = atan2( ztemp ) ; angle of z with respect to cardioid origin if zangle < 0 zangle = zangle + twopi ; 0 <= zangle <= twopi endif ; zangle temp = scale * ( 1 + cos( zangle )) ; radius to cardioid point in direction of z ttemp = temp * exp( flip( zangle )) ; point on cardioid trapped by z ; Is z near trap? if cabs(ztemp - ttemp) <= @threshold ; yes, it is tempconstant = ttemp endif ; cabs endif ; iter ; Now execute the chosen fractal formula z = ( @zfunc(z))^@zpower + tempconstant bailout: |z| < @bail default: title = "CardioidTrap 2 Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param centr caption = "Cardioid Origin" default = (0,0) hint = "Where is the cardioid centered?" endparam param tscale caption = "Cardioid Scale" default = 1.0 hint = "How big is the cardioid?" endparam param rotate caption = "Rotation" default = 0.0 min = -179.9 max = 359.9 hint = "How much should the cardioid be rotated from its default position (degrees)?" endparam param threshold caption = "Threshold" default = 0.5 hint = "Depth of well; z is trapped if it lies within this distance of cardioid" endparam param zpower caption = "Z Exponent" default = (2,0) hint = "This parameter is the power used for the Mandelbrot/Julia iteration" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param skipped caption = "Iterations to Skip" default = 0 hint = "Trapping will not be monitored until after this many normal \ Mandelbrot/Julia iterations" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam func zfunc caption = "Z Function" default = ident() hint = "Optional function applied to z before exponentiation" endfunc switch: type = "jam-CardioidTrap2" perturbation = #pixel bail = bail centr = centr tscale = tscale rotate = rotate threshold = threshold zpower = zpower skipped = skipped zfunc = zfunc } jam-CircleTrap2 { ; jam 011001 ; A Mandelbrot-type formula is iterated, but if z falls within the trap \ ; threshold of the circle, the coordinates of the trap point are added \ ; to the calculation, rather than the pixel coordinates. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif float twopi = 2.0 * #pi complex center = @centr, float scale = @tscale ; circle origin, size complex ztemp = (0,0), complex tempconstant = jc float zangle = 0.0, complex ttemp = (0,0) int iter = 0 loop: iter = iter + 1 tempconstant = jc if iter > @skipped ; Center z at the circle center, rotate if appropriate, then find its azimuth ztemp = z - center zangle = atan2( ztemp ) ; angle of z with respect to circle center if zangle < 0 zangle = zangle + twopi ; 0 <= zangle <= twopi endif ; zangle ttemp = scale * exp( flip( zangle )) ; point on circle trapped by z ; Is z near trap? if cabs(ztemp - ttemp) <= @threshold ; yes, it is tempconstant = ttemp endif ; cabs endif ; iter ; Now execute the chosen fractal formula z = ( @zfunc(z))^@zpower + tempconstant bailout: |z| < @bail default: title = "CircleTrap 2" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param centr caption = "Circle Origin" default = (0,0) hint = "Where is the circle centered?" endparam param tscale caption = "Circle Radius" default = 1.0 hint = "How big is the circle?" endparam param threshold caption = "Threshold" default = 0.5 hint = "Depth of well; z is trapped if it lies within this distance of circle" endparam param zpower caption = "Z Exponent" default = (2,0) hint = "This parameter is the power used for the Mandelbrot/Julia iteration" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param skipped caption = "Iterations to Skip" default = 0 hint = "Trapping will not be monitored until after this many normal \ Mandelbrot/Julia iterations" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam func zfunc caption = "Z Function" default = ident() hint = "Optional function applied to z before exponentiation" endfunc switch: type = "jam-CircleTrap2-J" jconstant = #pixel bail = bail centr = centr tscale = tscale threshold = threshold zpower = zpower skipped = skipped zfunc = zfunc } jam-CircleTrap2-J { ; jam 011001 ; A Mandelbrot-type formula is iterated, but if z falls within the trap \ ; threshold of the circle, the coordinates of the trap point are added \ ; to the calculation, rather than the pixel coordinates. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif float twopi = 2.0 * #pi complex center = @centr, float scale = @tscale ; circle origin, size complex ztemp = (0,0), complex tempconstant = jc float zangle = 0.0, complex ttemp = (0,0) int iter = 0 loop: iter = iter + 1 tempconstant = jc if iter > @skipped ; Center z at the circle center, rotate if appropriate, then find its azimuth ztemp = z - center zangle = atan2( ztemp ) ; angle of z with respect to circle center if zangle < 0 zangle = zangle + twopi ; 0 <= zangle <= twopi endif ; zangle ttemp = scale * exp( flip( zangle )) ; point on circle trapped by z ; Is z near trap? if cabs(ztemp - ttemp) <= @threshold ; yes, it is tempconstant = ttemp endif ; cabs endif ; iter ; Now execute the chosen fractal formula z = ( @zfunc(z))^@zpower + tempconstant bailout: |z| < @bail default: title = "CircleTrap 2 Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param centr caption = "Circle Origin" default = (0,0) hint = "Where is the circle centered?" endparam param tscale caption = "Circle Radius" default = 1.0 hint = "How big is the circle?" endparam param threshold caption = "Threshold" default = 0.5 hint = "Depth of well; z is trapped if it lies within this distance of circle" endparam param zpower caption = "Z Exponent" default = (2,0) hint = "This parameter is the power used for the Mandelbrot/Julia iteration" endparam param bail caption = "Bailout Value" default = 100.0 hint = "Value needed to 'escape' to infinity" endparam param skipped caption = "Iterations to Skip" default = 0 hint = "Trapping will not be monitored until after this many normal \ Mandelbrot/Julia iterations" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam func zfunc caption = "Z Function" default = ident() hint = "Optional function applied to z before exponentiation" endfunc switch: type = "jam-CircleTrap2" perturbation = #pixel bail = bail centr = centr tscale = tscale threshold = threshold zpower = zpower skipped = skipped zfunc = zfunc } jam-spliceMan { ; jam 011217 ; Mandelbrot/Julia in which 2 independent formulas ; are executed on each iteration, with the final #z resulting ; from a user-specified splicing together of the real & imaginary ; parts from Formulas 1 & 2. ; The 3-term polynomial formula option is ; z = ( CoeffA * z^ExponentA ) + ( CoeffB * z^ExponentB ) + ( CoeffC * z^ExponentC ) + constant init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) complex zextra = complex temp2 = (0,0) ; temp/spare scratch variable complex tempform1 = complex tempform2 = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: if @pmode != 0 #z = #z + jc endif ; pmode zblend = z ; Execute 1st formula selection if @formula1 == 0 tempform1 = #z * #z elseif @formula1 == 1 tempform1 = #z * #z * #z elseif @formula1 == 2 zextra = #z * #z tempform1 = zextra * zextra elseif @formula1 <= 60 if @formula1 <= 30 if @formula1 == 3 tempform1 = #z ^ @power1 elseif @formula1 == 4 tempform1 = 1/#z elseif @formula1 == 5 tempform1 = sqrt(#z) elseif @formula1 == 6 tempform1 = 1 / ( #z * #z ) elseif @formula1 == 7 tempform1 = log(#z) elseif @formula1 == 8 tempform1 = exp( #z) elseif @formula1 == 9 tempform1 = #z^#z elseif @formula1 == 10 tempform1 = sin( #z ) elseif @formula1 == 11 tempform1 = cos( #z ) elseif @formula1 == 12 tempform1 = tan( #z ) elseif @formula1 == 13 tempform1 = asin( #z ) elseif @formula1 == 14 tempform1 = acos( #z ) elseif @formula1 == 15 tempform1 = atan( #z ) elseif @formula1 == 16 tempform1 = sinh( #z ) elseif @formula1 == 17 tempform1 = cosh( #z ) elseif @formula1 == 18 tempform1 = tanh( #z ) elseif @formula1 == 19 tempform1 = asinh( #z ) elseif @formula1 == 20 tempform1 = acosh( #z ) elseif @formula1 == 21 tempform1 = atanh( #z ) elseif @formula1 == 22 tempform1 = log( 1/#z ) elseif @formula1 == 23 tempform1 = log( log( #z )) elseif @formula1 == 24 tempform1 = exp( -#z ) elseif @formula1 == 25 tempform1 = exp( 1/#z ) elseif @formula1 == 26 tempform1 = #z^(-#z) elseif @formula1 == 27 zextra = sin( #z ) tempform1 = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) tempform1 = zextra * zextra elseif @formula1 == 29 zextra = tan( #z ) tempform1 = zextra * zextra else ; @formula1 == 30 tempform1 = cotan( #z ) endif ; formula1-3 else ; 30 < @formula1 <= 60 if @formula1 == 31 tempform1 = 1/cos( #z ) elseif @formula1 == 32 tempform1 = 1/sin( #z ) elseif @formula1 == 33 zextra = cotan( #z ) tempform1 = zextra * zextra elseif @formula1 == 34 zextra = 1/cos( #z ) tempform1 = zextra * zextra elseif @formula1 == 35 zextra = 1/sin( #z ) tempform1 = zextra * zextra elseif @formula1 == 36 zextra = #z^(#z) tempform1 = #z^zextra elseif @formula1 == 37 zextra = #z^(#z) tempform1 = 1/( #z^zextra ) elseif @formula1 == 38 tempform1 = log(-#z) elseif @formula1 == 39 tempform1 = 1/log( #z ) elseif @formula1 == 40 tempform1 = #z * log( #z ) elseif @formula1 == 41 tempform1 = sin( #z ) / #z elseif @formula1 == 42 tempform1 = cos( #z ) / #z elseif @formula1 == 43 tempform1 = sin( #z ) * cos( #z ) elseif @formula1 == 44 tempform1 = sin( #z^2 ) elseif @formula1 == 45 tempform1 = exp( -1/#z ) elseif @formula1 == 46 tempform1 = #z * exp( #z ) elseif @formula1 == 47 tempform1 = #z * exp( -#z ) elseif @formula1 == 48 tempform1 = #z * exp( 1/#z ) elseif @formula1 == 49 tempform1 = #z * exp( -1/#z ) elseif @formula1 == 50 tempform1 = #z * #z * #z elseif @formula1 == 51 tempform1 = 1 / ( #z * #z * #z ) elseif @formula1 == 52 tempform1 = atan( 1 / #z ) elseif @formula1 == 53 tempform1 = acos( 1 / #z ) elseif @formula1 == 54 tempform1 = asin( 1 / #z ) elseif @formula1 == 55 tempform1 = tan( #z ) / #z elseif @formula1 == 56 tempform1 = cotan( #z ) / #z elseif @formula1 == 57 tempform1 = 1 / ( #z * cos( #z )) elseif @formula1 == 58 tempform1 = 1 / ( #z * sin( #z )) elseif @formula1 == 59 tempform1 = #z * sin( #z ) else ; @formula1 == 60 tempform1 = #z * cos( #z ) endif ; formula1-3 endif ; formula1-2 elseif @formula1 <= 90 if @formula1 == 61 tempform1 = #z * tan( #z ) elseif @formula1 == 62 tempform1 = #z * cotan( #z ) elseif @formula1 == 63 tempform1 = #z/cos( #z ) elseif @formula1 == 64 tempform1 = #z/sin( #z ) elseif @formula1 == 65 tempform1 = sin( 1/#z ) elseif @formula1 == 66 tempform1 = cos( 1/#z ) elseif @formula1 == 67 tempform1 = tan( 1/#z ) elseif @formula1 == 68 tempform1 = cotan( 1/#z ) elseif @formula1 == 69 tempform1 = 1/cos( 1/#z ) elseif @formula1 == 70 tempform1 = 1/sin( 1/#z ) elseif @formula1 == 71 tempform1 = cotanh( #z ) elseif @formula1 == 72 tempform1 = 1/cosh( #z ) elseif @formula1 == 73 tempform1 = 1/sinh( #z ) elseif @formula1 == 74 tempform1 = atanh( 1/#z ) elseif @formula1 == 75 tempform1 = acosh( 1/#z ) elseif @formula1 == 76 tempform1 = asinh( 1/#z ) elseif @formula1 == 77 tempform1 = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c elseif @formula1 == 78 zextra = sinh(#z) tempform1 = zextra * zextra elseif @formula1 == 79 zextra = cosh( #z ) tempform1 = zextra * zextra elseif @formula1 == 80 zextra = tanh(#z) tempform1 = zextra * zextra elseif @formula1 == 81 zextra = cotanh( #z ) tempform1 = zextra * zextra elseif @formula1 == 82 zextra = (1,0)/cosh(#z) tempform1 = zextra * zextra elseif @formula1 == 83 zextra = (1,0) / sinh( #z ) tempform1 = zextra * zextra elseif @formula1 == 84 tempform1 = sinh(1/#z) elseif @formula1 == 85 tempform1 = cosh(1/#z) elseif @formula1 == 86 tempform1 = tanh(1/#z) elseif @formula1 == 87 tempform1 = cotanh(1/#z) elseif @formula1 == 88 tempform1 = (1,0)/cosh(1/#z) elseif @formula1 == 89 tempform1 = (1,0)/sinh(1/#z) else ; @formula1 == 90 tempform1 = sin( #z ) * tan(#z) endif ; formula1-2 else ; 90 < @formula1 <= 120 if @formula1 == 91 tempform1 = sinh(#z) * tanh(#z) elseif @formula1 == 92 tempform1 = sinh(#z) * cosh(#z) elseif @formula1 == 93 temp2 = sinh(#z), zextra = cosh(#z) tempform1 = temp2*temp2*zextra*zextra elseif @formula1 == 94 temp2 = sin(#z), zextra = cos(#z) tempform1 = temp2*temp2*zextra*zextra elseif @formula1 == 95 zextra = 1/#z tempform1 = sin(zextra)*cos(zextra) elseif @formula1 == 96 zextra = sin( 1/#z ) tempform1 = zextra*zextra elseif @formula1 == 97 tempform1 = sin(#z) * cos(1/#z) elseif @formula1 == 98 tempform1 = sin(#z) * sin(1/#z) elseif @formula1 == 99 zextra = log(#z) tempform1 = zextra*zextra elseif @formula1 == 100 tempform1 = sin(#z) * sin(2*#z) elseif @formula1 == 101 tempform1 = exp(2*#z) elseif @formula1 == 102 tempform1 = exp(-2*#z) elseif @formula1 == 103 zextra = 1/#z tempform1 = sinh(zextra)*cosh(zextra) elseif @formula1 == 104 zextra = sinh( 1/#z ) tempform1 = zextra*zextra elseif @formula1 == 105 tempform1 = sinh(#z) * cosh(1/#z) elseif @formula1 == 106 tempform1 = sinh(#z) * sinh(1/#z) elseif @formula1 == 107 tempform1 = sin(#z) * sinh(#z) elseif @formula1 == 108 tempform1 = sin(#z) * cosh(#z) elseif @formula1 == 109 zextra = sin(#z), temp2 = sinh(#z) tempform1 = temp2*temp2*zextra*zextra elseif @formula1 == 110 tempform1 = sin(#z)*exp(#z) elseif @formula1 == 111 tempform1 = cos(#z)*exp(#z) elseif @formula1 == 112 tempform1 = sinh(#z)*exp(#z) elseif @formula1 == 113 tempform1 = cosh(#z)*exp(#z) elseif @formula1 == 114 tempform1 = sin(#z)*log(#z) elseif @formula1 == 115 tempform1 = cos(#z)*log(#z) elseif @formula1 == 116 tempform1 = sinh(#z)*log(#z) else ; @formula1 == 117 tempform1 = cosh(#z)*log(#z) endif ; formula1-2 endif ; formula1-1 ; Execute 2nd formula selection if @formula2 == 0 tempform2 = #z * #z elseif @formula2 == 1 tempform2 = #z * #z * #z elseif @formula2 == 2 zextra = #z * #z tempform2 = zextra * zextra elseif @formula2 <= 60 if @formula2 <= 30 if @formula2 == 3 tempform2 = #z ^ @power2 elseif @formula2 == 4 tempform2 = 1/#z elseif @formula2 == 5 tempform2 = sqrt(#z) elseif @formula2 == 6 tempform2 = 1 / ( #z * #z ) elseif @formula2 == 7 tempform2 = log(#z) elseif @formula2 == 8 tempform2 = exp( #z) elseif @formula2 == 9 tempform2 = #z^#z elseif @formula2 == 10 tempform2 = sin( #z ) elseif @formula2 == 11 tempform2 = cos( #z ) elseif @formula2 == 12 tempform2 = tan( #z ) elseif @formula2 == 13 tempform2 = asin( #z ) elseif @formula2 == 14 tempform2 = acos( #z ) elseif @formula2 == 15 tempform2 = atan( #z ) elseif @formula2 == 16 tempform2 = sinh( #z ) elseif @formula2 == 17 tempform2 = cosh( #z ) elseif @formula2 == 18 tempform2 = tanh( #z ) elseif @formula2 == 19 tempform2 = asinh( #z ) elseif @formula2 == 20 tempform2 = acosh( #z ) elseif @formula2 == 21 tempform2 = atanh( #z ) elseif @formula2 == 22 tempform2 = log( 1/#z ) elseif @formula2 == 23 tempform2 = log( log( #z )) elseif @formula2 == 24 tempform2 = exp( -#z ) elseif @formula2 == 25 tempform2 = exp( 1/#z ) elseif @formula2 == 26 tempform2 = #z^(-#z) elseif @formula2 == 27 zextra = sin( #z ) tempform2 = zextra * zextra elseif @formula2 == 28 zextra = cos( #z ) tempform2 = zextra * zextra elseif @formula2 == 29 zextra = tan( #z ) tempform2 = zextra * zextra else ; @formula2 == 30 tempform2 = cotan( #z ) endif ; formula2-3 else ; 30 < @formula2 <= 60 if @formula2 == 31 tempform2 = 1/cos( #z ) elseif @formula2 == 32 tempform2 = 1/sin( #z ) elseif @formula2 == 33 zextra = cotan( #z ) tempform2 = zextra * zextra elseif @formula2 == 34 zextra = 1/cos( #z ) tempform2 = zextra * zextra elseif @formula2 == 35 zextra = 1/sin( #z ) tempform2 = zextra * zextra elseif @formula2 == 36 zextra = #z^(#z) tempform2 = #z^zextra elseif @formula2 == 37 zextra = #z^(#z) tempform2 = 1/( #z^zextra ) elseif @formula2 == 38 tempform2 = log(-#z) elseif @formula2 == 39 tempform2 = 1/log( #z ) elseif @formula2 == 40 tempform2 = #z * log( #z ) elseif @formula2 == 41 tempform2 = sin( #z ) / #z elseif @formula2 == 42 tempform2 = cos( #z ) / #z elseif @formula2 == 43 tempform2 = sin( #z ) * cos( #z ) elseif @formula2 == 44 tempform2 = sin( #z^2 ) elseif @formula2 == 45 tempform2 = exp( -1/#z ) elseif @formula2 == 46 tempform2 = #z * exp( #z ) elseif @formula2 == 47 tempform2 = #z * exp( -#z ) elseif @formula2 == 48 tempform2 = #z * exp( 1/#z ) elseif @formula2 == 49 tempform2 = #z * exp( -1/#z ) elseif @formula2 == 50 tempform2 = #z * #z * #z elseif @formula2 == 51 tempform2 = 1 / ( #z * #z * #z ) elseif @formula2 == 52 tempform2 = atan( 1 / #z ) elseif @formula2 == 53 tempform2 = acos( 1 / #z ) elseif @formula2 == 54 tempform2 = asin( 1 / #z ) elseif @formula2 == 55 tempform2 = tan( #z ) / #z elseif @formula2 == 56 tempform2 = cotan( #z ) / #z elseif @formula2 == 57 tempform2 = 1 / ( #z * cos( #z )) elseif @formula2 == 58 tempform2 = 1 / ( #z * sin( #z )) elseif @formula2 == 59 tempform2 = #z * sin( #z ) else ; @formula2 == 60 tempform2 = #z * cos( #z ) endif ; formula2-3 endif ; formula2-2 elseif @formula2 <= 90 if @formula2 == 61 tempform2 = #z * tan( #z ) elseif @formula2 == 62 tempform2 = #z * cotan( #z ) elseif @formula2 == 63 tempform2 = #z/cos( #z ) elseif @formula2 == 64 tempform2 = #z/sin( #z ) elseif @formula2 == 65 tempform2 = sin( 1/#z ) elseif @formula2 == 66 tempform2 = cos( 1/#z ) elseif @formula2 == 67 tempform2 = tan( 1/#z ) elseif @formula2 == 68 tempform2 = cotan( 1/#z ) elseif @formula2 == 69 tempform2 = 1/cos( 1/#z ) elseif @formula2 == 70 tempform2 = 1/sin( 1/#z ) elseif @formula2 == 71 tempform2 = cotanh( #z ) elseif @formula2 == 72 tempform2 = 1/cosh( #z ) elseif @formula2 == 73 tempform2 = 1/sinh( #z ) elseif @formula2 == 74 tempform2 = atanh( 1/#z ) elseif @formula2 == 75 tempform2 = acosh( 1/#z ) elseif @formula2 == 76 tempform2 = asinh( 1/#z ) elseif @formula2 == 77 tempform2 = @coeff2a * #z^@exponent2a + @coeff2b * #z^@exponent2b + @coeff2c * #z^@exponent2c elseif @formula2 == 78 zextra = sinh(#z) tempform2 = zextra * zextra elseif @formula2 == 79 zextra = cosh( #z ) tempform2 = zextra * zextra elseif @formula2 == 80 zextra = tanh(#z) tempform2 = zextra * zextra elseif @formula2 == 81 zextra = cotanh( #z ) tempform2 = zextra * zextra elseif @formula2 == 82 zextra = (1,0)/cosh(#z) tempform2 = zextra * zextra elseif @formula2 == 83 zextra = (1,0) / sinh( #z ) tempform2 = zextra * zextra elseif @formula2 == 84 tempform2 = sinh(1/#z) elseif @formula2 == 85 tempform2 = cosh(1/#z) elseif @formula2 == 86 tempform2 = tanh(1/#z) elseif @formula2 == 87 tempform2 = cotanh(1/#z) elseif @formula2 == 88 tempform2 = (1,0)/cosh(1/#z) elseif @formula2 == 89 tempform2 = (1,0)/sinh(1/#z) else ; @formula2 == 90 tempform2 = sin( #z ) * tan(#z) endif ; formula2-2 else ; 90 < @formula2 <= 120 if @formula2 == 91 tempform2 = sinh(#z) * tanh(#z) elseif @formula2 == 92 tempform2 = sinh(#z) * cosh(#z) elseif @formula2 == 93 temp2 = sinh(#z), zextra = cosh(#z) tempform2 = temp2*temp2*zextra*zextra elseif @formula2 == 94 temp2 = sin(#z), zextra = cos(#z) tempform2 = temp2*temp2*zextra*zextra elseif @formula2 == 95 zextra = 1/#z tempform2 = sin(zextra)*cos(zextra) elseif @formula2 == 96 zextra = sin( 1/#z ) tempform2 = zextra*zextra elseif @formula2 == 97 tempform2 = sin(#z) * cos(1/#z) elseif @formula2 == 98 tempform2 = sin(#z) * sin(1/#z) elseif @formula2 == 99 zextra = log(#z) tempform2 = zextra*zextra elseif @formula2 == 100 tempform2 = sin(#z) * sin(2*#z) elseif @formula2 == 101 tempform2 = exp(2*#z) elseif @formula2 == 102 tempform2 = exp(-2*#z) elseif @formula2 == 103 zextra = 1/#z tempform2 = sinh(zextra)*cosh(zextra) elseif @formula2 == 104 zextra = sinh( 1/#z ) tempform2 = zextra*zextra elseif @formula2 == 105 tempform2 = sinh(#z) * cosh(1/#z) elseif @formula2 == 106 tempform2 = sinh(#z) * sinh(1/#z) elseif @formula2 == 107 tempform2 = sin(#z) * sinh(#z) elseif @formula2 == 108 tempform2 = sin(#z) * cosh(#z) elseif @formula2 == 109 zextra = sin(#z), temp2 = sinh(#z) tempform2 = temp2*temp2*zextra*zextra elseif @formula2 == 110 tempform2 = sin(#z)*exp(#z) elseif @formula2 == 111 tempform2 = cos(#z)*exp(#z) elseif @formula2 == 112 tempform2 = sinh(#z)*exp(#z) elseif @formula2 == 113 tempform2 = cosh(#z)*exp(#z) elseif @formula2 == 114 tempform2 = sin(#z)*log(#z) elseif @formula2 == 115 tempform2 = cos(#z)*log(#z) elseif @formula2 == 116 tempform2 = sinh(#z)*log(#z) else ; @formula2 == 117 tempform2 = cosh(#z)*log(#z) endif ; formula2-2 endif ; formula2-1 if (@splicemode == 0) || (@splicemode == 4) zextra = real(tempform1) + flip(imag(tempform2)) elseif (@splicemode == 1) || (@splicemode == 5) zextra = imag(tempform1) + flip(real(tempform2)) elseif (@splicemode == 2) || (@splicemode == 6) zextra = real(tempform1) + flip(real(tempform2)) elseif (@splicemode == 3) || (@splicemode == 7) zextra = imag(tempform1) + flip(imag(tempform2)) endif ; @splicemode if @splicemode > 3 zextra = flip(zextra) endif ; @splicemode #z = (1-@blend)*tempform1 + @blend*zextra if @zblendtrue z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @zblendtrue if @pmode != 1 #z = #z + jc endif ; pmode bailout: |z| < @bail default: title = "SpliceMan" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param splicemode caption = "Splice Mode" enum = "real#1 + imag#2" "imag#1 + real#2" "real#1 + real#2" "imag#1 + imag#2" \ "imag#2 + real#1" "real#2 + imag#1" "real#2 + real#1" "imag#2 + imag#1" default = 0 hint = "This param determines which components of the Formula 1 and Formula 2 \ iterates are combined to form the final #z; the final formula is #z = \ [Formula 1 part] + flip( [Formula 2 part])." endparam param blend caption = "Splice Blend" default = 1.0 min = -2.0 max = 2.0 hint = "Range is 0.0 - 1.0. At 1.0, final #z is fully spliced; at 0.0, \ no splicing has occurred and #z is the solely determined by Formula 1" endparam param formula1 caption = "Formula 1" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the first formula to be iterated. \ For 'z^power', use parameter 'Power 1' to set power. For '3-term polynomial' set \ params 'Coeff 1a', 'Exponent 1a', 'Coeff 1b', 'Exponent 1b', 'Coeff 1c', \ 'Exponent 1c'." endparam param formula2 caption = "Formula 2" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the second formula to be iterated. \ For 'z^power', use parameter 'Power 2' to set power. For '3-term polynomial' set \ params 'Coeff 2a', 'Exponent 2a', 'Coeff 2b', 'Exponent 2b', 'Coeff 2c', \ 'Exponent 2c'." endparam param zblendtrue caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @zblendtrue == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @zblendtrue == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @zblendtrue == TRUE endparam param power1 caption = "Power 1" default = (5,0) hint = "This is the power used for the first formula series if parameter \ 'Formula 1' is set to 'z^power'" endparam param power2 caption = "Power 2" default = (6,0) hint = "This is the power used for the second formula series if parameter \ 'Formula 2' is set to 'z^power'" endparam param coeff1a caption = "Coeff 1A" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent1a caption = "Exponent 1A" default = (6,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff1b caption = "Coeff 1B" default = (-1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent1b caption = "Exponent 1B" default = (4,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff1c caption = "Coeff 1C" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent1c caption = "Exponent 1C" default = (2,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param coeff2a caption = "Coeff 2A" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent2a caption = "Exponent 2A" default = (6,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff2b caption = "Coeff 2B" default = (-1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent2b caption = "Exponent 2B" default = (4,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff2c caption = "Coeff 2C" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent2c caption = "Exponent 2C" default = (2,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-spliceMan-J" jconstant = #pixel bail = bail splicemode = splicemode blend = blend formula1 = formula1 formula2 = formula2 zblendtrue = zblendtrue weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower power1 = power1 power2 = power2 coeff1a = coeff1a exponent1a = exponent1a coeff1b = coeff1b exponent1b = exponent1b coeff1c = coeff1c exponent1c = exponent1c coeff2a = coeff2a exponent2a = exponent2a coeff2b = coeff2b exponent2b = exponent2b coeff2c = coeff2c exponent2c = exponent2c pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-spliceMan-J { ; jam 011217 ; Mandelbrot/Julia in which 2 independent formulas ; are executed on each iteration, with the final #z resulting ; from a user-specified splicing together of the real & imaginary ; parts from Formulas 1 & 2. ; The 3-term polynomial formula option is ; z = ( CoeffA * z^ExponentA ) + ( CoeffB * z^ExponentB ) + ( CoeffC * z^ExponentC ) + constant init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) complex zextra = complex temp2 = (0,0) ; temp/spare scratch variable complex tempform1 = complex tempform2 = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: if @pmode != 0 #z = #z + jc endif ; pmode zblend = z ; Execute 1st formula selection if @formula1 == 0 tempform1 = #z * #z elseif @formula1 == 1 tempform1 = #z * #z * #z elseif @formula1 == 2 zextra = #z * #z tempform1 = zextra * zextra elseif @formula1 <= 60 if @formula1 <= 30 if @formula1 == 3 tempform1 = #z ^ @power1 elseif @formula1 == 4 tempform1 = 1/#z elseif @formula1 == 5 tempform1 = sqrt(#z) elseif @formula1 == 6 tempform1 = 1 / ( #z * #z ) elseif @formula1 == 7 tempform1 = log(#z) elseif @formula1 == 8 tempform1 = exp( #z) elseif @formula1 == 9 tempform1 = #z^#z elseif @formula1 == 10 tempform1 = sin( #z ) elseif @formula1 == 11 tempform1 = cos( #z ) elseif @formula1 == 12 tempform1 = tan( #z ) elseif @formula1 == 13 tempform1 = asin( #z ) elseif @formula1 == 14 tempform1 = acos( #z ) elseif @formula1 == 15 tempform1 = atan( #z ) elseif @formula1 == 16 tempform1 = sinh( #z ) elseif @formula1 == 17 tempform1 = cosh( #z ) elseif @formula1 == 18 tempform1 = tanh( #z ) elseif @formula1 == 19 tempform1 = asinh( #z ) elseif @formula1 == 20 tempform1 = acosh( #z ) elseif @formula1 == 21 tempform1 = atanh( #z ) elseif @formula1 == 22 tempform1 = log( 1/#z ) elseif @formula1 == 23 tempform1 = log( log( #z )) elseif @formula1 == 24 tempform1 = exp( -#z ) elseif @formula1 == 25 tempform1 = exp( 1/#z ) elseif @formula1 == 26 tempform1 = #z^(-#z) elseif @formula1 == 27 zextra = sin( #z ) tempform1 = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) tempform1 = zextra * zextra elseif @formula1 == 29 zextra = tan( #z ) tempform1 = zextra * zextra else ; @formula1 == 30 tempform1 = cotan( #z ) endif ; formula1-3 else ; 30 < @formula1 <= 60 if @formula1 == 31 tempform1 = 1/cos( #z ) elseif @formula1 == 32 tempform1 = 1/sin( #z ) elseif @formula1 == 33 zextra = cotan( #z ) tempform1 = zextra * zextra elseif @formula1 == 34 zextra = 1/cos( #z ) tempform1 = zextra * zextra elseif @formula1 == 35 zextra = 1/sin( #z ) tempform1 = zextra * zextra elseif @formula1 == 36 zextra = #z^(#z) tempform1 = #z^zextra elseif @formula1 == 37 zextra = #z^(#z) tempform1 = 1/( #z^zextra ) elseif @formula1 == 38 tempform1 = log(-#z) elseif @formula1 == 39 tempform1 = 1/log( #z ) elseif @formula1 == 40 tempform1 = #z * log( #z ) elseif @formula1 == 41 tempform1 = sin( #z ) / #z elseif @formula1 == 42 tempform1 = cos( #z ) / #z elseif @formula1 == 43 tempform1 = sin( #z ) * cos( #z ) elseif @formula1 == 44 tempform1 = sin( #z^2 ) elseif @formula1 == 45 tempform1 = exp( -1/#z ) elseif @formula1 == 46 tempform1 = #z * exp( #z ) elseif @formula1 == 47 tempform1 = #z * exp( -#z ) elseif @formula1 == 48 tempform1 = #z * exp( 1/#z ) elseif @formula1 == 49 tempform1 = #z * exp( -1/#z ) elseif @formula1 == 50 tempform1 = #z * #z * #z elseif @formula1 == 51 tempform1 = 1 / ( #z * #z * #z ) elseif @formula1 == 52 tempform1 = atan( 1 / #z ) elseif @formula1 == 53 tempform1 = acos( 1 / #z ) elseif @formula1 == 54 tempform1 = asin( 1 / #z ) elseif @formula1 == 55 tempform1 = tan( #z ) / #z elseif @formula1 == 56 tempform1 = cotan( #z ) / #z elseif @formula1 == 57 tempform1 = 1 / ( #z * cos( #z )) elseif @formula1 == 58 tempform1 = 1 / ( #z * sin( #z )) elseif @formula1 == 59 tempform1 = #z * sin( #z ) else ; @formula1 == 60 tempform1 = #z * cos( #z ) endif ; formula1-3 endif ; formula1-2 elseif @formula1 <= 90 if @formula1 == 61 tempform1 = #z * tan( #z ) elseif @formula1 == 62 tempform1 = #z * cotan( #z ) elseif @formula1 == 63 tempform1 = #z/cos( #z ) elseif @formula1 == 64 tempform1 = #z/sin( #z ) elseif @formula1 == 65 tempform1 = sin( 1/#z ) elseif @formula1 == 66 tempform1 = cos( 1/#z ) elseif @formula1 == 67 tempform1 = tan( 1/#z ) elseif @formula1 == 68 tempform1 = cotan( 1/#z ) elseif @formula1 == 69 tempform1 = 1/cos( 1/#z ) elseif @formula1 == 70 tempform1 = 1/sin( 1/#z ) elseif @formula1 == 71 tempform1 = cotanh( #z ) elseif @formula1 == 72 tempform1 = 1/cosh( #z ) elseif @formula1 == 73 tempform1 = 1/sinh( #z ) elseif @formula1 == 74 tempform1 = atanh( 1/#z ) elseif @formula1 == 75 tempform1 = acosh( 1/#z ) elseif @formula1 == 76 tempform1 = asinh( 1/#z ) elseif @formula1 == 77 tempform1 = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c elseif @formula1 == 78 zextra = sinh(#z) tempform1 = zextra * zextra elseif @formula1 == 79 zextra = cosh( #z ) tempform1 = zextra * zextra elseif @formula1 == 80 zextra = tanh(#z) tempform1 = zextra * zextra elseif @formula1 == 81 zextra = cotanh( #z ) tempform1 = zextra * zextra elseif @formula1 == 82 zextra = (1,0)/cosh(#z) tempform1 = zextra * zextra elseif @formula1 == 83 zextra = (1,0) / sinh( #z ) tempform1 = zextra * zextra elseif @formula1 == 84 tempform1 = sinh(1/#z) elseif @formula1 == 85 tempform1 = cosh(1/#z) elseif @formula1 == 86 tempform1 = tanh(1/#z) elseif @formula1 == 87 tempform1 = cotanh(1/#z) elseif @formula1 == 88 tempform1 = (1,0)/cosh(1/#z) elseif @formula1 == 89 tempform1 = (1,0)/sinh(1/#z) else ; @formula1 == 90 tempform1 = sin( #z ) * tan(#z) endif ; formula1-2 else ; 90 < @formula1 <= 120 if @formula1 == 91 tempform1 = sinh(#z) * tanh(#z) elseif @formula1 == 92 tempform1 = sinh(#z) * cosh(#z) elseif @formula1 == 93 temp2 = sinh(#z), zextra = cosh(#z) tempform1 = temp2*temp2*zextra*zextra elseif @formula1 == 94 temp2 = sin(#z), zextra = cos(#z) tempform1 = temp2*temp2*zextra*zextra elseif @formula1 == 95 zextra = 1/#z tempform1 = sin(zextra)*cos(zextra) elseif @formula1 == 96 zextra = sin( 1/#z ) tempform1 = zextra*zextra elseif @formula1 == 97 tempform1 = sin(#z) * cos(1/#z) elseif @formula1 == 98 tempform1 = sin(#z) * sin(1/#z) elseif @formula1 == 99 zextra = log(#z) tempform1 = zextra*zextra elseif @formula1 == 100 tempform1 = sin(#z) * sin(2*#z) elseif @formula1 == 101 tempform1 = exp(2*#z) elseif @formula1 == 102 tempform1 = exp(-2*#z) elseif @formula1 == 103 zextra = 1/#z tempform1 = sinh(zextra)*cosh(zextra) elseif @formula1 == 104 zextra = sinh( 1/#z ) tempform1 = zextra*zextra elseif @formula1 == 105 tempform1 = sinh(#z) * cosh(1/#z) elseif @formula1 == 106 tempform1 = sinh(#z) * sinh(1/#z) elseif @formula1 == 107 tempform1 = sin(#z) * sinh(#z) elseif @formula1 == 108 tempform1 = sin(#z) * cosh(#z) elseif @formula1 == 109 zextra = sin(#z), temp2 = sinh(#z) tempform1 = temp2*temp2*zextra*zextra elseif @formula1 == 110 tempform1 = sin(#z)*exp(#z) elseif @formula1 == 111 tempform1 = cos(#z)*exp(#z) elseif @formula1 == 112 tempform1 = sinh(#z)*exp(#z) elseif @formula1 == 113 tempform1 = cosh(#z)*exp(#z) elseif @formula1 == 114 tempform1 = sin(#z)*log(#z) elseif @formula1 == 115 tempform1 = cos(#z)*log(#z) elseif @formula1 == 116 tempform1 = sinh(#z)*log(#z) else ; @formula1 == 117 tempform1 = cosh(#z)*log(#z) endif ; formula1-2 endif ; formula1-1 ; Execute 2nd formula selection if @formula2 == 0 tempform2 = #z * #z elseif @formula2 == 1 tempform2 = #z * #z * #z elseif @formula2 == 2 zextra = #z * #z tempform2 = zextra * zextra elseif @formula2 <= 60 if @formula2 <= 30 if @formula2 == 3 tempform2 = #z ^ @power2 elseif @formula2 == 4 tempform2 = 1/#z elseif @formula2 == 5 tempform2 = sqrt(#z) elseif @formula2 == 6 tempform2 = 1 / ( #z * #z ) elseif @formula2 == 7 tempform2 = log(#z) elseif @formula2 == 8 tempform2 = exp( #z) elseif @formula2 == 9 tempform2 = #z^#z elseif @formula2 == 10 tempform2 = sin( #z ) elseif @formula2 == 11 tempform2 = cos( #z ) elseif @formula2 == 12 tempform2 = tan( #z ) elseif @formula2 == 13 tempform2 = asin( #z ) elseif @formula2 == 14 tempform2 = acos( #z ) elseif @formula2 == 15 tempform2 = atan( #z ) elseif @formula2 == 16 tempform2 = sinh( #z ) elseif @formula2 == 17 tempform2 = cosh( #z ) elseif @formula2 == 18 tempform2 = tanh( #z ) elseif @formula2 == 19 tempform2 = asinh( #z ) elseif @formula2 == 20 tempform2 = acosh( #z ) elseif @formula2 == 21 tempform2 = atanh( #z ) elseif @formula2 == 22 tempform2 = log( 1/#z ) elseif @formula2 == 23 tempform2 = log( log( #z )) elseif @formula2 == 24 tempform2 = exp( -#z ) elseif @formula2 == 25 tempform2 = exp( 1/#z ) elseif @formula2 == 26 tempform2 = #z^(-#z) elseif @formula2 == 27 zextra = sin( #z ) tempform2 = zextra * zextra elseif @formula2 == 28 zextra = cos( #z ) tempform2 = zextra * zextra elseif @formula2 == 29 zextra = tan( #z ) tempform2 = zextra * zextra else ; @formula2 == 30 tempform2 = cotan( #z ) endif ; formula2-3 else ; 30 < @formula2 <= 60 if @formula2 == 31 tempform2 = 1/cos( #z ) elseif @formula2 == 32 tempform2 = 1/sin( #z ) elseif @formula2 == 33 zextra = cotan( #z ) tempform2 = zextra * zextra elseif @formula2 == 34 zextra = 1/cos( #z ) tempform2 = zextra * zextra elseif @formula2 == 35 zextra = 1/sin( #z ) tempform2 = zextra * zextra elseif @formula2 == 36 zextra = #z^(#z) tempform2 = #z^zextra elseif @formula2 == 37 zextra = #z^(#z) tempform2 = 1/( #z^zextra ) elseif @formula2 == 38 tempform2 = log(-#z) elseif @formula2 == 39 tempform2 = 1/log( #z ) elseif @formula2 == 40 tempform2 = #z * log( #z ) elseif @formula2 == 41 tempform2 = sin( #z ) / #z elseif @formula2 == 42 tempform2 = cos( #z ) / #z elseif @formula2 == 43 tempform2 = sin( #z ) * cos( #z ) elseif @formula2 == 44 tempform2 = sin( #z^2 ) elseif @formula2 == 45 tempform2 = exp( -1/#z ) elseif @formula2 == 46 tempform2 = #z * exp( #z ) elseif @formula2 == 47 tempform2 = #z * exp( -#z ) elseif @formula2 == 48 tempform2 = #z * exp( 1/#z ) elseif @formula2 == 49 tempform2 = #z * exp( -1/#z ) elseif @formula2 == 50 tempform2 = #z * #z * #z elseif @formula2 == 51 tempform2 = 1 / ( #z * #z * #z ) elseif @formula2 == 52 tempform2 = atan( 1 / #z ) elseif @formula2 == 53 tempform2 = acos( 1 / #z ) elseif @formula2 == 54 tempform2 = asin( 1 / #z ) elseif @formula2 == 55 tempform2 = tan( #z ) / #z elseif @formula2 == 56 tempform2 = cotan( #z ) / #z elseif @formula2 == 57 tempform2 = 1 / ( #z * cos( #z )) elseif @formula2 == 58 tempform2 = 1 / ( #z * sin( #z )) elseif @formula2 == 59 tempform2 = #z * sin( #z ) else ; @formula2 == 60 tempform2 = #z * cos( #z ) endif ; formula2-3 endif ; formula2-2 elseif @formula2 <= 90 if @formula2 == 61 tempform2 = #z * tan( #z ) elseif @formula2 == 62 tempform2 = #z * cotan( #z ) elseif @formula2 == 63 tempform2 = #z/cos( #z ) elseif @formula2 == 64 tempform2 = #z/sin( #z ) elseif @formula2 == 65 tempform2 = sin( 1/#z ) elseif @formula2 == 66 tempform2 = cos( 1/#z ) elseif @formula2 == 67 tempform2 = tan( 1/#z ) elseif @formula2 == 68 tempform2 = cotan( 1/#z ) elseif @formula2 == 69 tempform2 = 1/cos( 1/#z ) elseif @formula2 == 70 tempform2 = 1/sin( 1/#z ) elseif @formula2 == 71 tempform2 = cotanh( #z ) elseif @formula2 == 72 tempform2 = 1/cosh( #z ) elseif @formula2 == 73 tempform2 = 1/sinh( #z ) elseif @formula2 == 74 tempform2 = atanh( 1/#z ) elseif @formula2 == 75 tempform2 = acosh( 1/#z ) elseif @formula2 == 76 tempform2 = asinh( 1/#z ) elseif @formula2 == 77 tempform2 = @coeff2a * #z^@exponent2a + @coeff2b * #z^@exponent2b + @coeff2c * #z^@exponent2c elseif @formula2 == 78 zextra = sinh(#z) tempform2 = zextra * zextra elseif @formula2 == 79 zextra = cosh( #z ) tempform2 = zextra * zextra elseif @formula2 == 80 zextra = tanh(#z) tempform2 = zextra * zextra elseif @formula2 == 81 zextra = cotanh( #z ) tempform2 = zextra * zextra elseif @formula2 == 82 zextra = (1,0)/cosh(#z) tempform2 = zextra * zextra elseif @formula2 == 83 zextra = (1,0) / sinh( #z ) tempform2 = zextra * zextra elseif @formula2 == 84 tempform2 = sinh(1/#z) elseif @formula2 == 85 tempform2 = cosh(1/#z) elseif @formula2 == 86 tempform2 = tanh(1/#z) elseif @formula2 == 87 tempform2 = cotanh(1/#z) elseif @formula2 == 88 tempform2 = (1,0)/cosh(1/#z) elseif @formula2 == 89 tempform2 = (1,0)/sinh(1/#z) else ; @formula2 == 90 tempform2 = sin( #z ) * tan(#z) endif ; formula2-2 else ; 90 < @formula2 <= 120 if @formula2 == 91 tempform2 = sinh(#z) * tanh(#z) elseif @formula2 == 92 tempform2 = sinh(#z) * cosh(#z) elseif @formula2 == 93 temp2 = sinh(#z), zextra = cosh(#z) tempform2 = temp2*temp2*zextra*zextra elseif @formula2 == 94 temp2 = sin(#z), zextra = cos(#z) tempform2 = temp2*temp2*zextra*zextra elseif @formula2 == 95 zextra = 1/#z tempform2 = sin(zextra)*cos(zextra) elseif @formula2 == 96 zextra = sin( 1/#z ) tempform2 = zextra*zextra elseif @formula2 == 97 tempform2 = sin(#z) * cos(1/#z) elseif @formula2 == 98 tempform2 = sin(#z) * sin(1/#z) elseif @formula2 == 99 zextra = log(#z) tempform2 = zextra*zextra elseif @formula2 == 100 tempform2 = sin(#z) * sin(2*#z) elseif @formula2 == 101 tempform2 = exp(2*#z) elseif @formula2 == 102 tempform2 = exp(-2*#z) elseif @formula2 == 103 zextra = 1/#z tempform2 = sinh(zextra)*cosh(zextra) elseif @formula2 == 104 zextra = sinh( 1/#z ) tempform2 = zextra*zextra elseif @formula2 == 105 tempform2 = sinh(#z) * cosh(1/#z) elseif @formula2 == 106 tempform2 = sinh(#z) * sinh(1/#z) elseif @formula2 == 107 tempform2 = sin(#z) * sinh(#z) elseif @formula2 == 108 tempform2 = sin(#z) * cosh(#z) elseif @formula2 == 109 zextra = sin(#z), temp2 = sinh(#z) tempform2 = temp2*temp2*zextra*zextra elseif @formula2 == 110 tempform2 = sin(#z)*exp(#z) elseif @formula2 == 111 tempform2 = cos(#z)*exp(#z) elseif @formula2 == 112 tempform2 = sinh(#z)*exp(#z) elseif @formula2 == 113 tempform2 = cosh(#z)*exp(#z) elseif @formula2 == 114 tempform2 = sin(#z)*log(#z) elseif @formula2 == 115 tempform2 = cos(#z)*log(#z) elseif @formula2 == 116 tempform2 = sinh(#z)*log(#z) else ; @formula2 == 117 tempform2 = cosh(#z)*log(#z) endif ; formula2-2 endif ; formula2-1 if (@splicemode == 0) || (@splicemode == 4) zextra = real(tempform1) + flip(imag(tempform2)) elseif (@splicemode == 1) || (@splicemode == 5) zextra = imag(tempform1) + flip(real(tempform2)) elseif (@splicemode == 2) || (@splicemode == 6) zextra = real(tempform1) + flip(real(tempform2)) elseif (@splicemode == 3) || (@splicemode == 7) zextra = imag(tempform1) + flip(imag(tempform2)) endif ; @splicemode if @splicemode > 3 zextra = flip(zextra) endif ; @splicemode #z = (1-@blend)*tempform1 + @blend*zextra if @zblendtrue z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @zblendtrue if @pmode != 1 #z = #z + jc endif ; pmode bailout: |z| < @bail default: title = "SpliceMan Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param splicemode caption = "Splice Mode" enum = "real#1 + imag#2" "imag#1 + real#2" "real#1 + real#2" "imag#1 + imag#2" \ "imag#2 + real#1" "real#2 + imag#1" "real#2 + real#1" "imag#2 + imag#1" default = 0 hint = "This param determines which components of the Formula 1 and Formula 2 \ iterates are combined to form the final #z; the final formula is #z = \ [Formula 1 part] + flip( [Formula 2 part])." endparam param blend caption = "Splice Blend" default = 1.0 min = -2.0 max = 2.0 hint = "Range is 0.0 - 1.0. At 1.0, final #z is fully spliced; at 0.0, \ no splicing has occurred and #z is the solely determined by Formula 1" endparam param formula1 caption = "Formula 1" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the first formula to be iterated. \ For 'z^power', use parameter 'Power 1' to set power. For '3-term polynomial' set \ params 'Coeff 1a', 'Exponent 1a', 'Coeff 1b', 'Exponent 1b', 'Coeff 1c', \ 'Exponent 1c'." endparam param formula2 caption = "Formula 2" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the second formula to be iterated. \ For 'z^power', use parameter 'Power 2' to set power. For '3-term polynomial' set \ params 'Coeff 2a', 'Exponent 2a', 'Coeff 2b', 'Exponent 2b', 'Coeff 2c', \ 'Exponent 2c'." endparam param zblendtrue caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @zblendtrue == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @zblendtrue == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @zblendtrue == TRUE endparam param power1 caption = "Power 1" default = (5,0) hint = "This is the power used for the first formula series if parameter \ 'Formula 1' is set to 'z^power'" endparam param power2 caption = "Power 2" default = (6,0) hint = "This is the power used for the second formula series if parameter \ 'Formula 2' is set to 'z^power'" endparam param coeff1a caption = "Coeff 1A" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent1a caption = "Exponent 1A" default = (6,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff1b caption = "Coeff 1B" default = (-1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent1b caption = "Exponent 1B" default = (4,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff1c caption = "Coeff 1C" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent1c caption = "Exponent 1C" default = (2,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param coeff2a caption = "Coeff 2A" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent2a caption = "Exponent 2A" default = (6,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff2b caption = "Coeff 2B" default = (-1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent2b caption = "Exponent 2B" default = (4,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff2c caption = "Coeff 2C" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent2c caption = "Exponent 2C" default = (2,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-spliceMan" perturbation = #pixel bail = bail splicemode = splicemode blend = blend formula1 = formula1 formula2 = formula2 zblendtrue = zblendtrue weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower power1 = power1 power2 = power2 coeff1a = coeff1a exponent1a = exponent1a coeff1b = coeff1b exponent1b = exponent1b coeff1c = coeff1c exponent1c = exponent1c coeff2a = coeff2a exponent2a = exponent2a coeff2b = coeff2b exponent2b = exponent2b coeff2c = coeff2c exponent2c = exponent2c pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-CardioidMan { ; jam 011012 ; General Mandelbrot/Julia in which selected formula is executed ; then examined for trapping by a user-specified cardioid. ; Whenever trapping occurs, a user-specified action is executed that ; affects subsequent iterations. Trapped point can be transformed ; in a variety of ways before performing the trap action. ; The 3-term polynomial formula option is ; z = ( CoeffA * z^ExponentA ) + ( CoeffB * z^ExponentB ) + ( CoeffC * z^ExponentC ) + constant init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif float twopi = 2.0 * #pi complex center = @centr, float scale = @tscale ; cardioid center, size float rotation = @rotate * #pi / 180 if rotation < 0 rotation = rotation + twopi endif ; rotation rotation = -rotation ; so the routine won't have to negate at each iteration complex zextra = (0,0) ; temp/spare scratch variable complex ztemp = (0,0), float zangle = 0.0 int iter = 0, float temp = 0.0, float value = 0.0, float temp2 = 0.0 int formula = @formula1, int form2 = @formula2 complex coeffa = @coeff1a, complex coeffb = @coeff1b, complex coeffc = @coeff1c complex exponenta = @exponent1a, complex exponentb = @exponent1b, complex exponentc = @exponent1c complex power = @power1 bool swap = FALSE ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 ztemp = sinh(jc), zextra = cosh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 95 ztemp = sin(jc), zextra = cos(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), ztemp = sinh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: iter = iter + 1 if @pmode != 0 #z = #z + jc endif ; pmode ; Execute main formula selection if formula == 0 #z = #z * #z elseif formula == 1 #z = #z * #z * #z elseif formula == 2 zextra = #z * #z #z = zextra * zextra elseif formula <= 40 if formula <= 20 if formula == 3 #z = #z ^ power elseif formula == 4 #z = 1/#z elseif formula == 5 #z = sqrt(#z) elseif formula == 6 #z = 1 / ( #z * #z ) elseif formula == 7 #z = log(#z) elseif formula == 8 #z = exp( #z) elseif formula == 9 #z = #z^#z elseif formula == 10 #z = sin( #z ) elseif formula == 11 #z = cos( #z ) elseif formula == 12 #z = tan( #z ) elseif formula == 13 #z = asin( #z ) elseif formula == 14 #z = acos( #z ) elseif formula == 15 #z = atan( #z ) elseif formula == 16 #z = sinh( #z ) elseif formula == 17 #z = cosh( #z ) elseif formula == 18 #z = tanh( #z ) elseif formula == 19 #z = asinh( #z ) else ; formula == 20 #z = acosh( #z ) endif ; formula-3 else ; 20 < formula <= 40 if formula == 21 #z = atanh( #z ) elseif formula == 22 #z = log( 1/#z ) elseif formula == 23 #z = log( log( #z )) elseif formula == 24 #z = exp( -#z ) elseif formula == 25 #z = exp( 1/#z ) elseif formula == 26 #z = #z^(-#z) elseif formula == 27 zextra = sin( #z ) #z = zextra * zextra elseif formula == 28 zextra = cos( #z ) #z = zextra * zextra elseif formula == 29 zextra = tan( #z ) #z = zextra * zextra elseif formula == 30 #z = cotan( #z ) elseif formula == 31 #z = 1/cos( #z ) elseif formula == 32 #z = 1/sin( #z ) elseif formula == 33 zextra = cotan( #z ) #z = zextra * zextra elseif formula == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif formula == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif formula == 36 zextra = #z^(#z) #z = #z^zextra elseif formula == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif formula == 38 #z = log(-#z) elseif formula == 39 #z = 1/log( #z ) else ; formula == 40 #z = #z * log( #z ) endif ; formula-3 endif ; formula-2 elseif formula <= 60 if formula == 41 #z = sin( #z ) / #z elseif formula == 42 #z = cos( #z ) / #z elseif formula == 43 #z = sin( #z ) * cos( #z ) elseif formula == 44 #z = sin( #z^2 ) elseif formula == 45 #z = exp( -1/#z ) elseif formula == 46 #z = #z * exp( #z ) elseif formula == 47 #z = #z * exp( -#z ) elseif formula == 48 #z = #z * exp( 1/#z ) elseif formula == 49 #z = #z * exp( -1/#z ) elseif formula == 50 #z = #z * #z * #z elseif formula == 51 #z = 1 / ( #z * #z * #z ) elseif formula == 52 #z = atan( 1 / #z ) elseif formula == 53 #z = acos( 1 / #z ) elseif formula == 54 #z = asin( 1 / #z ) elseif formula == 55 #z = tan( #z ) / #z elseif formula == 56 #z = cotan( #z ) / #z elseif formula == 57 #z = 1 / ( #z * cos( #z )) elseif formula == 58 #z = 1 / ( #z * sin( #z )) elseif formula == 59 #z = #z * sin( #z ) else ; formula == 60 #z = #z * cos( #z ) endif ; formula-2 else ; 60 < formula <= 77 if formula == 61 #z = #z * tan( #z ) elseif formula == 62 #z = #z * cotan( #z ) elseif formula == 63 #z = #z/cos( #z ) elseif formula == 64 #z = #z/sin( #z ) elseif formula == 65 #z = sin( 1/#z ) elseif formula == 66 #z = cos( 1/#z ) elseif formula == 67 #z = tan( 1/#z ) elseif formula == 68 #z = cotan( 1/#z ) elseif formula == 69 #z = 1/cos( 1/#z ) elseif formula == 70 #z = 1/sin( 1/#z ) elseif formula == 71 #z = cotanh( #z ) elseif formula == 72 #z = 1/cosh( #z ) elseif formula == 73 #z = 1/sinh( #z ) elseif formula == 74 #z = atanh( 1/#z ) elseif formula == 75 #z = acosh( 1/#z ) elseif formula == 76 #z = asinh( 1/#z ) else ; formula == 77 #z = coeffa * #z^exponenta + coeffb * #z^exponentb + coeffc * #z^exponentc endif ; formula-2 endif ; formula-1 if @pmode != 1 #z = #z + jc endif ; pmode if swap == TRUE swap = FALSE formula = @formula1 power = @power1 coeffa = @coeff1a, coeffb = @coeff1b, coeffc = @coeff1b exponenta = @exponent1a, exponentb = @exponent1b, exponentc = @exponent1c endif ; swap ; Now look for trapping if iter > @skipped ; Center z at the cardioid center, rotate if appropriate, then find its azimuth ztemp = (#z - center) * exp( flip( rotation)) zangle = atan2( ztemp ) ; angle of z with respect to cardioid center if zangle < 0 zangle = zangle + twopi endif ; zangle temp = scale * ( 1 + cos( zangle )) ; radius to cardioid point in direction of z ztemp = temp * exp( flip( zangle )) ; point on cardioid trapped by z ; Transmute trap if desired if form2 != 0 form2 = form2 - 1 ; same kludge ; Transmute trap if form2 == 0 ztemp = ztemp * ztemp elseif form2 == 1 ztemp = ztemp * ztemp * ztemp elseif form2 == 2 zextra = ztemp * ztemp ztemp = zextra * zextra elseif form2 <= 40 if form2 <= 20 if form2 == 3 ztemp = ztemp ^ @power2 elseif form2 == 4 ztemp = 1/ztemp elseif form2 == 5 ztemp = sqrt(ztemp) elseif form2 == 6 ztemp = 1 / ( ztemp * ztemp ) elseif form2 == 7 ztemp = log(ztemp) elseif form2 == 8 ztemp = exp( ztemp) elseif form2 == 9 ztemp = ztemp^ztemp elseif form2 == 10 ztemp = sin( ztemp ) elseif form2 == 11 ztemp = cos( ztemp ) elseif form2 == 12 ztemp = tan( ztemp ) elseif form2 == 13 ztemp = asin( ztemp ) elseif form2 == 14 ztemp = acos( ztemp ) elseif form2 == 15 ztemp = atan( ztemp ) elseif form2 == 16 ztemp = sinh( ztemp ) elseif form2 == 17 ztemp = cosh( ztemp ) elseif form2 == 18 ztemp = tanh( ztemp ) elseif form2 == 19 ztemp = asinh( ztemp ) else ; form2 == 20 ztemp = acosh( ztemp ) endif ; form2-3 else ; 20 < form2 <= 40 if form2 == 21 ztemp = atanh( ztemp ) elseif form2 == 22 ztemp = log( 1/ztemp ) elseif form2 == 23 ztemp = log( log( ztemp )) elseif form2 == 24 ztemp = exp( -ztemp ) elseif form2 == 25 ztemp = exp( 1/ztemp ) elseif form2 == 26 ztemp = ztemp^(-ztemp) elseif form2 == 27 zextra = sin( ztemp ) ztemp = zextra * zextra elseif form2 == 28 zextra = cos( ztemp ) ztemp = zextra * zextra elseif form2 == 29 zextra = tan( ztemp ) ztemp = zextra * zextra elseif form2 == 30 ztemp = cotan( ztemp ) elseif form2 == 31 ztemp = 1/cos( ztemp ) elseif form2 == 32 ztemp = 1/sin( ztemp ) elseif form2 == 33 zextra = cotan( ztemp ) ztemp = zextra * zextra elseif form2 == 34 zextra = 1/cos( ztemp ) ztemp = zextra * zextra elseif form2 == 35 zextra = 1/sin( ztemp ) ztemp = zextra * zextra elseif form2 == 36 zextra = ztemp^(ztemp) ztemp = ztemp^zextra elseif form2 == 37 zextra = ztemp^(ztemp) ztemp = 1/( ztemp^zextra ) elseif form2 == 38 ztemp = log(-ztemp) elseif form2 == 39 ztemp = 1/log( ztemp ) else ; form2 == 40 ztemp = ztemp * log( ztemp ) endif ; form2-3 endif ; form2-2 elseif form2 <= 60 if form2 == 41 ztemp = sin( ztemp ) / ztemp elseif form2 == 42 ztemp = cos( ztemp ) / ztemp elseif form2 == 43 ztemp = sin( ztemp ) * cos( ztemp ) elseif form2 == 44 ztemp = sin( ztemp^2 ) elseif form2 == 45 ztemp = exp( -1/ztemp ) elseif form2 == 46 ztemp = ztemp * exp( ztemp ) elseif form2 == 47 ztemp = ztemp * exp( -ztemp ) elseif form2 == 48 ztemp = ztemp * exp( 1/ztemp ) elseif form2 == 49 ztemp = ztemp * exp( -1/ztemp ) elseif form2 == 50 ztemp = ztemp * ztemp * ztemp elseif form2 == 51 ztemp = 1 / ( ztemp * ztemp * ztemp ) elseif form2 == 52 ztemp = atan( 1 / ztemp ) elseif form2 == 53 ztemp = acos( 1 / ztemp ) elseif form2 == 54 ztemp = asin( 1 / ztemp ) elseif form2 == 55 ztemp = tan( ztemp ) / ztemp elseif form2 == 56 ztemp = cotan( ztemp ) / ztemp elseif form2 == 57 ztemp = 1 / ( ztemp * cos( ztemp )) elseif form2 == 58 ztemp = 1 / ( ztemp * sin( ztemp )) elseif form2 == 59 ztemp = ztemp * sin( ztemp ) else ; form2 == 60 ztemp = ztemp * cos( ztemp ) endif ; form2-2 else ; 60 < form2 <= 77 if form2 == 61 ztemp = ztemp * tan( ztemp ) elseif form2 == 62 ztemp = ztemp * cotan( ztemp ) elseif form2 == 63 ztemp = ztemp/cos( ztemp ) elseif form2 == 64 ztemp = ztemp/sin( ztemp ) elseif form2 == 65 ztemp = sin( 1/ztemp ) elseif form2 == 66 ztemp = cos( 1/ztemp ) elseif form2 == 67 ztemp = tan( 1/ztemp ) elseif form2 == 68 ztemp = cotan( 1/ztemp ) elseif form2 == 69 ztemp = 1/cos( 1/ztemp ) elseif form2 == 70 ztemp = 1/sin( 1/ztemp ) elseif form2 == 71 ztemp = cotanh( ztemp ) elseif form2 == 72 ztemp = 1/cosh( ztemp ) elseif form2 == 73 ztemp = 1/sinh( ztemp ) elseif form2 == 74 ztemp = atanh( 1/ztemp ) elseif form2 == 75 ztemp = acosh( 1/ztemp ) elseif form2 == 76 ztemp = asinh( 1/ztemp ) else ; form2 == 77 ztemp = @coeff2a * ztemp^@exponent2a + @coeff2b * ztemp^@exponent2b + @coeff2c * ztemp^@exponent2c endif ; form2-2 endif ; form2-1 endif ; form2-0 ; Is z near trap? value = cabs(#z - ztemp) if value <= @threshold ; yes, it is zextra = ztemp * jc * #z temp = real(zextra)/abs(real(zextra)) ; "random" sign if @taction == 0 ; seed evolve jc = jc + @strength * jc * temp elseif @taction == 1 #z = #z + @strength * #z * temp elseif @taction == 2 temp2 = real(#z) + @strength * real(#z) * temp #z = temp2 + flip(imag(#z)) elseif @taction == 3 temp2 = imag(#z) + @strength * imag(#z) * temp #z = real(#z) + flip(temp2) elseif @taction == 4 temp2 = real(jc) + @strength * real(jc) * temp jc = temp2 + flip(imag(jc)) elseif @taction == 5 temp2 = imag(jc) + @strength * imag(jc) * temp jc = real(jc) + flip(temp2) elseif @taction == 6 if formula == @formula1 formula = @formula3 power = @power3 coeffa = @coeff3a, coeffb = @coeff3b, coeffc = @coeff3b exponenta = @exponent3a, exponentb = @exponent3b, exponentc = @exponent3c else formula = @formula1 power = @power1 coeffa = @coeff1a, coeffb = @coeff1b, coeffc = @coeff1b exponenta = @exponent1a, exponentb = @exponent1b, exponentc = @exponent1c endif ; formula elseif @taction == 7 swap = TRUE formula = @formula3 power = @power3 coeffa = @coeff3a, coeffb = @coeff3b, coeffc = @coeff3b exponenta = @exponent3a, exponentb = @exponent3b, exponentc = @exponent3c endif ; taction endif ; value endif ; iter bailout: |z| < @bail default: title = "Cardioid Man" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param formula1 caption = "Formula 1" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" default = 0 hint = "Sets the main fractal formula. \ For 'z^power', use parameter 'Power 1' to set exponent. For '3-term polynomial' set \ params 'Coeff 1a', 'Exponent 1a', 'Coeff 1b', 'Exponent 1b', 'Coeff 1c', \ 'Exponent 1c'." endparam param taction caption = "Trap Action" enum = "seed evolve" "z evolve" "zreal evolve" "zimag evolve" "sreal evolve" \ "simag evolve" "toggle formula" "one-shot formula" default = 0 hint = "What happens when a point is within threshold and trapped? 'toggle formula' \ = swapping between 'Formula 1' and 'Toggle Formula' after each trap event; \ 'one-shot' executes 'Toggle Formula' just once per event" endparam param strength caption = "Trap Strength" default = 0.05 hint = "This parameter affects the strength of whatever action is taken as \ a result of parameter 'Trap Action'" endparam param centr caption = "Cardioid Center" default = (0,0) hint = "Where is the cardioid located?" endparam param tscale caption = "Cardioid Scale" default = 0.5 hint = "How big is the cardioid?" endparam param rotate caption = "Rotation" default = 0.0 min = -179.9 max = 359.9 hint = "How much should the cardioid be rotated from its default position (degrees)?" endparam param threshold caption = "Threshold" default = 0.5 hint = "Depth of well; z is trapped if it lies within this distance of cardioid" endparam param power1 caption = "Power 1" default = (5,0) hint = "This is the power used for the main fractal formula if parameter \ 'Formula 1' is set to 'z^power'" endparam param coeff1a caption = "Coeff 1A" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent1a caption = "Exponent 1A" default = (6,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff1b caption = "Coeff 1B" default = (-1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent1b caption = "Exponent 1B" default = (4,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff1c caption = "Coeff 1C" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent1c caption = "Exponent 1C" default = (2,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param formula2 caption = "Trap Transmute" enum = "w" "w^2" "w^3" "w^4" "w^power" "1/w" "sqrt(w)" "1/w^2" "log(w)" "e^w" "w^w" \ "sin(w)" "cos(w)" \ "tan(w)" "asin(w)" "acos(w)" "atan(w)" "sinh(w)" "cosh(w)" "tanh(w)" \ "asinh(w)" "acosh(w)" "atanh(w)" "log(1/w)" "log(log(w))" "e^-w" \ "e^(1/w)" "w^-w" "sin(w)^2" "cos(w)^2" "tan(w)^2" "cot(w)" "sec(w)" \ "csc(w)" "cot(w)^2" "sec(w)^2" "csc(w)^2" "w^w^w" "1/w^w^w" "log(-w)" \ "1/log(w)" "wlog(w)" "sin(w)/w" "cos(w)/w" "sin(w)*cos(w)" "sin(w^2)" \ "e^(-1/w)" "we^w" "we^-w" "we^(1/w)" "we^(-1/w)" "w^3" "1/w^3" \ "acot(w)" "asec(w)" "acsc(w)" "tan(w)/w" "cot(w)/w" "sec(w)/w" \ "csc(w)/w" "wsin(w)" "wcos(w)" "wtan(w)" "wcot(w)" "wsec(w)" "wcsc(w)" \ "sin(1/w)" "cos(1/w)" "tan(1/w)" "cot(1/w)" "sec(1/w)" "csc(1/w)" \ "cotanh(w)" "sech(w)" "cosech(w)" "acoth(w)" "asech(w)" "acosech(w)" \ "3-term polynomial" default = 0 hint = "Formula used to transform cardioid point, w, prior to trap test. \ For 'z^power', use parameter 'Power 2' to set power. For '3-term polynomial' set \ params 'Coeff 2a', 'Exponent 2a', 'Coeff 2b', 'Exponent 2b', 'Coeff 2c', \ 'Exponent 2c'." endparam param power2 caption = "Power 2" default = (6,0) hint = "This is the power used if parameter \ 'Trap Transmute' is set to 'z^power'" endparam param coeff2a caption = "Coeff 2A" default = (1,0) hint = "If 'Trap Transmute' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent2a caption = "Exponent 2A" default = (6,0) hint = "If 'Trap Transmute' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff2b caption = "Coeff 2B" default = (-1,0) hint = "If 'Trap Transmute' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent2b caption = "Exponent 2B" default = (4,0) hint = "If 'Trap Transmute' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff2c caption = "Coeff 2C" default = (1,0) hint = "If 'Trap Transmute' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent2c caption = "Exponent 2C" default = (2,0) hint = "If 'Trap Transmute' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param formula3 caption = "Toggle Formula" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" default = 0 hint = "Formula toggled in on trapping if 'Trap Action' \ = 'toggle' or 'one-shot' formula. \ For 'z^power', 'Power 3' sets power. For '3-term polynomial' set \ params 'Coeff 3a', 'Exponent 3a', 'Coeff 3b', 'Exponent 3b', 'Coeff 3c', \ 'Exponent 3c'." endparam param power3 caption = "Power 3" default = (6,0) hint = "This is the power used for the toggled formula if parameter \ 'Toggle Formula' is set to 'z^power'" endparam param coeff3a caption = "Coeff 3A" default = (1,0) hint = "If 'Toggle Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent3a caption = "Exponent 3A" default = (6,0) hint = "If 'Toggle Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff3b caption = "Coeff 3B" default = (-1,0) hint = "If 'Toggle Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent3b caption = "Exponent 3B" default = (4,0) hint = "If 'Toggle Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff3c caption = "Coeff 3C" default = (1,0) hint = "If 'Toggle Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent3c caption = "Exponent 3C" default = (2,0) hint = "If 'Toggle Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param skipped caption = "Iters to Skip" default = 0 hint = "Enter the number of iterations to skip before monitoring the orbit \ for possible trapping" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-CardioidMan-J" jconstant = #pixel bail = bail centr = centr tscale = tscale rotate = rotate threshold = threshold taction = taction strength = strength formula1 = formula1 formula2 = formula2 power1 = power1 power2 = power2 coeff1a = coeff1a exponent1a = exponent1a coeff1b = coeff1b exponent1b = exponent1b coeff1c = coeff1c exponent1c = exponent1c coeff2a = coeff2a exponent2a = exponent2a coeff2b = coeff2b exponent2b = exponent2b coeff2c = coeff2c exponent2c = exponent2c formula3 = formula3 power3 = power3 coeff3a = coeff3a coeff3b = coeff3b coeff3c = coeff3c exponent3a = exponent3a exponent3b = exponent3b exponent3c = exponent3c skipped = skipped pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-CardioidMan-J { ; jam 011012 ; General Mandelbrot/Julia in which selected formula is executed ; then examined for trapping by a user-specified cardioid. ; Whenever trapping occurs, a user-specified action is executed that ; affects subsequent iterations. Trapped point can be transformed ; in a variety of ways before performing the trap action. ; The 3-term polynomial formula option is ; z = ( CoeffA * z^ExponentA ) + ( CoeffB * z^ExponentB ) + ( CoeffC * z^ExponentC ) + constant init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif float twopi = 2.0 * #pi complex center = @centr, float scale = @tscale ; cardioid center, size float rotation = @rotate * #pi / 180 if rotation < 0 rotation = rotation + twopi endif ; rotation rotation = -rotation ; so the routine won't have to negate at each iteration complex zextra = (0,0) ; temp/spare scratch variable complex ztemp = (0,0), float zangle = 0.0 int iter = 0, float temp = 0.0, float value = 0.0, float temp2 = 0.0 int formula = @formula1, int form2 = @formula2 complex coeffa = @coeff1a, complex coeffb = @coeff1b, complex coeffc = @coeff1c complex exponenta = @exponent1a, complex exponentb = @exponent1b, complex exponentc = @exponent1c complex power = @power1 bool swap = FALSE ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 ztemp = sinh(jc), zextra = cosh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 95 ztemp = sin(jc), zextra = cos(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), ztemp = sinh(jc) jc = ztemp*ztemp*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: iter = iter + 1 if @pmode != 0 #z = #z + jc endif ; pmode ; Execute main formula selection if formula == 0 #z = #z * #z elseif formula == 1 #z = #z * #z * #z elseif formula == 2 zextra = #z * #z #z = zextra * zextra elseif formula <= 40 if formula <= 20 if formula == 3 #z = #z ^ power elseif formula == 4 #z = 1/#z elseif formula == 5 #z = sqrt(#z) elseif formula == 6 #z = 1 / ( #z * #z ) elseif formula == 7 #z = log(#z) elseif formula == 8 #z = exp( #z) elseif formula == 9 #z = #z^#z elseif formula == 10 #z = sin( #z ) elseif formula == 11 #z = cos( #z ) elseif formula == 12 #z = tan( #z ) elseif formula == 13 #z = asin( #z ) elseif formula == 14 #z = acos( #z ) elseif formula == 15 #z = atan( #z ) elseif formula == 16 #z = sinh( #z ) elseif formula == 17 #z = cosh( #z ) elseif formula == 18 #z = tanh( #z ) elseif formula == 19 #z = asinh( #z ) else ; formula == 20 #z = acosh( #z ) endif ; formula-3 else ; 20 < formula <= 40 if formula == 21 #z = atanh( #z ) elseif formula == 22 #z = log( 1/#z ) elseif formula == 23 #z = log( log( #z )) elseif formula == 24 #z = exp( -#z ) elseif formula == 25 #z = exp( 1/#z ) elseif formula == 26 #z = #z^(-#z) elseif formula == 27 zextra = sin( #z ) #z = zextra * zextra elseif formula == 28 zextra = cos( #z ) #z = zextra * zextra elseif formula == 29 zextra = tan( #z ) #z = zextra * zextra elseif formula == 30 #z = cotan( #z ) elseif formula == 31 #z = 1/cos( #z ) elseif formula == 32 #z = 1/sin( #z ) elseif formula == 33 zextra = cotan( #z ) #z = zextra * zextra elseif formula == 34 zextra = 1/cos( #z ) #z = zextra * zextra elseif formula == 35 zextra = 1/sin( #z ) #z = zextra * zextra elseif formula == 36 zextra = #z^(#z) #z = #z^zextra elseif formula == 37 zextra = #z^(#z) #z = 1/( #z^zextra ) elseif formula == 38 #z = log(-#z) elseif formula == 39 #z = 1/log( #z ) else ; formula == 40 #z = #z * log( #z ) endif ; formula-3 endif ; formula-2 elseif formula <= 60 if formula == 41 #z = sin( #z ) / #z elseif formula == 42 #z = cos( #z ) / #z elseif formula == 43 #z = sin( #z ) * cos( #z ) elseif formula == 44 #z = sin( #z^2 ) elseif formula == 45 #z = exp( -1/#z ) elseif formula == 46 #z = #z * exp( #z ) elseif formula == 47 #z = #z * exp( -#z ) elseif formula == 48 #z = #z * exp( 1/#z ) elseif formula == 49 #z = #z * exp( -1/#z ) elseif formula == 50 #z = #z * #z * #z elseif formula == 51 #z = 1 / ( #z * #z * #z ) elseif formula == 52 #z = atan( 1 / #z ) elseif formula == 53 #z = acos( 1 / #z ) elseif formula == 54 #z = asin( 1 / #z ) elseif formula == 55 #z = tan( #z ) / #z elseif formula == 56 #z = cotan( #z ) / #z elseif formula == 57 #z = 1 / ( #z * cos( #z )) elseif formula == 58 #z = 1 / ( #z * sin( #z )) elseif formula == 59 #z = #z * sin( #z ) else ; formula == 60 #z = #z * cos( #z ) endif ; formula-2 else ; 60 < formula <= 77 if formula == 61 #z = #z * tan( #z ) elseif formula == 62 #z = #z * cotan( #z ) elseif formula == 63 #z = #z/cos( #z ) elseif formula == 64 #z = #z/sin( #z ) elseif formula == 65 #z = sin( 1/#z ) elseif formula == 66 #z = cos( 1/#z ) elseif formula == 67 #z = tan( 1/#z ) elseif formula == 68 #z = cotan( 1/#z ) elseif formula == 69 #z = 1/cos( 1/#z ) elseif formula == 70 #z = 1/sin( 1/#z ) elseif formula == 71 #z = cotanh( #z ) elseif formula == 72 #z = 1/cosh( #z ) elseif formula == 73 #z = 1/sinh( #z ) elseif formula == 74 #z = atanh( 1/#z ) elseif formula == 75 #z = acosh( 1/#z ) elseif formula == 76 #z = asinh( 1/#z ) else ; formula == 77 #z = coeffa * #z^exponenta + coeffb * #z^exponentb + coeffc * #z^exponentc endif ; formula-2 endif ; formula-1 if @pmode != 1 #z = #z + jc endif ; pmode if swap == TRUE swap = FALSE formula = @formula1 power = @power1 coeffa = @coeff1a, coeffb = @coeff1b, coeffc = @coeff1b exponenta = @exponent1a, exponentb = @exponent1b, exponentc = @exponent1c endif ; swap ; Now look for trapping if iter > @skipped ; Center z at the cardioid center, rotate if appropriate, then find its azimuth ztemp = (#z - center) * exp( flip( rotation)) zangle = atan2( ztemp ) ; angle of z with respect to cardioid center if zangle < 0 zangle = zangle + twopi endif ; zangle temp = scale * ( 1 + cos( zangle )) ; radius to cardioid point in direction of z ztemp = temp * exp( flip( zangle )) ; point on cardioid trapped by z ; Transmute trap if desired if form2 != 0 form2 = form2 - 1 ; same kludge ; Transmute trap if form2 == 0 ztemp = ztemp * ztemp elseif form2 == 1 ztemp = ztemp * ztemp * ztemp elseif form2 == 2 zextra = ztemp * ztemp ztemp = zextra * zextra elseif form2 <= 40 if form2 <= 20 if form2 == 3 ztemp = ztemp ^ @power2 elseif form2 == 4 ztemp = 1/ztemp elseif form2 == 5 ztemp = sqrt(ztemp) elseif form2 == 6 ztemp = 1 / ( ztemp * ztemp ) elseif form2 == 7 ztemp = log(ztemp) elseif form2 == 8 ztemp = exp( ztemp) elseif form2 == 9 ztemp = ztemp^ztemp elseif form2 == 10 ztemp = sin( ztemp ) elseif form2 == 11 ztemp = cos( ztemp ) elseif form2 == 12 ztemp = tan( ztemp ) elseif form2 == 13 ztemp = asin( ztemp ) elseif form2 == 14 ztemp = acos( ztemp ) elseif form2 == 15 ztemp = atan( ztemp ) elseif form2 == 16 ztemp = sinh( ztemp ) elseif form2 == 17 ztemp = cosh( ztemp ) elseif form2 == 18 ztemp = tanh( ztemp ) elseif form2 == 19 ztemp = asinh( ztemp ) else ; form2 == 20 ztemp = acosh( ztemp ) endif ; form2-3 else ; 20 < form2 <= 40 if form2 == 21 ztemp = atanh( ztemp ) elseif form2 == 22 ztemp = log( 1/ztemp ) elseif form2 == 23 ztemp = log( log( ztemp )) elseif form2 == 24 ztemp = exp( -ztemp ) elseif form2 == 25 ztemp = exp( 1/ztemp ) elseif form2 == 26 ztemp = ztemp^(-ztemp) elseif form2 == 27 zextra = sin( ztemp ) ztemp = zextra * zextra elseif form2 == 28 zextra = cos( ztemp ) ztemp = zextra * zextra elseif form2 == 29 zextra = tan( ztemp ) ztemp = zextra * zextra elseif form2 == 30 ztemp = cotan( ztemp ) elseif form2 == 31 ztemp = 1/cos( ztemp ) elseif form2 == 32 ztemp = 1/sin( ztemp ) elseif form2 == 33 zextra = cotan( ztemp ) ztemp = zextra * zextra elseif form2 == 34 zextra = 1/cos( ztemp ) ztemp = zextra * zextra elseif form2 == 35 zextra = 1/sin( ztemp ) ztemp = zextra * zextra elseif form2 == 36 zextra = ztemp^(ztemp) ztemp = ztemp^zextra elseif form2 == 37 zextra = ztemp^(ztemp) ztemp = 1/( ztemp^zextra ) elseif form2 == 38 ztemp = log(-ztemp) elseif form2 == 39 ztemp = 1/log( ztemp ) else ; form2 == 40 ztemp = ztemp * log( ztemp ) endif ; form2-3 endif ; form2-2 elseif form2 <= 60 if form2 == 41 ztemp = sin( ztemp ) / ztemp elseif form2 == 42 ztemp = cos( ztemp ) / ztemp elseif form2 == 43 ztemp = sin( ztemp ) * cos( ztemp ) elseif form2 == 44 ztemp = sin( ztemp^2 ) elseif form2 == 45 ztemp = exp( -1/ztemp ) elseif form2 == 46 ztemp = ztemp * exp( ztemp ) elseif form2 == 47 ztemp = ztemp * exp( -ztemp ) elseif form2 == 48 ztemp = ztemp * exp( 1/ztemp ) elseif form2 == 49 ztemp = ztemp * exp( -1/ztemp ) elseif form2 == 50 ztemp = ztemp * ztemp * ztemp elseif form2 == 51 ztemp = 1 / ( ztemp * ztemp * ztemp ) elseif form2 == 52 ztemp = atan( 1 / ztemp ) elseif form2 == 53 ztemp = acos( 1 / ztemp ) elseif form2 == 54 ztemp = asin( 1 / ztemp ) elseif form2 == 55 ztemp = tan( ztemp ) / ztemp elseif form2 == 56 ztemp = cotan( ztemp ) / ztemp elseif form2 == 57 ztemp = 1 / ( ztemp * cos( ztemp )) elseif form2 == 58 ztemp = 1 / ( ztemp * sin( ztemp )) elseif form2 == 59 ztemp = ztemp * sin( ztemp ) else ; form2 == 60 ztemp = ztemp * cos( ztemp ) endif ; form2-2 else ; 60 < form2 <= 77 if form2 == 61 ztemp = ztemp * tan( ztemp ) elseif form2 == 62 ztemp = ztemp * cotan( ztemp ) elseif form2 == 63 ztemp = ztemp/cos( ztemp ) elseif form2 == 64 ztemp = ztemp/sin( ztemp ) elseif form2 == 65 ztemp = sin( 1/ztemp ) elseif form2 == 66 ztemp = cos( 1/ztemp ) elseif form2 == 67 ztemp = tan( 1/ztemp ) elseif form2 == 68 ztemp = cotan( 1/ztemp ) elseif form2 == 69 ztemp = 1/cos( 1/ztemp ) elseif form2 == 70 ztemp = 1/sin( 1/ztemp ) elseif form2 == 71 ztemp = cotanh( ztemp ) elseif form2 == 72 ztemp = 1/cosh( ztemp ) elseif form2 == 73 ztemp = 1/sinh( ztemp ) elseif form2 == 74 ztemp = atanh( 1/ztemp ) elseif form2 == 75 ztemp = acosh( 1/ztemp ) elseif form2 == 76 ztemp = asinh( 1/ztemp ) else ; form2 == 77 ztemp = @coeff2a * ztemp^@exponent2a + @coeff2b * ztemp^@exponent2b + @coeff2c * ztemp^@exponent2c endif ; form2-2 endif ; form2-1 endif ; form2-0 ; Is z near trap? value = cabs(#z - ztemp) if value <= @threshold ; yes, it is zextra = ztemp * jc * #z temp = real(zextra)/abs(real(zextra)) ; "random" sign if @taction == 0 ; seed evolve jc = jc + @strength * jc * temp elseif @taction == 1 #z = #z + @strength * #z * temp elseif @taction == 2 temp2 = real(#z) + @strength * real(#z) * temp #z = temp2 + flip(imag(#z)) elseif @taction == 3 temp2 = imag(#z) + @strength * imag(#z) * temp #z = real(#z) + flip(temp2) elseif @taction == 4 temp2 = real(jc) + @strength * real(jc) * temp jc = temp2 + flip(imag(jc)) elseif @taction == 5 temp2 = imag(jc) + @strength * imag(jc) * temp jc = real(jc) + flip(temp2) elseif @taction == 6 if formula == @formula1 formula = @formula3 power = @power3 coeffa = @coeff3a, coeffb = @coeff3b, coeffc = @coeff3b exponenta = @exponent3a, exponentb = @exponent3b, exponentc = @exponent3c else formula = @formula1 power = @power1 coeffa = @coeff1a, coeffb = @coeff1b, coeffc = @coeff1b exponenta = @exponent1a, exponentb = @exponent1b, exponentc = @exponent1c endif ; formula elseif @taction == 7 swap = TRUE formula = @formula3 power = @power3 coeffa = @coeff3a, coeffb = @coeff3b, coeffc = @coeff3b exponenta = @exponent3a, exponentb = @exponent3b, exponentc = @exponent3c endif ; taction endif ; value endif ; iter bailout: |z| < @bail default: title = "Cardioid Man Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param formula1 caption = "Formula 1" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" default = 0 hint = "Sets the main fractal formula. \ For 'z^power', use parameter 'Power 1' to set exponent. For '3-term polynomial' set \ params 'Coeff 1a', 'Exponent 1a', 'Coeff 1b', 'Exponent 1b', 'Coeff 1c', \ 'Exponent 1c'." endparam param taction caption = "Trap Action" enum = "seed evolve" "z evolve" "zreal evolve" "zimag evolve" "sreal evolve" \ "simag evolve" "toggle formula" "one-shot formula" default = 0 hint = "What happens when a point is within threshold and trapped? 'toggle formula' \ = swapping between 'Formula 1' and 'Toggle Formula' after each trap event; \ 'one-shot' executes 'Toggle Formula' just once per event" endparam param strength caption = "Trap Strength" default = 0.05 hint = "This parameter affects the strength of whatever action is taken as \ a result of parameter 'Trap Action'" endparam param centr caption = "Cardioid Center" default = (0,0) hint = "Where is the cardioid located?" endparam param tscale caption = "Cardioid Scale" default = 0.5 hint = "How big is the cardioid?" endparam param rotate caption = "Rotation" default = 0.0 min = -179.9 max = 359.9 hint = "How much should the cardioid be rotated from its default position (degrees)?" endparam param threshold caption = "Threshold" default = 0.5 hint = "Depth of well; z is trapped if it lies within this distance of cardioid" endparam param power1 caption = "Power 1" default = (5,0) hint = "This is the power used for the main fractal formula if parameter \ 'Formula 1' is set to 'z^power'" endparam param coeff1a caption = "Coeff 1A" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent1a caption = "Exponent 1A" default = (6,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff1b caption = "Coeff 1B" default = (-1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent1b caption = "Exponent 1B" default = (4,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff1c caption = "Coeff 1C" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent1c caption = "Exponent 1C" default = (2,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param formula2 caption = "Trap Transmute" enum = "w" "w^2" "w^3" "w^4" "w^power" "1/w" "sqrt(w)" "1/w^2" "log(w)" "e^w" "w^w" \ "sin(w)" "cos(w)" \ "tan(w)" "asin(w)" "acos(w)" "atan(w)" "sinh(w)" "cosh(w)" "tanh(w)" \ "asinh(w)" "acosh(w)" "atanh(w)" "log(1/w)" "log(log(w))" "e^-w" \ "e^(1/w)" "w^-w" "sin(w)^2" "cos(w)^2" "tan(w)^2" "cot(w)" "sec(w)" \ "csc(w)" "cot(w)^2" "sec(w)^2" "csc(w)^2" "w^w^w" "1/w^w^w" "log(-w)" \ "1/log(w)" "wlog(w)" "sin(w)/w" "cos(w)/w" "sin(w)*cos(w)" "sin(w^2)" \ "e^(-1/w)" "we^w" "we^-w" "we^(1/w)" "we^(-1/w)" "w^3" "1/w^3" \ "acot(w)" "asec(w)" "acsc(w)" "tan(w)/w" "cot(w)/w" "sec(w)/w" \ "csc(w)/w" "wsin(w)" "wcos(w)" "wtan(w)" "wcot(w)" "wsec(w)" "wcsc(w)" \ "sin(1/w)" "cos(1/w)" "tan(1/w)" "cot(1/w)" "sec(1/w)" "csc(1/w)" \ "cotanh(w)" "sech(w)" "cosech(w)" "acoth(w)" "asech(w)" "acosech(w)" \ "3-term polynomial" default = 0 hint = "Formula used to transform cardioid point, w, prior to trap test. \ For 'z^power', use parameter 'Power 2' to set power. For '3-term polynomial' set \ params 'Coeff 2a', 'Exponent 2a', 'Coeff 2b', 'Exponent 2b', 'Coeff 2c', \ 'Exponent 2c'." endparam param power2 caption = "Power 2" default = (6,0) hint = "This is the power used if parameter \ 'Trap Transmute' is set to 'z^power'" endparam param coeff2a caption = "Coeff 2A" default = (1,0) hint = "If 'Trap Transmute' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent2a caption = "Exponent 2A" default = (6,0) hint = "If 'Trap Transmute' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff2b caption = "Coeff 2B" default = (-1,0) hint = "If 'Trap Transmute' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent2b caption = "Exponent 2B" default = (4,0) hint = "If 'Trap Transmute' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff2c caption = "Coeff 2C" default = (1,0) hint = "If 'Trap Transmute' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent2c caption = "Exponent 2C" default = (2,0) hint = "If 'Trap Transmute' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param formula3 caption = "Toggle Formula" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" default = 0 hint = "Formula toggled in on trapping if 'Trap Action' \ = 'toggle' or 'one-shot' formula. \ For 'z^power', 'Power 3' sets power. For '3-term polynomial' set \ params 'Coeff 3a', 'Exponent 3a', 'Coeff 3b', 'Exponent 3b', 'Coeff 3c', \ 'Exponent 3c'." endparam param power3 caption = "Power 3" default = (6,0) hint = "This is the power used for the toggled formula if parameter \ 'Toggle Formula' is set to 'z^power'" endparam param coeff3a caption = "Coeff 3A" default = (1,0) hint = "If 'Toggle Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent3a caption = "Exponent 3A" default = (6,0) hint = "If 'Toggle Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff3b caption = "Coeff 3B" default = (-1,0) hint = "If 'Toggle Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent3b caption = "Exponent 3B" default = (4,0) hint = "If 'Toggle Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff3c caption = "Coeff 3C" default = (1,0) hint = "If 'Toggle Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent3c caption = "Exponent 3C" default = (2,0) hint = "If 'Toggle Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param skipped caption = "Iters to Skip" default = 0 hint = "Enter the number of iterations to skip before monitoring the orbit \ for possible trapping" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-CardioidMan" perturbation = #pixel bail = bail centr = centr tscale = tscale rotate = rotate threshold = threshold taction = taction strength = strength formula1 = formula1 formula2 = formula2 power1 = power1 power2 = power2 coeff1a = coeff1a exponent1a = exponent1a coeff1b = coeff1b exponent1b = exponent1b coeff1c = coeff1c exponent1c = exponent1c coeff2a = coeff2a exponent2a = exponent2a coeff2b = coeff2b exponent2b = exponent2b coeff2c = coeff2c exponent2c = exponent2c formula3 = formula3 power3 = power3 coeff3a = coeff3a coeff3b = coeff3b coeff3c = coeff3c exponent3a = exponent3a exponent3b = exponent3b exponent3c = exponent3c skipped = skipped pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-blendMan { ; jam 011217 ; Mandelbrot/Julia in which 2 independent formulas ; are executed on each iteration, with the final #z resulting ; from a user-specified blending together of the two. ; The 3-term polynomial formula option is ; z = ( CoeffA * z^ExponentA ) + ( CoeffB * z^ExponentB ) + ( CoeffC * z^ExponentC ) + constant ; Generalized embossing update added 030408; based on code ideas of Kerry Mitchell global: float lightrads = @lightangle * #pi / 180 float contoursize = @contourfactor * 0.0065/#magn float angleincrement = 2 * #pi / @testpoints if @emboss int maxindex = @testpoints else int maxindex = 1 endif ; emboss init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = complex temp2 = (0,0) ; temp/spare scratch variable ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 ; For embossing; some code ideas thanks to Kerry Mitchell float currentangle = lightrads complex tempform1[@testpoints], complex tempform2[@testpoints], complex zvalues[@testpoints] complex jcarray[@testpoints] int tempindex = int iteration = int bailcount = 0 int bailiter[@testpoints], int testvalue[@testpoints] if @emboss while tempindex < maxindex zvalues[tempindex] = z tempform1[tempindex] = tempform2[tempindex] = (0,0) jcarray[tempindex] = jc + contoursize * (cos(currentangle)+flip(sin(currentangle))) bailiter[tempindex] = 0 testvalue[tempindex] = 0 currentangle = currentangle + angleincrement tempindex = tempindex + 1 endwhile ; tempindex else zvalues[0] = z, jcarray[0] = jc tempform1[0] = tempform2[0] = (0,0) endif ; @emboss loop: iteration = iteration + 1 tempindex = 0 while tempindex < maxindex if @pmode != 0 zvalues[tempindex] = zvalues[tempindex] + jcarray[tempindex] endif ; pmode ; Execute 1st formula selection if @formula1 == 0 tempform1[tempindex] = zvalues[tempindex] * zvalues[tempindex] elseif @formula1 == 1 tempform1[tempindex] = zvalues[tempindex] * zvalues[tempindex] * zvalues[tempindex] elseif @formula1 == 2 zextra = zvalues[tempindex] * zvalues[tempindex] tempform1[tempindex] = zextra * zextra elseif @formula1 == 3 tempform1[tempindex] = zvalues[tempindex] ^ @power1 elseif @formula1 == 4 tempform1[tempindex] = 1/zvalues[tempindex] elseif @formula1 == 5 tempform1[tempindex] = sqrt(zvalues[tempindex]) elseif @formula1 == 6 tempform1[tempindex] = 1 / ( zvalues[tempindex] * zvalues[tempindex] ) elseif @formula1 == 7 tempform1[tempindex] = log(zvalues[tempindex]) elseif @formula1 == 8 tempform1[tempindex] = exp( zvalues[tempindex]) elseif @formula1 == 9 tempform1[tempindex] = zvalues[tempindex]^zvalues[tempindex] elseif @formula1 == 10 tempform1[tempindex] = sin( zvalues[tempindex] ) elseif @formula1 == 11 tempform1[tempindex] = cos( zvalues[tempindex] ) elseif @formula1 == 12 tempform1[tempindex] = tan( zvalues[tempindex] ) elseif @formula1 == 13 tempform1[tempindex] = asin( zvalues[tempindex] ) elseif @formula1 == 14 tempform1[tempindex] = acos( zvalues[tempindex] ) elseif @formula1 == 15 tempform1[tempindex] = atan( zvalues[tempindex] ) elseif @formula1 == 16 tempform1[tempindex] = sinh( zvalues[tempindex] ) elseif @formula1 == 17 tempform1[tempindex] = cosh( zvalues[tempindex] ) elseif @formula1 == 18 tempform1[tempindex] = tanh( zvalues[tempindex] ) elseif @formula1 == 19 tempform1[tempindex] = asinh( zvalues[tempindex] ) elseif @formula1 == 20 tempform1[tempindex] = acosh( zvalues[tempindex] ) elseif @formula1 == 21 tempform1[tempindex] = atanh( zvalues[tempindex] ) elseif @formula1 == 22 tempform1[tempindex] = log( 1/zvalues[tempindex] ) elseif @formula1 == 23 tempform1[tempindex] = log( log( zvalues[tempindex] )) elseif @formula1 == 24 tempform1[tempindex] = exp( -zvalues[tempindex] ) elseif @formula1 == 25 tempform1[tempindex] = exp( 1/zvalues[tempindex] ) elseif @formula1 == 26 tempform1[tempindex] = zvalues[tempindex]^(-zvalues[tempindex]) elseif @formula1 == 27 zextra = sin( zvalues[tempindex] ) tempform1[tempindex] = zextra * zextra elseif @formula1 == 28 zextra = cos( zvalues[tempindex] ) tempform1[tempindex] = zextra * zextra elseif @formula1 == 29 zextra = tan( zvalues[tempindex] ) tempform1[tempindex] = zextra * zextra elseif @formula1 == 30 tempform1[tempindex] = cotan( zvalues[tempindex] ) elseif @formula1 == 31 tempform1[tempindex] = 1/cos( zvalues[tempindex] ) elseif @formula1 == 32 tempform1[tempindex] = 1/sin( zvalues[tempindex] ) elseif @formula1 == 33 zextra = cotan( zvalues[tempindex] ) tempform1[tempindex] = zextra * zextra elseif @formula1 == 34 zextra = 1/cos( zvalues[tempindex] ) tempform1[tempindex] = zextra * zextra elseif @formula1 == 35 zextra = 1/sin( zvalues[tempindex] ) tempform1[tempindex] = zextra * zextra elseif @formula1 == 36 zextra = zvalues[tempindex]^(zvalues[tempindex]) tempform1[tempindex] = zvalues[tempindex]^zextra elseif @formula1 == 37 zextra = zvalues[tempindex]^(zvalues[tempindex]) tempform1[tempindex] = 1/( zvalues[tempindex]^zextra ) elseif @formula1 == 38 tempform1[tempindex] = log(-zvalues[tempindex]) elseif @formula1 == 39 tempform1[tempindex] = 1/log( zvalues[tempindex] ) elseif @formula1 == 40 tempform1[tempindex] = zvalues[tempindex] * log( zvalues[tempindex] ) elseif @formula1 == 41 tempform1[tempindex] = sin( zvalues[tempindex] ) / zvalues[tempindex] elseif @formula1 == 42 tempform1[tempindex] = cos( zvalues[tempindex] ) / zvalues[tempindex] elseif @formula1 == 43 tempform1[tempindex] = sin( zvalues[tempindex] ) * cos( zvalues[tempindex] ) elseif @formula1 == 44 tempform1[tempindex] = sin( zvalues[tempindex]^2 ) elseif @formula1 == 45 tempform1[tempindex] = exp( -1/zvalues[tempindex] ) elseif @formula1 == 46 tempform1[tempindex] = zvalues[tempindex] * exp( zvalues[tempindex] ) elseif @formula1 == 47 tempform1[tempindex] = zvalues[tempindex] * exp( -zvalues[tempindex] ) elseif @formula1 == 48 tempform1[tempindex] = zvalues[tempindex] * exp( 1/zvalues[tempindex] ) elseif @formula1 == 49 tempform1[tempindex] = zvalues[tempindex] * exp( -1/zvalues[tempindex] ) elseif @formula1 == 50 tempform1[tempindex] = zvalues[tempindex] * zvalues[tempindex] * zvalues[tempindex] elseif @formula1 == 51 tempform1[tempindex] = 1 / ( zvalues[tempindex] * zvalues[tempindex] * zvalues[tempindex] ) elseif @formula1 == 52 tempform1[tempindex] = atan( 1 / zvalues[tempindex] ) elseif @formula1 == 53 tempform1[tempindex] = acos( 1 / zvalues[tempindex] ) elseif @formula1 == 54 tempform1[tempindex] = asin( 1 / zvalues[tempindex] ) elseif @formula1 == 55 tempform1[tempindex] = tan( zvalues[tempindex] ) / zvalues[tempindex] elseif @formula1 == 56 tempform1[tempindex] = cotan( zvalues[tempindex] ) / zvalues[tempindex] elseif @formula1 == 57 tempform1[tempindex] = 1 / ( zvalues[tempindex] * cos( zvalues[tempindex] )) elseif @formula1 == 58 tempform1[tempindex] = 1 / ( zvalues[tempindex] * sin( zvalues[tempindex] )) elseif @formula1 == 59 tempform1[tempindex] = zvalues[tempindex] * sin( zvalues[tempindex] ) elseif @formula1 == 60 tempform1[tempindex] = zvalues[tempindex] * cos( zvalues[tempindex] ) elseif @formula1 == 61 tempform1[tempindex] = zvalues[tempindex] * tan( zvalues[tempindex] ) elseif @formula1 == 62 tempform1[tempindex] = zvalues[tempindex] * cotan( zvalues[tempindex] ) elseif @formula1 == 63 tempform1[tempindex] = zvalues[tempindex]/cos( zvalues[tempindex] ) elseif @formula1 == 64 tempform1[tempindex] = zvalues[tempindex]/sin( zvalues[tempindex] ) elseif @formula1 == 65 tempform1[tempindex] = sin( 1/zvalues[tempindex] ) elseif @formula1 == 66 tempform1[tempindex] = cos( 1/zvalues[tempindex] ) elseif @formula1 == 67 tempform1[tempindex] = tan( 1/zvalues[tempindex] ) elseif @formula1 == 68 tempform1[tempindex] = cotan( 1/zvalues[tempindex] ) elseif @formula1 == 69 tempform1[tempindex] = 1/cos( 1/zvalues[tempindex] ) elseif @formula1 == 70 tempform1[tempindex] = 1/sin( 1/zvalues[tempindex] ) elseif @formula1 == 71 tempform1[tempindex] = cotanh( zvalues[tempindex] ) elseif @formula1 == 72 tempform1[tempindex] = 1/cosh( zvalues[tempindex] ) elseif @formula1 == 73 tempform1[tempindex] = 1/sinh( zvalues[tempindex] ) elseif @formula1 == 74 tempform1[tempindex] = atanh( 1/zvalues[tempindex] ) elseif @formula1 == 75 tempform1[tempindex] = acosh( 1/zvalues[tempindex] ) elseif @formula1 == 76 tempform1[tempindex] = asinh( 1/zvalues[tempindex] ) elseif @formula1 == 77 tempform1[tempindex] = @coeff1a * zvalues[tempindex]^@exponent1a + \ @coeff1b * zvalues[tempindex]^@exponent1b + @coeff1c * zvalues[tempindex]^@exponent1c elseif @formula1 == 78 zextra = sinh(zvalues[tempindex]) tempform1[tempindex] = zextra * zextra elseif @formula1 == 79 zextra = cosh( zvalues[tempindex] ) tempform1[tempindex] = zextra * zextra elseif @formula1 == 80 zextra = tanh(zvalues[tempindex]) tempform1[tempindex] = zextra * zextra elseif @formula1 == 81 zextra = cotanh( zvalues[tempindex] ) tempform1[tempindex] = zextra * zextra elseif @formula1 == 82 zextra = (1,0)/cosh(zvalues[tempindex]) tempform1[tempindex] = zextra * zextra elseif @formula1 == 83 zextra = (1,0) / sinh( zvalues[tempindex] ) tempform1[tempindex] = zextra * zextra elseif @formula1 == 84 tempform1[tempindex] = sinh(1/zvalues[tempindex]) elseif @formula1 == 85 tempform1[tempindex] = cosh(1/zvalues[tempindex]) elseif @formula1 == 86 tempform1[tempindex] = tanh(1/zvalues[tempindex]) elseif @formula1 == 87 tempform1[tempindex] = cotanh(1/zvalues[tempindex]) elseif @formula1 == 88 tempform1[tempindex] = (1,0)/cosh(1/zvalues[tempindex]) elseif @formula1 == 89 tempform1[tempindex] = (1,0)/sinh(1/zvalues[tempindex]) elseif @formula1 == 90 tempform1[tempindex] = sin( zvalues[tempindex] ) * tan(zvalues[tempindex]) elseif @formula1 == 91 tempform1[tempindex] = sinh(zvalues[tempindex]) * tanh(zvalues[tempindex]) elseif @formula1 == 92 tempform1[tempindex] = sinh(zvalues[tempindex]) * cosh(zvalues[tempindex]) elseif @formula1 == 93 temp2 = sinh(zvalues[tempindex]), zextra = cosh(zvalues[tempindex]) tempform1[tempindex] = temp2*temp2*zextra*zextra elseif @formula1 == 94 temp2 = sin(zvalues[tempindex]), zextra = cos(zvalues[tempindex]) tempform1[tempindex] = temp2*temp2*zextra*zextra elseif @formula1 == 95 zextra = 1/zvalues[tempindex] tempform1[tempindex] = sin(zextra)*cos(zextra) elseif @formula1 == 96 zextra = sin( 1/zvalues[tempindex] ) tempform1[tempindex] = zextra*zextra elseif @formula1 == 97 tempform1[tempindex] = sin(zvalues[tempindex]) * cos(1/zvalues[tempindex]) elseif @formula1 == 98 tempform1[tempindex] = sin(zvalues[tempindex]) * sin(1/zvalues[tempindex]) elseif @formula1 == 99 zextra = log(zvalues[tempindex]) tempform1[tempindex] = zextra*zextra elseif @formula1 == 100 tempform1[tempindex] = sin(zvalues[tempindex]) * sin(2*zvalues[tempindex]) elseif @formula1 == 101 tempform1[tempindex] = exp(2*zvalues[tempindex]) elseif @formula1 == 102 tempform1[tempindex] = exp(-2*zvalues[tempindex]) elseif @formula1 == 103 zextra = 1/zvalues[tempindex] tempform1[tempindex] = sinh(zextra)*cosh(zextra) elseif @formula1 == 104 zextra = sinh( 1/zvalues[tempindex] ) tempform1[tempindex] = zextra*zextra elseif @formula1 == 105 tempform1[tempindex] = sinh(zvalues[tempindex]) * cosh(1/zvalues[tempindex]) elseif @formula1 == 106 tempform1[tempindex] = sinh(zvalues[tempindex]) * sinh(1/zvalues[tempindex]) elseif @formula1 == 107 tempform1[tempindex] = sin(zvalues[tempindex]) * sinh(zvalues[tempindex]) elseif @formula1 == 108 tempform1[tempindex] = sin(zvalues[tempindex]) * cosh(zvalues[tempindex]) elseif @formula1 == 109 zextra = sin(zvalues[tempindex]), temp2 = sinh(zvalues[tempindex]) tempform1[tempindex] = temp2*temp2*zextra*zextra elseif @formula1 == 110 tempform1[tempindex] = sin(zvalues[tempindex])*exp(zvalues[tempindex]) elseif @formula1 == 111 tempform1[tempindex] = cos(zvalues[tempindex])*exp(zvalues[tempindex]) elseif @formula1 == 112 tempform1[tempindex] = sinh(zvalues[tempindex])*exp(zvalues[tempindex]) elseif @formula1 == 113 tempform1[tempindex] = cosh(zvalues[tempindex])*exp(zvalues[tempindex]) elseif @formula1 == 114 tempform1[tempindex] = sin(zvalues[tempindex])*log(zvalues[tempindex]) elseif @formula1 == 115 tempform1[tempindex] = cos(zvalues[tempindex])*log(zvalues[tempindex]) elseif @formula1 == 116 tempform1[tempindex] = sinh(zvalues[tempindex])*log(zvalues[tempindex]) elseif @formula1 == 117 tempform1[tempindex] = cosh(zvalues[tempindex])*log(zvalues[tempindex]) elseif @formula1 == 118 tempform1[tempindex] = exp(zvalues[tempindex]*zvalues[tempindex]) elseif @formula1 == 119 tempform1[tempindex] = exp(-(zvalues[tempindex]*zvalues[tempindex])) elseif @formula1 == 120 tempform1[tempindex] = exp(1/(zvalues[tempindex]*zvalues[tempindex])) else ; @formula1 == 121 tempform1[tempindex] = exp(-1/(zvalues[tempindex]*zvalues[tempindex])) endif ; formula1 ; Execute 2nd formula selection if @formula2 == 0 tempform2[tempindex] = zvalues[tempindex] * zvalues[tempindex] elseif @formula2 == 1 tempform2[tempindex] = zvalues[tempindex] * zvalues[tempindex] * zvalues[tempindex] elseif @formula2 == 2 zextra = zvalues[tempindex] * zvalues[tempindex] tempform2[tempindex] = zextra * zextra elseif @formula2 == 3 tempform2[tempindex] = zvalues[tempindex] ^ @power2 elseif @formula2 == 4 tempform2[tempindex] = 1/zvalues[tempindex] elseif @formula2 == 5 tempform2[tempindex] = sqrt(zvalues[tempindex]) elseif @formula2 == 6 tempform2[tempindex] = 1 / ( zvalues[tempindex] * zvalues[tempindex] ) elseif @formula2 == 7 tempform2[tempindex] = log(zvalues[tempindex]) elseif @formula2 == 8 tempform2[tempindex] = exp( zvalues[tempindex]) elseif @formula2 == 9 tempform2[tempindex] = zvalues[tempindex]^zvalues[tempindex] elseif @formula2 == 10 tempform2[tempindex] = sin( zvalues[tempindex] ) elseif @formula2 == 11 tempform2[tempindex] = cos( zvalues[tempindex] ) elseif @formula2 == 12 tempform2[tempindex] = tan( zvalues[tempindex] ) elseif @formula2 == 13 tempform2[tempindex] = asin( zvalues[tempindex] ) elseif @formula2 == 14 tempform2[tempindex] = acos( zvalues[tempindex] ) elseif @formula2 == 15 tempform2[tempindex] = atan( zvalues[tempindex] ) elseif @formula2 == 16 tempform2[tempindex] = sinh( zvalues[tempindex] ) elseif @formula2 == 17 tempform2[tempindex] = cosh( zvalues[tempindex] ) elseif @formula2 == 18 tempform2[tempindex] = tanh( zvalues[tempindex] ) elseif @formula2 == 19 tempform2[tempindex] = asinh( zvalues[tempindex] ) elseif @formula2 == 20 tempform2[tempindex] = acosh( zvalues[tempindex] ) elseif @formula2 == 21 tempform2[tempindex] = atanh( zvalues[tempindex] ) elseif @formula2 == 22 tempform2[tempindex] = log( 1/zvalues[tempindex] ) elseif @formula2 == 23 tempform2[tempindex] = log( log( zvalues[tempindex] )) elseif @formula2 == 24 tempform2[tempindex] = exp( -zvalues[tempindex] ) elseif @formula2 == 25 tempform2[tempindex] = exp( 1/zvalues[tempindex] ) elseif @formula2 == 26 tempform2[tempindex] = zvalues[tempindex]^(-zvalues[tempindex]) elseif @formula2 == 27 zextra = sin( zvalues[tempindex] ) tempform2[tempindex] = zextra * zextra elseif @formula2 == 28 zextra = cos( zvalues[tempindex] ) tempform2[tempindex] = zextra * zextra elseif @formula2 == 29 zextra = tan( zvalues[tempindex] ) tempform2[tempindex] = zextra * zextra elseif @formula2 == 30 tempform2[tempindex] = cotan( zvalues[tempindex] ) elseif @formula2 == 31 tempform2[tempindex] = 1/cos( zvalues[tempindex] ) elseif @formula2 == 32 tempform2[tempindex] = 1/sin( zvalues[tempindex] ) elseif @formula2 == 33 zextra = cotan( zvalues[tempindex] ) tempform2[tempindex] = zextra * zextra elseif @formula2 == 34 zextra = 1/cos( zvalues[tempindex] ) tempform2[tempindex] = zextra * zextra elseif @formula2 == 35 zextra = 1/sin( zvalues[tempindex] ) tempform2[tempindex] = zextra * zextra elseif @formula2 == 36 zextra = zvalues[tempindex]^(zvalues[tempindex]) tempform2[tempindex] = zvalues[tempindex]^zextra elseif @formula2 == 37 zextra = zvalues[tempindex]^(zvalues[tempindex]) tempform2[tempindex] = 1/( zvalues[tempindex]^zextra ) elseif @formula2 == 38 tempform2[tempindex] = log(-zvalues[tempindex]) elseif @formula2 == 39 tempform2[tempindex] = 1/log( zvalues[tempindex] ) elseif @formula2 == 40 tempform2[tempindex] = zvalues[tempindex] * log( zvalues[tempindex] ) elseif @formula2 == 41 tempform2[tempindex] = sin( zvalues[tempindex] ) / zvalues[tempindex] elseif @formula2 == 42 tempform2[tempindex] = cos( zvalues[tempindex] ) / zvalues[tempindex] elseif @formula2 == 43 tempform2[tempindex] = sin( zvalues[tempindex] ) * cos( zvalues[tempindex] ) elseif @formula2 == 44 tempform2[tempindex] = sin( zvalues[tempindex]^2 ) elseif @formula2 == 45 tempform2[tempindex] = exp( -1/zvalues[tempindex] ) elseif @formula2 == 46 tempform2[tempindex] = zvalues[tempindex] * exp( zvalues[tempindex] ) elseif @formula2 == 47 tempform2[tempindex] = zvalues[tempindex] * exp( -zvalues[tempindex] ) elseif @formula2 == 48 tempform2[tempindex] = zvalues[tempindex] * exp( 1/zvalues[tempindex] ) elseif @formula2 == 49 tempform2[tempindex] = zvalues[tempindex] * exp( -1/zvalues[tempindex] ) elseif @formula2 == 50 tempform2[tempindex] = zvalues[tempindex] * zvalues[tempindex] * zvalues[tempindex] elseif @formula2 == 51 tempform2[tempindex] = 1 / ( zvalues[tempindex] * zvalues[tempindex] * zvalues[tempindex] ) elseif @formula2 == 52 tempform2[tempindex] = atan( 1 / zvalues[tempindex] ) elseif @formula2 == 53 tempform2[tempindex] = acos( 1 / zvalues[tempindex] ) elseif @formula2 == 54 tempform2[tempindex] = asin( 1 / zvalues[tempindex] ) elseif @formula2 == 55 tempform2[tempindex] = tan( zvalues[tempindex] ) / zvalues[tempindex] elseif @formula2 == 56 tempform2[tempindex] = cotan( zvalues[tempindex] ) / zvalues[tempindex] elseif @formula2 == 57 tempform2[tempindex] = 1 / ( zvalues[tempindex] * cos( zvalues[tempindex] )) elseif @formula2 == 58 tempform2[tempindex] = 1 / ( zvalues[tempindex] * sin( zvalues[tempindex] )) elseif @formula2 == 59 tempform2[tempindex] = zvalues[tempindex] * sin( zvalues[tempindex] ) elseif @formula2 == 60 tempform2[tempindex] = zvalues[tempindex] * cos( zvalues[tempindex] ) elseif @formula2 == 61 tempform2[tempindex] = zvalues[tempindex] * tan( zvalues[tempindex] ) elseif @formula2 == 62 tempform2[tempindex] = zvalues[tempindex] * cotan( zvalues[tempindex] ) elseif @formula2 == 63 tempform2[tempindex] = zvalues[tempindex]/cos( zvalues[tempindex] ) elseif @formula2 == 64 tempform2[tempindex] = zvalues[tempindex]/sin( zvalues[tempindex] ) elseif @formula2 == 65 tempform2[tempindex] = sin( 1/zvalues[tempindex] ) elseif @formula2 == 66 tempform2[tempindex] = cos( 1/zvalues[tempindex] ) elseif @formula2 == 67 tempform2[tempindex] = tan( 1/zvalues[tempindex] ) elseif @formula2 == 68 tempform2[tempindex] = cotan( 1/zvalues[tempindex] ) elseif @formula2 == 69 tempform2[tempindex] = 1/cos( 1/zvalues[tempindex] ) elseif @formula2 == 70 tempform2[tempindex] = 1/sin( 1/zvalues[tempindex] ) elseif @formula2 == 71 tempform2[tempindex] = cotanh( zvalues[tempindex] ) elseif @formula2 == 72 tempform2[tempindex] = 1/cosh( zvalues[tempindex] ) elseif @formula2 == 73 tempform2[tempindex] = 1/sinh( zvalues[tempindex] ) elseif @formula2 == 74 tempform2[tempindex] = atanh( 1/zvalues[tempindex] ) elseif @formula2 == 75 tempform2[tempindex] = acosh( 1/zvalues[tempindex] ) elseif @formula2 == 76 tempform2[tempindex] = asinh( 1/zvalues[tempindex] ) elseif @formula2 == 77 tempform2[tempindex] = @coeff2a * zvalues[tempindex]^@exponent2a + \ @coeff2b * zvalues[tempindex]^@exponent2b + @coeff2c * zvalues[tempindex]^@exponent2c elseif @formula2 == 78 zextra = sinh(zvalues[tempindex]) tempform2[tempindex] = zextra * zextra elseif @formula2 == 79 zextra = cosh( zvalues[tempindex] ) tempform2[tempindex] = zextra * zextra elseif @formula2 == 80 zextra = tanh(zvalues[tempindex]) tempform2[tempindex] = zextra * zextra elseif @formula2 == 81 zextra = cotanh( zvalues[tempindex] ) tempform2[tempindex] = zextra * zextra elseif @formula2 == 82 zextra = (1,0)/cosh(zvalues[tempindex]) tempform2[tempindex] = zextra * zextra elseif @formula2 == 83 zextra = (1,0) / sinh( zvalues[tempindex] ) tempform2[tempindex] = zextra * zextra elseif @formula2 == 84 tempform2[tempindex] = sinh(1/zvalues[tempindex]) elseif @formula2 == 85 tempform2[tempindex] = cosh(1/zvalues[tempindex]) elseif @formula2 == 86 tempform2[tempindex] = tanh(1/zvalues[tempindex]) elseif @formula2 == 87 tempform2[tempindex] = cotanh(1/zvalues[tempindex]) elseif @formula2 == 88 tempform2[tempindex] = (1,0)/cosh(1/zvalues[tempindex]) elseif @formula2 == 89 tempform2[tempindex] = (1,0)/sinh(1/zvalues[tempindex]) elseif @formula2 == 90 tempform2[tempindex] = sin( zvalues[tempindex] ) * tan(zvalues[tempindex]) elseif @formula2 == 91 tempform2[tempindex] = sinh(zvalues[tempindex]) * tanh(zvalues[tempindex]) elseif @formula2 == 92 tempform2[tempindex] = sinh(zvalues[tempindex]) * cosh(zvalues[tempindex]) elseif @formula2 == 93 temp2 = sinh(zvalues[tempindex]), zextra = cosh(zvalues[tempindex]) tempform2[tempindex] = temp2*temp2*zextra*zextra elseif @formula2 == 94 temp2 = sin(zvalues[tempindex]), zextra = cos(zvalues[tempindex]) tempform2[tempindex] = temp2*temp2*zextra*zextra elseif @formula2 == 95 zextra = 1/zvalues[tempindex] tempform2[tempindex] = sin(zextra)*cos(zextra) elseif @formula2 == 96 zextra = sin( 1/zvalues[tempindex] ) tempform2[tempindex] = zextra*zextra elseif @formula2 == 97 tempform2[tempindex] = sin(zvalues[tempindex]) * cos(1/zvalues[tempindex]) elseif @formula2 == 98 tempform2[tempindex] = sin(zvalues[tempindex]) * sin(1/zvalues[tempindex]) elseif @formula2 == 99 zextra = log(zvalues[tempindex]) tempform2[tempindex] = zextra*zextra elseif @formula2 == 100 tempform2[tempindex] = sin(zvalues[tempindex]) * sin(2*zvalues[tempindex]) elseif @formula2 == 101 tempform2[tempindex] = exp(2*zvalues[tempindex]) elseif @formula2 == 102 tempform2[tempindex] = exp(-2*zvalues[tempindex]) elseif @formula2 == 103 zextra = 1/zvalues[tempindex] tempform2[tempindex] = sinh(zextra)*cosh(zextra) elseif @formula2 == 104 zextra = sinh( 1/zvalues[tempindex] ) tempform2[tempindex] = zextra*zextra elseif @formula2 == 105 tempform2[tempindex] = sinh(zvalues[tempindex]) * cosh(1/zvalues[tempindex]) elseif @formula2 == 106 tempform2[tempindex] = sinh(zvalues[tempindex]) * sinh(1/zvalues[tempindex]) elseif @formula2 == 107 tempform2[tempindex] = sin(zvalues[tempindex]) * sinh(zvalues[tempindex]) elseif @formula2 == 108 tempform2[tempindex] = sin(zvalues[tempindex]) * cosh(zvalues[tempindex]) elseif @formula2 == 109 zextra = sin(zvalues[tempindex]), temp2 = sinh(zvalues[tempindex]) tempform2[tempindex] = temp2*temp2*zextra*zextra elseif @formula2 == 110 tempform2[tempindex] = sin(zvalues[tempindex])*exp(zvalues[tempindex]) elseif @formula2 == 111 tempform2[tempindex] = cos(zvalues[tempindex])*exp(zvalues[tempindex]) elseif @formula2 == 112 tempform2[tempindex] = sinh(zvalues[tempindex])*exp(zvalues[tempindex]) elseif @formula2 == 113 tempform2[tempindex] = cosh(zvalues[tempindex])*exp(zvalues[tempindex]) elseif @formula2 == 114 tempform2[tempindex] = sin(zvalues[tempindex])*log(zvalues[tempindex]) elseif @formula2 == 115 tempform2[tempindex] = cos(zvalues[tempindex])*log(zvalues[tempindex]) elseif @formula2 == 116 tempform2[tempindex] = sinh(zvalues[tempindex])*log(zvalues[tempindex]) elseif @formula2 == 117 tempform2[tempindex] = cosh(zvalues[tempindex])*log(zvalues[tempindex]) elseif @formula2 == 118 tempform2[tempindex] = exp(zvalues[tempindex]*zvalues[tempindex]) elseif @formula2 == 119 tempform2[tempindex] = exp(-(zvalues[tempindex]*zvalues[tempindex])) elseif @formula2 == 120 tempform2[tempindex] = exp(1/(zvalues[tempindex]*zvalues[tempindex])) elseif @formula2 == 121 tempform2[tempindex] = exp(-1/(zvalues[tempindex]*zvalues[tempindex])) endif ; formula2 zvalues[tempindex] = (1-@blend)*tempform1[tempindex] + @blend*tempform2[tempindex] if @pmode != 1 zvalues[tempindex] = zvalues[tempindex] + jcarray[tempindex] endif ; pmode tempindex = tempindex + 1 endwhile ; tempindex ; Assign proper #z value for bailout test ; If embossed, assign proper color index to real(#z), and set imag(#z) ; to a large value if finished so that bailout will occur if @emboss tempindex = 0 while tempindex < maxindex if bailiter[tempindex] == 0 if ( cabs(zvalues[tempindex]) >= @bail ) bailiter[tempindex] = iteration bailcount = bailcount + 1 endif ; cabs if @evariable == 1 ; real crossings if real(zvalues[tempindex]) > 0 testvalue[tempindex] = testvalue[tempindex] + 1 endif ; real elseif @evariable == 2 ; imag crossings if imag(zvalues[tempindex]) > 0 testvalue[tempindex] = testvalue[tempindex] + 1 endif ; imag elseif @evariable == 3 ; angle wrappings if atan2(zvalues[tempindex]) < 0 testvalue[tempindex] = testvalue[tempindex] + 1 endif ; atan2 endif ; @evariable endif ; bailiter tempindex = tempindex + 1 endwhile ; tempindex ; See if all the test points have bailed out yet; if so,we're done and ; can assign a color value if bailcount == @testpoints ; all done if @evariable != 0 ; copy test values to the bailiter array for convenience tempindex = 0 while tempindex < maxindex bailiter[tempindex] = testvalue[tempindex] tempindex = tempindex + 1 endwhile ; tempindex endif ; @evariable if @testpoints == 2 if @type2 == 0 ; original if bailiter[0] > bailiter[1] z = (0.9,1e30) elseif bailiter[0] < bailiter[1] z = (0.1, 1e30) else z = (0.5,1e30) endif ; bailiter elseif @type2 == 1 ; two-tone if bailiter[0] == bailiter[1] z = (0.1,1e30) else z = (0.9,1e30) endif ; bailiter endif ; @type2 elseif @testpoints == 3 if @type3 == 0 if ( bailiter[0] == bailiter[1] ) && ( bailiter[1] == bailiter[2] ) z = (0.67,1e30) elseif ( bailiter[0] == bailiter[1] ) || ( bailiter[1] == bailiter[2] ) || \ ( bailiter[0] == bailiter[2] ) z = (0.33,1e30) elseif ( ( bailiter[0] > bailiter[1] ) && ( bailiter[1] > bailiter[2] ) && \ ( bailiter[2] < bailiter[0] ) ) || ( ( bailiter[1] > bailiter[2] ) && \ ( bailiter[2] > bailiter[0] ) && ( bailiter[0] < bailiter[1] ) ) || \ ( ( bailiter[2] > bailiter[0] ) && ( bailiter[0] > bailiter[1] ) && \ ( bailiter[1] < bailiter[2] ) ) ; counterclockwise z = (0.9,1e30) else ; clockwise z = (0.1,1e30) endif ; bailiter elseif @type3 == 1 if ( bailiter[0] == bailiter[1] ) || ( bailiter[1] == bailiter[2] ) || \ ( bailiter[0] == bailiter[2] ) ; any are equal z = (0.5,1e30) elseif ( ( bailiter[0] > bailiter[1] ) && ( bailiter[1] > bailiter[2] ) && \ ( bailiter[2] < bailiter[0] ) ) || ( ( bailiter[1] > bailiter[2] ) && \ ( bailiter[2] > bailiter[0] ) && ( bailiter[0] < bailiter[1] ) ) || \ ( ( bailiter[2] > bailiter[0] ) && ( bailiter[0] > bailiter[1] ) && \ ( bailiter[1] < bailiter[2] ) ) ; counterclockwise z = (0.9,1e30) else ; clockwise z = (0.1,1e30) endif ; bailiter elseif @type3 == 2 ; two-tone if ( bailiter[0] == bailiter[1] ) && ( bailiter[1] == bailiter[2] ) ; all equal z = (0.9,1e30) else z = (0.1,1e30) endif ; bailiter endif ; @type3 endif ; @testpoints else ; all test points haven't bailed yet z = (0.05,0.05) endif ; bailcount else if @pixelmode z = #pixel + @pixelblend*zvalues[0] else z = zvalues[0] endif ; @pixelmode endif ; @emboss bailout: |z| < @bail default: title = "BlendMan" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param pixelmode caption = "Pixel Mode?" default = FALSE hint = "If enabled, the selected Mandelbrot formulas are used to slightly modify \ the pixel coordinates, resulting in a perturbed pixel-type formula. \ The extent of the perturbation is controlled with param 'Pixel Blend'. \ Use a low iteration count and Inside coloring, since the affect is cumulative. \ Not available in 'Emboss' mode" visible = !@emboss endparam param pixelblend caption = "Pixel Blend" default = 1.0 hint = "If 'Pixel Mode' is enabled, this param controls the amount of the \ Mandelbrot formula that is blended into the pixel coordinates" visible = @pixelmode endparam param emboss caption = "Emboss?" default = FALSE hint = "If enabled, special embossing algorithm is implemented. The embossing \ method is intended to be used only with the special coloring formula \ 'jam-Emboss' in folder jam2.ucl. Not available in 'Pixel Mode'" visible = !@pixelmode endparam param testpoints caption = "Test Points" default = 3 min = 2 max = 3 hint = "If 'Emboss' is enabled, this is the number of test points to be computed for \ each pixel. Range is 2-5 (integer). The bigger the number, the slower the \ calculation" visible = @emboss endparam param type2 caption = "2-Pt Flavor" default = 0 enum = "Original" "Two-Tone" hint = "If 'Emboss' is enabled and 'Test Points' is set to 2, then this \ param defines the type of test to be performed in the calculation" visible = @emboss && (@testpoints == 2) endparam param type3 caption = "3-Pt Flavor" default = 0 enum = "A" "B" "C" hint = "If 'Emboss' is enabled and 'Test Points' is set to 3, then this \ param defines the type of test to be performed in the calculation" visible = @emboss && (@testpoints == 3) endparam param evariable caption = "Emboss Variable" enum = "Iteration" "Real" "Imag" "Angle" default = 0 hint = "This param describes which variable is tracked to define the embossing" visible = @emboss endparam param lightangle caption = "Light Angle" default = 0.0 min = 0.0 max = 360.0 hint = "If 'Emboss' is enabled, this param can shift the lighting pattern. Range \ is 0 - 360 degrees" visible = @emboss endparam param contourfactor caption = "Contour Size" default = 1.0 min = 0.0 hint = "If 'Emboss' is enabled, this param affects the size of the contours" visible = @emboss endparam param blend caption = "Formula Blend" default = 0.0 min = -2.0 max = 2.0 hint = "Range is 0.0 - 1.0. This is the fraction of Formula 2 that is \ blended into Formula 1; at 0.0, final #z is solely from Formula 1, \ while at 1.0, #z is determined solely by Formula 2" endparam param formula1 caption = "Formula 1" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "Sets the first formula to be iterated. \ For 'z^power', use parameter 'Power 1' to set power. For '3-term polynomial' set \ params 'Coeff 1a', 'Exponent 1a', 'Coeff 1b', 'Exponent 1b', 'Coeff 1c', \ 'Exponent 1c'." endparam param formula2 caption = "Formula 2" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "Sets the second formula to be iterated. \ For 'z^power', use parameter 'Power 2' to set power. For '3-term polynomial' set \ params 'Coeff 2a', 'Exponent 2a', 'Coeff 2b', 'Exponent 2b', 'Coeff 2c', \ 'Exponent 2c'." endparam param power1 caption = "Power 1" default = (5,0) hint = "This is the power used for the first formula series if parameter \ 'Formula 1' is set to 'z^power'" visible = @formula1 == "z^power" endparam param power2 caption = "Power 2" default = (6,0) hint = "This is the power used for the second formula series if parameter \ 'Formula 2' is set to 'z^power'" visible = @formula2 == "z^power" endparam param coeff1a caption = "Coeff 1A" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula1 == "3-term polynomial" endparam param exponent1a caption = "Exponent 1A" default = (6,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula1 == "3-term polynomial" endparam param coeff1b caption = "Coeff 1B" default = (-1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula1 == "3-term polynomial" endparam param exponent1b caption = "Exponent 1B" default = (4,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula1 == "3-term polynomial" endparam param coeff1c caption = "Coeff 1C" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula1 == "3-term polynomial" endparam param exponent1c caption = "Exponent 1C" default = (2,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula1 == "3-term polynomial" endparam param coeff2a caption = "Coeff 2A" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula2 == "3-term polynomial" endparam param exponent2a caption = "Exponent 2A" default = (6,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula2 == "3-term polynomial" endparam param coeff2b caption = "Coeff 2B" default = (-1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula2 == "3-term polynomial" endparam param exponent2b caption = "Exponent 2B" default = (4,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula2 == "3-term polynomial" endparam param coeff2c caption = "Coeff 2C" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula2 == "3-term polynomial" endparam param exponent2c caption = "Exponent 2C" default = (2,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula2 == "3-term polynomial" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" visible = @pixelformula == "p^power" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-blendMan-J" jconstant = #pixel bail = bail pixelmode = pixelmode pixelblend = pixelblend emboss = emboss testpoints = testpoints type2 = type2 type3 = type3 evariable = evariable lightangle = lightangle contourfactor = contourfactor blend = blend formula1 = formula1 formula2 = formula2 power1 = power1 power2 = power2 coeff1a = coeff1a exponent1a = exponent1a coeff1b = coeff1b exponent1b = exponent1b coeff1c = coeff1c exponent1c = exponent1c coeff2a = coeff2a exponent2a = exponent2a coeff2b = coeff2b exponent2b = exponent2b coeff2c = coeff2c exponent2c = exponent2c pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-blendMan-J { ; jam 011217 ; Mandelbrot/Julia in which 2 independent formulas ; are executed on each iteration, with the final #z resulting ; from a user-specified blending together of the two. ; The 3-term polynomial formula option is ; z = ( CoeffA * z^ExponentA ) + ( CoeffB * z^ExponentB ) + ( CoeffC * z^ExponentC ) + constant ; Generalized embossing update added 030408; based on code ideas of Kerry Mitchell global: float lightrads = @lightangle * #pi / 180 float contoursize = @contourfactor * 0.0065/#magn float angleincrement = 2 * #pi / @testpoints if @emboss int maxindex = @testpoints else int maxindex = 1 endif ; emboss init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = complex temp2 = (0,0) ; temp/spare scratch variable ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 ; For embossing; some code ideas thanks to Kerry Mitchell float currentangle = lightrads complex tempform1[@testpoints], complex tempform2[@testpoints], complex zvalues[@testpoints] complex jcarray[@testpoints] int tempindex = int iteration = int bailcount = 0 int bailiter[@testpoints], int testvalue[@testpoints] if @emboss while tempindex < maxindex zvalues[tempindex] = z + contoursize * (cos(currentangle)+flip(sin(currentangle))) tempform1[tempindex] = tempform2[tempindex] = (0,0) jcarray[tempindex] = jc bailiter[tempindex] = 0 testvalue[tempindex] = 0 currentangle = currentangle + angleincrement tempindex = tempindex + 1 endwhile ; tempindex else zvalues[0] = z, jcarray[0] = jc tempform1[0] = tempform2[0] = (0,0) endif ; @emboss loop: iteration = iteration + 1 tempindex = 0 while tempindex < maxindex if @pmode != 0 zvalues[tempindex] = zvalues[tempindex] + jcarray[tempindex] endif ; pmode ; Execute 1st formula selection if @formula1 == 0 tempform1[tempindex] = zvalues[tempindex] * zvalues[tempindex] elseif @formula1 == 1 tempform1[tempindex] = zvalues[tempindex] * zvalues[tempindex] * zvalues[tempindex] elseif @formula1 == 2 zextra = zvalues[tempindex] * zvalues[tempindex] tempform1[tempindex] = zextra * zextra elseif @formula1 == 3 tempform1[tempindex] = zvalues[tempindex] ^ @power1 elseif @formula1 == 4 tempform1[tempindex] = 1/zvalues[tempindex] elseif @formula1 == 5 tempform1[tempindex] = sqrt(zvalues[tempindex]) elseif @formula1 == 6 tempform1[tempindex] = 1 / ( zvalues[tempindex] * zvalues[tempindex] ) elseif @formula1 == 7 tempform1[tempindex] = log(zvalues[tempindex]) elseif @formula1 == 8 tempform1[tempindex] = exp( zvalues[tempindex]) elseif @formula1 == 9 tempform1[tempindex] = zvalues[tempindex]^zvalues[tempindex] elseif @formula1 == 10 tempform1[tempindex] = sin( zvalues[tempindex] ) elseif @formula1 == 11 tempform1[tempindex] = cos( zvalues[tempindex] ) elseif @formula1 == 12 tempform1[tempindex] = tan( zvalues[tempindex] ) elseif @formula1 == 13 tempform1[tempindex] = asin( zvalues[tempindex] ) elseif @formula1 == 14 tempform1[tempindex] = acos( zvalues[tempindex] ) elseif @formula1 == 15 tempform1[tempindex] = atan( zvalues[tempindex] ) elseif @formula1 == 16 tempform1[tempindex] = sinh( zvalues[tempindex] ) elseif @formula1 == 17 tempform1[tempindex] = cosh( zvalues[tempindex] ) elseif @formula1 == 18 tempform1[tempindex] = tanh( zvalues[tempindex] ) elseif @formula1 == 19 tempform1[tempindex] = asinh( zvalues[tempindex] ) elseif @formula1 == 20 tempform1[tempindex] = acosh( zvalues[tempindex] ) elseif @formula1 == 21 tempform1[tempindex] = atanh( zvalues[tempindex] ) elseif @formula1 == 22 tempform1[tempindex] = log( 1/zvalues[tempindex] ) elseif @formula1 == 23 tempform1[tempindex] = log( log( zvalues[tempindex] )) elseif @formula1 == 24 tempform1[tempindex] = exp( -zvalues[tempindex] ) elseif @formula1 == 25 tempform1[tempindex] = exp( 1/zvalues[tempindex] ) elseif @formula1 == 26 tempform1[tempindex] = zvalues[tempindex]^(-zvalues[tempindex]) elseif @formula1 == 27 zextra = sin( zvalues[tempindex] ) tempform1[tempindex] = zextra * zextra elseif @formula1 == 28 zextra = cos( zvalues[tempindex] ) tempform1[tempindex] = zextra * zextra elseif @formula1 == 29 zextra = tan( zvalues[tempindex] ) tempform1[tempindex] = zextra * zextra elseif @formula1 == 30 tempform1[tempindex] = cotan( zvalues[tempindex] ) elseif @formula1 == 31 tempform1[tempindex] = 1/cos( zvalues[tempindex] ) elseif @formula1 == 32 tempform1[tempindex] = 1/sin( zvalues[tempindex] ) elseif @formula1 == 33 zextra = cotan( zvalues[tempindex] ) tempform1[tempindex] = zextra * zextra elseif @formula1 == 34 zextra = 1/cos( zvalues[tempindex] ) tempform1[tempindex] = zextra * zextra elseif @formula1 == 35 zextra = 1/sin( zvalues[tempindex] ) tempform1[tempindex] = zextra * zextra elseif @formula1 == 36 zextra = zvalues[tempindex]^(zvalues[tempindex]) tempform1[tempindex] = zvalues[tempindex]^zextra elseif @formula1 == 37 zextra = zvalues[tempindex]^(zvalues[tempindex]) tempform1[tempindex] = 1/( zvalues[tempindex]^zextra ) elseif @formula1 == 38 tempform1[tempindex] = log(-zvalues[tempindex]) elseif @formula1 == 39 tempform1[tempindex] = 1/log( zvalues[tempindex] ) elseif @formula1 == 40 tempform1[tempindex] = zvalues[tempindex] * log( zvalues[tempindex] ) elseif @formula1 == 41 tempform1[tempindex] = sin( zvalues[tempindex] ) / zvalues[tempindex] elseif @formula1 == 42 tempform1[tempindex] = cos( zvalues[tempindex] ) / zvalues[tempindex] elseif @formula1 == 43 tempform1[tempindex] = sin( zvalues[tempindex] ) * cos( zvalues[tempindex] ) elseif @formula1 == 44 tempform1[tempindex] = sin( zvalues[tempindex]^2 ) elseif @formula1 == 45 tempform1[tempindex] = exp( -1/zvalues[tempindex] ) elseif @formula1 == 46 tempform1[tempindex] = zvalues[tempindex] * exp( zvalues[tempindex] ) elseif @formula1 == 47 tempform1[tempindex] = zvalues[tempindex] * exp( -zvalues[tempindex] ) elseif @formula1 == 48 tempform1[tempindex] = zvalues[tempindex] * exp( 1/zvalues[tempindex] ) elseif @formula1 == 49 tempform1[tempindex] = zvalues[tempindex] * exp( -1/zvalues[tempindex] ) elseif @formula1 == 50 tempform1[tempindex] = zvalues[tempindex] * zvalues[tempindex] * zvalues[tempindex] elseif @formula1 == 51 tempform1[tempindex] = 1 / ( zvalues[tempindex] * zvalues[tempindex] * zvalues[tempindex] ) elseif @formula1 == 52 tempform1[tempindex] = atan( 1 / zvalues[tempindex] ) elseif @formula1 == 53 tempform1[tempindex] = acos( 1 / zvalues[tempindex] ) elseif @formula1 == 54 tempform1[tempindex] = asin( 1 / zvalues[tempindex] ) elseif @formula1 == 55 tempform1[tempindex] = tan( zvalues[tempindex] ) / zvalues[tempindex] elseif @formula1 == 56 tempform1[tempindex] = cotan( zvalues[tempindex] ) / zvalues[tempindex] elseif @formula1 == 57 tempform1[tempindex] = 1 / ( zvalues[tempindex] * cos( zvalues[tempindex] )) elseif @formula1 == 58 tempform1[tempindex] = 1 / ( zvalues[tempindex] * sin( zvalues[tempindex] )) elseif @formula1 == 59 tempform1[tempindex] = zvalues[tempindex] * sin( zvalues[tempindex] ) elseif @formula1 == 60 tempform1[tempindex] = zvalues[tempindex] * cos( zvalues[tempindex] ) elseif @formula1 == 61 tempform1[tempindex] = zvalues[tempindex] * tan( zvalues[tempindex] ) elseif @formula1 == 62 tempform1[tempindex] = zvalues[tempindex] * cotan( zvalues[tempindex] ) elseif @formula1 == 63 tempform1[tempindex] = zvalues[tempindex]/cos( zvalues[tempindex] ) elseif @formula1 == 64 tempform1[tempindex] = zvalues[tempindex]/sin( zvalues[tempindex] ) elseif @formula1 == 65 tempform1[tempindex] = sin( 1/zvalues[tempindex] ) elseif @formula1 == 66 tempform1[tempindex] = cos( 1/zvalues[tempindex] ) elseif @formula1 == 67 tempform1[tempindex] = tan( 1/zvalues[tempindex] ) elseif @formula1 == 68 tempform1[tempindex] = cotan( 1/zvalues[tempindex] ) elseif @formula1 == 69 tempform1[tempindex] = 1/cos( 1/zvalues[tempindex] ) elseif @formula1 == 70 tempform1[tempindex] = 1/sin( 1/zvalues[tempindex] ) elseif @formula1 == 71 tempform1[tempindex] = cotanh( zvalues[tempindex] ) elseif @formula1 == 72 tempform1[tempindex] = 1/cosh( zvalues[tempindex] ) elseif @formula1 == 73 tempform1[tempindex] = 1/sinh( zvalues[tempindex] ) elseif @formula1 == 74 tempform1[tempindex] = atanh( 1/zvalues[tempindex] ) elseif @formula1 == 75 tempform1[tempindex] = acosh( 1/zvalues[tempindex] ) elseif @formula1 == 76 tempform1[tempindex] = asinh( 1/zvalues[tempindex] ) elseif @formula1 == 77 tempform1[tempindex] = @coeff1a * zvalues[tempindex]^@exponent1a + \ @coeff1b * zvalues[tempindex]^@exponent1b + @coeff1c * zvalues[tempindex]^@exponent1c elseif @formula1 == 78 zextra = sinh(zvalues[tempindex]) tempform1[tempindex] = zextra * zextra elseif @formula1 == 79 zextra = cosh( zvalues[tempindex] ) tempform1[tempindex] = zextra * zextra elseif @formula1 == 80 zextra = tanh(zvalues[tempindex]) tempform1[tempindex] = zextra * zextra elseif @formula1 == 81 zextra = cotanh( zvalues[tempindex] ) tempform1[tempindex] = zextra * zextra elseif @formula1 == 82 zextra = (1,0)/cosh(zvalues[tempindex]) tempform1[tempindex] = zextra * zextra elseif @formula1 == 83 zextra = (1,0) / sinh( zvalues[tempindex] ) tempform1[tempindex] = zextra * zextra elseif @formula1 == 84 tempform1[tempindex] = sinh(1/zvalues[tempindex]) elseif @formula1 == 85 tempform1[tempindex] = cosh(1/zvalues[tempindex]) elseif @formula1 == 86 tempform1[tempindex] = tanh(1/zvalues[tempindex]) elseif @formula1 == 87 tempform1[tempindex] = cotanh(1/zvalues[tempindex]) elseif @formula1 == 88 tempform1[tempindex] = (1,0)/cosh(1/zvalues[tempindex]) elseif @formula1 == 89 tempform1[tempindex] = (1,0)/sinh(1/zvalues[tempindex]) elseif @formula1 == 90 tempform1[tempindex] = sin( zvalues[tempindex] ) * tan(zvalues[tempindex]) elseif @formula1 == 91 tempform1[tempindex] = sinh(zvalues[tempindex]) * tanh(zvalues[tempindex]) elseif @formula1 == 92 tempform1[tempindex] = sinh(zvalues[tempindex]) * cosh(zvalues[tempindex]) elseif @formula1 == 93 temp2 = sinh(zvalues[tempindex]), zextra = cosh(zvalues[tempindex]) tempform1[tempindex] = temp2*temp2*zextra*zextra elseif @formula1 == 94 temp2 = sin(zvalues[tempindex]), zextra = cos(zvalues[tempindex]) tempform1[tempindex] = temp2*temp2*zextra*zextra elseif @formula1 == 95 zextra = 1/zvalues[tempindex] tempform1[tempindex] = sin(zextra)*cos(zextra) elseif @formula1 == 96 zextra = sin( 1/zvalues[tempindex] ) tempform1[tempindex] = zextra*zextra elseif @formula1 == 97 tempform1[tempindex] = sin(zvalues[tempindex]) * cos(1/zvalues[tempindex]) elseif @formula1 == 98 tempform1[tempindex] = sin(zvalues[tempindex]) * sin(1/zvalues[tempindex]) elseif @formula1 == 99 zextra = log(zvalues[tempindex]) tempform1[tempindex] = zextra*zextra elseif @formula1 == 100 tempform1[tempindex] = sin(zvalues[tempindex]) * sin(2*zvalues[tempindex]) elseif @formula1 == 101 tempform1[tempindex] = exp(2*zvalues[tempindex]) elseif @formula1 == 102 tempform1[tempindex] = exp(-2*zvalues[tempindex]) elseif @formula1 == 103 zextra = 1/zvalues[tempindex] tempform1[tempindex] = sinh(zextra)*cosh(zextra) elseif @formula1 == 104 zextra = sinh( 1/zvalues[tempindex] ) tempform1[tempindex] = zextra*zextra elseif @formula1 == 105 tempform1[tempindex] = sinh(zvalues[tempindex]) * cosh(1/zvalues[tempindex]) elseif @formula1 == 106 tempform1[tempindex] = sinh(zvalues[tempindex]) * sinh(1/zvalues[tempindex]) elseif @formula1 == 107 tempform1[tempindex] = sin(zvalues[tempindex]) * sinh(zvalues[tempindex]) elseif @formula1 == 108 tempform1[tempindex] = sin(zvalues[tempindex]) * cosh(zvalues[tempindex]) elseif @formula1 == 109 zextra = sin(zvalues[tempindex]), temp2 = sinh(zvalues[tempindex]) tempform1[tempindex] = temp2*temp2*zextra*zextra elseif @formula1 == 110 tempform1[tempindex] = sin(zvalues[tempindex])*exp(zvalues[tempindex]) elseif @formula1 == 111 tempform1[tempindex] = cos(zvalues[tempindex])*exp(zvalues[tempindex]) elseif @formula1 == 112 tempform1[tempindex] = sinh(zvalues[tempindex])*exp(zvalues[tempindex]) elseif @formula1 == 113 tempform1[tempindex] = cosh(zvalues[tempindex])*exp(zvalues[tempindex]) elseif @formula1 == 114 tempform1[tempindex] = sin(zvalues[tempindex])*log(zvalues[tempindex]) elseif @formula1 == 115 tempform1[tempindex] = cos(zvalues[tempindex])*log(zvalues[tempindex]) elseif @formula1 == 116 tempform1[tempindex] = sinh(zvalues[tempindex])*log(zvalues[tempindex]) elseif @formula1 == 117 tempform1[tempindex] = cosh(zvalues[tempindex])*log(zvalues[tempindex]) elseif @formula1 == 118 tempform1[tempindex] = exp(zvalues[tempindex]*zvalues[tempindex]) elseif @formula1 == 119 tempform1[tempindex] = exp(-(zvalues[tempindex]*zvalues[tempindex])) elseif @formula1 == 120 tempform1[tempindex] = exp(1/(zvalues[tempindex]*zvalues[tempindex])) else ; @formula1 == 121 tempform1[tempindex] = exp(-1/(zvalues[tempindex]*zvalues[tempindex])) endif ; formula1 ; Execute 2nd formula selection if @formula2 == 0 tempform2[tempindex] = zvalues[tempindex] * zvalues[tempindex] elseif @formula2 == 1 tempform2[tempindex] = zvalues[tempindex] * zvalues[tempindex] * zvalues[tempindex] elseif @formula2 == 2 zextra = zvalues[tempindex] * zvalues[tempindex] tempform2[tempindex] = zextra * zextra elseif @formula2 == 3 tempform2[tempindex] = zvalues[tempindex] ^ @power2 elseif @formula2 == 4 tempform2[tempindex] = 1/zvalues[tempindex] elseif @formula2 == 5 tempform2[tempindex] = sqrt(zvalues[tempindex]) elseif @formula2 == 6 tempform2[tempindex] = 1 / ( zvalues[tempindex] * zvalues[tempindex] ) elseif @formula2 == 7 tempform2[tempindex] = log(zvalues[tempindex]) elseif @formula2 == 8 tempform2[tempindex] = exp( zvalues[tempindex]) elseif @formula2 == 9 tempform2[tempindex] = zvalues[tempindex]^zvalues[tempindex] elseif @formula2 == 10 tempform2[tempindex] = sin( zvalues[tempindex] ) elseif @formula2 == 11 tempform2[tempindex] = cos( zvalues[tempindex] ) elseif @formula2 == 12 tempform2[tempindex] = tan( zvalues[tempindex] ) elseif @formula2 == 13 tempform2[tempindex] = asin( zvalues[tempindex] ) elseif @formula2 == 14 tempform2[tempindex] = acos( zvalues[tempindex] ) elseif @formula2 == 15 tempform2[tempindex] = atan( zvalues[tempindex] ) elseif @formula2 == 16 tempform2[tempindex] = sinh( zvalues[tempindex] ) elseif @formula2 == 17 tempform2[tempindex] = cosh( zvalues[tempindex] ) elseif @formula2 == 18 tempform2[tempindex] = tanh( zvalues[tempindex] ) elseif @formula2 == 19 tempform2[tempindex] = asinh( zvalues[tempindex] ) elseif @formula2 == 20 tempform2[tempindex] = acosh( zvalues[tempindex] ) elseif @formula2 == 21 tempform2[tempindex] = atanh( zvalues[tempindex] ) elseif @formula2 == 22 tempform2[tempindex] = log( 1/zvalues[tempindex] ) elseif @formula2 == 23 tempform2[tempindex] = log( log( zvalues[tempindex] )) elseif @formula2 == 24 tempform2[tempindex] = exp( -zvalues[tempindex] ) elseif @formula2 == 25 tempform2[tempindex] = exp( 1/zvalues[tempindex] ) elseif @formula2 == 26 tempform2[tempindex] = zvalues[tempindex]^(-zvalues[tempindex]) elseif @formula2 == 27 zextra = sin( zvalues[tempindex] ) tempform2[tempindex] = zextra * zextra elseif @formula2 == 28 zextra = cos( zvalues[tempindex] ) tempform2[tempindex] = zextra * zextra elseif @formula2 == 29 zextra = tan( zvalues[tempindex] ) tempform2[tempindex] = zextra * zextra elseif @formula2 == 30 tempform2[tempindex] = cotan( zvalues[tempindex] ) elseif @formula2 == 31 tempform2[tempindex] = 1/cos( zvalues[tempindex] ) elseif @formula2 == 32 tempform2[tempindex] = 1/sin( zvalues[tempindex] ) elseif @formula2 == 33 zextra = cotan( zvalues[tempindex] ) tempform2[tempindex] = zextra * zextra elseif @formula2 == 34 zextra = 1/cos( zvalues[tempindex] ) tempform2[tempindex] = zextra * zextra elseif @formula2 == 35 zextra = 1/sin( zvalues[tempindex] ) tempform2[tempindex] = zextra * zextra elseif @formula2 == 36 zextra = zvalues[tempindex]^(zvalues[tempindex]) tempform2[tempindex] = zvalues[tempindex]^zextra elseif @formula2 == 37 zextra = zvalues[tempindex]^(zvalues[tempindex]) tempform2[tempindex] = 1/( zvalues[tempindex]^zextra ) elseif @formula2 == 38 tempform2[tempindex] = log(-zvalues[tempindex]) elseif @formula2 == 39 tempform2[tempindex] = 1/log( zvalues[tempindex] ) elseif @formula2 == 40 tempform2[tempindex] = zvalues[tempindex] * log( zvalues[tempindex] ) elseif @formula2 == 41 tempform2[tempindex] = sin( zvalues[tempindex] ) / zvalues[tempindex] elseif @formula2 == 42 tempform2[tempindex] = cos( zvalues[tempindex] ) / zvalues[tempindex] elseif @formula2 == 43 tempform2[tempindex] = sin( zvalues[tempindex] ) * cos( zvalues[tempindex] ) elseif @formula2 == 44 tempform2[tempindex] = sin( zvalues[tempindex]^2 ) elseif @formula2 == 45 tempform2[tempindex] = exp( -1/zvalues[tempindex] ) elseif @formula2 == 46 tempform2[tempindex] = zvalues[tempindex] * exp( zvalues[tempindex] ) elseif @formula2 == 47 tempform2[tempindex] = zvalues[tempindex] * exp( -zvalues[tempindex] ) elseif @formula2 == 48 tempform2[tempindex] = zvalues[tempindex] * exp( 1/zvalues[tempindex] ) elseif @formula2 == 49 tempform2[tempindex] = zvalues[tempindex] * exp( -1/zvalues[tempindex] ) elseif @formula2 == 50 tempform2[tempindex] = zvalues[tempindex] * zvalues[tempindex] * zvalues[tempindex] elseif @formula2 == 51 tempform2[tempindex] = 1 / ( zvalues[tempindex] * zvalues[tempindex] * zvalues[tempindex] ) elseif @formula2 == 52 tempform2[tempindex] = atan( 1 / zvalues[tempindex] ) elseif @formula2 == 53 tempform2[tempindex] = acos( 1 / zvalues[tempindex] ) elseif @formula2 == 54 tempform2[tempindex] = asin( 1 / zvalues[tempindex] ) elseif @formula2 == 55 tempform2[tempindex] = tan( zvalues[tempindex] ) / zvalues[tempindex] elseif @formula2 == 56 tempform2[tempindex] = cotan( zvalues[tempindex] ) / zvalues[tempindex] elseif @formula2 == 57 tempform2[tempindex] = 1 / ( zvalues[tempindex] * cos( zvalues[tempindex] )) elseif @formula2 == 58 tempform2[tempindex] = 1 / ( zvalues[tempindex] * sin( zvalues[tempindex] )) elseif @formula2 == 59 tempform2[tempindex] = zvalues[tempindex] * sin( zvalues[tempindex] ) elseif @formula2 == 60 tempform2[tempindex] = zvalues[tempindex] * cos( zvalues[tempindex] ) elseif @formula2 == 61 tempform2[tempindex] = zvalues[tempindex] * tan( zvalues[tempindex] ) elseif @formula2 == 62 tempform2[tempindex] = zvalues[tempindex] * cotan( zvalues[tempindex] ) elseif @formula2 == 63 tempform2[tempindex] = zvalues[tempindex]/cos( zvalues[tempindex] ) elseif @formula2 == 64 tempform2[tempindex] = zvalues[tempindex]/sin( zvalues[tempindex] ) elseif @formula2 == 65 tempform2[tempindex] = sin( 1/zvalues[tempindex] ) elseif @formula2 == 66 tempform2[tempindex] = cos( 1/zvalues[tempindex] ) elseif @formula2 == 67 tempform2[tempindex] = tan( 1/zvalues[tempindex] ) elseif @formula2 == 68 tempform2[tempindex] = cotan( 1/zvalues[tempindex] ) elseif @formula2 == 69 tempform2[tempindex] = 1/cos( 1/zvalues[tempindex] ) elseif @formula2 == 70 tempform2[tempindex] = 1/sin( 1/zvalues[tempindex] ) elseif @formula2 == 71 tempform2[tempindex] = cotanh( zvalues[tempindex] ) elseif @formula2 == 72 tempform2[tempindex] = 1/cosh( zvalues[tempindex] ) elseif @formula2 == 73 tempform2[tempindex] = 1/sinh( zvalues[tempindex] ) elseif @formula2 == 74 tempform2[tempindex] = atanh( 1/zvalues[tempindex] ) elseif @formula2 == 75 tempform2[tempindex] = acosh( 1/zvalues[tempindex] ) elseif @formula2 == 76 tempform2[tempindex] = asinh( 1/zvalues[tempindex] ) elseif @formula2 == 77 tempform2[tempindex] = @coeff2a * zvalues[tempindex]^@exponent2a + \ @coeff2b * zvalues[tempindex]^@exponent2b + @coeff2c * zvalues[tempindex]^@exponent2c elseif @formula2 == 78 zextra = sinh(zvalues[tempindex]) tempform2[tempindex] = zextra * zextra elseif @formula2 == 79 zextra = cosh( zvalues[tempindex] ) tempform2[tempindex] = zextra * zextra elseif @formula2 == 80 zextra = tanh(zvalues[tempindex]) tempform2[tempindex] = zextra * zextra elseif @formula2 == 81 zextra = cotanh( zvalues[tempindex] ) tempform2[tempindex] = zextra * zextra elseif @formula2 == 82 zextra = (1,0)/cosh(zvalues[tempindex]) tempform2[tempindex] = zextra * zextra elseif @formula2 == 83 zextra = (1,0) / sinh( zvalues[tempindex] ) tempform2[tempindex] = zextra * zextra elseif @formula2 == 84 tempform2[tempindex] = sinh(1/zvalues[tempindex]) elseif @formula2 == 85 tempform2[tempindex] = cosh(1/zvalues[tempindex]) elseif @formula2 == 86 tempform2[tempindex] = tanh(1/zvalues[tempindex]) elseif @formula2 == 87 tempform2[tempindex] = cotanh(1/zvalues[tempindex]) elseif @formula2 == 88 tempform2[tempindex] = (1,0)/cosh(1/zvalues[tempindex]) elseif @formula2 == 89 tempform2[tempindex] = (1,0)/sinh(1/zvalues[tempindex]) elseif @formula2 == 90 tempform2[tempindex] = sin( zvalues[tempindex] ) * tan(zvalues[tempindex]) elseif @formula2 == 91 tempform2[tempindex] = sinh(zvalues[tempindex]) * tanh(zvalues[tempindex]) elseif @formula2 == 92 tempform2[tempindex] = sinh(zvalues[tempindex]) * cosh(zvalues[tempindex]) elseif @formula2 == 93 temp2 = sinh(zvalues[tempindex]), zextra = cosh(zvalues[tempindex]) tempform2[tempindex] = temp2*temp2*zextra*zextra elseif @formula2 == 94 temp2 = sin(zvalues[tempindex]), zextra = cos(zvalues[tempindex]) tempform2[tempindex] = temp2*temp2*zextra*zextra elseif @formula2 == 95 zextra = 1/zvalues[tempindex] tempform2[tempindex] = sin(zextra)*cos(zextra) elseif @formula2 == 96 zextra = sin( 1/zvalues[tempindex] ) tempform2[tempindex] = zextra*zextra elseif @formula2 == 97 tempform2[tempindex] = sin(zvalues[tempindex]) * cos(1/zvalues[tempindex]) elseif @formula2 == 98 tempform2[tempindex] = sin(zvalues[tempindex]) * sin(1/zvalues[tempindex]) elseif @formula2 == 99 zextra = log(zvalues[tempindex]) tempform2[tempindex] = zextra*zextra elseif @formula2 == 100 tempform2[tempindex] = sin(zvalues[tempindex]) * sin(2*zvalues[tempindex]) elseif @formula2 == 101 tempform2[tempindex] = exp(2*zvalues[tempindex]) elseif @formula2 == 102 tempform2[tempindex] = exp(-2*zvalues[tempindex]) elseif @formula2 == 103 zextra = 1/zvalues[tempindex] tempform2[tempindex] = sinh(zextra)*cosh(zextra) elseif @formula2 == 104 zextra = sinh( 1/zvalues[tempindex] ) tempform2[tempindex] = zextra*zextra elseif @formula2 == 105 tempform2[tempindex] = sinh(zvalues[tempindex]) * cosh(1/zvalues[tempindex]) elseif @formula2 == 106 tempform2[tempindex] = sinh(zvalues[tempindex]) * sinh(1/zvalues[tempindex]) elseif @formula2 == 107 tempform2[tempindex] = sin(zvalues[tempindex]) * sinh(zvalues[tempindex]) elseif @formula2 == 108 tempform2[tempindex] = sin(zvalues[tempindex]) * cosh(zvalues[tempindex]) elseif @formula2 == 109 zextra = sin(zvalues[tempindex]), temp2 = sinh(zvalues[tempindex]) tempform2[tempindex] = temp2*temp2*zextra*zextra elseif @formula2 == 110 tempform2[tempindex] = sin(zvalues[tempindex])*exp(zvalues[tempindex]) elseif @formula2 == 111 tempform2[tempindex] = cos(zvalues[tempindex])*exp(zvalues[tempindex]) elseif @formula2 == 112 tempform2[tempindex] = sinh(zvalues[tempindex])*exp(zvalues[tempindex]) elseif @formula2 == 113 tempform2[tempindex] = cosh(zvalues[tempindex])*exp(zvalues[tempindex]) elseif @formula2 == 114 tempform2[tempindex] = sin(zvalues[tempindex])*log(zvalues[tempindex]) elseif @formula2 == 115 tempform2[tempindex] = cos(zvalues[tempindex])*log(zvalues[tempindex]) elseif @formula2 == 116 tempform2[tempindex] = sinh(zvalues[tempindex])*log(zvalues[tempindex]) elseif @formula2 == 117 tempform2[tempindex] = cosh(zvalues[tempindex])*log(zvalues[tempindex]) elseif @formula2 == 118 tempform2[tempindex] = exp(zvalues[tempindex]*zvalues[tempindex]) elseif @formula2 == 119 tempform2[tempindex] = exp(-(zvalues[tempindex]*zvalues[tempindex])) elseif @formula2 == 120 tempform2[tempindex] = exp(1/(zvalues[tempindex]*zvalues[tempindex])) elseif @formula2 == 121 tempform2[tempindex] = exp(-1/(zvalues[tempindex]*zvalues[tempindex])) endif ; formula2 zvalues[tempindex] = (1-@blend)*tempform1[tempindex] + @blend*tempform2[tempindex] if @pmode != 1 zvalues[tempindex] = zvalues[tempindex] + jcarray[tempindex] endif ; pmode tempindex = tempindex + 1 endwhile ; tempindex ; Assign proper #z value for bailout test ; If embossed, assign proper color index to real(#z), and set imag(#z) ; to a large value if finished so that bailout will occur if @emboss tempindex = 0 while tempindex < maxindex if bailiter[tempindex] == 0 if ( cabs(zvalues[tempindex]) >= @bail ) bailiter[tempindex] = iteration bailcount = bailcount + 1 endif ; cabs if @evariable == 1 ; real crossings if real(zvalues[tempindex]) > 0 testvalue[tempindex] = testvalue[tempindex] + 1 endif ; real elseif @evariable == 2 ; imag crossings if imag(zvalues[tempindex]) > 0 testvalue[tempindex] = testvalue[tempindex] + 1 endif ; imag elseif @evariable == 3 ; angle wrappings if atan2(zvalues[tempindex]) < 0 testvalue[tempindex] = testvalue[tempindex] + 1 endif ; atan2 endif ; @evariable endif ; bailiter tempindex = tempindex + 1 endwhile ; tempindex ; See if all the test points have bailed out yet; if so,we're done and ; can assign a color value if bailcount == @testpoints ; all done if @evariable != 0 ; copy test values to the bailiter array for convenience tempindex = 0 while tempindex < maxindex bailiter[tempindex] = testvalue[tempindex] tempindex = tempindex + 1 endwhile ; tempindex endif ; @evariable if @testpoints == 2 if @type2 == 0 ; original if bailiter[0] > bailiter[1] z = (0.9,1e30) elseif bailiter[0] < bailiter[1] z = (0.1, 1e30) else z = (0.5,1e30) endif ; bailiter elseif @type2 == 1 ; two-tone if bailiter[0] == bailiter[1] z = (0.1,1e30) else z = (0.9,1e30) endif ; bailiter endif ; @type2 elseif @testpoints == 3 if @type3 == 0 if ( bailiter[0] == bailiter[1] ) && ( bailiter[1] == bailiter[2] ) z = (0.67,1e30) elseif ( bailiter[0] == bailiter[1] ) || ( bailiter[1] == bailiter[2] ) || \ ( bailiter[0] == bailiter[2] ) z = (0.33,1e30) elseif ( ( bailiter[0] > bailiter[1] ) && ( bailiter[1] > bailiter[2] ) && \ ( bailiter[2] < bailiter[0] ) ) || ( ( bailiter[1] > bailiter[2] ) && \ ( bailiter[2] > bailiter[0] ) && ( bailiter[0] < bailiter[1] ) ) || \ ( ( bailiter[2] > bailiter[0] ) && ( bailiter[0] > bailiter[1] ) && \ ( bailiter[1] < bailiter[2] ) ) ; counterclockwise z = (0.9,1e30) else ; clockwise z = (0.1,1e30) endif ; bailiter elseif @type3 == 1 if ( bailiter[0] == bailiter[1] ) || ( bailiter[1] == bailiter[2] ) || \ ( bailiter[0] == bailiter[2] ) ; any are equal z = (0.5,1e30) elseif ( ( bailiter[0] > bailiter[1] ) && ( bailiter[1] > bailiter[2] ) && \ ( bailiter[2] < bailiter[0] ) ) || ( ( bailiter[1] > bailiter[2] ) && \ ( bailiter[2] > bailiter[0] ) && ( bailiter[0] < bailiter[1] ) ) || \ ( ( bailiter[2] > bailiter[0] ) && ( bailiter[0] > bailiter[1] ) && \ ( bailiter[1] < bailiter[2] ) ) ; counterclockwise z = (0.9,1e30) else ; clockwise z = (0.1,1e30) endif ; bailiter elseif @type3 == 2 ; two-tone if ( bailiter[0] == bailiter[1] ) && ( bailiter[1] == bailiter[2] ) ; all equal z = (0.9,1e30) else z = (0.1,1e30) endif ; bailiter endif ; @type3 endif ; @testpoints else ; all test points haven't bailed yet z = (0.05,0.05) endif ; bailcount else if @pixelmode z = #pixel + @pixelblend*zvalues[0] else z = zvalues[0] endif ; @pixelmode endif ; @emboss bailout: |z| < @bail default: title = "BlendMan Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param pixelmode caption = "Pixel Mode?" default = FALSE hint = "If enabled, the selected Mandelbrot formulas are used to slightly modify \ the pixel coordinates, resulting in a perturbed pixel-type formula. \ The extent of the perturbation is controlled with param 'Pixel Blend'. \ Use a low iteration count and Inside coloring, since the affect is cumulative. \ Not available in 'Emboss' mode" visible = !@emboss endparam param pixelblend caption = "Pixel Blend" default = 1.0 hint = "If 'Pixel Mode' is enabled, this param controls the amount of the \ Mandelbrot formula that is blended into the pixel coordinates" visible = @pixelmode endparam param emboss caption = "Emboss?" default = FALSE hint = "If enabled, special embossing algorithm is implemented. The embossing \ method is intended to be used only with the special coloring formula \ 'jam-Emboss' in folder jam2.ucl. Not available in 'Pixel Mode'" visible = !@pixelmode endparam param testpoints caption = "Test Points" default = 3 min = 2 max = 3 hint = "If 'Emboss' is enabled, this is the number of test points to be computed for \ each pixel. Range is 2-5 (integer). The bigger the number, the slower the \ calculation" visible = @emboss endparam param type2 caption = "2-Pt Flavor" default = 0 enum = "Original" "Two-Tone" hint = "If 'Emboss' is enabled and 'Test Points' is set to 2, then this \ param defines the type of test to be performed in the calculation" visible = @emboss && (@testpoints == 2) endparam param type3 caption = "3-Pt Flavor" default = 0 enum = "A" "B" "C" hint = "If 'Emboss' is enabled and 'Test Points' is set to 3, then this \ param defines the type of test to be performed in the calculation" visible = @emboss && (@testpoints == 3) endparam param evariable caption = "Emboss Variable" enum = "Iteration" "Real" "Imag" "Angle" default = 0 hint = "This param describes which variable is tracked to define the embossing" visible = @emboss endparam param lightangle caption = "Light Angle" default = 0.0 min = 0.0 max = 360.0 hint = "If 'Emboss' is enabled, this param can shift the lighting pattern. Range \ is 0 - 360 degrees" visible = @emboss endparam param contourfactor caption = "Contour Size" default = 1.0 min = 0.0 hint = "If 'Emboss' is enabled, this param affects the size of the contours" visible = @emboss endparam param blend caption = "Formula Blend" default = 0.0 min = -2.0 max = 2.0 hint = "Range is 0.0 - 1.0. This is the fraction of Formula 2 that is \ blended into Formula 1; at 0.0, final #z is solely from Formula 1, \ while at 1.0, #z is determined solely by Formula 2" endparam param formula1 caption = "Formula 1" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "Sets the first formula to be iterated. \ For 'z^power', use parameter 'Power 1' to set power. For '3-term polynomial' set \ params 'Coeff 1a', 'Exponent 1a', 'Coeff 1b', 'Exponent 1b', 'Coeff 1c', \ 'Exponent 1c'." endparam param formula2 caption = "Formula 2" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "Sets the second formula to be iterated. \ For 'z^power', use parameter 'Power 2' to set power. For '3-term polynomial' set \ params 'Coeff 2a', 'Exponent 2a', 'Coeff 2b', 'Exponent 2b', 'Coeff 2c', \ 'Exponent 2c'." endparam param power1 caption = "Power 1" default = (5,0) hint = "This is the power used for the first formula series if parameter \ 'Formula 1' is set to 'z^power'" visible = @formula1 == "z^power" endparam param power2 caption = "Power 2" default = (6,0) hint = "This is the power used for the second formula series if parameter \ 'Formula 2' is set to 'z^power'" visible = @formula2 == "z^power" endparam param coeff1a caption = "Coeff 1A" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula1 == "3-term polynomial" endparam param exponent1a caption = "Exponent 1A" default = (6,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula1 == "3-term polynomial" endparam param coeff1b caption = "Coeff 1B" default = (-1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula1 == "3-term polynomial" endparam param exponent1b caption = "Exponent 1B" default = (4,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula1 == "3-term polynomial" endparam param coeff1c caption = "Coeff 1C" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula1 == "3-term polynomial" endparam param exponent1c caption = "Exponent 1C" default = (2,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula1 == "3-term polynomial" endparam param coeff2a caption = "Coeff 2A" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula2 == "3-term polynomial" endparam param exponent2a caption = "Exponent 2A" default = (6,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula2 == "3-term polynomial" endparam param coeff2b caption = "Coeff 2B" default = (-1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula2 == "3-term polynomial" endparam param exponent2b caption = "Exponent 2B" default = (4,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula2 == "3-term polynomial" endparam param coeff2c caption = "Coeff 2C" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula2 == "3-term polynomial" endparam param exponent2c caption = "Exponent 2C" default = (2,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula2 == "3-term polynomial" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" visible = @pixelformula == "p^power" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-blendMan" perturbation = #pixel bail = bail pixelmode = pixelmode pixelblend = pixelblend emboss = emboss testpoints = testpoints type2 = type2 type3 = type3 evariable = evariable lightangle = lightangle contourfactor = contourfactor blend = blend formula1 = formula1 formula2 = formula2 power1 = power1 power2 = power2 coeff1a = coeff1a exponent1a = exponent1a coeff1b = coeff1b exponent1b = exponent1b coeff1c = coeff1c exponent1c = exponent1c coeff2a = coeff2a exponent2a = exponent2a coeff2b = coeff2b exponent2b = exponent2b coeff2c = coeff2c exponent2c = exponent2c pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-N-blend { ; jam 011217 ; Mandelbrot/Julia in which 2 independent formulas ; are executed on each iteration, with the final #z resulting ; from a user-specified blending together of the two. ; Differs from BlendMan in that blending occurs only once every N iterations. ; The 3-term polynomial formula option is ; z = ( CoeffA * z^ExponentA ) + ( CoeffB * z^ExponentB ) + ( CoeffC * z^ExponentC ) + constant init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = complex temp2 = (0,0) ; temp/spare scratch variable complex tempform1 = complex tempform2 = (0,0) int iteration = 0, int remainder = 0 complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: iteration = iteration + 1 remainder = iteration % @freq if @pmode != 0 #z = #z + jc endif ; pmode zblend = z ; Execute 1st formula selection if @formula1 == 0 tempform1 = #z * #z elseif @formula1 == 1 tempform1 = #z * #z * #z elseif @formula1 == 2 zextra = #z * #z tempform1 = zextra * zextra elseif @formula1 == 3 tempform1 = #z ^ @power1 elseif @formula1 == 4 tempform1 = 1/#z elseif @formula1 == 5 tempform1 = sqrt(#z) elseif @formula1 == 6 tempform1 = 1 / ( #z * #z ) elseif @formula1 == 7 tempform1 = log(#z) elseif @formula1 == 8 tempform1 = exp( #z) elseif @formula1 == 9 tempform1 = #z^#z elseif @formula1 == 10 tempform1 = sin( #z ) elseif @formula1 == 11 tempform1 = cos( #z ) elseif @formula1 == 12 tempform1 = tan( #z ) elseif @formula1 == 13 tempform1 = asin( #z ) elseif @formula1 == 14 tempform1 = acos( #z ) elseif @formula1 == 15 tempform1 = atan( #z ) elseif @formula1 == 16 tempform1 = sinh( #z ) elseif @formula1 == 17 tempform1 = cosh( #z ) elseif @formula1 == 18 tempform1 = tanh( #z ) elseif @formula1 == 19 tempform1 = asinh( #z ) elseif @formula1 == 20 tempform1 = acosh( #z ) elseif @formula1 == 21 tempform1 = atanh( #z ) elseif @formula1 == 22 tempform1 = log( 1/#z ) elseif @formula1 == 23 tempform1 = log( log( #z )) elseif @formula1 == 24 tempform1 = exp( -#z ) elseif @formula1 == 25 tempform1 = exp( 1/#z ) elseif @formula1 == 26 tempform1 = #z^(-#z) elseif @formula1 == 27 zextra = sin( #z ) tempform1 = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) tempform1 = zextra * zextra elseif @formula1 == 29 zextra = tan( #z ) tempform1 = zextra * zextra elseif @formula1 == 30 tempform1 = cotan( #z ) elseif @formula1 == 31 tempform1 = 1/cos( #z ) elseif @formula1 == 32 tempform1 = 1/sin( #z ) elseif @formula1 == 33 zextra = cotan( #z ) tempform1 = zextra * zextra elseif @formula1 == 34 zextra = 1/cos( #z ) tempform1 = zextra * zextra elseif @formula1 == 35 zextra = 1/sin( #z ) tempform1 = zextra * zextra elseif @formula1 == 36 zextra = #z^(#z) tempform1 = #z^zextra elseif @formula1 == 37 zextra = #z^(#z) tempform1 = 1/( #z^zextra ) elseif @formula1 == 38 tempform1 = log(-#z) elseif @formula1 == 39 tempform1 = 1/log( #z ) elseif @formula1 == 40 tempform1 = #z * log( #z ) elseif @formula1 == 41 tempform1 = sin( #z ) / #z elseif @formula1 == 42 tempform1 = cos( #z ) / #z elseif @formula1 == 43 tempform1 = sin( #z ) * cos( #z ) elseif @formula1 == 44 tempform1 = sin( #z^2 ) elseif @formula1 == 45 tempform1 = exp( -1/#z ) elseif @formula1 == 46 tempform1 = #z * exp( #z ) elseif @formula1 == 47 tempform1 = #z * exp( -#z ) elseif @formula1 == 48 tempform1 = #z * exp( 1/#z ) elseif @formula1 == 49 tempform1 = #z * exp( -1/#z ) elseif @formula1 == 50 tempform1 = #z * #z * #z elseif @formula1 == 51 tempform1 = 1 / ( #z * #z * #z ) elseif @formula1 == 52 tempform1 = atan( 1 / #z ) elseif @formula1 == 53 tempform1 = acos( 1 / #z ) elseif @formula1 == 54 tempform1 = asin( 1 / #z ) elseif @formula1 == 55 tempform1 = tan( #z ) / #z elseif @formula1 == 56 tempform1 = cotan( #z ) / #z elseif @formula1 == 57 tempform1 = 1 / ( #z * cos( #z )) elseif @formula1 == 58 tempform1 = 1 / ( #z * sin( #z )) elseif @formula1 == 59 tempform1 = #z * sin( #z ) elseif @formula1 == 60 tempform1 = #z * cos( #z ) elseif @formula1 == 61 tempform1 = #z * tan( #z ) elseif @formula1 == 62 tempform1 = #z * cotan( #z ) elseif @formula1 == 63 tempform1 = #z/cos( #z ) elseif @formula1 == 64 tempform1 = #z/sin( #z ) elseif @formula1 == 65 tempform1 = sin( 1/#z ) elseif @formula1 == 66 tempform1 = cos( 1/#z ) elseif @formula1 == 67 tempform1 = tan( 1/#z ) elseif @formula1 == 68 tempform1 = cotan( 1/#z ) elseif @formula1 == 69 tempform1 = 1/cos( 1/#z ) elseif @formula1 == 70 tempform1 = 1/sin( 1/#z ) elseif @formula1 == 71 tempform1 = cotanh( #z ) elseif @formula1 == 72 tempform1 = 1/cosh( #z ) elseif @formula1 == 73 tempform1 = 1/sinh( #z ) elseif @formula1 == 74 tempform1 = atanh( 1/#z ) elseif @formula1 == 75 tempform1 = acosh( 1/#z ) elseif @formula1 == 76 tempform1 = asinh( 1/#z ) elseif @formula1 == 77 tempform1 = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c elseif @formula1 == 78 zextra = sinh(#z) tempform1 = zextra * zextra elseif @formula1 == 79 zextra = cosh( #z ) tempform1 = zextra * zextra elseif @formula1 == 80 zextra = tanh(#z) tempform1 = zextra * zextra elseif @formula1 == 81 zextra = cotanh( #z ) tempform1 = zextra * zextra elseif @formula1 == 82 zextra = (1,0)/cosh(#z) tempform1 = zextra * zextra elseif @formula1 == 83 zextra = (1,0) / sinh( #z ) tempform1 = zextra * zextra elseif @formula1 == 84 tempform1 = sinh(1/#z) elseif @formula1 == 85 tempform1 = cosh(1/#z) elseif @formula1 == 86 tempform1 = tanh(1/#z) elseif @formula1 == 87 tempform1 = cotanh(1/#z) elseif @formula1 == 88 tempform1 = (1,0)/cosh(1/#z) elseif @formula1 == 89 tempform1 = (1,0)/sinh(1/#z) elseif @formula1 == 90 tempform1 = sin( #z ) * tan(#z) elseif @formula1 == 91 tempform1 = sinh(#z) * tanh(#z) elseif @formula1 == 92 tempform1 = sinh(#z) * cosh(#z) elseif @formula1 == 93 temp2 = sinh(#z), zextra = cosh(#z) tempform1 = temp2*temp2*zextra*zextra elseif @formula1 == 94 temp2 = sin(#z), zextra = cos(#z) tempform1 = temp2*temp2*zextra*zextra elseif @formula1 == 95 zextra = 1/#z tempform1 = sin(zextra)*cos(zextra) elseif @formula1 == 96 zextra = sin( 1/#z ) tempform1 = zextra*zextra elseif @formula1 == 97 tempform1 = sin(#z) * cos(1/#z) elseif @formula1 == 98 tempform1 = sin(#z) * sin(1/#z) elseif @formula1 == 99 zextra = log(#z) tempform1 = zextra*zextra elseif @formula1 == 100 tempform1 = sin(#z) * sin(2*#z) elseif @formula1 == 101 tempform1 = exp(2*#z) elseif @formula1 == 102 tempform1 = exp(-2*#z) elseif @formula1 == 103 zextra = 1/#z tempform1 = sinh(zextra)*cosh(zextra) elseif @formula1 == 104 zextra = sinh( 1/#z ) tempform1 = zextra*zextra elseif @formula1 == 105 tempform1 = sinh(#z) * cosh(1/#z) elseif @formula1 == 106 tempform1 = sinh(#z) * sinh(1/#z) elseif @formula1 == 107 tempform1 = sin(#z) * sinh(#z) elseif @formula1 == 108 tempform1 = sin(#z) * cosh(#z) elseif @formula1 == 109 zextra = sin(#z), temp2 = sinh(#z) tempform1 = temp2*temp2*zextra*zextra elseif @formula1 == 110 tempform1 = sin(#z)*exp(#z) elseif @formula1 == 111 tempform1 = cos(#z)*exp(#z) elseif @formula1 == 112 tempform1 = sinh(#z)*exp(#z) elseif @formula1 == 113 tempform1 = cosh(#z)*exp(#z) elseif @formula1 == 114 tempform1 = sin(#z)*log(#z) elseif @formula1 == 115 tempform1 = cos(#z)*log(#z) elseif @formula1 == 116 tempform1 = sinh(#z)*log(#z) elseif @formula1 == 117 tempform1 = cosh(#z)*log(#z) elseif @formula1 == 118 tempform1 = exp(#z*#z) elseif @formula1 == 119 tempform1 = exp(-(#z*#z)) elseif @formula1 == 120 tempform1 = exp(1/(#z*#z)) else ; @formula1 == 121 tempform1 = exp(-1/(#z*#z)) endif ; @formula1 if remainder == 0 if @formula2 == 0 tempform2 = #z * #z elseif @formula2 == 1 tempform2 = #z * #z * #z elseif @formula2 == 2 zextra = #z * #z tempform2 = zextra * zextra elseif @formula2 == 3 tempform2 = #z ^ @power1 elseif @formula2 == 4 tempform2 = 1/#z elseif @formula2 == 5 tempform2 = sqrt(#z) elseif @formula2 == 6 tempform2 = 1 / ( #z * #z ) elseif @formula2 == 7 tempform2 = log(#z) elseif @formula2 == 8 tempform2 = exp( #z) elseif @formula2 == 9 tempform2 = #z^#z elseif @formula2 == 10 tempform2 = sin( #z ) elseif @formula2 == 11 tempform2 = cos( #z ) elseif @formula2 == 12 tempform2 = tan( #z ) elseif @formula2 == 13 tempform2 = asin( #z ) elseif @formula2 == 14 tempform2 = acos( #z ) elseif @formula2 == 15 tempform2 = atan( #z ) elseif @formula2 == 16 tempform2 = sinh( #z ) elseif @formula2 == 17 tempform2 = cosh( #z ) elseif @formula2 == 18 tempform2 = tanh( #z ) elseif @formula2 == 19 tempform2 = asinh( #z ) elseif @formula2 == 20 tempform2 = acosh( #z ) elseif @formula2 == 21 tempform2 = atanh( #z ) elseif @formula2 == 22 tempform2 = log( 1/#z ) elseif @formula2 == 23 tempform2 = log( log( #z )) elseif @formula2 == 24 tempform2 = exp( -#z ) elseif @formula2 == 25 tempform2 = exp( 1/#z ) elseif @formula2 == 26 tempform2 = #z^(-#z) elseif @formula2 == 27 zextra = sin( #z ) tempform2 = zextra * zextra elseif @formula2 == 28 zextra = cos( #z ) tempform2 = zextra * zextra elseif @formula2 == 29 zextra = tan( #z ) tempform2 = zextra * zextra elseif @formula2 == 30 tempform2 = cotan( #z ) elseif @formula2 == 31 tempform2 = 1/cos( #z ) elseif @formula2 == 32 tempform2 = 1/sin( #z ) elseif @formula2 == 33 zextra = cotan( #z ) tempform2 = zextra * zextra elseif @formula2 == 34 zextra = 1/cos( #z ) tempform2 = zextra * zextra elseif @formula2 == 35 zextra = 1/sin( #z ) tempform2 = zextra * zextra elseif @formula2 == 36 zextra = #z^(#z) tempform2 = #z^zextra elseif @formula2 == 37 zextra = #z^(#z) tempform2 = 1/( #z^zextra ) elseif @formula2 == 38 tempform2 = log(-#z) elseif @formula2 == 39 tempform2 = 1/log( #z ) elseif @formula2 == 40 tempform2 = #z * log( #z ) elseif @formula2 == 41 tempform2 = sin( #z ) / #z elseif @formula2 == 42 tempform2 = cos( #z ) / #z elseif @formula2 == 43 tempform2 = sin( #z ) * cos( #z ) elseif @formula2 == 44 tempform2 = sin( #z^2 ) elseif @formula2 == 45 tempform2 = exp( -1/#z ) elseif @formula2 == 46 tempform2 = #z * exp( #z ) elseif @formula2 == 47 tempform2 = #z * exp( -#z ) elseif @formula2 == 48 tempform2 = #z * exp( 1/#z ) elseif @formula2 == 49 tempform2 = #z * exp( -1/#z ) elseif @formula2 == 50 tempform2 = #z * #z * #z elseif @formula2 == 51 tempform2 = 1 / ( #z * #z * #z ) elseif @formula2 == 52 tempform2 = atan( 1 / #z ) elseif @formula2 == 53 tempform2 = acos( 1 / #z ) elseif @formula2 == 54 tempform2 = asin( 1 / #z ) elseif @formula2 == 55 tempform2 = tan( #z ) / #z elseif @formula2 == 56 tempform2 = cotan( #z ) / #z elseif @formula2 == 57 tempform2 = 1 / ( #z * cos( #z )) elseif @formula2 == 58 tempform2 = 1 / ( #z * sin( #z )) elseif @formula2 == 59 tempform2 = #z * sin( #z ) elseif @formula2 == 60 tempform2 = #z * cos( #z ) elseif @formula2 == 61 tempform2 = #z * tan( #z ) elseif @formula2 == 62 tempform2 = #z * cotan( #z ) elseif @formula2 == 63 tempform2 = #z/cos( #z ) elseif @formula2 == 64 tempform2 = #z/sin( #z ) elseif @formula2 == 65 tempform2 = sin( 1/#z ) elseif @formula2 == 66 tempform2 = cos( 1/#z ) elseif @formula2 == 67 tempform2 = tan( 1/#z ) elseif @formula2 == 68 tempform2 = cotan( 1/#z ) elseif @formula2 == 69 tempform2 = 1/cos( 1/#z ) elseif @formula2 == 70 tempform2 = 1/sin( 1/#z ) elseif @formula2 == 71 tempform2 = cotanh( #z ) elseif @formula2 == 72 tempform2 = 1/cosh( #z ) elseif @formula2 == 73 tempform2 = 1/sinh( #z ) elseif @formula2 == 74 tempform2 = atanh( 1/#z ) elseif @formula2 == 75 tempform2 = acosh( 1/#z ) elseif @formula2 == 76 tempform2 = asinh( 1/#z ) elseif @formula2 == 77 tempform2 = @coeff2a * #z^@exponent2a + @coeff2b * #z^@exponent2b + @coeff2c * #z^@exponent2c elseif @formula2 == 78 zextra = sinh(#z) tempform2 = zextra * zextra elseif @formula2 == 79 zextra = cosh( #z ) tempform2 = zextra * zextra elseif @formula2 == 80 zextra = tanh(#z) tempform2 = zextra * zextra elseif @formula2 == 81 zextra = cotanh( #z ) tempform2 = zextra * zextra elseif @formula2 == 82 zextra = (1,0)/cosh(#z) tempform2 = zextra * zextra elseif @formula2 == 83 zextra = (1,0) / sinh( #z ) tempform2 = zextra * zextra elseif @formula2 == 84 tempform2 = sinh(1/#z) elseif @formula2 == 85 tempform2 = cosh(1/#z) elseif @formula2 == 86 tempform2 = tanh(1/#z) elseif @formula2 == 87 tempform2 = cotanh(1/#z) elseif @formula2 == 88 tempform2 = (1,0)/cosh(1/#z) elseif @formula2 == 89 tempform2 = (1,0)/sinh(1/#z) elseif @formula2 == 90 tempform2 = sin( #z ) * tan(#z) elseif @formula2 == 91 tempform2 = sinh(#z) * tanh(#z) elseif @formula2 == 92 tempform2 = sinh(#z) * cosh(#z) elseif @formula2 == 93 temp2 = sinh(#z), zextra = cosh(#z) tempform2 = temp2*temp2*zextra*zextra elseif @formula2 == 94 temp2 = sin(#z), zextra = cos(#z) tempform2 = temp2*temp2*zextra*zextra elseif @formula2 == 95 zextra = 1/#z tempform2 = sin(zextra)*cos(zextra) elseif @formula2 == 96 zextra = sin( 1/#z ) tempform2 = zextra*zextra elseif @formula2 == 97 tempform2 = sin(#z) * cos(1/#z) elseif @formula2 == 98 tempform2 = sin(#z) * sin(1/#z) elseif @formula2 == 99 zextra = log(#z) tempform2 = zextra*zextra elseif @formula2 == 100 tempform2 = sin(#z) * sin(2*#z) elseif @formula2 == 101 tempform2 = exp(2*#z) elseif @formula2 == 102 tempform2 = exp(-2*#z) elseif @formula2 == 103 zextra = 1/#z tempform2 = sinh(zextra)*cosh(zextra) elseif @formula2 == 104 zextra = sinh( 1/#z ) tempform2 = zextra*zextra elseif @formula2 == 105 tempform2 = sinh(#z) * cosh(1/#z) elseif @formula2 == 106 tempform2 = sinh(#z) * sinh(1/#z) elseif @formula2 == 107 tempform2 = sin(#z) * sinh(#z) elseif @formula2 == 108 tempform2 = sin(#z) * cosh(#z) elseif @formula2 == 109 zextra = sin(#z), temp2 = sinh(#z) tempform2 = temp2*temp2*zextra*zextra elseif @formula2 == 110 tempform2 = sin(#z)*exp(#z) elseif @formula2 == 111 tempform2 = cos(#z)*exp(#z) elseif @formula2 == 112 tempform2 = sinh(#z)*exp(#z) elseif @formula2 == 113 tempform2 = cosh(#z)*exp(#z) elseif @formula2 == 114 tempform2 = sin(#z)*log(#z) elseif @formula2 == 115 tempform2 = cos(#z)*log(#z) elseif @formula2 == 116 tempform2 = sinh(#z)*log(#z) elseif @formula2 == 117 tempform2 = cosh(#z)*log(#z) elseif @formula2 == 118 tempform2 = exp(#z*#z) elseif @formula2 == 119 tempform2 = exp(-(#z*#z)) elseif @formula2 == 120 tempform2 = exp(1/(#z*#z)) else ; @formula2 == 121 tempform2 = exp(-1/(#z*#z)) endif ; @formula2 #z = (1-@blend)*tempform1 + @blend*tempform2 else #z = tempform1 endif ; remainder if @zblendtrue z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend if @pmode != 1 #z = #z + jc endif ; pmode if @biomorph if @biomorphtype == "real + imag" bail = (abs(real(z)) < @biomorphtest) || (abs(imag(z)) < @biomorphtest) elseif @biomorphtype == "real + imag + cabs" bail = (abs(real(z)) < @biomorphtest) || (abs(imag(z)) < @biomorphtest) || (cabs(z) < sqr(@biomorphtest)) elseif @biomorphtype == "real" bail = abs(real(z)) < @biomorphtest elseif @biomorphtype == "imag" bail = abs(imag(z)) < @biomorphtest elseif @biomorphtype == "cabs" bail = cabs(z) < sqr(@biomorphtest) endif ; @biomorphtype else bail = |z| < @bail endif ; @biomorph bailout: bail default: title = "N-Blend" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param blend caption = "Formula Blend" default = 0.0 hint = "Range is 0.0 - 1.0. This is the fraction of Formula 2 that is \ blended into Formula 1; at 0.0, final #z is solely from Formula 1, \ while at 1.0, #z is determined solely by Formula 2" endparam param freq caption = "N, Blend Freq" default = 10 min = 1 hint = "This is the cycle length or blend frequency N. Formula 1 is executed \ on each iter, but Formula 2 is blended in every N iters" endparam param formula1 caption = "Formula 1" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "Sets the first formula to be iterated. \ For 'z^power', use parameter 'Power 1' to set power. For '3-term polynomial' set \ params 'Coeff 1a', 'Exponent 1a', 'Coeff 1b', 'Exponent 1b', 'Coeff 1c', \ 'Exponent 1c'." endparam param power1 caption = "Power 1" default = (5,0) hint = "This is the power used for the first formula series if parameter \ 'Formula 1' is set to 'z^power'" visible = @formula1 == "z^power" endparam param coeff1a caption = "Coeff 1A" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula1 == "3-term polynomial" endparam param exponent1a caption = "Exponent 1A" default = (6,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula1 == "3-term polynomial" endparam param coeff1b caption = "Coeff 1B" default = (-1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula1 == "3-term polynomial" endparam param exponent1b caption = "Exponent 1B" default = (4,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula1 == "3-term polynomial" endparam param coeff1c caption = "Coeff 1C" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula1 == "3-term polynomial" endparam param exponent1c caption = "Exponent 1C" default = (2,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula1 == "3-term polynomial" endparam param formula2 caption = "Formula 2" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "Sets the second formula to be iterated. \ For 'z^power', use parameter 'Power 2' to set power. For '3-term polynomial' set \ params 'Coeff 2a', 'Exponent 2a', 'Coeff 2b', 'Exponent 2b', 'Coeff 2c', \ 'Exponent 2c'." endparam param power2 caption = "Power 2" default = (6,0) hint = "This is the power used for the second formula series if parameter \ 'Formula 2' is set to 'z^power'" visible = @formula2 == "z^power" endparam param coeff2a caption = "Coeff 2A" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula2 == "3-term polynomial" endparam param exponent2a caption = "Exponent 2A" default = (6,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula2 == "3-term polynomial" endparam param coeff2b caption = "Coeff 2B" default = (-1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula2 == "3-term polynomial" endparam param exponent2b caption = "Exponent 2B" default = (4,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula2 == "3-term polynomial" endparam param coeff2c caption = "Coeff 2C" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula2 == "3-term polynomial" endparam param exponent2c caption = "Exponent 2C" default = (2,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula2 == "3-term polynomial" endparam param zblendtrue caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @zblendtrue == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @zblendtrue == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @zblendtrue == TRUE endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" visible = @pixelformula == "p^power" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 visible = !@biomorph hint = "Value needed to 'escape' to infinity" endparam param biomorph caption = "Biomorph Bailout?" default = FALSE hint = "Enabling this setting changes the bailout condition to match \ Pickover's 'biomorph' definition. For coloring, consider using \ 'Biomorph' in the public folder 'jam2.ucl'." endparam param biomorphtest caption = "Biomorph Bailout Test" default = 10.0 hint = "The bailout value for the 'Biomorph' test." visible = @biomorph endparam param biomorphtype caption = "Biomorph Type" enum = "real" "imag" "real + imag" "real + imag + cabs" "cabs" default = 3 hint = "This determines the bailout condition for the Biomorph." visible = @biomorph endparam switch: type = "jam-N-blend-J" jconstant = #pixel bail = bail biomorph = biomorph biomorphtest = biomorphtest biomorphtype = biomorphtype blend = blend freq = freq formula1 = formula1 formula2 = formula2 power1 = power1 power2 = power2 coeff1a = coeff1a exponent1a = exponent1a coeff1b = coeff1b exponent1b = exponent1b coeff1c = coeff1c exponent1c = exponent1c coeff2a = coeff2a exponent2a = exponent2a coeff2b = coeff2b exponent2b = exponent2b coeff2c = coeff2c exponent2c = exponent2c zblendtrue = zblendtrue weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-N-blend-J { ; jam 011217 ; Mandelbrot/Julia in which 2 independent formulas ; are executed on each iteration, with the final #z resulting ; from a user-specified blending together of the two. ; Differs from BlendMan in that blending occurs only once every N iterations. ; The 3-term polynomial formula option is ; z = ( CoeffA * z^ExponentA ) + ( CoeffB * z^ExponentB ) + ( CoeffC * z^ExponentC ) + constant init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = complex temp2 = (0,0) ; temp/spare scratch variable complex tempform1 = complex tempform2 = (0,0) int iteration = 0, int remainder = 0 complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: iteration = iteration + 1 remainder = iteration % @freq if @pmode != 0 #z = #z + jc endif ; pmode zblend = z ; Execute 1st formula selection if @formula1 == 0 tempform1 = #z * #z elseif @formula1 == 1 tempform1 = #z * #z * #z elseif @formula1 == 2 zextra = #z * #z tempform1 = zextra * zextra elseif @formula1 == 3 tempform1 = #z ^ @power1 elseif @formula1 == 4 tempform1 = 1/#z elseif @formula1 == 5 tempform1 = sqrt(#z) elseif @formula1 == 6 tempform1 = 1 / ( #z * #z ) elseif @formula1 == 7 tempform1 = log(#z) elseif @formula1 == 8 tempform1 = exp( #z) elseif @formula1 == 9 tempform1 = #z^#z elseif @formula1 == 10 tempform1 = sin( #z ) elseif @formula1 == 11 tempform1 = cos( #z ) elseif @formula1 == 12 tempform1 = tan( #z ) elseif @formula1 == 13 tempform1 = asin( #z ) elseif @formula1 == 14 tempform1 = acos( #z ) elseif @formula1 == 15 tempform1 = atan( #z ) elseif @formula1 == 16 tempform1 = sinh( #z ) elseif @formula1 == 17 tempform1 = cosh( #z ) elseif @formula1 == 18 tempform1 = tanh( #z ) elseif @formula1 == 19 tempform1 = asinh( #z ) elseif @formula1 == 20 tempform1 = acosh( #z ) elseif @formula1 == 21 tempform1 = atanh( #z ) elseif @formula1 == 22 tempform1 = log( 1/#z ) elseif @formula1 == 23 tempform1 = log( log( #z )) elseif @formula1 == 24 tempform1 = exp( -#z ) elseif @formula1 == 25 tempform1 = exp( 1/#z ) elseif @formula1 == 26 tempform1 = #z^(-#z) elseif @formula1 == 27 zextra = sin( #z ) tempform1 = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) tempform1 = zextra * zextra elseif @formula1 == 29 zextra = tan( #z ) tempform1 = zextra * zextra elseif @formula1 == 30 tempform1 = cotan( #z ) elseif @formula1 == 31 tempform1 = 1/cos( #z ) elseif @formula1 == 32 tempform1 = 1/sin( #z ) elseif @formula1 == 33 zextra = cotan( #z ) tempform1 = zextra * zextra elseif @formula1 == 34 zextra = 1/cos( #z ) tempform1 = zextra * zextra elseif @formula1 == 35 zextra = 1/sin( #z ) tempform1 = zextra * zextra elseif @formula1 == 36 zextra = #z^(#z) tempform1 = #z^zextra elseif @formula1 == 37 zextra = #z^(#z) tempform1 = 1/( #z^zextra ) elseif @formula1 == 38 tempform1 = log(-#z) elseif @formula1 == 39 tempform1 = 1/log( #z ) elseif @formula1 == 40 tempform1 = #z * log( #z ) elseif @formula1 == 41 tempform1 = sin( #z ) / #z elseif @formula1 == 42 tempform1 = cos( #z ) / #z elseif @formula1 == 43 tempform1 = sin( #z ) * cos( #z ) elseif @formula1 == 44 tempform1 = sin( #z^2 ) elseif @formula1 == 45 tempform1 = exp( -1/#z ) elseif @formula1 == 46 tempform1 = #z * exp( #z ) elseif @formula1 == 47 tempform1 = #z * exp( -#z ) elseif @formula1 == 48 tempform1 = #z * exp( 1/#z ) elseif @formula1 == 49 tempform1 = #z * exp( -1/#z ) elseif @formula1 == 50 tempform1 = #z * #z * #z elseif @formula1 == 51 tempform1 = 1 / ( #z * #z * #z ) elseif @formula1 == 52 tempform1 = atan( 1 / #z ) elseif @formula1 == 53 tempform1 = acos( 1 / #z ) elseif @formula1 == 54 tempform1 = asin( 1 / #z ) elseif @formula1 == 55 tempform1 = tan( #z ) / #z elseif @formula1 == 56 tempform1 = cotan( #z ) / #z elseif @formula1 == 57 tempform1 = 1 / ( #z * cos( #z )) elseif @formula1 == 58 tempform1 = 1 / ( #z * sin( #z )) elseif @formula1 == 59 tempform1 = #z * sin( #z ) elseif @formula1 == 60 tempform1 = #z * cos( #z ) elseif @formula1 == 61 tempform1 = #z * tan( #z ) elseif @formula1 == 62 tempform1 = #z * cotan( #z ) elseif @formula1 == 63 tempform1 = #z/cos( #z ) elseif @formula1 == 64 tempform1 = #z/sin( #z ) elseif @formula1 == 65 tempform1 = sin( 1/#z ) elseif @formula1 == 66 tempform1 = cos( 1/#z ) elseif @formula1 == 67 tempform1 = tan( 1/#z ) elseif @formula1 == 68 tempform1 = cotan( 1/#z ) elseif @formula1 == 69 tempform1 = 1/cos( 1/#z ) elseif @formula1 == 70 tempform1 = 1/sin( 1/#z ) elseif @formula1 == 71 tempform1 = cotanh( #z ) elseif @formula1 == 72 tempform1 = 1/cosh( #z ) elseif @formula1 == 73 tempform1 = 1/sinh( #z ) elseif @formula1 == 74 tempform1 = atanh( 1/#z ) elseif @formula1 == 75 tempform1 = acosh( 1/#z ) elseif @formula1 == 76 tempform1 = asinh( 1/#z ) elseif @formula1 == 77 tempform1 = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c elseif @formula1 == 78 zextra = sinh(#z) tempform1 = zextra * zextra elseif @formula1 == 79 zextra = cosh( #z ) tempform1 = zextra * zextra elseif @formula1 == 80 zextra = tanh(#z) tempform1 = zextra * zextra elseif @formula1 == 81 zextra = cotanh( #z ) tempform1 = zextra * zextra elseif @formula1 == 82 zextra = (1,0)/cosh(#z) tempform1 = zextra * zextra elseif @formula1 == 83 zextra = (1,0) / sinh( #z ) tempform1 = zextra * zextra elseif @formula1 == 84 tempform1 = sinh(1/#z) elseif @formula1 == 85 tempform1 = cosh(1/#z) elseif @formula1 == 86 tempform1 = tanh(1/#z) elseif @formula1 == 87 tempform1 = cotanh(1/#z) elseif @formula1 == 88 tempform1 = (1,0)/cosh(1/#z) elseif @formula1 == 89 tempform1 = (1,0)/sinh(1/#z) elseif @formula1 == 90 tempform1 = sin( #z ) * tan(#z) elseif @formula1 == 91 tempform1 = sinh(#z) * tanh(#z) elseif @formula1 == 92 tempform1 = sinh(#z) * cosh(#z) elseif @formula1 == 93 temp2 = sinh(#z), zextra = cosh(#z) tempform1 = temp2*temp2*zextra*zextra elseif @formula1 == 94 temp2 = sin(#z), zextra = cos(#z) tempform1 = temp2*temp2*zextra*zextra elseif @formula1 == 95 zextra = 1/#z tempform1 = sin(zextra)*cos(zextra) elseif @formula1 == 96 zextra = sin( 1/#z ) tempform1 = zextra*zextra elseif @formula1 == 97 tempform1 = sin(#z) * cos(1/#z) elseif @formula1 == 98 tempform1 = sin(#z) * sin(1/#z) elseif @formula1 == 99 zextra = log(#z) tempform1 = zextra*zextra elseif @formula1 == 100 tempform1 = sin(#z) * sin(2*#z) elseif @formula1 == 101 tempform1 = exp(2*#z) elseif @formula1 == 102 tempform1 = exp(-2*#z) elseif @formula1 == 103 zextra = 1/#z tempform1 = sinh(zextra)*cosh(zextra) elseif @formula1 == 104 zextra = sinh( 1/#z ) tempform1 = zextra*zextra elseif @formula1 == 105 tempform1 = sinh(#z) * cosh(1/#z) elseif @formula1 == 106 tempform1 = sinh(#z) * sinh(1/#z) elseif @formula1 == 107 tempform1 = sin(#z) * sinh(#z) elseif @formula1 == 108 tempform1 = sin(#z) * cosh(#z) elseif @formula1 == 109 zextra = sin(#z), temp2 = sinh(#z) tempform1 = temp2*temp2*zextra*zextra elseif @formula1 == 110 tempform1 = sin(#z)*exp(#z) elseif @formula1 == 111 tempform1 = cos(#z)*exp(#z) elseif @formula1 == 112 tempform1 = sinh(#z)*exp(#z) elseif @formula1 == 113 tempform1 = cosh(#z)*exp(#z) elseif @formula1 == 114 tempform1 = sin(#z)*log(#z) elseif @formula1 == 115 tempform1 = cos(#z)*log(#z) elseif @formula1 == 116 tempform1 = sinh(#z)*log(#z) elseif @formula1 == 117 tempform1 = cosh(#z)*log(#z) elseif @formula1 == 118 tempform1 = exp(#z*#z) elseif @formula1 == 119 tempform1 = exp(-(#z*#z)) elseif @formula1 == 120 tempform1 = exp(1/(#z*#z)) else ; @formula1 == 121 tempform1 = exp(-1/(#z*#z)) endif ; @formula1 if remainder == 0 if @formula2 == 0 tempform2 = #z * #z elseif @formula2 == 1 tempform2 = #z * #z * #z elseif @formula2 == 2 zextra = #z * #z tempform2 = zextra * zextra elseif @formula2 == 3 tempform2 = #z ^ @power1 elseif @formula2 == 4 tempform2 = 1/#z elseif @formula2 == 5 tempform2 = sqrt(#z) elseif @formula2 == 6 tempform2 = 1 / ( #z * #z ) elseif @formula2 == 7 tempform2 = log(#z) elseif @formula2 == 8 tempform2 = exp( #z) elseif @formula2 == 9 tempform2 = #z^#z elseif @formula2 == 10 tempform2 = sin( #z ) elseif @formula2 == 11 tempform2 = cos( #z ) elseif @formula2 == 12 tempform2 = tan( #z ) elseif @formula2 == 13 tempform2 = asin( #z ) elseif @formula2 == 14 tempform2 = acos( #z ) elseif @formula2 == 15 tempform2 = atan( #z ) elseif @formula2 == 16 tempform2 = sinh( #z ) elseif @formula2 == 17 tempform2 = cosh( #z ) elseif @formula2 == 18 tempform2 = tanh( #z ) elseif @formula2 == 19 tempform2 = asinh( #z ) elseif @formula2 == 20 tempform2 = acosh( #z ) elseif @formula2 == 21 tempform2 = atanh( #z ) elseif @formula2 == 22 tempform2 = log( 1/#z ) elseif @formula2 == 23 tempform2 = log( log( #z )) elseif @formula2 == 24 tempform2 = exp( -#z ) elseif @formula2 == 25 tempform2 = exp( 1/#z ) elseif @formula2 == 26 tempform2 = #z^(-#z) elseif @formula2 == 27 zextra = sin( #z ) tempform2 = zextra * zextra elseif @formula2 == 28 zextra = cos( #z ) tempform2 = zextra * zextra elseif @formula2 == 29 zextra = tan( #z ) tempform2 = zextra * zextra elseif @formula2 == 30 tempform2 = cotan( #z ) elseif @formula2 == 31 tempform2 = 1/cos( #z ) elseif @formula2 == 32 tempform2 = 1/sin( #z ) elseif @formula2 == 33 zextra = cotan( #z ) tempform2 = zextra * zextra elseif @formula2 == 34 zextra = 1/cos( #z ) tempform2 = zextra * zextra elseif @formula2 == 35 zextra = 1/sin( #z ) tempform2 = zextra * zextra elseif @formula2 == 36 zextra = #z^(#z) tempform2 = #z^zextra elseif @formula2 == 37 zextra = #z^(#z) tempform2 = 1/( #z^zextra ) elseif @formula2 == 38 tempform2 = log(-#z) elseif @formula2 == 39 tempform2 = 1/log( #z ) elseif @formula2 == 40 tempform2 = #z * log( #z ) elseif @formula2 == 41 tempform2 = sin( #z ) / #z elseif @formula2 == 42 tempform2 = cos( #z ) / #z elseif @formula2 == 43 tempform2 = sin( #z ) * cos( #z ) elseif @formula2 == 44 tempform2 = sin( #z^2 ) elseif @formula2 == 45 tempform2 = exp( -1/#z ) elseif @formula2 == 46 tempform2 = #z * exp( #z ) elseif @formula2 == 47 tempform2 = #z * exp( -#z ) elseif @formula2 == 48 tempform2 = #z * exp( 1/#z ) elseif @formula2 == 49 tempform2 = #z * exp( -1/#z ) elseif @formula2 == 50 tempform2 = #z * #z * #z elseif @formula2 == 51 tempform2 = 1 / ( #z * #z * #z ) elseif @formula2 == 52 tempform2 = atan( 1 / #z ) elseif @formula2 == 53 tempform2 = acos( 1 / #z ) elseif @formula2 == 54 tempform2 = asin( 1 / #z ) elseif @formula2 == 55 tempform2 = tan( #z ) / #z elseif @formula2 == 56 tempform2 = cotan( #z ) / #z elseif @formula2 == 57 tempform2 = 1 / ( #z * cos( #z )) elseif @formula2 == 58 tempform2 = 1 / ( #z * sin( #z )) elseif @formula2 == 59 tempform2 = #z * sin( #z ) elseif @formula2 == 60 tempform2 = #z * cos( #z ) elseif @formula2 == 61 tempform2 = #z * tan( #z ) elseif @formula2 == 62 tempform2 = #z * cotan( #z ) elseif @formula2 == 63 tempform2 = #z/cos( #z ) elseif @formula2 == 64 tempform2 = #z/sin( #z ) elseif @formula2 == 65 tempform2 = sin( 1/#z ) elseif @formula2 == 66 tempform2 = cos( 1/#z ) elseif @formula2 == 67 tempform2 = tan( 1/#z ) elseif @formula2 == 68 tempform2 = cotan( 1/#z ) elseif @formula2 == 69 tempform2 = 1/cos( 1/#z ) elseif @formula2 == 70 tempform2 = 1/sin( 1/#z ) elseif @formula2 == 71 tempform2 = cotanh( #z ) elseif @formula2 == 72 tempform2 = 1/cosh( #z ) elseif @formula2 == 73 tempform2 = 1/sinh( #z ) elseif @formula2 == 74 tempform2 = atanh( 1/#z ) elseif @formula2 == 75 tempform2 = acosh( 1/#z ) elseif @formula2 == 76 tempform2 = asinh( 1/#z ) elseif @formula2 == 77 tempform2 = @coeff2a * #z^@exponent2a + @coeff2b * #z^@exponent2b + @coeff2c * #z^@exponent2c elseif @formula2 == 78 zextra = sinh(#z) tempform2 = zextra * zextra elseif @formula2 == 79 zextra = cosh( #z ) tempform2 = zextra * zextra elseif @formula2 == 80 zextra = tanh(#z) tempform2 = zextra * zextra elseif @formula2 == 81 zextra = cotanh( #z ) tempform2 = zextra * zextra elseif @formula2 == 82 zextra = (1,0)/cosh(#z) tempform2 = zextra * zextra elseif @formula2 == 83 zextra = (1,0) / sinh( #z ) tempform2 = zextra * zextra elseif @formula2 == 84 tempform2 = sinh(1/#z) elseif @formula2 == 85 tempform2 = cosh(1/#z) elseif @formula2 == 86 tempform2 = tanh(1/#z) elseif @formula2 == 87 tempform2 = cotanh(1/#z) elseif @formula2 == 88 tempform2 = (1,0)/cosh(1/#z) elseif @formula2 == 89 tempform2 = (1,0)/sinh(1/#z) elseif @formula2 == 90 tempform2 = sin( #z ) * tan(#z) elseif @formula2 == 91 tempform2 = sinh(#z) * tanh(#z) elseif @formula2 == 92 tempform2 = sinh(#z) * cosh(#z) elseif @formula2 == 93 temp2 = sinh(#z), zextra = cosh(#z) tempform2 = temp2*temp2*zextra*zextra elseif @formula2 == 94 temp2 = sin(#z), zextra = cos(#z) tempform2 = temp2*temp2*zextra*zextra elseif @formula2 == 95 zextra = 1/#z tempform2 = sin(zextra)*cos(zextra) elseif @formula2 == 96 zextra = sin( 1/#z ) tempform2 = zextra*zextra elseif @formula2 == 97 tempform2 = sin(#z) * cos(1/#z) elseif @formula2 == 98 tempform2 = sin(#z) * sin(1/#z) elseif @formula2 == 99 zextra = log(#z) tempform2 = zextra*zextra elseif @formula2 == 100 tempform2 = sin(#z) * sin(2*#z) elseif @formula2 == 101 tempform2 = exp(2*#z) elseif @formula2 == 102 tempform2 = exp(-2*#z) elseif @formula2 == 103 zextra = 1/#z tempform2 = sinh(zextra)*cosh(zextra) elseif @formula2 == 104 zextra = sinh( 1/#z ) tempform2 = zextra*zextra elseif @formula2 == 105 tempform2 = sinh(#z) * cosh(1/#z) elseif @formula2 == 106 tempform2 = sinh(#z) * sinh(1/#z) elseif @formula2 == 107 tempform2 = sin(#z) * sinh(#z) elseif @formula2 == 108 tempform2 = sin(#z) * cosh(#z) elseif @formula2 == 109 zextra = sin(#z), temp2 = sinh(#z) tempform2 = temp2*temp2*zextra*zextra elseif @formula2 == 110 tempform2 = sin(#z)*exp(#z) elseif @formula2 == 111 tempform2 = cos(#z)*exp(#z) elseif @formula2 == 112 tempform2 = sinh(#z)*exp(#z) elseif @formula2 == 113 tempform2 = cosh(#z)*exp(#z) elseif @formula2 == 114 tempform2 = sin(#z)*log(#z) elseif @formula2 == 115 tempform2 = cos(#z)*log(#z) elseif @formula2 == 116 tempform2 = sinh(#z)*log(#z) elseif @formula2 == 117 tempform2 = cosh(#z)*log(#z) elseif @formula2 == 118 tempform2 = exp(#z*#z) elseif @formula2 == 119 tempform2 = exp(-(#z*#z)) elseif @formula2 == 120 tempform2 = exp(1/(#z*#z)) else ; @formula2 == 121 tempform2 = exp(-1/(#z*#z)) endif ; @formula2 #z = (1-@blend)*tempform1 + @blend*tempform2 else #z = tempform1 endif ; remainder if @zblendtrue z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @zblendtrue if @pmode != 1 #z = #z + jc endif ; pmode if @biomorph if @biomorphtype == "real + imag" bail = (abs(real(z)) < @biomorphtest) || (abs(imag(z)) < @biomorphtest) elseif @biomorphtype == "real + imag + cabs" bail = (abs(real(z)) < @biomorphtest) || (abs(imag(z)) < @biomorphtest) || (cabs(z) < sqr(@biomorphtest)) elseif @biomorphtype == "real" bail = abs(real(z)) < @biomorphtest elseif @biomorphtype == "imag" bail = abs(imag(z)) < @biomorphtest elseif @biomorphtype == "cabs" bail = cabs(z) < sqr(@biomorphtest) endif ; @biomorphtype else bail = |z| < @bail endif ; @biomorph bailout: bail default: title = "N-Blend Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param blend caption = "Formula Blend" default = 0.0 hint = "Range is 0.0 - 1.0. This is the fraction of Formula 2 that is \ blended into Formula 1; at 0.0, final #z is solely from Formula 1, \ while at 1.0, #z is determined solely by Formula 2" endparam param freq caption = "N, Blend Freq" default = 10 min = 1 hint = "This is the cycle length or blend frequency N. Formula 1 is executed \ on each iter, but Formula 2 is blended in every N iters" endparam param formula1 caption = "Formula 1" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "Sets the first formula to be iterated. \ For 'z^power', use parameter 'Power 1' to set power. For '3-term polynomial' set \ params 'Coeff 1a', 'Exponent 1a', 'Coeff 1b', 'Exponent 1b', 'Coeff 1c', \ 'Exponent 1c'." endparam param power1 caption = "Power 1" default = (5,0) hint = "This is the power used for the first formula series if parameter \ 'Formula 1' is set to 'z^power'" visible = @formula1 == "z^power" endparam param coeff1a caption = "Coeff 1A" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula1 == "3-term polynomial" endparam param exponent1a caption = "Exponent 1A" default = (6,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula1 == "3-term polynomial" endparam param coeff1b caption = "Coeff 1B" default = (-1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula1 == "3-term polynomial" endparam param exponent1b caption = "Exponent 1B" default = (4,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula1 == "3-term polynomial" endparam param coeff1c caption = "Coeff 1C" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula1 == "3-term polynomial" endparam param exponent1c caption = "Exponent 1C" default = (2,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula1 == "3-term polynomial" endparam param formula2 caption = "Formula 2" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "Sets the second formula to be iterated. \ For 'z^power', use parameter 'Power 2' to set power. For '3-term polynomial' set \ params 'Coeff 2a', 'Exponent 2a', 'Coeff 2b', 'Exponent 2b', 'Coeff 2c', \ 'Exponent 2c'." endparam param power2 caption = "Power 2" default = (6,0) hint = "This is the power used for the second formula series if parameter \ 'Formula 2' is set to 'z^power'" visible = @formula2 == "z^power" endparam param coeff2a caption = "Coeff 2A" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula2 == "3-term polynomial" endparam param exponent2a caption = "Exponent 2A" default = (6,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula2 == "3-term polynomial" endparam param coeff2b caption = "Coeff 2B" default = (-1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula2 == "3-term polynomial" endparam param exponent2b caption = "Exponent 2B" default = (4,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula2 == "3-term polynomial" endparam param coeff2c caption = "Coeff 2C" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula2 == "3-term polynomial" endparam param exponent2c caption = "Exponent 2C" default = (2,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula2 == "3-term polynomial" endparam param zblendtrue caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @zblendtrue == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @zblendtrue == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @zblendtrue == TRUE endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" visible = @pixelformula == "p^power" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" visible = !@biomorph endparam param biomorph caption = "Biomorph Bailout?" default = FALSE hint = "Enabling this setting changes the bailout condition to match \ Pickover's 'biomorph' definition. For coloring, consider using \ 'Biomorph' in the public folder 'jam2.ucl'." endparam param biomorphtest caption = "Biomorph Bailout Test" default = 10.0 hint = "The bailout value for the 'Biomorph' test." visible = @biomorph endparam param biomorphtype caption = "Biomorph Type" enum = "real" "imag" "real + imag" "real + imag + cabs" "cabs" default = 3 hint = "This determines the bailout condition for the Biomorph." visible = @biomorph endparam switch: type = "jam-N-blend" perturbation = #pixel bail = bail biomorph = biomorph biomorphtest = biomorphtest biomorphtype = biomorphtype blend = blend freq = freq formula1 = formula1 formula2 = formula2 power1 = power1 power2 = power2 coeff1a = coeff1a exponent1a = exponent1a coeff1b = coeff1b exponent1b = exponent1b coeff1c = coeff1c exponent1c = exponent1c coeff2a = coeff2a exponent2a = exponent2a coeff2b = coeff2b exponent2b = exponent2b coeff2c = coeff2c exponent2c = exponent2c zblendtrue = zblendtrue weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-N-splice { ; jam 011218 ; Mandelbrot/Julia in which 2 independent formulas ; are executed on each iteration, with the final #z resulting ; from a user-specified splicing together of the real & imaginary ; parts from Formulas 1 & 2. ; Differs from SpliceMan in that splicing occurs only every N iterations, ; otherwise Formula 1 is executed exclusively. ; The 3-term polynomial formula option is ; z = ( CoeffA * z^ExponentA ) + ( CoeffB * z^ExponentB ) + ( CoeffC * z^ExponentC ) + constant init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = complex temp2 = (0,0) ; temp/spare scratch variable complex tempform1 = complex tempform2 = (0,0) int iteration = 0, int remainder = 0 complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: iteration = iteration + 1 remainder = iteration % @freq if @pmode != 0 #z = #z + jc endif ; pmode zblend = z ; Execute 1st formula selection if @formula1 == 0 tempform1 = #z * #z elseif @formula1 == 1 tempform1 = #z * #z * #z elseif @formula1 == 2 zextra = #z * #z tempform1 = zextra * zextra elseif @formula1 <= 60 if @formula1 <= 30 if @formula1 == 3 tempform1 = #z ^ @power1 elseif @formula1 == 4 tempform1 = 1/#z elseif @formula1 == 5 tempform1 = sqrt(#z) elseif @formula1 == 6 tempform1 = 1 / ( #z * #z ) elseif @formula1 == 7 tempform1 = log(#z) elseif @formula1 == 8 tempform1 = exp( #z) elseif @formula1 == 9 tempform1 = #z^#z elseif @formula1 == 10 tempform1 = sin( #z ) elseif @formula1 == 11 tempform1 = cos( #z ) elseif @formula1 == 12 tempform1 = tan( #z ) elseif @formula1 == 13 tempform1 = asin( #z ) elseif @formula1 == 14 tempform1 = acos( #z ) elseif @formula1 == 15 tempform1 = atan( #z ) elseif @formula1 == 16 tempform1 = sinh( #z ) elseif @formula1 == 17 tempform1 = cosh( #z ) elseif @formula1 == 18 tempform1 = tanh( #z ) elseif @formula1 == 19 tempform1 = asinh( #z ) elseif @formula1 == 20 tempform1 = acosh( #z ) elseif @formula1 == 21 tempform1 = atanh( #z ) elseif @formula1 == 22 tempform1 = log( 1/#z ) elseif @formula1 == 23 tempform1 = log( log( #z )) elseif @formula1 == 24 tempform1 = exp( -#z ) elseif @formula1 == 25 tempform1 = exp( 1/#z ) elseif @formula1 == 26 tempform1 = #z^(-#z) elseif @formula1 == 27 zextra = sin( #z ) tempform1 = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) tempform1 = zextra * zextra elseif @formula1 == 29 zextra = tan( #z ) tempform1 = zextra * zextra else ; @formula1 == 30 tempform1 = cotan( #z ) endif ; formula1-3 else ; 30 < @formula1 <= 60 if @formula1 == 31 tempform1 = 1/cos( #z ) elseif @formula1 == 32 tempform1 = 1/sin( #z ) elseif @formula1 == 33 zextra = cotan( #z ) tempform1 = zextra * zextra elseif @formula1 == 34 zextra = 1/cos( #z ) tempform1 = zextra * zextra elseif @formula1 == 35 zextra = 1/sin( #z ) tempform1 = zextra * zextra elseif @formula1 == 36 zextra = #z^(#z) tempform1 = #z^zextra elseif @formula1 == 37 zextra = #z^(#z) tempform1 = 1/( #z^zextra ) elseif @formula1 == 38 tempform1 = log(-#z) elseif @formula1 == 39 tempform1 = 1/log( #z ) elseif @formula1 == 40 tempform1 = #z * log( #z ) elseif @formula1 == 41 tempform1 = sin( #z ) / #z elseif @formula1 == 42 tempform1 = cos( #z ) / #z elseif @formula1 == 43 tempform1 = sin( #z ) * cos( #z ) elseif @formula1 == 44 tempform1 = sin( #z^2 ) elseif @formula1 == 45 tempform1 = exp( -1/#z ) elseif @formula1 == 46 tempform1 = #z * exp( #z ) elseif @formula1 == 47 tempform1 = #z * exp( -#z ) elseif @formula1 == 48 tempform1 = #z * exp( 1/#z ) elseif @formula1 == 49 tempform1 = #z * exp( -1/#z ) elseif @formula1 == 50 tempform1 = #z * #z * #z elseif @formula1 == 51 tempform1 = 1 / ( #z * #z * #z ) elseif @formula1 == 52 tempform1 = atan( 1 / #z ) elseif @formula1 == 53 tempform1 = acos( 1 / #z ) elseif @formula1 == 54 tempform1 = asin( 1 / #z ) elseif @formula1 == 55 tempform1 = tan( #z ) / #z elseif @formula1 == 56 tempform1 = cotan( #z ) / #z elseif @formula1 == 57 tempform1 = 1 / ( #z * cos( #z )) elseif @formula1 == 58 tempform1 = 1 / ( #z * sin( #z )) elseif @formula1 == 59 tempform1 = #z * sin( #z ) else ; @formula1 == 60 tempform1 = #z * cos( #z ) endif ; formula1-3 endif ; formula1-2 elseif @formula1 <= 90 if @formula1 == 61 tempform1 = #z * tan( #z ) elseif @formula1 == 62 tempform1 = #z * cotan( #z ) elseif @formula1 == 63 tempform1 = #z/cos( #z ) elseif @formula1 == 64 tempform1 = #z/sin( #z ) elseif @formula1 == 65 tempform1 = sin( 1/#z ) elseif @formula1 == 66 tempform1 = cos( 1/#z ) elseif @formula1 == 67 tempform1 = tan( 1/#z ) elseif @formula1 == 68 tempform1 = cotan( 1/#z ) elseif @formula1 == 69 tempform1 = 1/cos( 1/#z ) elseif @formula1 == 70 tempform1 = 1/sin( 1/#z ) elseif @formula1 == 71 tempform1 = cotanh( #z ) elseif @formula1 == 72 tempform1 = 1/cosh( #z ) elseif @formula1 == 73 tempform1 = 1/sinh( #z ) elseif @formula1 == 74 tempform1 = atanh( 1/#z ) elseif @formula1 == 75 tempform1 = acosh( 1/#z ) elseif @formula1 == 76 tempform1 = asinh( 1/#z ) elseif @formula1 == 77 tempform1 = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c elseif @formula1 == 78 zextra = sinh(#z) tempform1 = zextra * zextra elseif @formula1 == 79 zextra = cosh( #z ) tempform1 = zextra * zextra elseif @formula1 == 80 zextra = tanh(#z) tempform1 = zextra * zextra elseif @formula1 == 81 zextra = cotanh( #z ) tempform1 = zextra * zextra elseif @formula1 == 82 zextra = (1,0)/cosh(#z) tempform1 = zextra * zextra elseif @formula1 == 83 zextra = (1,0) / sinh( #z ) tempform1 = zextra * zextra elseif @formula1 == 84 tempform1 = sinh(1/#z) elseif @formula1 == 85 tempform1 = cosh(1/#z) elseif @formula1 == 86 tempform1 = tanh(1/#z) elseif @formula1 == 87 tempform1 = cotanh(1/#z) elseif @formula1 == 88 tempform1 = (1,0)/cosh(1/#z) elseif @formula1 == 89 tempform1 = (1,0)/sinh(1/#z) else ; @formula1 == 90 tempform1 = sin( #z ) * tan(#z) endif ; formula1-2 else ; 90 < @formula1 <= 120 if @formula1 == 91 tempform1 = sinh(#z) * tanh(#z) elseif @formula1 == 92 tempform1 = sinh(#z) * cosh(#z) elseif @formula1 == 93 temp2 = sinh(#z), zextra = cosh(#z) tempform1 = temp2*temp2*zextra*zextra elseif @formula1 == 94 temp2 = sin(#z), zextra = cos(#z) tempform1 = temp2*temp2*zextra*zextra elseif @formula1 == 95 zextra = 1/#z tempform1 = sin(zextra)*cos(zextra) elseif @formula1 == 96 zextra = sin( 1/#z ) tempform1 = zextra*zextra elseif @formula1 == 97 tempform1 = sin(#z) * cos(1/#z) elseif @formula1 == 98 tempform1 = sin(#z) * sin(1/#z) elseif @formula1 == 99 zextra = log(#z) tempform1 = zextra*zextra elseif @formula1 == 100 tempform1 = sin(#z) * sin(2*#z) elseif @formula1 == 101 tempform1 = exp(2*#z) elseif @formula1 == 102 tempform1 = exp(-2*#z) elseif @formula1 == 103 zextra = 1/#z tempform1 = sinh(zextra)*cosh(zextra) elseif @formula1 == 104 zextra = sinh( 1/#z ) tempform1 = zextra*zextra elseif @formula1 == 105 tempform1 = sinh(#z) * cosh(1/#z) elseif @formula1 == 106 tempform1 = sinh(#z) * sinh(1/#z) elseif @formula1 == 107 tempform1 = sin(#z) * sinh(#z) elseif @formula1 == 108 tempform1 = sin(#z) * cosh(#z) elseif @formula1 == 109 zextra = sin(#z), temp2 = sinh(#z) tempform1 = temp2*temp2*zextra*zextra elseif @formula1 == 110 tempform1 = sin(#z)*exp(#z) elseif @formula1 == 111 tempform1 = cos(#z)*exp(#z) elseif @formula1 == 112 tempform1 = sinh(#z)*exp(#z) elseif @formula1 == 113 tempform1 = cosh(#z)*exp(#z) elseif @formula1 == 114 tempform1 = sin(#z)*log(#z) elseif @formula1 == 115 tempform1 = cos(#z)*log(#z) elseif @formula1 == 116 tempform1 = sinh(#z)*log(#z) else ; @formula1 == 117 tempform1 = cosh(#z)*log(#z) endif ; formula1-2 endif ; formula1-1 if remainder == 0 ; Execute 2nd formula selection if @formula2 == 0 tempform2 = #z * #z elseif @formula2 == 1 tempform2 = #z * #z * #z elseif @formula2 == 2 zextra = #z * #z tempform2 = zextra * zextra elseif @formula2 <= 60 if @formula2 <= 30 if @formula2 == 3 tempform2 = #z ^ @power2 elseif @formula2 == 4 tempform2 = 1/#z elseif @formula2 == 5 tempform2 = sqrt(#z) elseif @formula2 == 6 tempform2 = 1 / ( #z * #z ) elseif @formula2 == 7 tempform2 = log(#z) elseif @formula2 == 8 tempform2 = exp( #z) elseif @formula2 == 9 tempform2 = #z^#z elseif @formula2 == 10 tempform2 = sin( #z ) elseif @formula2 == 11 tempform2 = cos( #z ) elseif @formula2 == 12 tempform2 = tan( #z ) elseif @formula2 == 13 tempform2 = asin( #z ) elseif @formula2 == 14 tempform2 = acos( #z ) elseif @formula2 == 15 tempform2 = atan( #z ) elseif @formula2 == 16 tempform2 = sinh( #z ) elseif @formula2 == 17 tempform2 = cosh( #z ) elseif @formula2 == 18 tempform2 = tanh( #z ) elseif @formula2 == 19 tempform2 = asinh( #z ) elseif @formula2 == 20 tempform2 = acosh( #z ) elseif @formula2 == 21 tempform2 = atanh( #z ) elseif @formula2 == 22 tempform2 = log( 1/#z ) elseif @formula2 == 23 tempform2 = log( log( #z )) elseif @formula2 == 24 tempform2 = exp( -#z ) elseif @formula2 == 25 tempform2 = exp( 1/#z ) elseif @formula2 == 26 tempform2 = #z^(-#z) elseif @formula2 == 27 zextra = sin( #z ) tempform2 = zextra * zextra elseif @formula2 == 28 zextra = cos( #z ) tempform2 = zextra * zextra elseif @formula2 == 29 zextra = tan( #z ) tempform2 = zextra * zextra else ; @formula2 == 30 tempform2 = cotan( #z ) endif ; formula2-3 else ; 30 < @formula2 <= 60 if @formula2 == 31 tempform2 = 1/cos( #z ) elseif @formula2 == 32 tempform2 = 1/sin( #z ) elseif @formula2 == 33 zextra = cotan( #z ) tempform2 = zextra * zextra elseif @formula2 == 34 zextra = 1/cos( #z ) tempform2 = zextra * zextra elseif @formula2 == 35 zextra = 1/sin( #z ) tempform2 = zextra * zextra elseif @formula2 == 36 zextra = #z^(#z) tempform2 = #z^zextra elseif @formula2 == 37 zextra = #z^(#z) tempform2 = 1/( #z^zextra ) elseif @formula2 == 38 tempform2 = log(-#z) elseif @formula2 == 39 tempform2 = 1/log( #z ) elseif @formula2 == 40 tempform2 = #z * log( #z ) elseif @formula2 == 41 tempform2 = sin( #z ) / #z elseif @formula2 == 42 tempform2 = cos( #z ) / #z elseif @formula2 == 43 tempform2 = sin( #z ) * cos( #z ) elseif @formula2 == 44 tempform2 = sin( #z^2 ) elseif @formula2 == 45 tempform2 = exp( -1/#z ) elseif @formula2 == 46 tempform2 = #z * exp( #z ) elseif @formula2 == 47 tempform2 = #z * exp( -#z ) elseif @formula2 == 48 tempform2 = #z * exp( 1/#z ) elseif @formula2 == 49 tempform2 = #z * exp( -1/#z ) elseif @formula2 == 50 tempform2 = #z * #z * #z elseif @formula2 == 51 tempform2 = 1 / ( #z * #z * #z ) elseif @formula2 == 52 tempform2 = atan( 1 / #z ) elseif @formula2 == 53 tempform2 = acos( 1 / #z ) elseif @formula2 == 54 tempform2 = asin( 1 / #z ) elseif @formula2 == 55 tempform2 = tan( #z ) / #z elseif @formula2 == 56 tempform2 = cotan( #z ) / #z elseif @formula2 == 57 tempform2 = 1 / ( #z * cos( #z )) elseif @formula2 == 58 tempform2 = 1 / ( #z * sin( #z )) elseif @formula2 == 59 tempform2 = #z * sin( #z ) else ; @formula2 == 60 tempform2 = #z * cos( #z ) endif ; formula2-3 endif ; formula2-2 elseif @formula2 <= 90 if @formula2 == 61 tempform2 = #z * tan( #z ) elseif @formula2 == 62 tempform2 = #z * cotan( #z ) elseif @formula2 == 63 tempform2 = #z/cos( #z ) elseif @formula2 == 64 tempform2 = #z/sin( #z ) elseif @formula2 == 65 tempform2 = sin( 1/#z ) elseif @formula2 == 66 tempform2 = cos( 1/#z ) elseif @formula2 == 67 tempform2 = tan( 1/#z ) elseif @formula2 == 68 tempform2 = cotan( 1/#z ) elseif @formula2 == 69 tempform2 = 1/cos( 1/#z ) elseif @formula2 == 70 tempform2 = 1/sin( 1/#z ) elseif @formula2 == 71 tempform2 = cotanh( #z ) elseif @formula2 == 72 tempform2 = 1/cosh( #z ) elseif @formula2 == 73 tempform2 = 1/sinh( #z ) elseif @formula2 == 74 tempform2 = atanh( 1/#z ) elseif @formula2 == 75 tempform2 = acosh( 1/#z ) elseif @formula2 == 76 tempform2 = asinh( 1/#z ) elseif @formula2 == 77 tempform2 = @coeff2a * #z^@exponent2a + @coeff2b * #z^@exponent2b + @coeff2c * #z^@exponent2c elseif @formula2 == 78 zextra = sinh(#z) tempform2 = zextra * zextra elseif @formula2 == 79 zextra = cosh( #z ) tempform2 = zextra * zextra elseif @formula2 == 80 zextra = tanh(#z) tempform2 = zextra * zextra elseif @formula2 == 81 zextra = cotanh( #z ) tempform2 = zextra * zextra elseif @formula2 == 82 zextra = (1,0)/cosh(#z) tempform2 = zextra * zextra elseif @formula2 == 83 zextra = (1,0) / sinh( #z ) tempform2 = zextra * zextra elseif @formula2 == 84 tempform2 = sinh(1/#z) elseif @formula2 == 85 tempform2 = cosh(1/#z) elseif @formula2 == 86 tempform2 = tanh(1/#z) elseif @formula2 == 87 tempform2 = cotanh(1/#z) elseif @formula2 == 88 tempform2 = (1,0)/cosh(1/#z) elseif @formula2 == 89 tempform2 = (1,0)/sinh(1/#z) else ; @formula2 == 90 tempform2 = sin( #z ) * tan(#z) endif ; formula2-2 else ; 90 < @formula2 <= 120 if @formula2 == 91 tempform2 = sinh(#z) * tanh(#z) elseif @formula2 == 92 tempform2 = sinh(#z) * cosh(#z) elseif @formula2 == 93 temp2 = sinh(#z), zextra = cosh(#z) tempform2 = temp2*temp2*zextra*zextra elseif @formula2 == 94 temp2 = sin(#z), zextra = cos(#z) tempform2 = temp2*temp2*zextra*zextra elseif @formula2 == 95 zextra = 1/#z tempform2 = sin(zextra)*cos(zextra) elseif @formula2 == 96 zextra = sin( 1/#z ) tempform2 = zextra*zextra elseif @formula2 == 97 tempform2 = sin(#z) * cos(1/#z) elseif @formula2 == 98 tempform2 = sin(#z) * sin(1/#z) elseif @formula2 == 99 zextra = log(#z) tempform2 = zextra*zextra elseif @formula2 == 100 tempform2 = sin(#z) * sin(2*#z) elseif @formula2 == 101 tempform2 = exp(2*#z) elseif @formula2 == 102 tempform2 = exp(-2*#z) elseif @formula2 == 103 zextra = 1/#z tempform2 = sinh(zextra)*cosh(zextra) elseif @formula2 == 104 zextra = sinh( 1/#z ) tempform2 = zextra*zextra elseif @formula2 == 105 tempform2 = sinh(#z) * cosh(1/#z) elseif @formula2 == 106 tempform2 = sinh(#z) * sinh(1/#z) elseif @formula2 == 107 tempform2 = sin(#z) * sinh(#z) elseif @formula2 == 108 tempform2 = sin(#z) * cosh(#z) elseif @formula2 == 109 zextra = sin(#z), temp2 = sinh(#z) tempform2 = temp2*temp2*zextra*zextra elseif @formula2 == 110 tempform2 = sin(#z)*exp(#z) elseif @formula2 == 111 tempform2 = cos(#z)*exp(#z) elseif @formula2 == 112 tempform2 = sinh(#z)*exp(#z) elseif @formula2 == 113 tempform2 = cosh(#z)*exp(#z) elseif @formula2 == 114 tempform2 = sin(#z)*log(#z) elseif @formula2 == 115 tempform2 = cos(#z)*log(#z) elseif @formula2 == 116 tempform2 = sinh(#z)*log(#z) else ; @formula2 == 117 tempform2 = cosh(#z)*log(#z) endif ; formula2-2 endif ; formula2-1 if (@splicemode == 0) || (@splicemode == 4) zextra = real(tempform1) + flip(imag(tempform2)) elseif (@splicemode == 1) || (@splicemode == 5) zextra = imag(tempform1) + flip(real(tempform2)) elseif (@splicemode == 2) || (@splicemode == 6) zextra = real(tempform1) + flip(real(tempform2)) elseif (@splicemode == 3) || (@splicemode == 7) zextra = imag(tempform1) + flip(imag(tempform2)) endif ; @splicemode if @splicemode > 3 zextra = flip(zextra) endif ; @splicemode endif ; remainder if remainder == 0 #z = (1-@blend)*tempform1 + @blend*zextra else #z = tempform1 endif ; remainder if @zblendtrue z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @zblendtrue if @pmode != 1 #z = #z + jc endif ; pmode if @biomorph if @biomorphtype == "real + imag" bail = (abs(real(z)) < @biomorphtest) || (abs(imag(z)) < @biomorphtest) elseif @biomorphtype == "real + imag + cabs" bail = (abs(real(z)) < @biomorphtest) || (abs(imag(z)) < @biomorphtest) || (cabs(z) < sqr(@biomorphtest)) elseif @biomorphtype == "real" bail = abs(real(z)) < @biomorphtest elseif @biomorphtype == "imag" bail = abs(imag(z)) < @biomorphtest elseif @biomorphtype == "cabs" bail = cabs(z) < sqr(@biomorphtest) endif ; @biomorphtype else bail = |z| < @bail endif ; @biomorph bailout: bail default: title = "N-Splice" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param splicemode caption = "Splice Mode" enum = "real#1 + imag#2" "imag#1 + real#2" "real#1 + real#2" "imag#1 + imag#2" \ "imag#2 + real#1" "real#2 + imag#1" "real#2 + real#1" "imag#2 + imag#1" default = 0 hint = "This param determines which components of the Formula 1 and Formula 2 \ iterates are combined to form the final #z; the final formula is #z = \ [Formula 1 part] + flip( [Formula 2 part])." endparam param blend caption = "Splice Blend" default = 1.0 min = -2.0 max = 2.0 hint = "Range is 0.0 - 1.0. At 1.0, final #z is fully spliced; at 0.0, \ no splicing has occurred and #z is the solely determined by Formula 1" endparam param freq caption = "N, Splice Freq" default = 10 min = 2 hint = "This is the cycle length or blend frequency N. Formula 1 is executed \ on each iter, but Formula 2 is spliced in only every N iters" endparam param formula1 caption = "Formula 1" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the first formula to be iterated. \ For 'z^power', use parameter 'Power 1' to set power. For '3-term polynomial' set \ params 'Coeff 1a', 'Exponent 1a', 'Coeff 1b', 'Exponent 1b', 'Coeff 1c', \ 'Exponent 1c'." endparam param formula2 caption = "Formula 2" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the second formula to be iterated. \ For 'z^power', use parameter 'Power 2' to set power. For '3-term polynomial' set \ params 'Coeff 2a', 'Exponent 2a', 'Coeff 2b', 'Exponent 2b', 'Coeff 2c', \ 'Exponent 2c'." endparam param power1 caption = "Power 1" default = (5,0) hint = "This is the power used for the first formula series if parameter \ 'Formula 1' is set to 'z^power'" endparam param power2 caption = "Power 2" default = (6,0) hint = "This is the power used for the second formula series if parameter \ 'Formula 2' is set to 'z^power'" endparam param coeff1a caption = "Coeff 1A" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent1a caption = "Exponent 1A" default = (6,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff1b caption = "Coeff 1B" default = (-1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent1b caption = "Exponent 1B" default = (4,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff1c caption = "Coeff 1C" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent1c caption = "Exponent 1C" default = (2,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param coeff2a caption = "Coeff 2A" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent2a caption = "Exponent 2A" default = (6,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff2b caption = "Coeff 2B" default = (-1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent2b caption = "Exponent 2B" default = (4,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff2c caption = "Coeff 2C" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent2c caption = "Exponent 2C" default = (2,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param zblendtrue caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @zblendtrue == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @zblendtrue == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @zblendtrue == TRUE endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" visible = !@biomorph endparam param biomorph caption = "Biomorph Bailout?" default = FALSE hint = "Enabling this setting changes the bailout condition to match \ Pickover's 'biomorph' definition. For coloring, consider using \ 'Biomorph' in the public folder 'jam2.ucl'." endparam param biomorphtest caption = "Biomorph Bailout Test" default = 10.0 hint = "The bailout value for the 'Biomorph' test." visible = @biomorph endparam param biomorphtype caption = "Biomorph Type" enum = "real" "imag" "real + imag" "real + imag + cabs" "cabs" default = 3 hint = "This determines the bailout condition for the Biomorph." visible = @biomorph endparam switch: type = "jam-N-splice-J" jconstant = #pixel bail = bail biomorph = biomorph biomorphtest = biomorphtest biomorphtype = biomorphtype splicemode = splicemode blend = blend freq = freq formula1 = formula1 formula2 = formula2 power1 = power1 power2 = power2 coeff1a = coeff1a exponent1a = exponent1a coeff1b = coeff1b exponent1b = exponent1b coeff1c = coeff1c exponent1c = exponent1c coeff2a = coeff2a exponent2a = exponent2a coeff2b = coeff2b exponent2b = exponent2b coeff2c = coeff2c exponent2c = exponent2c zblendtrue = zblendtrue weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-N-splice-J { ; jam 011218 ; Mandelbrot/Julia in which 2 independent formulas ; are executed on each iteration, with the final #z resulting ; from a user-specified splicing together of the real & imaginary ; parts from Formulas 1 & 2. ; Differs from SpliceMan in that splicing occurs only every N iterations, ; otherwise Formula 1 is executed exclusively. ; The 3-term polynomial formula option is ; z = ( CoeffA * z^ExponentA ) + ( CoeffB * z^ExponentB ) + ( CoeffC * z^ExponentC ) + constant init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = complex temp2 = (0,0) ; temp/spare scratch variable complex tempform1 = complex tempform2 = (0,0) int iteration = 0, int remainder = 0 complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: iteration = iteration + 1 remainder = iteration % @freq if @pmode != 0 #z = #z + jc endif ; pmode zblend = z ; Execute 1st formula selection if @formula1 == 0 tempform1 = #z * #z elseif @formula1 == 1 tempform1 = #z * #z * #z elseif @formula1 == 2 zextra = #z * #z tempform1 = zextra * zextra elseif @formula1 <= 60 if @formula1 <= 30 if @formula1 == 3 tempform1 = #z ^ @power1 elseif @formula1 == 4 tempform1 = 1/#z elseif @formula1 == 5 tempform1 = sqrt(#z) elseif @formula1 == 6 tempform1 = 1 / ( #z * #z ) elseif @formula1 == 7 tempform1 = log(#z) elseif @formula1 == 8 tempform1 = exp( #z) elseif @formula1 == 9 tempform1 = #z^#z elseif @formula1 == 10 tempform1 = sin( #z ) elseif @formula1 == 11 tempform1 = cos( #z ) elseif @formula1 == 12 tempform1 = tan( #z ) elseif @formula1 == 13 tempform1 = asin( #z ) elseif @formula1 == 14 tempform1 = acos( #z ) elseif @formula1 == 15 tempform1 = atan( #z ) elseif @formula1 == 16 tempform1 = sinh( #z ) elseif @formula1 == 17 tempform1 = cosh( #z ) elseif @formula1 == 18 tempform1 = tanh( #z ) elseif @formula1 == 19 tempform1 = asinh( #z ) elseif @formula1 == 20 tempform1 = acosh( #z ) elseif @formula1 == 21 tempform1 = atanh( #z ) elseif @formula1 == 22 tempform1 = log( 1/#z ) elseif @formula1 == 23 tempform1 = log( log( #z )) elseif @formula1 == 24 tempform1 = exp( -#z ) elseif @formula1 == 25 tempform1 = exp( 1/#z ) elseif @formula1 == 26 tempform1 = #z^(-#z) elseif @formula1 == 27 zextra = sin( #z ) tempform1 = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) tempform1 = zextra * zextra elseif @formula1 == 29 zextra = tan( #z ) tempform1 = zextra * zextra else ; @formula1 == 30 tempform1 = cotan( #z ) endif ; formula1-3 else ; 30 < @formula1 <= 60 if @formula1 == 31 tempform1 = 1/cos( #z ) elseif @formula1 == 32 tempform1 = 1/sin( #z ) elseif @formula1 == 33 zextra = cotan( #z ) tempform1 = zextra * zextra elseif @formula1 == 34 zextra = 1/cos( #z ) tempform1 = zextra * zextra elseif @formula1 == 35 zextra = 1/sin( #z ) tempform1 = zextra * zextra elseif @formula1 == 36 zextra = #z^(#z) tempform1 = #z^zextra elseif @formula1 == 37 zextra = #z^(#z) tempform1 = 1/( #z^zextra ) elseif @formula1 == 38 tempform1 = log(-#z) elseif @formula1 == 39 tempform1 = 1/log( #z ) elseif @formula1 == 40 tempform1 = #z * log( #z ) elseif @formula1 == 41 tempform1 = sin( #z ) / #z elseif @formula1 == 42 tempform1 = cos( #z ) / #z elseif @formula1 == 43 tempform1 = sin( #z ) * cos( #z ) elseif @formula1 == 44 tempform1 = sin( #z^2 ) elseif @formula1 == 45 tempform1 = exp( -1/#z ) elseif @formula1 == 46 tempform1 = #z * exp( #z ) elseif @formula1 == 47 tempform1 = #z * exp( -#z ) elseif @formula1 == 48 tempform1 = #z * exp( 1/#z ) elseif @formula1 == 49 tempform1 = #z * exp( -1/#z ) elseif @formula1 == 50 tempform1 = #z * #z * #z elseif @formula1 == 51 tempform1 = 1 / ( #z * #z * #z ) elseif @formula1 == 52 tempform1 = atan( 1 / #z ) elseif @formula1 == 53 tempform1 = acos( 1 / #z ) elseif @formula1 == 54 tempform1 = asin( 1 / #z ) elseif @formula1 == 55 tempform1 = tan( #z ) / #z elseif @formula1 == 56 tempform1 = cotan( #z ) / #z elseif @formula1 == 57 tempform1 = 1 / ( #z * cos( #z )) elseif @formula1 == 58 tempform1 = 1 / ( #z * sin( #z )) elseif @formula1 == 59 tempform1 = #z * sin( #z ) else ; @formula1 == 60 tempform1 = #z * cos( #z ) endif ; formula1-3 endif ; formula1-2 elseif @formula1 <= 90 if @formula1 == 61 tempform1 = #z * tan( #z ) elseif @formula1 == 62 tempform1 = #z * cotan( #z ) elseif @formula1 == 63 tempform1 = #z/cos( #z ) elseif @formula1 == 64 tempform1 = #z/sin( #z ) elseif @formula1 == 65 tempform1 = sin( 1/#z ) elseif @formula1 == 66 tempform1 = cos( 1/#z ) elseif @formula1 == 67 tempform1 = tan( 1/#z ) elseif @formula1 == 68 tempform1 = cotan( 1/#z ) elseif @formula1 == 69 tempform1 = 1/cos( 1/#z ) elseif @formula1 == 70 tempform1 = 1/sin( 1/#z ) elseif @formula1 == 71 tempform1 = cotanh( #z ) elseif @formula1 == 72 tempform1 = 1/cosh( #z ) elseif @formula1 == 73 tempform1 = 1/sinh( #z ) elseif @formula1 == 74 tempform1 = atanh( 1/#z ) elseif @formula1 == 75 tempform1 = acosh( 1/#z ) elseif @formula1 == 76 tempform1 = asinh( 1/#z ) elseif @formula1 == 77 tempform1 = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c elseif @formula1 == 78 zextra = sinh(#z) tempform1 = zextra * zextra elseif @formula1 == 79 zextra = cosh( #z ) tempform1 = zextra * zextra elseif @formula1 == 80 zextra = tanh(#z) tempform1 = zextra * zextra elseif @formula1 == 81 zextra = cotanh( #z ) tempform1 = zextra * zextra elseif @formula1 == 82 zextra = (1,0)/cosh(#z) tempform1 = zextra * zextra elseif @formula1 == 83 zextra = (1,0) / sinh( #z ) tempform1 = zextra * zextra elseif @formula1 == 84 tempform1 = sinh(1/#z) elseif @formula1 == 85 tempform1 = cosh(1/#z) elseif @formula1 == 86 tempform1 = tanh(1/#z) elseif @formula1 == 87 tempform1 = cotanh(1/#z) elseif @formula1 == 88 tempform1 = (1,0)/cosh(1/#z) elseif @formula1 == 89 tempform1 = (1,0)/sinh(1/#z) else ; @formula1 == 90 tempform1 = sin( #z ) * tan(#z) endif ; formula1-2 else ; 90 < @formula1 <= 120 if @formula1 == 91 tempform1 = sinh(#z) * tanh(#z) elseif @formula1 == 92 tempform1 = sinh(#z) * cosh(#z) elseif @formula1 == 93 temp2 = sinh(#z), zextra = cosh(#z) tempform1 = temp2*temp2*zextra*zextra elseif @formula1 == 94 temp2 = sin(#z), zextra = cos(#z) tempform1 = temp2*temp2*zextra*zextra elseif @formula1 == 95 zextra = 1/#z tempform1 = sin(zextra)*cos(zextra) elseif @formula1 == 96 zextra = sin( 1/#z ) tempform1 = zextra*zextra elseif @formula1 == 97 tempform1 = sin(#z) * cos(1/#z) elseif @formula1 == 98 tempform1 = sin(#z) * sin(1/#z) elseif @formula1 == 99 zextra = log(#z) tempform1 = zextra*zextra elseif @formula1 == 100 tempform1 = sin(#z) * sin(2*#z) elseif @formula1 == 101 tempform1 = exp(2*#z) elseif @formula1 == 102 tempform1 = exp(-2*#z) elseif @formula1 == 103 zextra = 1/#z tempform1 = sinh(zextra)*cosh(zextra) elseif @formula1 == 104 zextra = sinh( 1/#z ) tempform1 = zextra*zextra elseif @formula1 == 105 tempform1 = sinh(#z) * cosh(1/#z) elseif @formula1 == 106 tempform1 = sinh(#z) * sinh(1/#z) elseif @formula1 == 107 tempform1 = sin(#z) * sinh(#z) elseif @formula1 == 108 tempform1 = sin(#z) * cosh(#z) elseif @formula1 == 109 zextra = sin(#z), temp2 = sinh(#z) tempform1 = temp2*temp2*zextra*zextra elseif @formula1 == 110 tempform1 = sin(#z)*exp(#z) elseif @formula1 == 111 tempform1 = cos(#z)*exp(#z) elseif @formula1 == 112 tempform1 = sinh(#z)*exp(#z) elseif @formula1 == 113 tempform1 = cosh(#z)*exp(#z) elseif @formula1 == 114 tempform1 = sin(#z)*log(#z) elseif @formula1 == 115 tempform1 = cos(#z)*log(#z) elseif @formula1 == 116 tempform1 = sinh(#z)*log(#z) else ; @formula1 == 117 tempform1 = cosh(#z)*log(#z) endif ; formula1-2 endif ; formula1-1 if remainder == 0 ; Execute 2nd formula selection if @formula2 == 0 tempform2 = #z * #z elseif @formula2 == 1 tempform2 = #z * #z * #z elseif @formula2 == 2 zextra = #z * #z tempform2 = zextra * zextra elseif @formula2 <= 60 if @formula2 <= 30 if @formula2 == 3 tempform2 = #z ^ @power2 elseif @formula2 == 4 tempform2 = 1/#z elseif @formula2 == 5 tempform2 = sqrt(#z) elseif @formula2 == 6 tempform2 = 1 / ( #z * #z ) elseif @formula2 == 7 tempform2 = log(#z) elseif @formula2 == 8 tempform2 = exp( #z) elseif @formula2 == 9 tempform2 = #z^#z elseif @formula2 == 10 tempform2 = sin( #z ) elseif @formula2 == 11 tempform2 = cos( #z ) elseif @formula2 == 12 tempform2 = tan( #z ) elseif @formula2 == 13 tempform2 = asin( #z ) elseif @formula2 == 14 tempform2 = acos( #z ) elseif @formula2 == 15 tempform2 = atan( #z ) elseif @formula2 == 16 tempform2 = sinh( #z ) elseif @formula2 == 17 tempform2 = cosh( #z ) elseif @formula2 == 18 tempform2 = tanh( #z ) elseif @formula2 == 19 tempform2 = asinh( #z ) elseif @formula2 == 20 tempform2 = acosh( #z ) elseif @formula2 == 21 tempform2 = atanh( #z ) elseif @formula2 == 22 tempform2 = log( 1/#z ) elseif @formula2 == 23 tempform2 = log( log( #z )) elseif @formula2 == 24 tempform2 = exp( -#z ) elseif @formula2 == 25 tempform2 = exp( 1/#z ) elseif @formula2 == 26 tempform2 = #z^(-#z) elseif @formula2 == 27 zextra = sin( #z ) tempform2 = zextra * zextra elseif @formula2 == 28 zextra = cos( #z ) tempform2 = zextra * zextra elseif @formula2 == 29 zextra = tan( #z ) tempform2 = zextra * zextra else ; @formula2 == 30 tempform2 = cotan( #z ) endif ; formula2-3 else ; 30 < @formula2 <= 60 if @formula2 == 31 tempform2 = 1/cos( #z ) elseif @formula2 == 32 tempform2 = 1/sin( #z ) elseif @formula2 == 33 zextra = cotan( #z ) tempform2 = zextra * zextra elseif @formula2 == 34 zextra = 1/cos( #z ) tempform2 = zextra * zextra elseif @formula2 == 35 zextra = 1/sin( #z ) tempform2 = zextra * zextra elseif @formula2 == 36 zextra = #z^(#z) tempform2 = #z^zextra elseif @formula2 == 37 zextra = #z^(#z) tempform2 = 1/( #z^zextra ) elseif @formula2 == 38 tempform2 = log(-#z) elseif @formula2 == 39 tempform2 = 1/log( #z ) elseif @formula2 == 40 tempform2 = #z * log( #z ) elseif @formula2 == 41 tempform2 = sin( #z ) / #z elseif @formula2 == 42 tempform2 = cos( #z ) / #z elseif @formula2 == 43 tempform2 = sin( #z ) * cos( #z ) elseif @formula2 == 44 tempform2 = sin( #z^2 ) elseif @formula2 == 45 tempform2 = exp( -1/#z ) elseif @formula2 == 46 tempform2 = #z * exp( #z ) elseif @formula2 == 47 tempform2 = #z * exp( -#z ) elseif @formula2 == 48 tempform2 = #z * exp( 1/#z ) elseif @formula2 == 49 tempform2 = #z * exp( -1/#z ) elseif @formula2 == 50 tempform2 = #z * #z * #z elseif @formula2 == 51 tempform2 = 1 / ( #z * #z * #z ) elseif @formula2 == 52 tempform2 = atan( 1 / #z ) elseif @formula2 == 53 tempform2 = acos( 1 / #z ) elseif @formula2 == 54 tempform2 = asin( 1 / #z ) elseif @formula2 == 55 tempform2 = tan( #z ) / #z elseif @formula2 == 56 tempform2 = cotan( #z ) / #z elseif @formula2 == 57 tempform2 = 1 / ( #z * cos( #z )) elseif @formula2 == 58 tempform2 = 1 / ( #z * sin( #z )) elseif @formula2 == 59 tempform2 = #z * sin( #z ) else ; @formula2 == 60 tempform2 = #z * cos( #z ) endif ; formula2-3 endif ; formula2-2 elseif @formula2 <= 90 if @formula2 == 61 tempform2 = #z * tan( #z ) elseif @formula2 == 62 tempform2 = #z * cotan( #z ) elseif @formula2 == 63 tempform2 = #z/cos( #z ) elseif @formula2 == 64 tempform2 = #z/sin( #z ) elseif @formula2 == 65 tempform2 = sin( 1/#z ) elseif @formula2 == 66 tempform2 = cos( 1/#z ) elseif @formula2 == 67 tempform2 = tan( 1/#z ) elseif @formula2 == 68 tempform2 = cotan( 1/#z ) elseif @formula2 == 69 tempform2 = 1/cos( 1/#z ) elseif @formula2 == 70 tempform2 = 1/sin( 1/#z ) elseif @formula2 == 71 tempform2 = cotanh( #z ) elseif @formula2 == 72 tempform2 = 1/cosh( #z ) elseif @formula2 == 73 tempform2 = 1/sinh( #z ) elseif @formula2 == 74 tempform2 = atanh( 1/#z ) elseif @formula2 == 75 tempform2 = acosh( 1/#z ) elseif @formula2 == 76 tempform2 = asinh( 1/#z ) elseif @formula2 == 77 tempform2 = @coeff2a * #z^@exponent2a + @coeff2b * #z^@exponent2b + @coeff2c * #z^@exponent2c elseif @formula2 == 78 zextra = sinh(#z) tempform2 = zextra * zextra elseif @formula2 == 79 zextra = cosh( #z ) tempform2 = zextra * zextra elseif @formula2 == 80 zextra = tanh(#z) tempform2 = zextra * zextra elseif @formula2 == 81 zextra = cotanh( #z ) tempform2 = zextra * zextra elseif @formula2 == 82 zextra = (1,0)/cosh(#z) tempform2 = zextra * zextra elseif @formula2 == 83 zextra = (1,0) / sinh( #z ) tempform2 = zextra * zextra elseif @formula2 == 84 tempform2 = sinh(1/#z) elseif @formula2 == 85 tempform2 = cosh(1/#z) elseif @formula2 == 86 tempform2 = tanh(1/#z) elseif @formula2 == 87 tempform2 = cotanh(1/#z) elseif @formula2 == 88 tempform2 = (1,0)/cosh(1/#z) elseif @formula2 == 89 tempform2 = (1,0)/sinh(1/#z) else ; @formula2 == 90 tempform2 = sin( #z ) * tan(#z) endif ; formula2-2 else ; 90 < @formula2 <= 120 if @formula2 == 91 tempform2 = sinh(#z) * tanh(#z) elseif @formula2 == 92 tempform2 = sinh(#z) * cosh(#z) elseif @formula2 == 93 temp2 = sinh(#z), zextra = cosh(#z) tempform2 = temp2*temp2*zextra*zextra elseif @formula2 == 94 temp2 = sin(#z), zextra = cos(#z) tempform2 = temp2*temp2*zextra*zextra elseif @formula2 == 95 zextra = 1/#z tempform2 = sin(zextra)*cos(zextra) elseif @formula2 == 96 zextra = sin( 1/#z ) tempform2 = zextra*zextra elseif @formula2 == 97 tempform2 = sin(#z) * cos(1/#z) elseif @formula2 == 98 tempform2 = sin(#z) * sin(1/#z) elseif @formula2 == 99 zextra = log(#z) tempform2 = zextra*zextra elseif @formula2 == 100 tempform2 = sin(#z) * sin(2*#z) elseif @formula2 == 101 tempform2 = exp(2*#z) elseif @formula2 == 102 tempform2 = exp(-2*#z) elseif @formula2 == 103 zextra = 1/#z tempform2 = sinh(zextra)*cosh(zextra) elseif @formula2 == 104 zextra = sinh( 1/#z ) tempform2 = zextra*zextra elseif @formula2 == 105 tempform2 = sinh(#z) * cosh(1/#z) elseif @formula2 == 106 tempform2 = sinh(#z) * sinh(1/#z) elseif @formula2 == 107 tempform2 = sin(#z) * sinh(#z) elseif @formula2 == 108 tempform2 = sin(#z) * cosh(#z) elseif @formula2 == 109 zextra = sin(#z), temp2 = sinh(#z) tempform2 = temp2*temp2*zextra*zextra elseif @formula2 == 110 tempform2 = sin(#z)*exp(#z) elseif @formula2 == 111 tempform2 = cos(#z)*exp(#z) elseif @formula2 == 112 tempform2 = sinh(#z)*exp(#z) elseif @formula2 == 113 tempform2 = cosh(#z)*exp(#z) elseif @formula2 == 114 tempform2 = sin(#z)*log(#z) elseif @formula2 == 115 tempform2 = cos(#z)*log(#z) elseif @formula2 == 116 tempform2 = sinh(#z)*log(#z) else ; @formula2 == 117 tempform2 = cosh(#z)*log(#z) endif ; formula2-2 endif ; formula2-1 if (@splicemode == 0) || (@splicemode == 4) zextra = real(tempform1) + flip(imag(tempform2)) elseif (@splicemode == 1) || (@splicemode == 5) zextra = imag(tempform1) + flip(real(tempform2)) elseif (@splicemode == 2) || (@splicemode == 6) zextra = real(tempform1) + flip(real(tempform2)) elseif (@splicemode == 3) || (@splicemode == 7) zextra = imag(tempform1) + flip(imag(tempform2)) endif ; @splicemode if @splicemode > 3 zextra = flip(zextra) endif ; @splicemode endif ; remainder if remainder == 0 #z = (1-@blend)*tempform1 + @blend*zextra else #z = tempform1 endif ; remainder if @zblendtrue z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @zblendtrue if @pmode != 1 #z = #z + jc endif ; pmode if @biomorph if @biomorphtype == "real + imag" bail = (abs(real(z)) < @biomorphtest) || (abs(imag(z)) < @biomorphtest) elseif @biomorphtype == "real + imag + cabs" bail = (abs(real(z)) < @biomorphtest) || (abs(imag(z)) < @biomorphtest) || (cabs(z) < sqr(@biomorphtest)) elseif @biomorphtype == "real" bail = abs(real(z)) < @biomorphtest elseif @biomorphtype == "imag" bail = abs(imag(z)) < @biomorphtest elseif @biomorphtype == "cabs" bail = cabs(z) < sqr(@biomorphtest) endif ; @biomorphtype else bail = |z| < @bail endif ; @biomorph bailout: bail default: title = "N-Splice Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param splicemode caption = "Splice Mode" enum = "real#1 + imag#2" "imag#1 + real#2" "real#1 + real#2" "imag#1 + imag#2" \ "imag#2 + real#1" "real#2 + imag#1" "real#2 + real#1" "imag#2 + imag#1" default = 0 hint = "This param determines which components of the Formula 1 and Formula 2 \ iterates are combined to form the final #z; the final formula is #z = \ [Formula 1 part] + flip( [Formula 2 part])." endparam param blend caption = "Splice Blend" default = 1.0 min = -2.0 max = 2.0 hint = "Range is 0.0 - 1.0. At 1.0, final #z is fully spliced; at 0.0, \ no splicing has occurred and #z is the solely determined by Formula 1" endparam param freq caption = "N, Splice Freq" default = 10 min = 2 hint = "This is the cycle length or blend frequency N. Formula 1 is executed \ on each iter, but Formula 2 is spliced in only every N iters" endparam param formula1 caption = "Formula 1" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the first formula to be iterated. \ For 'z^power', use parameter 'Power 1' to set power. For '3-term polynomial' set \ params 'Coeff 1a', 'Exponent 1a', 'Coeff 1b', 'Exponent 1b', 'Coeff 1c', \ 'Exponent 1c'." endparam param formula2 caption = "Formula 2" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the second formula to be iterated. \ For 'z^power', use parameter 'Power 2' to set power. For '3-term polynomial' set \ params 'Coeff 2a', 'Exponent 2a', 'Coeff 2b', 'Exponent 2b', 'Coeff 2c', \ 'Exponent 2c'." endparam param power1 caption = "Power 1" default = (5,0) hint = "This is the power used for the first formula series if parameter \ 'Formula 1' is set to 'z^power'" endparam param power2 caption = "Power 2" default = (6,0) hint = "This is the power used for the second formula series if parameter \ 'Formula 2' is set to 'z^power'" endparam param coeff1a caption = "Coeff 1A" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent1a caption = "Exponent 1A" default = (6,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff1b caption = "Coeff 1B" default = (-1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent1b caption = "Exponent 1B" default = (4,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff1c caption = "Coeff 1C" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent1c caption = "Exponent 1C" default = (2,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param coeff2a caption = "Coeff 2A" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponent2a caption = "Exponent 2A" default = (6,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeff2b caption = "Coeff 2B" default = (-1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponent2b caption = "Exponent 2B" default = (4,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeff2c caption = "Coeff 2C" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponent2c caption = "Exponent 2C" default = (2,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param zblendtrue caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @zblendtrue == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @zblendtrue == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @zblendtrue == TRUE endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" visible = !@biomorph endparam param biomorph caption = "Biomorph Bailout?" default = FALSE hint = "Enabling this setting changes the bailout condition to match \ Pickover's 'biomorph' definition. For coloring, consider using \ 'Biomorph' in the public folder 'jam2.ucl'." endparam param biomorphtest caption = "Biomorph Bailout Test" default = 10.0 hint = "The bailout value for the 'Biomorph' test." visible = @biomorph endparam param biomorphtype caption = "Biomorph Type" enum = "real" "imag" "real + imag" "real + imag + cabs" "cabs" default = 3 hint = "This determines the bailout condition for the Biomorph." visible = @biomorph endparam switch: type = "jam-N-splice" perturbation = #pixel bail = bail biomorph = biomorph biomorphtest = biomorphtest biomorphtype = biomorphtype splicemode = splicemode blend = blend freq = freq formula1 = formula1 formula2 = formula2 power1 = power1 power2 = power2 coeff1a = coeff1a exponent1a = exponent1a coeff1b = coeff1b exponent1b = exponent1b coeff1c = coeff1c exponent1c = exponent1c coeff2a = coeff2a exponent2a = exponent2a coeff2b = coeff2b exponent2b = exponent2b coeff2c = coeff2c exponent2c = exponent2c zblendtrue = zblendtrue weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-3wayBlend { ; jam 011217 ; Mandelbrot/Julia in which 3 independent formulas ; are executed, with the final #z resulting ; from a user-specified blending together of the three. ; Blending occurs only once every N iterations. ; The 3-term polynomial formula option is ; z = ( CoeffA * z^ExponentA ) + ( CoeffB * z^ExponentB ) + ( CoeffC * z^ExponentC ) + constant global: float weightsum = 1/(@weight1 + @weight2 + @weight3) init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = complex temp2 = (0,0) ; temp/spare scratch variable complex tempform1 = complex tempform2 = complex tempform3 = (0,0) int iteration = 0, int remainder = 0 ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: iteration = iteration + 1 remainder = iteration % @freq if @pmode != 0 #z = #z + jc endif ; pmode ; Execute 1st formula selection if @formula1 == 0 tempform1 = #z * #z elseif @formula1 == 1 tempform1 = #z * #z * #z elseif @formula1 == 2 zextra = #z * #z tempform1 = zextra * zextra elseif @formula1 == 3 tempform1 = #z ^ @power1 elseif @formula1 == 4 tempform1 = 1/#z elseif @formula1 == 5 tempform1 = sqrt(#z) elseif @formula1 == 6 tempform1 = 1 / ( #z * #z ) elseif @formula1 == 7 tempform1 = log(#z) elseif @formula1 == 8 tempform1 = exp( #z) elseif @formula1 == 9 tempform1 = #z^#z elseif @formula1 == 10 tempform1 = sin( #z ) elseif @formula1 == 11 tempform1 = cos( #z ) elseif @formula1 == 12 tempform1 = tan( #z ) elseif @formula1 == 13 tempform1 = asin( #z ) elseif @formula1 == 14 tempform1 = acos( #z ) elseif @formula1 == 15 tempform1 = atan( #z ) elseif @formula1 == 16 tempform1 = sinh( #z ) elseif @formula1 == 17 tempform1 = cosh( #z ) elseif @formula1 == 18 tempform1 = tanh( #z ) elseif @formula1 == 19 tempform1 = asinh( #z ) elseif @formula1 == 20 tempform1 = acosh( #z ) elseif @formula1 == 21 tempform1 = atanh( #z ) elseif @formula1 == 22 tempform1 = log( 1/#z ) elseif @formula1 == 23 tempform1 = log( log( #z )) elseif @formula1 == 24 tempform1 = exp( -#z ) elseif @formula1 == 25 tempform1 = exp( 1/#z ) elseif @formula1 == 26 tempform1 = #z^(-#z) elseif @formula1 == 27 zextra = sin( #z ) tempform1 = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) tempform1 = zextra * zextra elseif @formula1 == 29 zextra = tan( #z ) tempform1 = zextra * zextra elseif @formula1 == 30 tempform1 = cotan( #z ) elseif @formula1 == 31 tempform1 = 1/cos( #z ) elseif @formula1 == 32 tempform1 = 1/sin( #z ) elseif @formula1 == 33 zextra = cotan( #z ) tempform1 = zextra * zextra elseif @formula1 == 34 zextra = 1/cos( #z ) tempform1 = zextra * zextra elseif @formula1 == 35 zextra = 1/sin( #z ) tempform1 = zextra * zextra elseif @formula1 == 36 zextra = #z^(#z) tempform1 = #z^zextra elseif @formula1 == 37 zextra = #z^(#z) tempform1 = 1/( #z^zextra ) elseif @formula1 == 38 tempform1 = log(-#z) elseif @formula1 == 39 tempform1 = 1/log( #z ) elseif @formula1 == 40 tempform1 = #z * log( #z ) elseif @formula1 == 41 tempform1 = sin( #z ) / #z elseif @formula1 == 42 tempform1 = cos( #z ) / #z elseif @formula1 == 43 tempform1 = sin( #z ) * cos( #z ) elseif @formula1 == 44 tempform1 = sin( #z^2 ) elseif @formula1 == 45 tempform1 = exp( -1/#z ) elseif @formula1 == 46 tempform1 = #z * exp( #z ) elseif @formula1 == 47 tempform1 = #z * exp( -#z ) elseif @formula1 == 48 tempform1 = #z * exp( 1/#z ) elseif @formula1 == 49 tempform1 = #z * exp( -1/#z ) elseif @formula1 == 50 tempform1 = #z * #z * #z elseif @formula1 == 51 tempform1 = 1 / ( #z * #z * #z ) elseif @formula1 == 52 tempform1 = atan( 1 / #z ) elseif @formula1 == 53 tempform1 = acos( 1 / #z ) elseif @formula1 == 54 tempform1 = asin( 1 / #z ) elseif @formula1 == 55 tempform1 = tan( #z ) / #z elseif @formula1 == 56 tempform1 = cotan( #z ) / #z elseif @formula1 == 57 tempform1 = 1 / ( #z * cos( #z )) elseif @formula1 == 58 tempform1 = 1 / ( #z * sin( #z )) elseif @formula1 == 59 tempform1 = #z * sin( #z ) elseif @formula1 == 60 tempform1 = #z * cos( #z ) elseif @formula1 == 61 tempform1 = #z * tan( #z ) elseif @formula1 == 62 tempform1 = #z * cotan( #z ) elseif @formula1 == 63 tempform1 = #z/cos( #z ) elseif @formula1 == 64 tempform1 = #z/sin( #z ) elseif @formula1 == 65 tempform1 = sin( 1/#z ) elseif @formula1 == 66 tempform1 = cos( 1/#z ) elseif @formula1 == 67 tempform1 = tan( 1/#z ) elseif @formula1 == 68 tempform1 = cotan( 1/#z ) elseif @formula1 == 69 tempform1 = 1/cos( 1/#z ) elseif @formula1 == 70 tempform1 = 1/sin( 1/#z ) elseif @formula1 == 71 tempform1 = cotanh( #z ) elseif @formula1 == 72 tempform1 = 1/cosh( #z ) elseif @formula1 == 73 tempform1 = 1/sinh( #z ) elseif @formula1 == 74 tempform1 = atanh( 1/#z ) elseif @formula1 == 75 tempform1 = acosh( 1/#z ) elseif @formula1 == 76 tempform1 = asinh( 1/#z ) elseif @formula1 == 77 tempform1 = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c elseif @formula1 == 78 zextra = sinh(#z) tempform1 = zextra * zextra elseif @formula1 == 79 zextra = cosh( #z ) tempform1 = zextra * zextra elseif @formula1 == 80 zextra = tanh(#z) tempform1 = zextra * zextra elseif @formula1 == 81 zextra = cotanh( #z ) tempform1 = zextra * zextra elseif @formula1 == 82 zextra = (1,0)/cosh(#z) tempform1 = zextra * zextra elseif @formula1 == 83 zextra = (1,0) / sinh( #z ) tempform1 = zextra * zextra elseif @formula1 == 84 tempform1 = sinh(1/#z) elseif @formula1 == 85 tempform1 = cosh(1/#z) elseif @formula1 == 86 tempform1 = tanh(1/#z) elseif @formula1 == 87 tempform1 = cotanh(1/#z) elseif @formula1 == 88 tempform1 = (1,0)/cosh(1/#z) elseif @formula1 == 89 tempform1 = (1,0)/sinh(1/#z) elseif @formula1 == 90 tempform1 = sin( #z ) * tan(#z) elseif @formula1 == 91 tempform1 = sinh(#z) * tanh(#z) elseif @formula1 == 92 tempform1 = sinh(#z) * cosh(#z) elseif @formula1 == 93 temp2 = sinh(#z), zextra = cosh(#z) tempform1 = temp2*temp2*zextra*zextra elseif @formula1 == 94 temp2 = sin(#z), zextra = cos(#z) tempform1 = temp2*temp2*zextra*zextra elseif @formula1 == 95 zextra = 1/#z tempform1 = sin(zextra)*cos(zextra) elseif @formula1 == 96 zextra = sin( 1/#z ) tempform1 = zextra*zextra elseif @formula1 == 97 tempform1 = sin(#z) * cos(1/#z) elseif @formula1 == 98 tempform1 = sin(#z) * sin(1/#z) elseif @formula1 == 99 zextra = log(#z) tempform1 = zextra*zextra elseif @formula1 == 100 tempform1 = sin(#z) * sin(2*#z) elseif @formula1 == 101 tempform1 = exp(2*#z) elseif @formula1 == 102 tempform1 = exp(-2*#z) elseif @formula1 == 103 zextra = 1/#z tempform1 = sinh(zextra)*cosh(zextra) elseif @formula1 == 104 zextra = sinh( 1/#z ) tempform1 = zextra*zextra elseif @formula1 == 105 tempform1 = sinh(#z) * cosh(1/#z) elseif @formula1 == 106 tempform1 = sinh(#z) * sinh(1/#z) elseif @formula1 == 107 tempform1 = sin(#z) * sinh(#z) elseif @formula1 == 108 tempform1 = sin(#z) * cosh(#z) elseif @formula1 == 109 zextra = sin(#z), temp2 = sinh(#z) tempform1 = temp2*temp2*zextra*zextra elseif @formula1 == 110 tempform1 = sin(#z)*exp(#z) elseif @formula1 == 111 tempform1 = cos(#z)*exp(#z) elseif @formula1 == 112 tempform1 = sinh(#z)*exp(#z) elseif @formula1 == 113 tempform1 = cosh(#z)*exp(#z) elseif @formula1 == 114 tempform1 = sin(#z)*log(#z) elseif @formula1 == 115 tempform1 = cos(#z)*log(#z) elseif @formula1 == 116 tempform1 = sinh(#z)*log(#z) elseif @formula1 == 117 tempform1 = cosh(#z)*log(#z) elseif @formula1 == 118 tempform1 = exp(#z*#z) elseif @formula1 == 119 tempform1 = exp(-(#z*#z)) elseif @formula1 == 120 tempform1 = exp(1/(#z*#z)) elseif @formula1 == 121 tempform1 = exp(-1/(#z*#z)) else ; @formula1 == 122 tempform1 = #z endif ; formula1 if (remainder == 0) && (iteration > @skip) ; Execute 2nd formula selection if @formula2 == 0 tempform2 = #z * #z elseif @formula2 == 1 tempform2 = #z * #z * #z elseif @formula2 == 2 zextra = #z * #z tempform2 = zextra * zextra elseif @formula2 == 3 tempform2 = #z ^ @power1 elseif @formula2 == 4 tempform2 = 1/#z elseif @formula2 == 5 tempform2 = sqrt(#z) elseif @formula2 == 6 tempform2 = 1 / ( #z * #z ) elseif @formula2 == 7 tempform2 = log(#z) elseif @formula2 == 8 tempform2 = exp( #z) elseif @formula2 == 9 tempform2 = #z^#z elseif @formula2 == 10 tempform2 = sin( #z ) elseif @formula2 == 11 tempform2 = cos( #z ) elseif @formula2 == 12 tempform2 = tan( #z ) elseif @formula2 == 13 tempform2 = asin( #z ) elseif @formula2 == 14 tempform2 = acos( #z ) elseif @formula2 == 15 tempform2 = atan( #z ) elseif @formula2 == 16 tempform2 = sinh( #z ) elseif @formula2 == 17 tempform2 = cosh( #z ) elseif @formula2 == 18 tempform2 = tanh( #z ) elseif @formula2 == 19 tempform2 = asinh( #z ) elseif @formula2 == 20 tempform2 = acosh( #z ) elseif @formula2 == 21 tempform2 = atanh( #z ) elseif @formula2 == 22 tempform2 = log( 1/#z ) elseif @formula2 == 23 tempform2 = log( log( #z )) elseif @formula2 == 24 tempform2 = exp( -#z ) elseif @formula2 == 25 tempform2 = exp( 1/#z ) elseif @formula2 == 26 tempform2 = #z^(-#z) elseif @formula2 == 27 zextra = sin( #z ) tempform2 = zextra * zextra elseif @formula2 == 28 zextra = cos( #z ) tempform2 = zextra * zextra elseif @formula2 == 29 zextra = tan( #z ) tempform2 = zextra * zextra elseif @formula2 == 30 tempform2 = cotan( #z ) elseif @formula2 == 31 tempform2 = 1/cos( #z ) elseif @formula2 == 32 tempform2 = 1/sin( #z ) elseif @formula2 == 33 zextra = cotan( #z ) tempform2 = zextra * zextra elseif @formula2 == 34 zextra = 1/cos( #z ) tempform2 = zextra * zextra elseif @formula2 == 35 zextra = 1/sin( #z ) tempform2 = zextra * zextra elseif @formula2 == 36 zextra = #z^(#z) tempform2 = #z^zextra elseif @formula2 == 37 zextra = #z^(#z) tempform2 = 1/( #z^zextra ) elseif @formula2 == 38 tempform2 = log(-#z) elseif @formula2 == 39 tempform2 = 1/log( #z ) elseif @formula2 == 40 tempform2 = #z * log( #z ) elseif @formula2 == 41 tempform2 = sin( #z ) / #z elseif @formula2 == 42 tempform2 = cos( #z ) / #z elseif @formula2 == 43 tempform2 = sin( #z ) * cos( #z ) elseif @formula2 == 44 tempform2 = sin( #z^2 ) elseif @formula2 == 45 tempform2 = exp( -1/#z ) elseif @formula2 == 46 tempform2 = #z * exp( #z ) elseif @formula2 == 47 tempform2 = #z * exp( -#z ) elseif @formula2 == 48 tempform2 = #z * exp( 1/#z ) elseif @formula2 == 49 tempform2 = #z * exp( -1/#z ) elseif @formula2 == 50 tempform2 = #z * #z * #z elseif @formula2 == 51 tempform2 = 1 / ( #z * #z * #z ) elseif @formula2 == 52 tempform2 = atan( 1 / #z ) elseif @formula2 == 53 tempform2 = acos( 1 / #z ) elseif @formula2 == 54 tempform2 = asin( 1 / #z ) elseif @formula2 == 55 tempform2 = tan( #z ) / #z elseif @formula2 == 56 tempform2 = cotan( #z ) / #z elseif @formula2 == 57 tempform2 = 1 / ( #z * cos( #z )) elseif @formula2 == 58 tempform2 = 1 / ( #z * sin( #z )) elseif @formula2 == 59 tempform2 = #z * sin( #z ) elseif @formula2 == 60 tempform2 = #z * cos( #z ) elseif @formula2 == 61 tempform2 = #z * tan( #z ) elseif @formula2 == 62 tempform2 = #z * cotan( #z ) elseif @formula2 == 63 tempform2 = #z/cos( #z ) elseif @formula2 == 64 tempform2 = #z/sin( #z ) elseif @formula2 == 65 tempform2 = sin( 1/#z ) elseif @formula2 == 66 tempform2 = cos( 1/#z ) elseif @formula2 == 67 tempform2 = tan( 1/#z ) elseif @formula2 == 68 tempform2 = cotan( 1/#z ) elseif @formula2 == 69 tempform2 = 1/cos( 1/#z ) elseif @formula2 == 70 tempform2 = 1/sin( 1/#z ) elseif @formula2 == 71 tempform2 = cotanh( #z ) elseif @formula2 == 72 tempform2 = 1/cosh( #z ) elseif @formula2 == 73 tempform2 = 1/sinh( #z ) elseif @formula2 == 74 tempform2 = atanh( 1/#z ) elseif @formula2 == 75 tempform2 = acosh( 1/#z ) elseif @formula2 == 76 tempform2 = asinh( 1/#z ) elseif @formula2 == 77 if !@fixbug tempform2 = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c else tempform2 = @coeff2a * #z^@exponent2a + @coeff2b * #z^@exponent2b + @coeff2c * #z^@exponent2c endif elseif @formula2 == 78 zextra = sinh(#z) tempform2 = zextra * zextra elseif @formula2 == 79 zextra = cosh( #z ) tempform2 = zextra * zextra elseif @formula2 == 80 zextra = tanh(#z) tempform2 = zextra * zextra elseif @formula2 == 81 zextra = cotanh( #z ) tempform2 = zextra * zextra elseif @formula2 == 82 zextra = (1,0)/cosh(#z) tempform2 = zextra * zextra elseif @formula2 == 83 zextra = (1,0) / sinh( #z ) tempform2 = zextra * zextra elseif @formula2 == 84 tempform2 = sinh(1/#z) elseif @formula2 == 85 tempform2 = cosh(1/#z) elseif @formula2 == 86 tempform2 = tanh(1/#z) elseif @formula2 == 87 tempform2 = cotanh(1/#z) elseif @formula2 == 88 tempform2 = (1,0)/cosh(1/#z) elseif @formula2 == 89 tempform2 = (1,0)/sinh(1/#z) elseif @formula2 == 90 tempform2 = sin( #z ) * tan(#z) elseif @formula2 == 91 tempform2 = sinh(#z) * tanh(#z) elseif @formula2 == 92 tempform2 = sinh(#z) * cosh(#z) elseif @formula2 == 93 temp2 = sinh(#z), zextra = cosh(#z) tempform2 = temp2*temp2*zextra*zextra elseif @formula2 == 94 temp2 = sin(#z), zextra = cos(#z) tempform2 = temp2*temp2*zextra*zextra elseif @formula2 == 95 zextra = 1/#z tempform2 = sin(zextra)*cos(zextra) elseif @formula2 == 96 zextra = sin( 1/#z ) tempform2 = zextra*zextra elseif @formula2 == 97 tempform2 = sin(#z) * cos(1/#z) elseif @formula2 == 98 tempform2 = sin(#z) * sin(1/#z) elseif @formula2 == 99 zextra = log(#z) tempform2 = zextra*zextra elseif @formula2 == 100 tempform2 = sin(#z) * sin(2*#z) elseif @formula2 == 101 tempform2 = exp(2*#z) elseif @formula2 == 102 tempform2 = exp(-2*#z) elseif @formula2 == 103 zextra = 1/#z tempform2 = sinh(zextra)*cosh(zextra) elseif @formula2 == 104 zextra = sinh( 1/#z ) tempform2 = zextra*zextra elseif @formula2 == 105 tempform2 = sinh(#z) * cosh(1/#z) elseif @formula2 == 106 tempform2 = sinh(#z) * sinh(1/#z) elseif @formula2 == 107 tempform2 = sin(#z) * sinh(#z) elseif @formula2 == 108 tempform2 = sin(#z) * cosh(#z) elseif @formula2 == 109 zextra = sin(#z), temp2 = sinh(#z) tempform2 = temp2*temp2*zextra*zextra elseif @formula2 == 110 tempform2 = sin(#z)*exp(#z) elseif @formula2 == 111 tempform2 = cos(#z)*exp(#z) elseif @formula2 == 112 tempform2 = sinh(#z)*exp(#z) elseif @formula2 == 113 tempform2 = cosh(#z)*exp(#z) elseif @formula2 == 114 tempform2 = sin(#z)*log(#z) elseif @formula2 == 115 tempform2 = cos(#z)*log(#z) elseif @formula2 == 116 tempform2 = sinh(#z)*log(#z) elseif @formula2 == 117 tempform2 = cosh(#z)*log(#z) elseif @formula2 == 118 tempform2 = exp(#z*#z) elseif @formula2 == 119 tempform2 = exp(-(#z*#z)) elseif @formula2 == 120 tempform2 = exp(1/(#z*#z)) elseif @formula2 == 121 tempform2 = exp(-1/(#z*#z)) else ; @formula2 == 122 tempform2 = #z endif ; formula2 ; Execute 3rd formula selection if @formula3 == 0 tempform3 = #z * #z elseif @formula3 == 1 tempform3 = #z * #z * #z elseif @formula3 == 2 zextra = #z * #z tempform3 = zextra * zextra elseif @formula3 == 3 tempform3 = #z ^ @power1 elseif @formula3 == 4 tempform3 = 1/#z elseif @formula3 == 5 tempform3 = sqrt(#z) elseif @formula3 == 6 tempform3 = 1 / ( #z * #z ) elseif @formula3 == 7 tempform3 = log(#z) elseif @formula3 == 8 tempform3 = exp( #z) elseif @formula3 == 9 tempform3 = #z^#z elseif @formula3 == 10 tempform3 = sin( #z ) elseif @formula3 == 11 tempform3 = cos( #z ) elseif @formula3 == 12 tempform3 = tan( #z ) elseif @formula3 == 13 tempform3 = asin( #z ) elseif @formula3 == 14 tempform3 = acos( #z ) elseif @formula3 == 15 tempform3 = atan( #z ) elseif @formula3 == 16 tempform3 = sinh( #z ) elseif @formula3 == 17 tempform3 = cosh( #z ) elseif @formula3 == 18 tempform3 = tanh( #z ) elseif @formula3 == 19 tempform3 = asinh( #z ) elseif @formula3 == 20 tempform3 = acosh( #z ) elseif @formula3 == 21 tempform3 = atanh( #z ) elseif @formula3 == 22 tempform3 = log( 1/#z ) elseif @formula3 == 23 tempform3 = log( log( #z )) elseif @formula3 == 24 tempform3 = exp( -#z ) elseif @formula3 == 25 tempform3 = exp( 1/#z ) elseif @formula3 == 26 tempform3 = #z^(-#z) elseif @formula3 == 27 zextra = sin( #z ) tempform3 = zextra * zextra elseif @formula3 == 28 zextra = cos( #z ) tempform3 = zextra * zextra elseif @formula3 == 29 zextra = tan( #z ) tempform3 = zextra * zextra elseif @formula3 == 30 tempform3 = cotan( #z ) elseif @formula3 == 31 tempform3 = 1/cos( #z ) elseif @formula3 == 32 tempform3 = 1/sin( #z ) elseif @formula3 == 33 zextra = cotan( #z ) tempform3 = zextra * zextra elseif @formula3 == 34 zextra = 1/cos( #z ) tempform3 = zextra * zextra elseif @formula3 == 35 zextra = 1/sin( #z ) tempform3 = zextra * zextra elseif @formula3 == 36 zextra = #z^(#z) tempform3 = #z^zextra elseif @formula3 == 37 zextra = #z^(#z) tempform3 = 1/( #z^zextra ) elseif @formula3 == 38 tempform3 = log(-#z) elseif @formula3 == 39 tempform3 = 1/log( #z ) elseif @formula3 == 40 tempform3 = #z * log( #z ) elseif @formula3 == 41 tempform3 = sin( #z ) / #z elseif @formula3 == 42 tempform3 = cos( #z ) / #z elseif @formula3 == 43 tempform3 = sin( #z ) * cos( #z ) elseif @formula3 == 44 tempform3 = sin( #z^2 ) elseif @formula3 == 45 tempform3 = exp( -1/#z ) elseif @formula3 == 46 tempform3 = #z * exp( #z ) elseif @formula3 == 47 tempform3 = #z * exp( -#z ) elseif @formula3 == 48 tempform3 = #z * exp( 1/#z ) elseif @formula3 == 49 tempform3 = #z * exp( -1/#z ) elseif @formula3 == 50 tempform3 = #z * #z * #z elseif @formula3 == 51 tempform3 = 1 / ( #z * #z * #z ) elseif @formula3 == 52 tempform3 = atan( 1 / #z ) elseif @formula3 == 53 tempform3 = acos( 1 / #z ) elseif @formula3 == 54 tempform3 = asin( 1 / #z ) elseif @formula3 == 55 tempform3 = tan( #z ) / #z elseif @formula3 == 56 tempform3 = cotan( #z ) / #z elseif @formula3 == 57 tempform3 = 1 / ( #z * cos( #z )) elseif @formula3 == 58 tempform3 = 1 / ( #z * sin( #z )) elseif @formula3 == 59 tempform3 = #z * sin( #z ) elseif @formula3 == 60 tempform3 = #z * cos( #z ) elseif @formula3 == 61 tempform3 = #z * tan( #z ) elseif @formula3 == 62 tempform3 = #z * cotan( #z ) elseif @formula3 == 63 tempform3 = #z/cos( #z ) elseif @formula3 == 64 tempform3 = #z/sin( #z ) elseif @formula3 == 65 tempform3 = sin( 1/#z ) elseif @formula3 == 66 tempform3 = cos( 1/#z ) elseif @formula3 == 67 tempform3 = tan( 1/#z ) elseif @formula3 == 68 tempform3 = cotan( 1/#z ) elseif @formula3 == 69 tempform3 = 1/cos( 1/#z ) elseif @formula3 == 70 tempform3 = 1/sin( 1/#z ) elseif @formula3 == 71 tempform3 = cotanh( #z ) elseif @formula3 == 72 tempform3 = 1/cosh( #z ) elseif @formula3 == 73 tempform3 = 1/sinh( #z ) elseif @formula3 == 74 tempform3 = atanh( 1/#z ) elseif @formula3 == 75 tempform3 = acosh( 1/#z ) elseif @formula3 == 76 tempform3 = asinh( 1/#z ) elseif @formula3 == 77 if !@fixbug tempform3 = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c else tempform3 = @coeff3a * #z^@exponent3a + @coeff3b * #z^@exponent3b + @coeff3c * #z^@exponent3c endif elseif @formula3 == 78 zextra = sinh(#z) tempform3 = zextra * zextra elseif @formula3 == 79 zextra = cosh( #z ) tempform3 = zextra * zextra elseif @formula3 == 80 zextra = tanh(#z) tempform3 = zextra * zextra elseif @formula3 == 81 zextra = cotanh( #z ) tempform3 = zextra * zextra elseif @formula3 == 82 zextra = (1,0)/cosh(#z) tempform3 = zextra * zextra elseif @formula3 == 83 zextra = (1,0) / sinh( #z ) tempform3 = zextra * zextra elseif @formula3 == 84 tempform3 = sinh(1/#z) elseif @formula3 == 85 tempform3 = cosh(1/#z) elseif @formula3 == 86 tempform3 = tanh(1/#z) elseif @formula3 == 87 tempform3 = cotanh(1/#z) elseif @formula3 == 88 tempform3 = (1,0)/cosh(1/#z) elseif @formula3 == 89 tempform3 = (1,0)/sinh(1/#z) elseif @formula3 == 90 tempform3 = sin( #z ) * tan(#z) elseif @formula3 == 91 tempform3 = sinh(#z) * tanh(#z) elseif @formula3 == 92 tempform3 = sinh(#z) * cosh(#z) elseif @formula3 == 93 temp2 = sinh(#z), zextra = cosh(#z) tempform3 = temp2*temp2*zextra*zextra elseif @formula3 == 94 temp2 = sin(#z), zextra = cos(#z) tempform3 = temp2*temp2*zextra*zextra elseif @formula3 == 95 zextra = 1/#z tempform3 = sin(zextra)*cos(zextra) elseif @formula3 == 96 zextra = sin( 1/#z ) tempform3 = zextra*zextra elseif @formula3 == 97 tempform3 = sin(#z) * cos(1/#z) elseif @formula3 == 98 tempform3 = sin(#z) * sin(1/#z) elseif @formula3 == 99 zextra = log(#z) tempform3 = zextra*zextra elseif @formula3 == 100 tempform3 = sin(#z) * sin(2*#z) elseif @formula3 == 101 tempform3 = exp(2*#z) elseif @formula3 == 102 tempform3 = exp(-2*#z) elseif @formula3 == 103 zextra = 1/#z tempform3 = sinh(zextra)*cosh(zextra) elseif @formula3 == 104 zextra = sinh( 1/#z ) tempform3 = zextra*zextra elseif @formula3 == 105 tempform3 = sinh(#z) * cosh(1/#z) elseif @formula3 == 106 tempform3 = sinh(#z) * sinh(1/#z) elseif @formula3 == 107 tempform3 = sin(#z) * sinh(#z) elseif @formula3 == 108 tempform3 = sin(#z) * cosh(#z) elseif @formula3 == 109 zextra = sin(#z), temp2 = sinh(#z) tempform3 = temp2*temp2*zextra*zextra elseif @formula3 == 110 tempform3 = sin(#z)*exp(#z) elseif @formula3 == 111 tempform3 = cos(#z)*exp(#z) elseif @formula3 == 112 tempform3 = sinh(#z)*exp(#z) elseif @formula3 == 113 tempform3 = cosh(#z)*exp(#z) elseif @formula3 == 114 tempform3 = sin(#z)*log(#z) elseif @formula3 == 115 tempform3 = cos(#z)*log(#z) elseif @formula3 == 116 tempform3 = sinh(#z)*log(#z) elseif @formula3 == 117 tempform3 = cosh(#z)*log(#z) elseif @formula3 == 118 tempform3 = exp(#z*#z) elseif @formula3 == 119 tempform3 = exp(-(#z*#z)) elseif @formula3 == 120 tempform3 = exp(1/(#z*#z)) elseif @formula3 == 121 tempform3 = exp(-1/(#z*#z)) else ; @formula3 == 122 tempform3 = #z endif ; formula3 #z = weightsum*(@weight1*tempform1 + @weight2*tempform2 + @weight3*tempform3) else #z = tempform1 endif ; remainder if @pmode != 1 #z = #z + jc endif ; pmode if @biomorph if @biomorphtype == "real + imag" bail = (abs(real(z)) < @biomorphtest) || (abs(imag(z)) < @biomorphtest) elseif @biomorphtype == "real + imag + cabs" bail = (abs(real(z)) < @biomorphtest) || (abs(imag(z)) < @biomorphtest) || (cabs(z) < sqr(@biomorphtest)) elseif @biomorphtype == "real" bail = abs(real(z)) < @biomorphtest elseif @biomorphtype == "imag" bail = abs(imag(z)) < @biomorphtest elseif @biomorphtype == "cabs" bail = cabs(z) < sqr(@biomorphtest) endif ; @biomorphtype else bail = |z| < @bail endif ; @biomorph bailout: bail default: title = "3-Way Blend" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param freq caption = "N, Blend Freq" default = 2 min = 1 hint = "This is the cycle length or blend frequency N. Formula 1 is executed \ on each iter, but Formulas 2 & 3 are blended in every N iters" endparam param skip caption = "Iters to Skip" default = 0 hint = "This is the number of iterations to skip before starting to blend in \ Formulas 2 and 3. Skipping an initial iteration can be useful if one of \ the blended formulas, such as 1/z or exp(1/z), performs poorly using the \ default Mandelbrot starting perturbation of (0,0)" endparam param formula1 caption = "Formula 1" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" "z" default = 0 hint = "Sets the first formula to be iterated. \ For 'z^power', use parameter 'Power 1' to set power. For '3-term polynomial' set \ params 'Coeff 1a', 'Exponent 1a', 'Coeff 1b', 'Exponent 1b', 'Coeff 1c', \ 'Exponent 1c'." endparam param weight1 caption = "Formula1 Weight" default = 1.0 hint = "This is the proportion of Formula 1 that is \ blended into the others every N iterations" endparam param power1 caption = "Power 1" default = (5,0) hint = "This is the power used for the first formula series if parameter \ 'Formula 1' is set to 'z^power'" visible = @formula1 == "z^power" endparam param formula2 caption = "Formula 2" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" "z" default = 0 hint = "Sets the second formula to be iterated; used only every N iters. \ For 'z^power', use parameter 'Power 2' to set power. For '3-term polynomial' set \ params 'Coeff 2a', 'Exponent 2a', 'Coeff 2b', 'Exponent 2b', 'Coeff 2c', \ 'Exponent 2c'." endparam param weight2 caption = "Formula2 Weight" default = 1.0 hint = "This is the proportion of Formula 2 that is \ blended into the others every N iterations" endparam param power2 caption = "Power 2" default = (6,0) hint = "This is the power used for the second formula series if parameter \ 'Formula 2' is set to 'z^power'" visible = @formula2 == "z^power" endparam param formula3 caption = "Formula 3" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" "z" default = 0 hint = "Sets the third formula to be iterated; used only every N iters. \ For 'z^power', use parameter 'Power 3' to set power. For '3-term polynomial' set \ params 'Coeff 3a', 'Exponent 3a', 'Coeff 3b', 'Exponent 3b', 'Coeff 3c', \ 'Exponent 3c'." endparam param weight3 caption = "Formula3 Weight" default = 1.0 hint = "This is the proportion of Formula 3 that is \ blended into the others every N iterations" endparam param power3 caption = "Power 3" default = (7,0) hint = "This is the power used for the third formula series if parameter \ 'Formula 3' is set to 'z^power'" visible = @formula3 == "z^power" endparam param coeff1a caption = "Coeff 1A" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula1 == "3-term polynomial" endparam param exponent1a caption = "Exponent 1A" default = (6,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula1 == "3-term polynomial" endparam param coeff1b caption = "Coeff 1B" default = (-1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula1 == "3-term polynomial" endparam param exponent1b caption = "Exponent 1B" default = (4,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula1 == "3-term polynomial" endparam param coeff1c caption = "Coeff 1C" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula1 == "3-term polynomial" endparam param exponent1c caption = "Exponent 1C" default = (2,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula1 == "3-term polynomial" endparam param coeff2a caption = "Coeff 2A" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula2 == "3-term polynomial" endparam param exponent2a caption = "Exponent 2A" default = (6,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula2 == "3-term polynomial" endparam param coeff2b caption = "Coeff 2B" default = (-1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula2 == "3-term polynomial" endparam param exponent2b caption = "Exponent 2B" default = (4,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula2 == "3-term polynomial" endparam param coeff2c caption = "Coeff 2C" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula2 == "3-term polynomial" endparam param exponent2c caption = "Exponent 2C" default = (2,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula2 == "3-term polynomial" endparam param coeff3a caption = "Coeff 3A" default = (1,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula3 == "3-term polynomial" endparam param exponent3a caption = "Exponent 3A" default = (6,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula3 == "3-term polynomial" endparam param coeff3b caption = "Coeff 3B" default = (-1,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula3 == "3-term polynomial" endparam param exponent3b caption = "Exponent 3B" default = (4,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula3 == "3-term polynomial" endparam param coeff3c caption = "Coeff 3C" default = (1,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula3 == "3-term polynomial" endparam param exponent3c caption = "Exponent 3C" default = (2,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula3 == "3-term polynomial" endparam param fixbug caption = "Fix 3-Term Bug?" default = FALSE hint = "If either 'Formula 2' or 'Formula 3' is set to '3-term polynomial', \ then this option fixes an early bug. If not enabled, then both 'Formula 2' \ and 'Formula 3' use the 'Formula 1' coefficients and exponents, rather than \ the correct parameters" visible = ( (@formula2 == "3-term polynomial") || (@formula3 == "3-term polynomial") ) endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" visible = @pixelformula == "p^power" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" visible = !@biomorph endparam param biomorph caption = "Biomorph Bailout?" default = FALSE hint = "Enabling this setting changes the bailout condition to match \ Pickover's 'biomorph' definition. For coloring, consider using \ 'Biomorph' in the public folder 'jam2.ucl'." endparam param biomorphtest caption = "Biomorph Bailout Test" default = 10.0 hint = "The bailout value for the 'Biomorph' test." visible = @biomorph endparam param biomorphtype caption = "Biomorph Type" enum = "real" "imag" "real + imag" "real + imag + cabs" "cabs" default = 3 hint = "This determines the bailout condition for the Biomorph." visible = @biomorph endparam switch: type = "jam-3wayBlend-J" jconstant = #pixel bail = bail biomorph = biomorph biomorphtest = biomorphtest biomorphtype = biomorphtype freq = freq skip = skip formula1 = formula1 power1 = power1 weight1 = weight1 formula2 = formula2 power2 = power2 weight2 = weight2 formula3 = formula3 power3 = power3 weight3 = weight3 coeff1a = coeff1a exponent1a = exponent1a coeff1b = coeff1b exponent1b = exponent1b coeff1c = coeff1c exponent1c = exponent1c coeff2a = coeff2a exponent2a = exponent2a coeff2b = coeff2b exponent2b = exponent2b coeff2c = coeff2c exponent2c = exponent2c coeff3a = coeff3a exponent3a = exponent3a coeff3b = coeff3b exponent3b = exponent3b coeff3c = coeff3c exponent3c = exponent3c pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc fixbug = fixbug pmode = pmode } jam-3wayBlend-J { ; jam 011217 ; Mandelbrot/Julia in which 3 independent formulas ; are executed, with the final #z resulting ; from a user-specified blending together of the three. ; Blending occurs only once every N iterations. ; The 3-term polynomial formula option is ; z = ( CoeffA * z^ExponentA ) + ( CoeffB * z^ExponentB ) + ( CoeffC * z^ExponentC ) + constant global: float weightsum = 1/(@weight1 + @weight2 + @weight3) init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = complex temp2 = (0,0) ; temp/spare scratch variable complex tempform1 = complex tempform2 = complex tempform3 = (0,0) int iteration = 0, int remainder = 0 ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: iteration = iteration + 1 remainder = iteration % @freq if @pmode != 0 #z = #z + jc endif ; pmode ; Execute 1st formula selection if @formula1 == 0 tempform1 = #z * #z elseif @formula1 == 1 tempform1 = #z * #z * #z elseif @formula1 == 2 zextra = #z * #z tempform1 = zextra * zextra elseif @formula1 == 3 tempform1 = #z ^ @power1 elseif @formula1 == 4 tempform1 = 1/#z elseif @formula1 == 5 tempform1 = sqrt(#z) elseif @formula1 == 6 tempform1 = 1 / ( #z * #z ) elseif @formula1 == 7 tempform1 = log(#z) elseif @formula1 == 8 tempform1 = exp( #z) elseif @formula1 == 9 tempform1 = #z^#z elseif @formula1 == 10 tempform1 = sin( #z ) elseif @formula1 == 11 tempform1 = cos( #z ) elseif @formula1 == 12 tempform1 = tan( #z ) elseif @formula1 == 13 tempform1 = asin( #z ) elseif @formula1 == 14 tempform1 = acos( #z ) elseif @formula1 == 15 tempform1 = atan( #z ) elseif @formula1 == 16 tempform1 = sinh( #z ) elseif @formula1 == 17 tempform1 = cosh( #z ) elseif @formula1 == 18 tempform1 = tanh( #z ) elseif @formula1 == 19 tempform1 = asinh( #z ) elseif @formula1 == 20 tempform1 = acosh( #z ) elseif @formula1 == 21 tempform1 = atanh( #z ) elseif @formula1 == 22 tempform1 = log( 1/#z ) elseif @formula1 == 23 tempform1 = log( log( #z )) elseif @formula1 == 24 tempform1 = exp( -#z ) elseif @formula1 == 25 tempform1 = exp( 1/#z ) elseif @formula1 == 26 tempform1 = #z^(-#z) elseif @formula1 == 27 zextra = sin( #z ) tempform1 = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) tempform1 = zextra * zextra elseif @formula1 == 29 zextra = tan( #z ) tempform1 = zextra * zextra elseif @formula1 == 30 tempform1 = cotan( #z ) elseif @formula1 == 31 tempform1 = 1/cos( #z ) elseif @formula1 == 32 tempform1 = 1/sin( #z ) elseif @formula1 == 33 zextra = cotan( #z ) tempform1 = zextra * zextra elseif @formula1 == 34 zextra = 1/cos( #z ) tempform1 = zextra * zextra elseif @formula1 == 35 zextra = 1/sin( #z ) tempform1 = zextra * zextra elseif @formula1 == 36 zextra = #z^(#z) tempform1 = #z^zextra elseif @formula1 == 37 zextra = #z^(#z) tempform1 = 1/( #z^zextra ) elseif @formula1 == 38 tempform1 = log(-#z) elseif @formula1 == 39 tempform1 = 1/log( #z ) elseif @formula1 == 40 tempform1 = #z * log( #z ) elseif @formula1 == 41 tempform1 = sin( #z ) / #z elseif @formula1 == 42 tempform1 = cos( #z ) / #z elseif @formula1 == 43 tempform1 = sin( #z ) * cos( #z ) elseif @formula1 == 44 tempform1 = sin( #z^2 ) elseif @formula1 == 45 tempform1 = exp( -1/#z ) elseif @formula1 == 46 tempform1 = #z * exp( #z ) elseif @formula1 == 47 tempform1 = #z * exp( -#z ) elseif @formula1 == 48 tempform1 = #z * exp( 1/#z ) elseif @formula1 == 49 tempform1 = #z * exp( -1/#z ) elseif @formula1 == 50 tempform1 = #z * #z * #z elseif @formula1 == 51 tempform1 = 1 / ( #z * #z * #z ) elseif @formula1 == 52 tempform1 = atan( 1 / #z ) elseif @formula1 == 53 tempform1 = acos( 1 / #z ) elseif @formula1 == 54 tempform1 = asin( 1 / #z ) elseif @formula1 == 55 tempform1 = tan( #z ) / #z elseif @formula1 == 56 tempform1 = cotan( #z ) / #z elseif @formula1 == 57 tempform1 = 1 / ( #z * cos( #z )) elseif @formula1 == 58 tempform1 = 1 / ( #z * sin( #z )) elseif @formula1 == 59 tempform1 = #z * sin( #z ) elseif @formula1 == 60 tempform1 = #z * cos( #z ) elseif @formula1 == 61 tempform1 = #z * tan( #z ) elseif @formula1 == 62 tempform1 = #z * cotan( #z ) elseif @formula1 == 63 tempform1 = #z/cos( #z ) elseif @formula1 == 64 tempform1 = #z/sin( #z ) elseif @formula1 == 65 tempform1 = sin( 1/#z ) elseif @formula1 == 66 tempform1 = cos( 1/#z ) elseif @formula1 == 67 tempform1 = tan( 1/#z ) elseif @formula1 == 68 tempform1 = cotan( 1/#z ) elseif @formula1 == 69 tempform1 = 1/cos( 1/#z ) elseif @formula1 == 70 tempform1 = 1/sin( 1/#z ) elseif @formula1 == 71 tempform1 = cotanh( #z ) elseif @formula1 == 72 tempform1 = 1/cosh( #z ) elseif @formula1 == 73 tempform1 = 1/sinh( #z ) elseif @formula1 == 74 tempform1 = atanh( 1/#z ) elseif @formula1 == 75 tempform1 = acosh( 1/#z ) elseif @formula1 == 76 tempform1 = asinh( 1/#z ) elseif @formula1 == 77 tempform1 = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c elseif @formula1 == 78 zextra = sinh(#z) tempform1 = zextra * zextra elseif @formula1 == 79 zextra = cosh( #z ) tempform1 = zextra * zextra elseif @formula1 == 80 zextra = tanh(#z) tempform1 = zextra * zextra elseif @formula1 == 81 zextra = cotanh( #z ) tempform1 = zextra * zextra elseif @formula1 == 82 zextra = (1,0)/cosh(#z) tempform1 = zextra * zextra elseif @formula1 == 83 zextra = (1,0) / sinh( #z ) tempform1 = zextra * zextra elseif @formula1 == 84 tempform1 = sinh(1/#z) elseif @formula1 == 85 tempform1 = cosh(1/#z) elseif @formula1 == 86 tempform1 = tanh(1/#z) elseif @formula1 == 87 tempform1 = cotanh(1/#z) elseif @formula1 == 88 tempform1 = (1,0)/cosh(1/#z) elseif @formula1 == 89 tempform1 = (1,0)/sinh(1/#z) elseif @formula1 == 90 tempform1 = sin( #z ) * tan(#z) elseif @formula1 == 91 tempform1 = sinh(#z) * tanh(#z) elseif @formula1 == 92 tempform1 = sinh(#z) * cosh(#z) elseif @formula1 == 93 temp2 = sinh(#z), zextra = cosh(#z) tempform1 = temp2*temp2*zextra*zextra elseif @formula1 == 94 temp2 = sin(#z), zextra = cos(#z) tempform1 = temp2*temp2*zextra*zextra elseif @formula1 == 95 zextra = 1/#z tempform1 = sin(zextra)*cos(zextra) elseif @formula1 == 96 zextra = sin( 1/#z ) tempform1 = zextra*zextra elseif @formula1 == 97 tempform1 = sin(#z) * cos(1/#z) elseif @formula1 == 98 tempform1 = sin(#z) * sin(1/#z) elseif @formula1 == 99 zextra = log(#z) tempform1 = zextra*zextra elseif @formula1 == 100 tempform1 = sin(#z) * sin(2*#z) elseif @formula1 == 101 tempform1 = exp(2*#z) elseif @formula1 == 102 tempform1 = exp(-2*#z) elseif @formula1 == 103 zextra = 1/#z tempform1 = sinh(zextra)*cosh(zextra) elseif @formula1 == 104 zextra = sinh( 1/#z ) tempform1 = zextra*zextra elseif @formula1 == 105 tempform1 = sinh(#z) * cosh(1/#z) elseif @formula1 == 106 tempform1 = sinh(#z) * sinh(1/#z) elseif @formula1 == 107 tempform1 = sin(#z) * sinh(#z) elseif @formula1 == 108 tempform1 = sin(#z) * cosh(#z) elseif @formula1 == 109 zextra = sin(#z), temp2 = sinh(#z) tempform1 = temp2*temp2*zextra*zextra elseif @formula1 == 110 tempform1 = sin(#z)*exp(#z) elseif @formula1 == 111 tempform1 = cos(#z)*exp(#z) elseif @formula1 == 112 tempform1 = sinh(#z)*exp(#z) elseif @formula1 == 113 tempform1 = cosh(#z)*exp(#z) elseif @formula1 == 114 tempform1 = sin(#z)*log(#z) elseif @formula1 == 115 tempform1 = cos(#z)*log(#z) elseif @formula1 == 116 tempform1 = sinh(#z)*log(#z) elseif @formula1 == 117 tempform1 = cosh(#z)*log(#z) elseif @formula1 == 118 tempform1 = exp(#z*#z) elseif @formula1 == 119 tempform1 = exp(-(#z*#z)) elseif @formula1 == 120 tempform1 = exp(1/(#z*#z)) elseif @formula1 == 121 tempform1 = exp(-1/(#z*#z)) else ; @formula1 == 122 tempform1 = #z endif ; formula1 if (remainder == 0) && (iteration > @skip) ; Execute 2nd formula selection if @formula2 == 0 tempform2 = #z * #z elseif @formula2 == 1 tempform2 = #z * #z * #z elseif @formula2 == 2 zextra = #z * #z tempform2 = zextra * zextra elseif @formula2 == 3 tempform2 = #z ^ @power1 elseif @formula2 == 4 tempform2 = 1/#z elseif @formula2 == 5 tempform2 = sqrt(#z) elseif @formula2 == 6 tempform2 = 1 / ( #z * #z ) elseif @formula2 == 7 tempform2 = log(#z) elseif @formula2 == 8 tempform2 = exp( #z) elseif @formula2 == 9 tempform2 = #z^#z elseif @formula2 == 10 tempform2 = sin( #z ) elseif @formula2 == 11 tempform2 = cos( #z ) elseif @formula2 == 12 tempform2 = tan( #z ) elseif @formula2 == 13 tempform2 = asin( #z ) elseif @formula2 == 14 tempform2 = acos( #z ) elseif @formula2 == 15 tempform2 = atan( #z ) elseif @formula2 == 16 tempform2 = sinh( #z ) elseif @formula2 == 17 tempform2 = cosh( #z ) elseif @formula2 == 18 tempform2 = tanh( #z ) elseif @formula2 == 19 tempform2 = asinh( #z ) elseif @formula2 == 20 tempform2 = acosh( #z ) elseif @formula2 == 21 tempform2 = atanh( #z ) elseif @formula2 == 22 tempform2 = log( 1/#z ) elseif @formula2 == 23 tempform2 = log( log( #z )) elseif @formula2 == 24 tempform2 = exp( -#z ) elseif @formula2 == 25 tempform2 = exp( 1/#z ) elseif @formula2 == 26 tempform2 = #z^(-#z) elseif @formula2 == 27 zextra = sin( #z ) tempform2 = zextra * zextra elseif @formula2 == 28 zextra = cos( #z ) tempform2 = zextra * zextra elseif @formula2 == 29 zextra = tan( #z ) tempform2 = zextra * zextra elseif @formula2 == 30 tempform2 = cotan( #z ) elseif @formula2 == 31 tempform2 = 1/cos( #z ) elseif @formula2 == 32 tempform2 = 1/sin( #z ) elseif @formula2 == 33 zextra = cotan( #z ) tempform2 = zextra * zextra elseif @formula2 == 34 zextra = 1/cos( #z ) tempform2 = zextra * zextra elseif @formula2 == 35 zextra = 1/sin( #z ) tempform2 = zextra * zextra elseif @formula2 == 36 zextra = #z^(#z) tempform2 = #z^zextra elseif @formula2 == 37 zextra = #z^(#z) tempform2 = 1/( #z^zextra ) elseif @formula2 == 38 tempform2 = log(-#z) elseif @formula2 == 39 tempform2 = 1/log( #z ) elseif @formula2 == 40 tempform2 = #z * log( #z ) elseif @formula2 == 41 tempform2 = sin( #z ) / #z elseif @formula2 == 42 tempform2 = cos( #z ) / #z elseif @formula2 == 43 tempform2 = sin( #z ) * cos( #z ) elseif @formula2 == 44 tempform2 = sin( #z^2 ) elseif @formula2 == 45 tempform2 = exp( -1/#z ) elseif @formula2 == 46 tempform2 = #z * exp( #z ) elseif @formula2 == 47 tempform2 = #z * exp( -#z ) elseif @formula2 == 48 tempform2 = #z * exp( 1/#z ) elseif @formula2 == 49 tempform2 = #z * exp( -1/#z ) elseif @formula2 == 50 tempform2 = #z * #z * #z elseif @formula2 == 51 tempform2 = 1 / ( #z * #z * #z ) elseif @formula2 == 52 tempform2 = atan( 1 / #z ) elseif @formula2 == 53 tempform2 = acos( 1 / #z ) elseif @formula2 == 54 tempform2 = asin( 1 / #z ) elseif @formula2 == 55 tempform2 = tan( #z ) / #z elseif @formula2 == 56 tempform2 = cotan( #z ) / #z elseif @formula2 == 57 tempform2 = 1 / ( #z * cos( #z )) elseif @formula2 == 58 tempform2 = 1 / ( #z * sin( #z )) elseif @formula2 == 59 tempform2 = #z * sin( #z ) elseif @formula2 == 60 tempform2 = #z * cos( #z ) elseif @formula2 == 61 tempform2 = #z * tan( #z ) elseif @formula2 == 62 tempform2 = #z * cotan( #z ) elseif @formula2 == 63 tempform2 = #z/cos( #z ) elseif @formula2 == 64 tempform2 = #z/sin( #z ) elseif @formula2 == 65 tempform2 = sin( 1/#z ) elseif @formula2 == 66 tempform2 = cos( 1/#z ) elseif @formula2 == 67 tempform2 = tan( 1/#z ) elseif @formula2 == 68 tempform2 = cotan( 1/#z ) elseif @formula2 == 69 tempform2 = 1/cos( 1/#z ) elseif @formula2 == 70 tempform2 = 1/sin( 1/#z ) elseif @formula2 == 71 tempform2 = cotanh( #z ) elseif @formula2 == 72 tempform2 = 1/cosh( #z ) elseif @formula2 == 73 tempform2 = 1/sinh( #z ) elseif @formula2 == 74 tempform2 = atanh( 1/#z ) elseif @formula2 == 75 tempform2 = acosh( 1/#z ) elseif @formula2 == 76 tempform2 = asinh( 1/#z ) elseif @formula2 == 77 if !@fixbug tempform2 = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c else tempform2 = @coeff2a * #z^@exponent2a + @coeff2b * #z^@exponent2b + @coeff2c * #z^@exponent2c endif elseif @formula2 == 78 zextra = sinh(#z) tempform2 = zextra * zextra elseif @formula2 == 79 zextra = cosh( #z ) tempform2 = zextra * zextra elseif @formula2 == 80 zextra = tanh(#z) tempform2 = zextra * zextra elseif @formula2 == 81 zextra = cotanh( #z ) tempform2 = zextra * zextra elseif @formula2 == 82 zextra = (1,0)/cosh(#z) tempform2 = zextra * zextra elseif @formula2 == 83 zextra = (1,0) / sinh( #z ) tempform2 = zextra * zextra elseif @formula2 == 84 tempform2 = sinh(1/#z) elseif @formula2 == 85 tempform2 = cosh(1/#z) elseif @formula2 == 86 tempform2 = tanh(1/#z) elseif @formula2 == 87 tempform2 = cotanh(1/#z) elseif @formula2 == 88 tempform2 = (1,0)/cosh(1/#z) elseif @formula2 == 89 tempform2 = (1,0)/sinh(1/#z) elseif @formula2 == 90 tempform2 = sin( #z ) * tan(#z) elseif @formula2 == 91 tempform2 = sinh(#z) * tanh(#z) elseif @formula2 == 92 tempform2 = sinh(#z) * cosh(#z) elseif @formula2 == 93 temp2 = sinh(#z), zextra = cosh(#z) tempform2 = temp2*temp2*zextra*zextra elseif @formula2 == 94 temp2 = sin(#z), zextra = cos(#z) tempform2 = temp2*temp2*zextra*zextra elseif @formula2 == 95 zextra = 1/#z tempform2 = sin(zextra)*cos(zextra) elseif @formula2 == 96 zextra = sin( 1/#z ) tempform2 = zextra*zextra elseif @formula2 == 97 tempform2 = sin(#z) * cos(1/#z) elseif @formula2 == 98 tempform2 = sin(#z) * sin(1/#z) elseif @formula2 == 99 zextra = log(#z) tempform2 = zextra*zextra elseif @formula2 == 100 tempform2 = sin(#z) * sin(2*#z) elseif @formula2 == 101 tempform2 = exp(2*#z) elseif @formula2 == 102 tempform2 = exp(-2*#z) elseif @formula2 == 103 zextra = 1/#z tempform2 = sinh(zextra)*cosh(zextra) elseif @formula2 == 104 zextra = sinh( 1/#z ) tempform2 = zextra*zextra elseif @formula2 == 105 tempform2 = sinh(#z) * cosh(1/#z) elseif @formula2 == 106 tempform2 = sinh(#z) * sinh(1/#z) elseif @formula2 == 107 tempform2 = sin(#z) * sinh(#z) elseif @formula2 == 108 tempform2 = sin(#z) * cosh(#z) elseif @formula2 == 109 zextra = sin(#z), temp2 = sinh(#z) tempform2 = temp2*temp2*zextra*zextra elseif @formula2 == 110 tempform2 = sin(#z)*exp(#z) elseif @formula2 == 111 tempform2 = cos(#z)*exp(#z) elseif @formula2 == 112 tempform2 = sinh(#z)*exp(#z) elseif @formula2 == 113 tempform2 = cosh(#z)*exp(#z) elseif @formula2 == 114 tempform2 = sin(#z)*log(#z) elseif @formula2 == 115 tempform2 = cos(#z)*log(#z) elseif @formula2 == 116 tempform2 = sinh(#z)*log(#z) elseif @formula2 == 117 tempform2 = cosh(#z)*log(#z) elseif @formula2 == 118 tempform2 = exp(#z*#z) elseif @formula2 == 119 tempform2 = exp(-(#z*#z)) elseif @formula2 == 120 tempform2 = exp(1/(#z*#z)) elseif @formula2 == 121 tempform2 = exp(-1/(#z*#z)) else ; @formula2 == 122 tempform2 = #z endif ; formula2 ; Execute 3rd formula selection if @formula3 == 0 tempform3 = #z * #z elseif @formula3 == 1 tempform3 = #z * #z * #z elseif @formula3 == 2 zextra = #z * #z tempform3 = zextra * zextra elseif @formula3 == 3 tempform3 = #z ^ @power1 elseif @formula3 == 4 tempform3 = 1/#z elseif @formula3 == 5 tempform3 = sqrt(#z) elseif @formula3 == 6 tempform3 = 1 / ( #z * #z ) elseif @formula3 == 7 tempform3 = log(#z) elseif @formula3 == 8 tempform3 = exp( #z) elseif @formula3 == 9 tempform3 = #z^#z elseif @formula3 == 10 tempform3 = sin( #z ) elseif @formula3 == 11 tempform3 = cos( #z ) elseif @formula3 == 12 tempform3 = tan( #z ) elseif @formula3 == 13 tempform3 = asin( #z ) elseif @formula3 == 14 tempform3 = acos( #z ) elseif @formula3 == 15 tempform3 = atan( #z ) elseif @formula3 == 16 tempform3 = sinh( #z ) elseif @formula3 == 17 tempform3 = cosh( #z ) elseif @formula3 == 18 tempform3 = tanh( #z ) elseif @formula3 == 19 tempform3 = asinh( #z ) elseif @formula3 == 20 tempform3 = acosh( #z ) elseif @formula3 == 21 tempform3 = atanh( #z ) elseif @formula3 == 22 tempform3 = log( 1/#z ) elseif @formula3 == 23 tempform3 = log( log( #z )) elseif @formula3 == 24 tempform3 = exp( -#z ) elseif @formula3 == 25 tempform3 = exp( 1/#z ) elseif @formula3 == 26 tempform3 = #z^(-#z) elseif @formula3 == 27 zextra = sin( #z ) tempform3 = zextra * zextra elseif @formula3 == 28 zextra = cos( #z ) tempform3 = zextra * zextra elseif @formula3 == 29 zextra = tan( #z ) tempform3 = zextra * zextra elseif @formula3 == 30 tempform3 = cotan( #z ) elseif @formula3 == 31 tempform3 = 1/cos( #z ) elseif @formula3 == 32 tempform3 = 1/sin( #z ) elseif @formula3 == 33 zextra = cotan( #z ) tempform3 = zextra * zextra elseif @formula3 == 34 zextra = 1/cos( #z ) tempform3 = zextra * zextra elseif @formula3 == 35 zextra = 1/sin( #z ) tempform3 = zextra * zextra elseif @formula3 == 36 zextra = #z^(#z) tempform3 = #z^zextra elseif @formula3 == 37 zextra = #z^(#z) tempform3 = 1/( #z^zextra ) elseif @formula3 == 38 tempform3 = log(-#z) elseif @formula3 == 39 tempform3 = 1/log( #z ) elseif @formula3 == 40 tempform3 = #z * log( #z ) elseif @formula3 == 41 tempform3 = sin( #z ) / #z elseif @formula3 == 42 tempform3 = cos( #z ) / #z elseif @formula3 == 43 tempform3 = sin( #z ) * cos( #z ) elseif @formula3 == 44 tempform3 = sin( #z^2 ) elseif @formula3 == 45 tempform3 = exp( -1/#z ) elseif @formula3 == 46 tempform3 = #z * exp( #z ) elseif @formula3 == 47 tempform3 = #z * exp( -#z ) elseif @formula3 == 48 tempform3 = #z * exp( 1/#z ) elseif @formula3 == 49 tempform3 = #z * exp( -1/#z ) elseif @formula3 == 50 tempform3 = #z * #z * #z elseif @formula3 == 51 tempform3 = 1 / ( #z * #z * #z ) elseif @formula3 == 52 tempform3 = atan( 1 / #z ) elseif @formula3 == 53 tempform3 = acos( 1 / #z ) elseif @formula3 == 54 tempform3 = asin( 1 / #z ) elseif @formula3 == 55 tempform3 = tan( #z ) / #z elseif @formula3 == 56 tempform3 = cotan( #z ) / #z elseif @formula3 == 57 tempform3 = 1 / ( #z * cos( #z )) elseif @formula3 == 58 tempform3 = 1 / ( #z * sin( #z )) elseif @formula3 == 59 tempform3 = #z * sin( #z ) elseif @formula3 == 60 tempform3 = #z * cos( #z ) elseif @formula3 == 61 tempform3 = #z * tan( #z ) elseif @formula3 == 62 tempform3 = #z * cotan( #z ) elseif @formula3 == 63 tempform3 = #z/cos( #z ) elseif @formula3 == 64 tempform3 = #z/sin( #z ) elseif @formula3 == 65 tempform3 = sin( 1/#z ) elseif @formula3 == 66 tempform3 = cos( 1/#z ) elseif @formula3 == 67 tempform3 = tan( 1/#z ) elseif @formula3 == 68 tempform3 = cotan( 1/#z ) elseif @formula3 == 69 tempform3 = 1/cos( 1/#z ) elseif @formula3 == 70 tempform3 = 1/sin( 1/#z ) elseif @formula3 == 71 tempform3 = cotanh( #z ) elseif @formula3 == 72 tempform3 = 1/cosh( #z ) elseif @formula3 == 73 tempform3 = 1/sinh( #z ) elseif @formula3 == 74 tempform3 = atanh( 1/#z ) elseif @formula3 == 75 tempform3 = acosh( 1/#z ) elseif @formula3 == 76 tempform3 = asinh( 1/#z ) elseif @formula3 == 77 if !@fixbug tempform3 = @coeff1a * #z^@exponent1a + @coeff1b * #z^@exponent1b + @coeff1c * #z^@exponent1c else tempform3 = @coeff3a * #z^@exponent3a + @coeff3b * #z^@exponent3b + @coeff3c * #z^@exponent3c endif elseif @formula3 == 78 zextra = sinh(#z) tempform3 = zextra * zextra elseif @formula3 == 79 zextra = cosh( #z ) tempform3 = zextra * zextra elseif @formula3 == 80 zextra = tanh(#z) tempform3 = zextra * zextra elseif @formula3 == 81 zextra = cotanh( #z ) tempform3 = zextra * zextra elseif @formula3 == 82 zextra = (1,0)/cosh(#z) tempform3 = zextra * zextra elseif @formula3 == 83 zextra = (1,0) / sinh( #z ) tempform3 = zextra * zextra elseif @formula3 == 84 tempform3 = sinh(1/#z) elseif @formula3 == 85 tempform3 = cosh(1/#z) elseif @formula3 == 86 tempform3 = tanh(1/#z) elseif @formula3 == 87 tempform3 = cotanh(1/#z) elseif @formula3 == 88 tempform3 = (1,0)/cosh(1/#z) elseif @formula3 == 89 tempform3 = (1,0)/sinh(1/#z) elseif @formula3 == 90 tempform3 = sin( #z ) * tan(#z) elseif @formula3 == 91 tempform3 = sinh(#z) * tanh(#z) elseif @formula3 == 92 tempform3 = sinh(#z) * cosh(#z) elseif @formula3 == 93 temp2 = sinh(#z), zextra = cosh(#z) tempform3 = temp2*temp2*zextra*zextra elseif @formula3 == 94 temp2 = sin(#z), zextra = cos(#z) tempform3 = temp2*temp2*zextra*zextra elseif @formula3 == 95 zextra = 1/#z tempform3 = sin(zextra)*cos(zextra) elseif @formula3 == 96 zextra = sin( 1/#z ) tempform3 = zextra*zextra elseif @formula3 == 97 tempform3 = sin(#z) * cos(1/#z) elseif @formula3 == 98 tempform3 = sin(#z) * sin(1/#z) elseif @formula3 == 99 zextra = log(#z) tempform3 = zextra*zextra elseif @formula3 == 100 tempform3 = sin(#z) * sin(2*#z) elseif @formula3 == 101 tempform3 = exp(2*#z) elseif @formula3 == 102 tempform3 = exp(-2*#z) elseif @formula3 == 103 zextra = 1/#z tempform3 = sinh(zextra)*cosh(zextra) elseif @formula3 == 104 zextra = sinh( 1/#z ) tempform3 = zextra*zextra elseif @formula3 == 105 tempform3 = sinh(#z) * cosh(1/#z) elseif @formula3 == 106 tempform3 = sinh(#z) * sinh(1/#z) elseif @formula3 == 107 tempform3 = sin(#z) * sinh(#z) elseif @formula3 == 108 tempform3 = sin(#z) * cosh(#z) elseif @formula3 == 109 zextra = sin(#z), temp2 = sinh(#z) tempform3 = temp2*temp2*zextra*zextra elseif @formula3 == 110 tempform3 = sin(#z)*exp(#z) elseif @formula3 == 111 tempform3 = cos(#z)*exp(#z) elseif @formula3 == 112 tempform3 = sinh(#z)*exp(#z) elseif @formula3 == 113 tempform3 = cosh(#z)*exp(#z) elseif @formula3 == 114 tempform3 = sin(#z)*log(#z) elseif @formula3 == 115 tempform3 = cos(#z)*log(#z) elseif @formula3 == 116 tempform3 = sinh(#z)*log(#z) elseif @formula3 == 117 tempform3 = cosh(#z)*log(#z) elseif @formula3 == 118 tempform3 = exp(#z*#z) elseif @formula3 == 119 tempform3 = exp(-(#z*#z)) elseif @formula3 == 120 tempform3 = exp(1/(#z*#z)) elseif @formula3 == 121 tempform3 = exp(-1/(#z*#z)) else ; @formula3 == 122 tempform3 = #z endif ; formula3 #z = weightsum*(@weight1*tempform1 + @weight2*tempform2 + @weight3*tempform3) else #z = tempform1 endif ; remainder if @pmode != 1 #z = #z + jc endif ; pmode if @biomorph if @biomorphtype == "real + imag" bail = (abs(real(z)) < @biomorphtest) || (abs(imag(z)) < @biomorphtest) elseif @biomorphtype == "real + imag + cabs" bail = (abs(real(z)) < @biomorphtest) || (abs(imag(z)) < @biomorphtest) || (cabs(z) < sqr(@biomorphtest)) elseif @biomorphtype == "real" bail = abs(real(z)) < @biomorphtest elseif @biomorphtype == "imag" bail = abs(imag(z)) < @biomorphtest elseif @biomorphtype == "cabs" bail = cabs(z) < sqr(@biomorphtest) endif ; @biomorphtype else bail = |z| < @bail endif ; @biomorph bailout: bail default: title = "3-Way Blend Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param freq caption = "N, Blend Freq" default = 10 min = 1 hint = "This is the cycle length or blend frequency N. Formula 1 is executed \ on each iter, but Formulas 2 & 3 are blended in every N iters" endparam param skip caption = "Iters to Skip" default = 0 hint = "This is the number of iterations to skip before starting to blend in \ Formulas 2 and 3. Skipping an initial iteration can be useful if one of \ the blended formulas, such as 1/z or exp(1/z), performs poorly using the \ default Mandelbrot starting perturbation of (0,0)" endparam param formula1 caption = "Formula 1" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" "z" default = 0 hint = "Sets the first formula to be iterated. \ For 'z^power', use parameter 'Power 1' to set power. For '3-term polynomial' set \ params 'Coeff 1a', 'Exponent 1a', 'Coeff 1b', 'Exponent 1b', 'Coeff 1c', \ 'Exponent 1c'." endparam param weight1 caption = "Formula1 Weight" default = 1.0 hint = "This is the proportion of Formula 1 that is \ blended into the others every N iterations" endparam param power1 caption = "Power 1" default = (5,0) hint = "This is the power used for the first formula series if parameter \ 'Formula 1' is set to 'z^power'" visible = @formula1 == "z^power" endparam param formula2 caption = "Formula 2" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" "z" default = 0 hint = "Sets the second formula to be iterated; used only every N iters. \ For 'z^power', use parameter 'Power 2' to set power. For '3-term polynomial' set \ params 'Coeff 2a', 'Exponent 2a', 'Coeff 2b', 'Exponent 2b', 'Coeff 2c', \ 'Exponent 2c'." endparam param weight2 caption = "Formula2 Weight" default = 1.0 hint = "This is the proportion of Formula 2 that is \ blended into the others every N iterations" endparam param power2 caption = "Power 2" default = (6,0) hint = "This is the power used for the second formula series if parameter \ 'Formula 2' is set to 'z^power'" visible = @formula2 == "z^power" endparam param formula3 caption = "Formula 3" enum = "z^2" "z^3" "z^4" "z^power" "1/z" "sqrt(z)" "1/z^2" "log(z)" "e^z" "z^z" \ "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "zlog(z)" "sin(z)/z" "cos(z)/z" "sin(z)*cos(z)" "sin(z^2)" \ "e^(-1/z)" "ze^z" "ze^-z" "ze^(1/z)" "ze^(-1/z)" "z^3" "1/z^3" \ "acot(z)" "asec(z)" "acsc(z)" "tan(z)/z" "cot(z)/z" "sec(z)/z" \ "csc(z)/z" "zsin(z)" "zcos(z)" "ztan(z)" "zcot(z)" "zsec(z)" "zcsc(z)" \ "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" "csc(1/z)" \ "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" "acosech(z)" \ "3-term polynomial" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" "z" default = 0 hint = "Sets the third formula to be iterated; used only every N iters. \ For 'z^power', use parameter 'Power 3' to set power. For '3-term polynomial' set \ params 'Coeff 3a', 'Exponent 3a', 'Coeff 3b', 'Exponent 3b', 'Coeff 3c', \ 'Exponent 3c'." endparam param weight3 caption = "Formula3 Weight" default = 1.0 hint = "This is the proportion of Formula 3 that is \ blended into the others every N iterations" endparam param power3 caption = "Power 3" default = (7,0) hint = "This is the power used for the third formula series if parameter \ 'Formula 3' is set to 'z^power'" visible = @formula3 == "z^power" endparam param coeff1a caption = "Coeff 1A" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula1 == "3-term polynomial" endparam param exponent1a caption = "Exponent 1A" default = (6,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula1 == "3-term polynomial" endparam param coeff1b caption = "Coeff 1B" default = (-1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula1 == "3-term polynomial" endparam param exponent1b caption = "Exponent 1B" default = (4,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula1 == "3-term polynomial" endparam param coeff1c caption = "Coeff 1C" default = (1,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula1 == "3-term polynomial" endparam param exponent1c caption = "Exponent 1C" default = (2,0) hint = "If 'Formula 1' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula1 == "3-term polynomial" endparam param coeff2a caption = "Coeff 2A" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula2 == "3-term polynomial" endparam param exponent2a caption = "Exponent 2A" default = (6,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula2 == "3-term polynomial" endparam param coeff2b caption = "Coeff 2B" default = (-1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula2 == "3-term polynomial" endparam param exponent2b caption = "Exponent 2B" default = (4,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula2 == "3-term polynomial" endparam param coeff2c caption = "Coeff 2C" default = (1,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula2 == "3-term polynomial" endparam param exponent2c caption = "Exponent 2C" default = (2,0) hint = "If 'Formula 2' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula2 == "3-term polynomial" endparam param coeff3a caption = "Coeff 3A" default = (1,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @formula3 == "3-term polynomial" endparam param exponent3a caption = "Exponent 3A" default = (6,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @formula3 == "3-term polynomial" endparam param coeff3b caption = "Coeff 3B" default = (-1,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @formula3 == "3-term polynomial" endparam param exponent3b caption = "Exponent 3B" default = (4,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @formula3 == "3-term polynomial" endparam param coeff3c caption = "Coeff 3C" default = (1,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @formula3 == "3-term polynomial" endparam param exponent3c caption = "Exponent 3C" default = (2,0) hint = "If 'Formula 3' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @formula3 == "3-term polynomial" endparam param fixbug caption = "Fix 3-Term Bug?" default = FALSE hint = "If either 'Formula 2' or 'Formula 3' is set to '3-term polynomial', \ then this option fixes an early bug. If not enabled, then both 'Formula 2' \ and 'Formula 3' use the 'Formula 1' coefficients and exponents, rather than \ the correct parameters" visible = ( (@formula2 == "3-term polynomial") || (@formula3 == "3-term polynomial") ) endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" visible = @pixelformula == "p^power" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam param biomorph caption = "Biomorph Bailout?" default = FALSE hint = "Enabling this setting changes the bailout condition to match \ Pickover's 'biomorph' definition. For coloring, consider using \ 'Biomorph' in the public folder 'jam2.ucl'." endparam param biomorphtest caption = "Biomorph Bailout Test" default = 10.0 hint = "The bailout value for the 'Biomorph' test." visible = @biomorph endparam param biomorphtype caption = "Biomorph Type" enum = "real" "imag" "real + imag" "real + imag + cabs" "cabs" default = 3 hint = "This determines the bailout condition for the Biomorph." visible = @biomorph endparam switch: type = "jam-3wayBlend" perturbation = #pixel bail = bail biomorph = biomorph biomorphtest = biomorphtest biomorphtype = biomorphtype freq = freq skip = skip formula1 = formula1 power1 = power1 weight1 = weight1 formula2 = formula2 power2 = power2 weight2 = weight2 formula3 = formula3 power3 = power3 weight3 = weight3 coeff1a = coeff1a exponent1a = exponent1a coeff1b = coeff1b exponent1b = exponent1b coeff1c = coeff1c exponent1c = exponent1c coeff2a = coeff2a exponent2a = exponent2a coeff2b = coeff2b exponent2b = exponent2b coeff2c = coeff2c exponent2c = exponent2c coeff3a = coeff3a exponent3a = exponent3a coeff3b = coeff3b exponent3b = exponent3b coeff3c = coeff3c exponent3c = exponent3c pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc fixbug = fixbug pmode = pmode } jam-ContinuedZxSine { ; jam 020109 ; Mandelbrot/Julia in which the sine formula can be 'continued' ; through N iterations. The formula executed is ; z = z*sin( z*sin( z*sin( ... z*sin( z+c ) ... ) +c ) +c ) +c ) +c, ; where the z*sin is exectued N times. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = (0,0) ; temp/spare scratch variable int count = 0 ; loop counter ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: if @pmode != 0 z = z + jc endif ; pmode count = 1 zextra = z repeat z = zextra * sin( z + jc ) count = count + 1 until count > @limit if @pmode != 1 z = z + jc endif ; pmode bailout: |z| < @bail default: title = "Continued z*sin(z)" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param limit caption = "Formula Iterations" default = 2 hint = "This is the number of times the sine function will be continued" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-ContinuedZxSine-J" limit = limit jconstant = #pixel bail = bail pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-ContinuedZxSine-J { ; jam 020109 ; Mandelbrot/Julia in which the sine formula can be 'continued' ; through N iterations. The formula executed is ; z = z*sin( z*sin( z*sin( ... z*sin( z+c ) ... ) +c ) +c ) +c ) +c, ; where the z*sin is exectued N times. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = (0,0) ; temp/spare scratch variable int count = 0 ; loop counter ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: if @pmode != 0 z = z + jc endif ; pmode count = 1 zextra = z repeat z = zextra * sin( z + jc ) count = count + 1 until count > @limit if @pmode != 1 z = z + jc endif ; pmode bailout: |z| < @bail default: title = "Continued z*sin(z) Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param limit caption = "Formula Iterations" default = 2 hint = "This is the number of times the sine function will be continued" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-ContinuedZxSine" limit = limit perturbation = #pixel bail = bail pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-ContinuedZxLog { ; jam 020109 ; Mandelbrot/Julia in which the log formula can be 'continued' ; through N iterations. The formula executed is ; z = z*log( z*log( z*log( ... z*log( z+c ) ... ) +c ) +c ) +c ) +c, ; where the z*log is exectued N times. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = (0,0) ; temp/spare scratch variable int count = 0 ; loop counter ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: if @pmode != 0 z = z + jc endif ; pmode count = 1 zextra = z repeat z = zextra * log( z + jc ) count = count + 1 until count > @limit if @pmode != 1 z = z + jc endif ; pmode bailout: |z| < @bail default: title = "Continued z*log(z)" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param limit caption = "Formula Iterations" default = 2 hint = "This is the number of times the log function will be continued" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-ContinuedZxLog-J" limit = limit jconstant = #pixel bail = bail pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-ContinuedZxLog-J { ; jam 020109 ; Mandelbrot/Julia in which the log formula can be 'continued' ; through N iterations. The formula executed is ; z = z*log( z*log( z*log( ... z*log( z+c ) ... ) +c ) +c ) +c ) +c, ; where the z*log is exectued N times. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = (0,0) ; temp/spare scratch variable int count = 0 ; loop counter ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: if @pmode != 0 z = z + jc endif ; pmode count = 1 zextra = z repeat z = zextra * log( z + jc ) count = count + 1 until count > @limit if @pmode != 1 z = z + jc endif ; pmode bailout: |z| < @bail default: title = "Continued z*log(z) Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param limit caption = "Formula Iterations" default = 2 hint = "This is the number of times the log function will be continued" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-ContinuedZxLog" limit = limit perturbation = #pixel bail = bail pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-ContinuedZxExp { ; jam 020109 ; Mandelbrot/Julia in which the exponential function can be 'continued' ; through N iterations. The formula executed is ; z = z*exp( z*exp( z*exp( ... z*exp( z+c ) ... ) +c ) +c ) +c ) +c, ; where the z*exp is exectued N times. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zblend = (0,0) complex zextra = (0,0) ; temp/spare scratch variable int count = 0 ; loop counter ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: if @pmode != 0 z = z + jc endif ; pmode zblend = z count = 1 zextra = z repeat z = zextra * exp( z + jc ) count = count + 1 until count > @limit if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend if @pmode != 1 z = z + jc endif ; pmode bailout: |z| < @bail default: title = "Continued z*e^z" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param limit caption = "Formula Iterations" default = 2 hint = "This is the number of times the exp function will be continued" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-ContinuedZxExp-J" limit = limit blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower jconstant = #pixel bail = bail pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-ContinuedZxExp-J { ; jam 020109 ; Mandelbrot/Julia in which the exponential function can be 'continued' ; through N iterations. The formula executed is ; z = z*exp( z*exp( z*exp( ... z*exp( z+c ) ... ) +c ) +c ) +c ) +c, ; where the z*exp is exectued N times. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = (0,0) ; temp/spare scratch variable int count = 0 ; loop counter complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: if @pmode != 0 z = z + jc endif ; pmode zblend = z count = 1 zextra = z repeat z = zextra * exp( z + jc ) count = count + 1 until count > @limit if @blend z = @weightzfn * z + @weightzpwr * zblend^@zpower endif ; @blend if @pmode != 1 z = z + jc endif ; pmode bailout: |z| < @bail default: title = "Continued z*e^z Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param limit caption = "Formula Iterations" default = 2 hint = "This is the number of times the exp function will be continued" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-ContinuedZxExp" limit = limit perturbation = #pixel bail = bail blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-ContinuedSin { ; jam 020109 ; Mandelbrot/Julia in which the sine function can be 'continued' ; through N iterations. The formula executed is ; z = sin( sin( sin( ... sin( z+c ) ... ) +c ) +c ) +c ) +c, ; where the sin() is exectued N times. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = (0,0) ; temp/spare scratch variable int count = 0 ; loop counter ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: if @pmode != 0 z = z + jc endif ; pmode count = 1 repeat z = sin( z + jc ) count = count + 1 until count > @limit if @pmode != 1 z = z + jc endif ; pmode bailout: |z| < @bail default: title = "Continued sin(z)" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param limit caption = "Formula Iterations" default = 2 hint = "This is the number of times the sin function will be continued" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-ContinuedSin-J" limit = limit jconstant = #pixel bail = bail pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-ContinuedSin-J { ; jam 020109 ; Mandelbrot/Julia in which the sine function can be 'continued' ; through N iterations. The formula executed is ; z = sin( sin( sin( ... sin( z+c ) ... ) +c ) +c ) +c ) +c, ; where the sin() is exectued N times. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = (0,0) ; temp/spare scratch variable int count = 0 ; loop counter ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: if @pmode != 0 z = z + jc endif ; pmode count = 1 repeat z = sin( z + jc ) count = count + 1 until count > @limit if @pmode != 1 z = z + jc endif ; pmode bailout: |z| < @bail default: title = "Continued sin(z) Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param limit caption = "Formula Iterations" default = 2 hint = "This is the number of times the sin function will be continued" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param pmode caption = "Pixel Mode" default = 0 enum = "Post-add" "Pre-add" "Both" hint = "'Post-add' -- formula is executed, then pixel/constant is added to result; \ 'Pre-add' -- pixel is added to z, then formula executed; 'Both' -- pixel added, \ formula executed, then pixel added again to result" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-ContinuedSin" limit = limit perturbation = #pixel bail = bail pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc pmode = pmode } jam-binomial1a+P { ; jam 011214 ; General binomial Mandelbrot/Julia. Formula executed is ; z(n+1) = c2*z(n)^power2 + c1*z(n)^power1 + c0*g(pixel), ; where g is from my standard function library. ; For type Mandelbrot, g operates on #pixel; ; for type Julia, g operates on the seed constant. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = (0,0) ; temp/spare scratch variable complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: zblend = z z = @coeff2 * z^@power2 + @coeff1 * z^@power1 + @coeffp * jc if @blend z = @weightzfn * z + @weightzpwr * (zblend^@zpower + jc) endif ; @blend bailout: |z| < @bail default: title = "Binomial_1 +p" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param power2 caption = "Power 2" default = (3,0) hint = "This is the exponent used for the second term of the binomial" endparam param coeff2 caption = "Coeff 2" default = (1,0) hint = "This is the coefficient of the second term in the binomial" endparam param power1 caption = "Power 1" default = (2,0) hint = "This is the exponent used for the first term of the binomial" endparam param coeff1 caption = "Coeff 1" default = (-1,0) hint = "This is the coefficient of the first term in the binomial" endparam param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param coeffp caption = "Pixel Coefficient" default = 1.0 hint = "This is multiplied by the initialized pixel (Mand)/ seed \ constant (Julia) term" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-binomial1a+P-J" jconstant = #pixel bail = bail power2 = power2 coeff2 = coeff2 power1 = power1 coeff1 = coeff1 blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower coeffp = coeffp pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc } jam-binomial1a+P-J { ; jam 011214 ; General binomial Mandelbrot/Julia. Formula executed is ; z(n+1) = c2*z(n)^power2 + c1*z(n)^power1 + c0*g(pixel), ; where g is from my standard function library. ; For type Mandelbrot, g operates on #pixel; ; for type Julia, g operates on the seed constant. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = (0,0) ; temp/spare scratch variable complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: zblend = z z = @coeff2 * z^@power2 + @coeff1 * z^@power1 + @coeffp * jc if @blend z = @weightzfn * z + @weightzpwr * (zblend^@zpower + jc) endif ; @blend bailout: |z| < @bail default: title = "Binomial_1 +p Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param power2 caption = "Power 2" default = (3,0) hint = "This is the exponent used for the second term of the binomial" endparam param coeff2 caption = "Coeff 2" default = (1,0) hint = "This is the coefficient of the second term in the binomial" endparam param power1 caption = "Power 1" default = (2,0) hint = "This is the exponent used for the first term of the binomial" endparam param coeff1 caption = "Coeff 1" default = (-1,0) hint = "This is the coefficient of the first term in the binomial" endparam param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param coeffp caption = "Pixel Coefficient" default = 1.0 hint = "This is multiplied by the initialized pixel (Mand)/ seed \ constant (Julia) term" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-binomial1a+P" perturbation = #pixel bail = bail power2 = power2 coeff2 = coeff2 power1 = power1 coeff1 = coeff1 blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower coeffp = coeffp pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc } jam-binomial1b*Fn+P { ; jam 011214 ; General binomial Mandelbrot/Julia. Formula executed is ; z(n+1) = c2*f2(z)*z(n)^power2 + c1*f1(z)*z(n)^power1 + c0*g(pixel), ; where f1, f2, and g are from my standard function library. ; For type Mandelbrot, g operates on #pixel; ; for type Julia, g operates on the seed constant. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = (0,0) ; temp/spare scratch variable complex temp2 = complex temp1 = (0,0) complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: zblend = z ; Execute formula2 option if @formula2 == 0 temp2 = (1,0) elseif @formula2 == 1 temp2 = log(z) elseif @formula2 == 2 temp2 = exp(#z) elseif @formula2 == 3 temp2 = #z ^ #z elseif @formula2 == 4 temp2 = sin(#z) elseif @formula2 == 5 temp2 = cos(#z) elseif @formula2 == 6 temp2 = tan( #z ) elseif @formula2 == 7 temp2 = asin(#z) elseif @formula2 == 8 temp2 = acos( #z) elseif @formula2 == 9 temp2 = atan(#z) elseif @formula2 == 10 temp2 = sinh( #z ) elseif @formula2 == 11 temp2 = cosh( #z ) elseif @formula2 == 12 temp2 = tanh( #z ) elseif @formula2 == 13 temp2 = asinh( #z ) elseif @formula2 == 14 temp2 = acosh( #z ) elseif @formula2 == 15 temp2 = atanh( #z ) elseif @formula2 == 16 temp2 = log( 1/#z ) elseif @formula2 == 17 temp2 = log(log( #z )) elseif @formula2 == 18 temp2 = exp( -#z ) elseif @formula2 == 19 temp2 = exp( 1/#z ) elseif @formula2 == 20 temp2 = #z^( -#z ) elseif @formula2 == 21 zextra = sin(#z) temp2 = zextra*zextra elseif @formula2 == 22 zextra = cos(#z) temp2 = zextra*zextra elseif @formula2 == 23 zextra = tan(#z) temp2 = zextra*zextra elseif @formula2 == 24 temp2 = cotan( #z ) elseif @formula2 == 25 temp2 = (1,0)/cos( #z ) elseif @formula2 == 26 temp2 = (1,0)/sin(#z) elseif @formula2 == 27 zextra = cotan( #z ) temp2 = zextra * zextra elseif @formula2 == 28 zextra = cos( #z ) temp2 = (1,0)/(zextra * zextra) elseif @formula2 == 29 zextra = sin( #z ) temp2 = (1,0)/(zextra * zextra) elseif @formula2 == 30 temp2 = #z^(#z^#z) elseif @formula2 == 31 temp2 = (1,0)/(#z^(#z^#z)) elseif @formula2 == 32 temp2 = log( -#z ) elseif @formula2 == 33 temp2 = (1,0)/log( #z ) elseif @formula2 == 34 temp2 = sin(#z) * cos(#z) elseif @formula2 == 35 zextra = sin(#z) temp2 = zextra*zextra elseif @formula2 == 36 temp2 = exp((-1,0)/#z) elseif @formula2 == 37 temp2 = atan((1,0)/#z) elseif @formula2 == 38 temp2 = acos((1,0)/#z) elseif @formula2 == 39 temp2 = asin((1,0)/#z) elseif @formula2 == 40 temp2 = sin(1/#z) elseif @formula2 == 41 temp2 = cos(1/#z) elseif @formula2 == 42 temp2 = tan(1/#z) elseif @formula2 == 43 temp2 = cotan(1/#z) elseif @formula2 == 44 temp2 = (1,0)/cos(1/#z) elseif @formula2 == 45 temp2 = (1,0)/sin(1/#z) elseif @formula2 == 46 temp2 = cotanh(#z) elseif @formula2 == 47 temp2 = (1,0)/cosh(#z) elseif @formula2 == 48 temp2 = (1,0)/sinh(#z) elseif @formula2 == 49 temp2 = atanh(1/#z) elseif @formula2 == 50 temp2 = acosh(1/#z) elseif @formula2 == 51 temp2 = asinh(1/#z) elseif @formula2 == 52 zextra = sinh(#z) temp2 = zextra * zextra elseif @formula2 == 53 zextra = cosh( #z ) temp2 = zextra * zextra elseif @formula2 == 54 zextra = tanh(#z) temp2 = zextra * zextra elseif @formula2 == 55 zextra = cotanh( #z ) temp2 = zextra * zextra elseif @formula2 == 56 zextra = (1,0)/cosh(#z) temp2 = zextra * zextra elseif @formula2 == 57 zextra = (1,0) / sinh( #z ) temp2 = zextra * zextra elseif @formula2 == 58 temp2 = sinh(1/#z) elseif @formula2 == 59 temp2 = cosh(1/#z) elseif @formula2 == 60 temp2 = tanh(1/#z) elseif @formula2 == 61 temp2 = cotanh(1/#z) elseif @formula2 == 62 temp2 = (1,0)/cosh(1/#z) elseif @formula2 == 63 temp2 = (1,0)/sinh(1/#z) elseif @formula2 == 64 temp2 = sin( #z ) * tan(#z) elseif @formula2 == 65 temp2 = sinh(#z) * tanh(#z) elseif @formula2 == 66 temp2 = sinh(#z) * cosh(#z) elseif @formula2 == 67 temp2 = sinh(#z), zextra = cosh(#z) temp2 = temp2*temp2*zextra*zextra elseif @formula2 == 68 temp2 = sin(#z), zextra = cos(#z) temp2 = temp2*temp2*zextra*zextra elseif @formula2 == 69 zextra = 1/#z temp2 = sin(zextra)*cos(zextra) elseif @formula2 == 70 zextra = sin( 1/#z ) temp2 = zextra*zextra elseif @formula2 == 71 temp2 = sin(#z) * cos(1/#z) elseif @formula2 == 72 temp2 = sin(#z) * sin(1/#z) elseif @formula2 == 73 zextra = log(#z) temp2 = zextra*zextra elseif @formula2 == 74 temp2 = sin(#z) * sin(2*#z) elseif @formula2 == 75 temp2 = exp(2*#z) elseif @formula2 == 76 temp2 = exp(-2*#z) elseif @formula2 == 77 zextra = 1/#z temp2 = sinh(zextra)*cosh(zextra) elseif @formula2 == 78 zextra = sinh( 1/#z ) temp2 = zextra*zextra elseif @formula2 == 79 temp2 = sinh(#z) * cosh(1/#z) elseif @formula2 == 80 temp2 = sinh(#z) * sinh(1/#z) elseif @formula2 == 81 temp2 = sin(#z) * sinh(#z) elseif @formula2 == 82 temp2 = sin(#z) * cosh(#z) elseif @formula2 == 83 zextra = sin(#z), temp2 = sinh(#z) temp2 = temp2*temp2*zextra*zextra elseif @formula2 == 84 temp2 = sin(#z)*exp(#z) elseif @formula2 == 85 temp2 = cos(#z)*exp(#z) elseif @formula2 == 86 temp2 = sinh(#z)*exp(#z) elseif @formula2 == 87 temp2 = cosh(#z)*exp(#z) elseif @formula2 == 88 temp2 = sin(#z)*log(#z) elseif @formula2 == 89 temp2 = cos(#z)*log(#z) elseif @formula2 == 90 temp2 = sinh(#z)*log(#z) elseif @formula2 == 91 temp2 = cosh(#z)*log(#z) elseif @formula2 == 92 temp2 = exp(#z*#z) elseif @formula2 == 93 temp2 = exp(-(#z*#z)) elseif @formula2 == 94 temp2 = exp(1/(#z*#z)) else ; @formula2 == 95 temp2 = exp(-1/(#z*#z)) endif ; @formula2 ; Execute formula1 option if @formula1 == 0 temp1 = (1,0) elseif @formula1 == 1 temp1 = log(z) elseif @formula1 == 2 temp1 = exp(#z) elseif @formula1 == 3 temp1 = #z ^ #z elseif @formula1 == 4 temp1 = sin(#z) elseif @formula1 == 5 temp1 = cos(#z) elseif @formula1 == 6 temp1 = tan( #z ) elseif @formula1 == 7 temp1 = asin(#z) elseif @formula1 == 8 temp1 = acos( #z) elseif @formula1 == 9 temp1 = atan(#z) elseif @formula1 == 10 temp1 = sinh( #z ) elseif @formula1 == 11 temp1 = cosh( #z ) elseif @formula1 == 12 temp1 = tanh( #z ) elseif @formula1 == 13 temp1 = asinh( #z ) elseif @formula1 == 14 temp1 = acosh( #z ) elseif @formula1 == 15 temp1 = atanh( #z ) elseif @formula1 == 16 temp1 = log( 1/#z ) elseif @formula1 == 17 temp1 = log(log( #z )) elseif @formula1 == 18 temp1 = exp( -#z ) elseif @formula1 == 19 temp1 = exp( 1/#z ) elseif @formula1 == 20 temp1 = #z^( -#z ) elseif @formula1 == 21 zextra = sin(#z) temp1 = zextra*zextra elseif @formula1 == 22 zextra = cos(#z) temp1 = zextra*zextra elseif @formula1 == 23 zextra = tan(#z) temp1 = zextra*zextra elseif @formula1 == 24 temp1 = cotan( #z ) elseif @formula1 == 25 temp1 = (1,0)/cos( #z ) elseif @formula1 == 26 temp1 = (1,0)/sin(#z) elseif @formula1 == 27 zextra = cotan( #z ) temp1 = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) temp1 = (1,0)/(zextra * zextra) elseif @formula1 == 29 zextra = sin( #z ) temp1 = (1,0)/(zextra * zextra) elseif @formula1 == 30 temp1 = #z^(#z^#z) elseif @formula1 == 31 temp1 = (1,0)/(#z^(#z^#z)) elseif @formula1 == 32 temp1 = log( -#z ) elseif @formula1 == 33 temp1 = (1,0)/log( #z ) elseif @formula1 == 34 temp1 = sin(#z) * cos(#z) elseif @formula1 == 35 zextra = sin(#z) temp1 = zextra*zextra elseif @formula1 == 36 temp1 = exp((-1,0)/#z) elseif @formula1 == 37 temp1 = atan((1,0)/#z) elseif @formula1 == 38 temp1 = acos((1,0)/#z) elseif @formula1 == 39 temp1 = asin((1,0)/#z) elseif @formula1 == 40 temp1 = sin(1/#z) elseif @formula1 == 41 temp1 = cos(1/#z) elseif @formula1 == 42 temp1 = tan(1/#z) elseif @formula1 == 43 temp1 = cotan(1/#z) elseif @formula1 == 44 temp1 = (1,0)/cos(1/#z) elseif @formula1 == 45 temp1 = (1,0)/sin(1/#z) elseif @formula1 == 46 temp1 = cotanh(#z) elseif @formula1 == 47 temp1 = (1,0)/cosh(#z) elseif @formula1 == 48 temp1 = (1,0)/sinh(#z) elseif @formula1 == 49 temp1 = atanh(1/#z) elseif @formula1 == 50 temp1 = acosh(1/#z) elseif @formula1 == 51 temp1 = asinh(1/#z) elseif @formula1 == 52 zextra = sinh(#z) temp1 = zextra * zextra elseif @formula1 == 53 zextra = cosh( #z ) temp1 = zextra * zextra elseif @formula1 == 54 zextra = tanh(#z) temp1 = zextra * zextra elseif @formula1 == 55 zextra = cotanh( #z ) temp1 = zextra * zextra elseif @formula1 == 56 zextra = (1,0)/cosh(#z) temp1 = zextra * zextra elseif @formula1 == 57 zextra = (1,0) / sinh( #z ) temp1 = zextra * zextra elseif @formula1 == 58 temp1 = sinh(1/#z) elseif @formula1 == 59 temp1 = cosh(1/#z) elseif @formula1 == 60 temp1 = tanh(1/#z) elseif @formula1 == 61 temp1 = cotanh(1/#z) elseif @formula1 == 62 temp1 = (1,0)/cosh(1/#z) elseif @formula1 == 63 temp1 = (1,0)/sinh(1/#z) elseif @formula1 == 64 temp1 = sin( #z ) * tan(#z) elseif @formula1 == 65 temp1 = sinh(#z) * tanh(#z) elseif @formula1 == 66 temp1 = sinh(#z) * cosh(#z) elseif @formula1 == 67 temp1 = sinh(#z), zextra = cosh(#z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 68 temp1 = sin(#z), zextra = cos(#z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 69 zextra = 1/#z temp1 = sin(zextra)*cos(zextra) elseif @formula1 == 70 zextra = sin( 1/#z ) temp1 = zextra*zextra elseif @formula1 == 71 temp1 = sin(#z) * cos(1/#z) elseif @formula1 == 72 temp1 = sin(#z) * sin(1/#z) elseif @formula1 == 73 zextra = log(#z) temp1 = zextra*zextra elseif @formula1 == 74 temp1 = sin(#z) * sin(2*#z) elseif @formula1 == 75 temp1 = exp(2*#z) elseif @formula1 == 76 temp1 = exp(-2*#z) elseif @formula1 == 77 zextra = 1/#z temp1 = sinh(zextra)*cosh(zextra) elseif @formula1 == 78 zextra = sinh( 1/#z ) temp1 = zextra*zextra elseif @formula1 == 79 temp1 = sinh(#z) * cosh(1/#z) elseif @formula1 == 80 temp1 = sinh(#z) * sinh(1/#z) elseif @formula1 == 81 temp1 = sin(#z) * sinh(#z) elseif @formula1 == 82 temp1 = sin(#z) * cosh(#z) elseif @formula1 == 83 zextra = sin(#z), temp1 = sinh(#z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 84 temp1 = sin(#z)*exp(#z) elseif @formula1 == 85 temp1 = cos(#z)*exp(#z) elseif @formula1 == 86 temp1 = sinh(#z)*exp(#z) elseif @formula1 == 87 temp1 = cosh(#z)*exp(#z) elseif @formula1 == 88 temp1 = sin(#z)*log(#z) elseif @formula1 == 89 temp1 = cos(#z)*log(#z) elseif @formula1 == 90 temp1 = sinh(#z)*log(#z) elseif @formula1 == 91 temp1 = cosh(#z)*log(#z) elseif @formula1 == 92 temp1 = exp(#z*#z) elseif @formula1 == 93 temp1 = exp(-(#z*#z)) elseif @formula1 == 94 temp1 = exp(1/(#z*#z)) else ; @formula1 == 95 temp1 = exp(-1/(#z*#z)) endif ; @formula1 z = @coeff2 * temp2 * z^@power2 + @coeff1 * temp1 * z^@power1 + @coeffp * jc if @blend z = @weightzfn * z + @weightzpwr * (zblend^@zpower + jc) endif ; @blend bailout: |z| < @bail default: title = "Binomial_1*Fn +p" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param power2 caption = "Power 2" default = (3,0) hint = "This is the exponent used for the second term of the binomial" endparam param coeff2 caption = "Coeff 2" default = (1,0) hint = "This is the coefficient of the second term in the binomial" endparam param formula2 caption = "Formula 2" enum = "none" "log(z)" "e^z" "z^z" "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "sin(z)*cos(z)" "sin(z^2)" "e^(-1/z)" "acot(z)" "asec(z)" \ "acsc(z)" "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" \ "csc(1/z)" "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" \ "acosech(z)" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "Sets the formula that is multiplied by the second term of the binomial" endparam param power1 caption = "Power 1" default = (2,0) hint = "This is the exponent used for the first term of the binomial" endparam param coeff1 caption = "Coeff 1" default = (-1,0) hint = "This is the coefficient of the first term in the binomial" endparam param formula1 caption = "Formula 1" enum = "none" "log(z)" "e^z" "z^z" "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "sin(z)*cos(z)" "sin(z^2)" "e^(-1/z)" "acot(z)" "asec(z)" \ "acsc(z)" "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" \ "csc(1/z)" "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" \ "acosech(z)" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "Sets the formula that is multiplied by the first term of the binomial" endparam param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param coeffp caption = "Pixel Coefficient" default = 1.0 hint = "This is multiplied by the initialized pixel (Mand)/ seed \ constant (Julia) term" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" visible = @coeffp != 0 endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" visible = @pixelformula == "p^power" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" visible = @plottype == 0 endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" visible = @plottype == 1 endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-binomial1b*Fn+P-J" jconstant = #pixel bail = bail power2 = power2 coeff2 = coeff2 formula2 = formula2 power1 = power1 coeff1 = coeff1 formula1 = formula1 blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower coeffp = coeffp pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc } jam-binomial1b*Fn+P-J { ; jam 011214 ; General binomial Mandelbrot/Julia. Formula executed is ; z(n+1) = c2*f2(z)*z(n)^power2 + c1*f1(z)*z(n)^power1 + c0*g(pixel), ; where f1, f2, and g are from my standard function library. ; For type Mandelbrot, g operates on #pixel; ; for type Julia, g operates on the seed constant. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = (0,0) ; temp/spare scratch variable complex temp2 = complex temp1 = (0,0) complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: zblend = z ; Execute formula2 option if @formula2 == 0 temp2 = (1,0) elseif @formula2 == 1 temp2 = log(z) elseif @formula2 == 2 temp2 = exp(#z) elseif @formula2 == 3 temp2 = #z ^ #z elseif @formula2 == 4 temp2 = sin(#z) elseif @formula2 == 5 temp2 = cos(#z) elseif @formula2 == 6 temp2 = tan( #z ) elseif @formula2 == 7 temp2 = asin(#z) elseif @formula2 == 8 temp2 = acos( #z) elseif @formula2 == 9 temp2 = atan(#z) elseif @formula2 == 10 temp2 = sinh( #z ) elseif @formula2 == 11 temp2 = cosh( #z ) elseif @formula2 == 12 temp2 = tanh( #z ) elseif @formula2 == 13 temp2 = asinh( #z ) elseif @formula2 == 14 temp2 = acosh( #z ) elseif @formula2 == 15 temp2 = atanh( #z ) elseif @formula2 == 16 temp2 = log( 1/#z ) elseif @formula2 == 17 temp2 = log(log( #z )) elseif @formula2 == 18 temp2 = exp( -#z ) elseif @formula2 == 19 temp2 = exp( 1/#z ) elseif @formula2 == 20 temp2 = #z^( -#z ) elseif @formula2 == 21 zextra = sin(#z) temp2 = zextra*zextra elseif @formula2 == 22 zextra = cos(#z) temp2 = zextra*zextra elseif @formula2 == 23 zextra = tan(#z) temp2 = zextra*zextra elseif @formula2 == 24 temp2 = cotan( #z ) elseif @formula2 == 25 temp2 = (1,0)/cos( #z ) elseif @formula2 == 26 temp2 = (1,0)/sin(#z) elseif @formula2 == 27 zextra = cotan( #z ) temp2 = zextra * zextra elseif @formula2 == 28 zextra = cos( #z ) temp2 = (1,0)/(zextra * zextra) elseif @formula2 == 29 zextra = sin( #z ) temp2 = (1,0)/(zextra * zextra) elseif @formula2 == 30 temp2 = #z^(#z^#z) elseif @formula2 == 31 temp2 = (1,0)/(#z^(#z^#z)) elseif @formula2 == 32 temp2 = log( -#z ) elseif @formula2 == 33 temp2 = (1,0)/log( #z ) elseif @formula2 == 34 temp2 = sin(#z) * cos(#z) elseif @formula2 == 35 zextra = sin(#z) temp2 = zextra*zextra elseif @formula2 == 36 temp2 = exp((-1,0)/#z) elseif @formula2 == 37 temp2 = atan((1,0)/#z) elseif @formula2 == 38 temp2 = acos((1,0)/#z) elseif @formula2 == 39 temp2 = asin((1,0)/#z) elseif @formula2 == 40 temp2 = sin(1/#z) elseif @formula2 == 41 temp2 = cos(1/#z) elseif @formula2 == 42 temp2 = tan(1/#z) elseif @formula2 == 43 temp2 = cotan(1/#z) elseif @formula2 == 44 temp2 = (1,0)/cos(1/#z) elseif @formula2 == 45 temp2 = (1,0)/sin(1/#z) elseif @formula2 == 46 temp2 = cotanh(#z) elseif @formula2 == 47 temp2 = (1,0)/cosh(#z) elseif @formula2 == 48 temp2 = (1,0)/sinh(#z) elseif @formula2 == 49 temp2 = atanh(1/#z) elseif @formula2 == 50 temp2 = acosh(1/#z) elseif @formula2 == 51 temp2 = asinh(1/#z) elseif @formula2 == 52 zextra = sinh(#z) temp2 = zextra * zextra elseif @formula2 == 53 zextra = cosh( #z ) temp2 = zextra * zextra elseif @formula2 == 54 zextra = tanh(#z) temp2 = zextra * zextra elseif @formula2 == 55 zextra = cotanh( #z ) temp2 = zextra * zextra elseif @formula2 == 56 zextra = (1,0)/cosh(#z) temp2 = zextra * zextra elseif @formula2 == 57 zextra = (1,0) / sinh( #z ) temp2 = zextra * zextra elseif @formula2 == 58 temp2 = sinh(1/#z) elseif @formula2 == 59 temp2 = cosh(1/#z) elseif @formula2 == 60 temp2 = tanh(1/#z) elseif @formula2 == 61 temp2 = cotanh(1/#z) elseif @formula2 == 62 temp2 = (1,0)/cosh(1/#z) elseif @formula2 == 63 temp2 = (1,0)/sinh(1/#z) elseif @formula2 == 64 temp2 = sin( #z ) * tan(#z) elseif @formula2 == 65 temp2 = sinh(#z) * tanh(#z) elseif @formula2 == 66 temp2 = sinh(#z) * cosh(#z) elseif @formula2 == 67 temp2 = sinh(#z), zextra = cosh(#z) temp2 = temp2*temp2*zextra*zextra elseif @formula2 == 68 temp2 = sin(#z), zextra = cos(#z) temp2 = temp2*temp2*zextra*zextra elseif @formula2 == 69 zextra = 1/#z temp2 = sin(zextra)*cos(zextra) elseif @formula2 == 70 zextra = sin( 1/#z ) temp2 = zextra*zextra elseif @formula2 == 71 temp2 = sin(#z) * cos(1/#z) elseif @formula2 == 72 temp2 = sin(#z) * sin(1/#z) elseif @formula2 == 73 zextra = log(#z) temp2 = zextra*zextra elseif @formula2 == 74 temp2 = sin(#z) * sin(2*#z) elseif @formula2 == 75 temp2 = exp(2*#z) elseif @formula2 == 76 temp2 = exp(-2*#z) elseif @formula2 == 77 zextra = 1/#z temp2 = sinh(zextra)*cosh(zextra) elseif @formula2 == 78 zextra = sinh( 1/#z ) temp2 = zextra*zextra elseif @formula2 == 79 temp2 = sinh(#z) * cosh(1/#z) elseif @formula2 == 80 temp2 = sinh(#z) * sinh(1/#z) elseif @formula2 == 81 temp2 = sin(#z) * sinh(#z) elseif @formula2 == 82 temp2 = sin(#z) * cosh(#z) elseif @formula2 == 83 zextra = sin(#z), temp2 = sinh(#z) temp2 = temp2*temp2*zextra*zextra elseif @formula2 == 84 temp2 = sin(#z)*exp(#z) elseif @formula2 == 85 temp2 = cos(#z)*exp(#z) elseif @formula2 == 86 temp2 = sinh(#z)*exp(#z) elseif @formula2 == 87 temp2 = cosh(#z)*exp(#z) elseif @formula2 == 88 temp2 = sin(#z)*log(#z) elseif @formula2 == 89 temp2 = cos(#z)*log(#z) elseif @formula2 == 90 temp2 = sinh(#z)*log(#z) elseif @formula2 == 91 temp2 = cosh(#z)*log(#z) elseif @formula2 == 92 temp2 = exp(#z*#z) elseif @formula2 == 93 temp2 = exp(-(#z*#z)) elseif @formula2 == 94 temp2 = exp(1/(#z*#z)) else ; @formula2 == 95 temp2 = exp(-1/(#z*#z)) endif ; @formula2 ; Execute formula1 option if @formula1 == 0 temp1 = (1,0) elseif @formula1 == 1 temp1 = log(z) elseif @formula1 == 2 temp1 = exp(#z) elseif @formula1 == 3 temp1 = #z ^ #z elseif @formula1 == 4 temp1 = sin(#z) elseif @formula1 == 5 temp1 = cos(#z) elseif @formula1 == 6 temp1 = tan( #z ) elseif @formula1 == 7 temp1 = asin(#z) elseif @formula1 == 8 temp1 = acos( #z) elseif @formula1 == 9 temp1 = atan(#z) elseif @formula1 == 10 temp1 = sinh( #z ) elseif @formula1 == 11 temp1 = cosh( #z ) elseif @formula1 == 12 temp1 = tanh( #z ) elseif @formula1 == 13 temp1 = asinh( #z ) elseif @formula1 == 14 temp1 = acosh( #z ) elseif @formula1 == 15 temp1 = atanh( #z ) elseif @formula1 == 16 temp1 = log( 1/#z ) elseif @formula1 == 17 temp1 = log(log( #z )) elseif @formula1 == 18 temp1 = exp( -#z ) elseif @formula1 == 19 temp1 = exp( 1/#z ) elseif @formula1 == 20 temp1 = #z^( -#z ) elseif @formula1 == 21 zextra = sin(#z) temp1 = zextra*zextra elseif @formula1 == 22 zextra = cos(#z) temp1 = zextra*zextra elseif @formula1 == 23 zextra = tan(#z) temp1 = zextra*zextra elseif @formula1 == 24 temp1 = cotan( #z ) elseif @formula1 == 25 temp1 = (1,0)/cos( #z ) elseif @formula1 == 26 temp1 = (1,0)/sin(#z) elseif @formula1 == 27 zextra = cotan( #z ) temp1 = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) temp1 = (1,0)/(zextra * zextra) elseif @formula1 == 29 zextra = sin( #z ) temp1 = (1,0)/(zextra * zextra) elseif @formula1 == 30 temp1 = #z^(#z^#z) elseif @formula1 == 31 temp1 = (1,0)/(#z^(#z^#z)) elseif @formula1 == 32 temp1 = log( -#z ) elseif @formula1 == 33 temp1 = (1,0)/log( #z ) elseif @formula1 == 34 temp1 = sin(#z) * cos(#z) elseif @formula1 == 35 zextra = sin(#z) temp1 = zextra*zextra elseif @formula1 == 36 temp1 = exp((-1,0)/#z) elseif @formula1 == 37 temp1 = atan((1,0)/#z) elseif @formula1 == 38 temp1 = acos((1,0)/#z) elseif @formula1 == 39 temp1 = asin((1,0)/#z) elseif @formula1 == 40 temp1 = sin(1/#z) elseif @formula1 == 41 temp1 = cos(1/#z) elseif @formula1 == 42 temp1 = tan(1/#z) elseif @formula1 == 43 temp1 = cotan(1/#z) elseif @formula1 == 44 temp1 = (1,0)/cos(1/#z) elseif @formula1 == 45 temp1 = (1,0)/sin(1/#z) elseif @formula1 == 46 temp1 = cotanh(#z) elseif @formula1 == 47 temp1 = (1,0)/cosh(#z) elseif @formula1 == 48 temp1 = (1,0)/sinh(#z) elseif @formula1 == 49 temp1 = atanh(1/#z) elseif @formula1 == 50 temp1 = acosh(1/#z) elseif @formula1 == 51 temp1 = asinh(1/#z) elseif @formula1 == 52 zextra = sinh(#z) temp1 = zextra * zextra elseif @formula1 == 53 zextra = cosh( #z ) temp1 = zextra * zextra elseif @formula1 == 54 zextra = tanh(#z) temp1 = zextra * zextra elseif @formula1 == 55 zextra = cotanh( #z ) temp1 = zextra * zextra elseif @formula1 == 56 zextra = (1,0)/cosh(#z) temp1 = zextra * zextra elseif @formula1 == 57 zextra = (1,0) / sinh( #z ) temp1 = zextra * zextra elseif @formula1 == 58 temp1 = sinh(1/#z) elseif @formula1 == 59 temp1 = cosh(1/#z) elseif @formula1 == 60 temp1 = tanh(1/#z) elseif @formula1 == 61 temp1 = cotanh(1/#z) elseif @formula1 == 62 temp1 = (1,0)/cosh(1/#z) elseif @formula1 == 63 temp1 = (1,0)/sinh(1/#z) elseif @formula1 == 64 temp1 = sin( #z ) * tan(#z) elseif @formula1 == 65 temp1 = sinh(#z) * tanh(#z) elseif @formula1 == 66 temp1 = sinh(#z) * cosh(#z) elseif @formula1 == 67 temp1 = sinh(#z), zextra = cosh(#z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 68 temp1 = sin(#z), zextra = cos(#z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 69 zextra = 1/#z temp1 = sin(zextra)*cos(zextra) elseif @formula1 == 70 zextra = sin( 1/#z ) temp1 = zextra*zextra elseif @formula1 == 71 temp1 = sin(#z) * cos(1/#z) elseif @formula1 == 72 temp1 = sin(#z) * sin(1/#z) elseif @formula1 == 73 zextra = log(#z) temp1 = zextra*zextra elseif @formula1 == 74 temp1 = sin(#z) * sin(2*#z) elseif @formula1 == 75 temp1 = exp(2*#z) elseif @formula1 == 76 temp1 = exp(-2*#z) elseif @formula1 == 77 zextra = 1/#z temp1 = sinh(zextra)*cosh(zextra) elseif @formula1 == 78 zextra = sinh( 1/#z ) temp1 = zextra*zextra elseif @formula1 == 79 temp1 = sinh(#z) * cosh(1/#z) elseif @formula1 == 80 temp1 = sinh(#z) * sinh(1/#z) elseif @formula1 == 81 temp1 = sin(#z) * sinh(#z) elseif @formula1 == 82 temp1 = sin(#z) * cosh(#z) elseif @formula1 == 83 zextra = sin(#z), temp1 = sinh(#z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 84 temp1 = sin(#z)*exp(#z) elseif @formula1 == 85 temp1 = cos(#z)*exp(#z) elseif @formula1 == 86 temp1 = sinh(#z)*exp(#z) elseif @formula1 == 87 temp1 = cosh(#z)*exp(#z) elseif @formula1 == 88 temp1 = sin(#z)*log(#z) elseif @formula1 == 89 temp1 = cos(#z)*log(#z) elseif @formula1 == 90 temp1 = sinh(#z)*log(#z) elseif @formula1 == 91 temp1 = cosh(#z)*log(#z) elseif @formula1 == 92 temp1 = exp(#z*#z) elseif @formula1 == 93 temp1 = exp(-(#z*#z)) elseif @formula1 == 94 temp1 = exp(1/(#z*#z)) else ; @formula1 == 95 temp1 = exp(-1/(#z*#z)) endif ; @formula1 z = @coeff2 * temp2 * z^@power2 + @coeff1 * temp1 * z^@power1 + @coeffp * jc if @blend z = @weightzfn * z + @weightzpwr * (zblend^@zpower + jc) endif ; @blend bailout: |z| < @bail default: title = "Binomial_1*Fn +p Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param power2 caption = "Power 2" default = (3,0) hint = "This is the exponent used for the second term of the binomial" endparam param coeff2 caption = "Coeff 2" default = (1,0) hint = "This is the coefficient of the second term in the binomial" endparam param formula2 caption = "Formula 2" enum = "none" "log(z)" "e^z" "z^z" "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "sin(z)*cos(z)" "sin(z^2)" "e^(-1/z)" "acot(z)" "asec(z)" \ "acsc(z)" "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" \ "csc(1/z)" "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" \ "acosech(z)" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "Sets the formula that is multiplied by the second term of the binomial" endparam param power1 caption = "Power 1" default = (2,0) hint = "This is the exponent used for the first term of the binomial" endparam param coeff1 caption = "Coeff 1" default = (-1,0) hint = "This is the coefficient of the first term in the binomial" endparam param formula1 caption = "Formula 1" enum = "none" "log(z)" "e^z" "z^z" "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "sin(z)*cos(z)" "sin(z^2)" "e^(-1/z)" "acot(z)" "asec(z)" \ "acsc(z)" "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" \ "csc(1/z)" "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" \ "acosech(z)" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "Sets the formula that is multiplied by the first term of the binomial" endparam param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param coeffp caption = "Pixel Coefficient" default = 1.0 hint = "This is multiplied by the initialized pixel (Mand)/ seed \ constant (Julia) term" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" visible = @coeffp != 0 endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" visible = @pixelformula == "p^power" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" visible = @plottype == 0 endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" visible = @plottype == 1 endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-binomial1b*Fn+P" perturbation = #pixel bail = bail power2 = power2 coeff2 = coeff2 formula2 = formula2 power1 = power1 coeff1 = coeff1 formula1 = formula1 blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower coeffp = coeffp pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc } jam-binomial1c(Fn)+P { ; jam 011214 ; General binomial Mandelbrot/Julia. Formula executed is ; z(n+1) = c2*f2(z(n))^power2 + c1*f1(z(n))^power1 + c0*g(pixel), ; where f1, f2, and g are from my standard function library. ; For type Mandelbrot, g operates on #pixel; ; for type Julia, g operates on the seed constant. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = (0,0) ; temp/spare scratch variable complex temp2 = complex temp1 = (0,0) complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: ; Execute formula2 option zblend = z if @formula2 == 0 temp2 = #z elseif @formula2 == 1 temp2 = log(z) elseif @formula2 == 2 temp2 = exp(#z) elseif @formula2 == 3 temp2 = #z ^ #z elseif @formula2 == 4 temp2 = sin(#z) elseif @formula2 == 5 temp2 = cos(#z) elseif @formula2 == 6 temp2 = tan( #z ) elseif @formula2 == 7 temp2 = asin(#z) elseif @formula2 == 8 temp2 = acos( #z) elseif @formula2 == 9 temp2 = atan(#z) elseif @formula2 == 10 temp2 = sinh( #z ) elseif @formula2 == 11 temp2 = cosh( #z ) elseif @formula2 == 12 temp2 = tanh( #z ) elseif @formula2 == 13 temp2 = asinh( #z ) elseif @formula2 == 14 temp2 = acosh( #z ) elseif @formula2 == 15 temp2 = atanh( #z ) elseif @formula2 == 16 temp2 = log( 1/#z ) elseif @formula2 == 17 temp2 = log(log( #z )) elseif @formula2 == 18 temp2 = exp( -#z ) elseif @formula2 == 19 temp2 = exp( 1/#z ) elseif @formula2 == 20 temp2 = #z^( -#z ) elseif @formula2 == 21 zextra = sin(#z) temp2 = zextra*zextra elseif @formula2 == 22 zextra = cos(#z) temp2 = zextra*zextra elseif @formula2 == 23 zextra = tan(#z) temp2 = zextra*zextra elseif @formula2 == 24 temp2 = cotan( #z ) elseif @formula2 == 25 temp2 = (1,0)/cos( #z ) elseif @formula2 == 26 temp2 = (1,0)/sin(#z) elseif @formula2 == 27 zextra = cotan( #z ) temp2 = zextra * zextra elseif @formula2 == 28 zextra = cos( #z ) temp2 = (1,0)/(zextra * zextra) elseif @formula2 == 29 zextra = sin( #z ) temp2 = (1,0)/(zextra * zextra) elseif @formula2 == 30 temp2 = #z^(#z^#z) elseif @formula2 == 31 temp2 = (1,0)/(#z^(#z^#z)) elseif @formula2 == 32 temp2 = log( -#z ) elseif @formula2 == 33 temp2 = (1,0)/log( #z ) elseif @formula2 == 34 temp2 = sin(#z) * cos(#z) elseif @formula2 == 35 zextra = sin(#z) temp2 = zextra*zextra elseif @formula2 == 36 temp2 = exp((-1,0)/#z) elseif @formula2 == 37 temp2 = atan((1,0)/#z) elseif @formula2 == 38 temp2 = acos((1,0)/#z) elseif @formula2 == 39 temp2 = asin((1,0)/#z) elseif @formula2 == 40 temp2 = sin(1/#z) elseif @formula2 == 41 temp2 = cos(1/#z) elseif @formula2 == 42 temp2 = tan(1/#z) elseif @formula2 == 43 temp2 = cotan(1/#z) elseif @formula2 == 44 temp2 = (1,0)/cos(1/#z) elseif @formula2 == 45 temp2 = (1,0)/sin(1/#z) elseif @formula2 == 46 temp2 = cotanh(#z) elseif @formula2 == 47 temp2 = (1,0)/cosh(#z) elseif @formula2 == 48 temp2 = (1,0)/sinh(#z) elseif @formula2 == 49 temp2 = atanh(1/#z) elseif @formula2 == 50 temp2 = acosh(1/#z) elseif @formula2 == 51 temp2 = asinh(1/#z) elseif @formula2 == 52 zextra = sinh(#z) temp2 = zextra * zextra elseif @formula2 == 53 zextra = cosh( #z ) temp2 = zextra * zextra elseif @formula2 == 54 zextra = tanh(#z) temp2 = zextra * zextra elseif @formula2 == 55 zextra = cotanh( #z ) temp2 = zextra * zextra elseif @formula2 == 56 zextra = (1,0)/cosh(#z) temp2 = zextra * zextra elseif @formula2 == 57 zextra = (1,0) / sinh( #z ) temp2 = zextra * zextra elseif @formula2 == 58 temp2 = sinh(1/#z) elseif @formula2 == 59 temp2 = cosh(1/#z) elseif @formula2 == 60 temp2 = tanh(1/#z) elseif @formula2 == 61 temp2 = cotanh(1/#z) elseif @formula2 == 62 temp2 = (1,0)/cosh(1/#z) elseif @formula2 == 63 temp2 = (1,0)/sinh(1/#z) elseif @formula2 == 64 temp2 = sin( #z ) * tan(#z) elseif @formula2 == 65 temp2 = sinh(#z) * tanh(#z) elseif @formula2 == 66 temp2 = sinh(#z) * cosh(#z) elseif @formula2 == 67 temp2 = sinh(#z), zextra = cosh(#z) temp2 = temp2*temp2*zextra*zextra elseif @formula2 == 68 temp2 = sin(#z), zextra = cos(#z) temp2 = temp2*temp2*zextra*zextra elseif @formula2 == 69 zextra = 1/#z temp2 = sin(zextra)*cos(zextra) elseif @formula2 == 70 zextra = sin( 1/#z ) temp2 = zextra*zextra elseif @formula2 == 71 temp2 = sin(#z) * cos(1/#z) elseif @formula2 == 72 temp2 = sin(#z) * sin(1/#z) elseif @formula2 == 73 zextra = log(#z) temp2 = zextra*zextra elseif @formula2 == 74 temp2 = sin(#z) * sin(2*#z) elseif @formula2 == 75 temp2 = exp(2*#z) elseif @formula2 == 76 temp2 = exp(-2*#z) elseif @formula2 == 77 zextra = 1/#z temp2 = sinh(zextra)*cosh(zextra) elseif @formula2 == 78 zextra = sinh( 1/#z ) temp2 = zextra*zextra elseif @formula2 == 79 temp2 = sinh(#z) * cosh(1/#z) elseif @formula2 == 80 temp2 = sinh(#z) * sinh(1/#z) elseif @formula2 == 81 temp2 = sin(#z) * sinh(#z) elseif @formula2 == 82 temp2 = sin(#z) * cosh(#z) elseif @formula2 == 83 zextra = sin(#z), temp2 = sinh(#z) temp2 = temp2*temp2*zextra*zextra elseif @formula2 == 84 temp2 = sin(#z)*exp(#z) elseif @formula2 == 85 temp2 = cos(#z)*exp(#z) elseif @formula2 == 86 temp2 = sinh(#z)*exp(#z) elseif @formula2 == 87 temp2 = cosh(#z)*exp(#z) elseif @formula2 == 88 temp2 = sin(#z)*log(#z) elseif @formula2 == 89 temp2 = cos(#z)*log(#z) elseif @formula2 == 90 temp2 = sinh(#z)*log(#z) elseif @formula2 == 91 temp2 = cosh(#z)*log(#z) elseif @formula2 == 92 temp2 = exp(#z*#z) elseif @formula2 == 93 temp2 = exp(-(#z*#z)) elseif @formula2 == 94 temp2 = exp(1/(#z*#z)) else ; @formula2 == 95 temp2 = exp(-1/(#z*#z)) endif ; @formula2 ; Execute formula1 option if @formula1 == 0 temp1 = #z elseif @formula1 == 1 temp1 = log(z) elseif @formula1 == 2 temp1 = exp(#z) elseif @formula1 == 3 temp1 = #z ^ #z elseif @formula1 == 4 temp1 = sin(#z) elseif @formula1 == 5 temp1 = cos(#z) elseif @formula1 == 6 temp1 = tan( #z ) elseif @formula1 == 7 temp1 = asin(#z) elseif @formula1 == 8 temp1 = acos( #z) elseif @formula1 == 9 temp1 = atan(#z) elseif @formula1 == 10 temp1 = sinh( #z ) elseif @formula1 == 11 temp1 = cosh( #z ) elseif @formula1 == 12 temp1 = tanh( #z ) elseif @formula1 == 13 temp1 = asinh( #z ) elseif @formula1 == 14 temp1 = acosh( #z ) elseif @formula1 == 15 temp1 = atanh( #z ) elseif @formula1 == 16 temp1 = log( 1/#z ) elseif @formula1 == 17 temp1 = log(log( #z )) elseif @formula1 == 18 temp1 = exp( -#z ) elseif @formula1 == 19 temp1 = exp( 1/#z ) elseif @formula1 == 20 temp1 = #z^( -#z ) elseif @formula1 == 21 zextra = sin(#z) temp1 = zextra*zextra elseif @formula1 == 22 zextra = cos(#z) temp1 = zextra*zextra elseif @formula1 == 23 zextra = tan(#z) temp1 = zextra*zextra elseif @formula1 == 24 temp1 = cotan( #z ) elseif @formula1 == 25 temp1 = (1,0)/cos( #z ) elseif @formula1 == 26 temp1 = (1,0)/sin(#z) elseif @formula1 == 27 zextra = cotan( #z ) temp1 = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) temp1 = (1,0)/(zextra * zextra) elseif @formula1 == 29 zextra = sin( #z ) temp1 = (1,0)/(zextra * zextra) elseif @formula1 == 30 temp1 = #z^(#z^#z) elseif @formula1 == 31 temp1 = (1,0)/(#z^(#z^#z)) elseif @formula1 == 32 temp1 = log( -#z ) elseif @formula1 == 33 temp1 = (1,0)/log( #z ) elseif @formula1 == 34 temp1 = sin(#z) * cos(#z) elseif @formula1 == 35 zextra = sin(#z) temp1 = zextra*zextra elseif @formula1 == 36 temp1 = exp((-1,0)/#z) elseif @formula1 == 37 temp1 = atan((1,0)/#z) elseif @formula1 == 38 temp1 = acos((1,0)/#z) elseif @formula1 == 39 temp1 = asin((1,0)/#z) elseif @formula1 == 40 temp1 = sin(1/#z) elseif @formula1 == 41 temp1 = cos(1/#z) elseif @formula1 == 42 temp1 = tan(1/#z) elseif @formula1 == 43 temp1 = cotan(1/#z) elseif @formula1 == 44 temp1 = (1,0)/cos(1/#z) elseif @formula1 == 45 temp1 = (1,0)/sin(1/#z) elseif @formula1 == 46 temp1 = cotanh(#z) elseif @formula1 == 47 temp1 = (1,0)/cosh(#z) elseif @formula1 == 48 temp1 = (1,0)/sinh(#z) elseif @formula1 == 49 temp1 = atanh(1/#z) elseif @formula1 == 50 temp1 = acosh(1/#z) elseif @formula1 == 51 temp1 = asinh(1/#z) elseif @formula1 == 52 zextra = sinh(#z) temp1 = zextra * zextra elseif @formula1 == 53 zextra = cosh( #z ) temp1 = zextra * zextra elseif @formula1 == 54 zextra = tanh(#z) temp1 = zextra * zextra elseif @formula1 == 55 zextra = cotanh( #z ) temp1 = zextra * zextra elseif @formula1 == 56 zextra = (1,0)/cosh(#z) temp1 = zextra * zextra elseif @formula1 == 57 zextra = (1,0) / sinh( #z ) temp1 = zextra * zextra elseif @formula1 == 58 temp1 = sinh(1/#z) elseif @formula1 == 59 temp1 = cosh(1/#z) elseif @formula1 == 60 temp1 = tanh(1/#z) elseif @formula1 == 61 temp1 = cotanh(1/#z) elseif @formula1 == 62 temp1 = (1,0)/cosh(1/#z) elseif @formula1 == 63 temp1 = (1,0)/sinh(1/#z) elseif @formula1 == 64 temp1 = sin( #z ) * tan(#z) elseif @formula1 == 65 temp1 = sinh(#z) * tanh(#z) elseif @formula1 == 66 temp1 = sinh(#z) * cosh(#z) elseif @formula1 == 67 temp1 = sinh(#z), zextra = cosh(#z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 68 temp1 = sin(#z), zextra = cos(#z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 69 zextra = 1/#z temp1 = sin(zextra)*cos(zextra) elseif @formula1 == 70 zextra = sin( 1/#z ) temp1 = zextra*zextra elseif @formula1 == 71 temp1 = sin(#z) * cos(1/#z) elseif @formula1 == 72 temp1 = sin(#z) * sin(1/#z) elseif @formula1 == 73 zextra = log(#z) temp1 = zextra*zextra elseif @formula1 == 74 temp1 = sin(#z) * sin(2*#z) elseif @formula1 == 75 temp1 = exp(2*#z) elseif @formula1 == 76 temp1 = exp(-2*#z) elseif @formula1 == 77 zextra = 1/#z temp1 = sinh(zextra)*cosh(zextra) elseif @formula1 == 78 zextra = sinh( 1/#z ) temp1 = zextra*zextra elseif @formula1 == 79 temp1 = sinh(#z) * cosh(1/#z) elseif @formula1 == 80 temp1 = sinh(#z) * sinh(1/#z) elseif @formula1 == 81 temp1 = sin(#z) * sinh(#z) elseif @formula1 == 82 temp1 = sin(#z) * cosh(#z) elseif @formula1 == 83 zextra = sin(#z), temp1 = sinh(#z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 84 temp1 = sin(#z)*exp(#z) elseif @formula1 == 85 temp1 = cos(#z)*exp(#z) elseif @formula1 == 86 temp1 = sinh(#z)*exp(#z) elseif @formula1 == 87 temp1 = cosh(#z)*exp(#z) elseif @formula1 == 88 temp1 = sin(#z)*log(#z) elseif @formula1 == 89 temp1 = cos(#z)*log(#z) elseif @formula1 == 90 temp1 = sinh(#z)*log(#z) elseif @formula1 == 91 temp1 = cosh(#z)*log(#z) elseif @formula1 == 92 temp1 = exp(#z*#z) elseif @formula1 == 93 temp1 = exp(-(#z*#z)) elseif @formula1 == 94 temp1 = exp(1/(#z*#z)) else ; @formula1 == 95 temp1 = exp(-1/(#z*#z)) endif ; @formula1 z = @coeff2 * temp2^@power2 + @coeff1 * temp1^@power1 + @coeffp * jc if @blend z = @weightzfn * z + @weightzpwr * (zblend^@zpower + jc) endif ; @blend bailout: |z| < @bail default: title = "Binomial_1(Fn) +p" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param power2 caption = "Power 2" default = (3,0) hint = "This is the exponent used for the second term of the binomial" endparam param coeff2 caption = "Coeff 2" default = (1,0) hint = "This is the coefficient of the second term in the binomial" endparam param formula2 caption = "Formula 2" enum = "none" "log(z)" "e^z" "z^z" "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "sin(z)*cos(z)" "sin(z^2)" "e^(-1/z)" "acot(z)" "asec(z)" \ "acsc(z)" "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" \ "csc(1/z)" "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" \ "acosech(z)" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "This formula operates on z then forms the second term of the binomial" endparam param power1 caption = "Power 1" default = (2,0) hint = "This is the exponent used for the first term of the binomial" endparam param coeff1 caption = "Coeff 1" default = (-1,0) hint = "This is the coefficient of the first term in the binomial" endparam param formula1 caption = "Formula 1" enum = "none" "log(z)" "e^z" "z^z" "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "sin(z)*cos(z)" "sin(z^2)" "e^(-1/z)" "acot(z)" "asec(z)" \ "acsc(z)" "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" \ "csc(1/z)" "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" \ "acosech(z)" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "This formula operates on z then forms the first term of the binomial" endparam param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param coeffp caption = "Pixel Coefficient" default = 1.0 hint = "This is multiplied by the initialized pixel (Mand)/ seed \ constant (Julia) term" endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" visible = @coeffp != 0 endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" visible = @pixelformula == "p^power" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" visible = @plottype == 0 endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" visible = @plottype == 1 endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-binomial1c(Fn)+P-J" jconstant = #pixel bail = bail power2 = power2 coeff2 = coeff2 formula2 = formula2 power1 = power1 coeff1 = coeff1 formula1 = formula1 coeffp = coeffp blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc } jam-binomial1c(Fn)+P-J { ; jam 011214 ; General binomial Mandelbrot/Julia. Formula executed is ; z(n+1) = c2*f2(z(n))^power2 + c1*f1(z(n))^power1 + c0*g(pixel), ; where f1, f2, and g are from my standard function library. ; For type Mandelbrot, g operates on #pixel; ; for type Julia, g operates on the seed constant. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = (0,0) ; temp/spare scratch variable complex temp2 = complex temp1 = (0,0) complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: zblend = z ; Execute formula2 option if @formula2 == 0 temp2 = #z elseif @formula2 == 1 temp2 = log(z) elseif @formula2 == 2 temp2 = exp(#z) elseif @formula2 == 3 temp2 = #z ^ #z elseif @formula2 == 4 temp2 = sin(#z) elseif @formula2 == 5 temp2 = cos(#z) elseif @formula2 == 6 temp2 = tan( #z ) elseif @formula2 == 7 temp2 = asin(#z) elseif @formula2 == 8 temp2 = acos( #z) elseif @formula2 == 9 temp2 = atan(#z) elseif @formula2 == 10 temp2 = sinh( #z ) elseif @formula2 == 11 temp2 = cosh( #z ) elseif @formula2 == 12 temp2 = tanh( #z ) elseif @formula2 == 13 temp2 = asinh( #z ) elseif @formula2 == 14 temp2 = acosh( #z ) elseif @formula2 == 15 temp2 = atanh( #z ) elseif @formula2 == 16 temp2 = log( 1/#z ) elseif @formula2 == 17 temp2 = log(log( #z )) elseif @formula2 == 18 temp2 = exp( -#z ) elseif @formula2 == 19 temp2 = exp( 1/#z ) elseif @formula2 == 20 temp2 = #z^( -#z ) elseif @formula2 == 21 zextra = sin(#z) temp2 = zextra*zextra elseif @formula2 == 22 zextra = cos(#z) temp2 = zextra*zextra elseif @formula2 == 23 zextra = tan(#z) temp2 = zextra*zextra elseif @formula2 == 24 temp2 = cotan( #z ) elseif @formula2 == 25 temp2 = (1,0)/cos( #z ) elseif @formula2 == 26 temp2 = (1,0)/sin(#z) elseif @formula2 == 27 zextra = cotan( #z ) temp2 = zextra * zextra elseif @formula2 == 28 zextra = cos( #z ) temp2 = (1,0)/(zextra * zextra) elseif @formula2 == 29 zextra = sin( #z ) temp2 = (1,0)/(zextra * zextra) elseif @formula2 == 30 temp2 = #z^(#z^#z) elseif @formula2 == 31 temp2 = (1,0)/(#z^(#z^#z)) elseif @formula2 == 32 temp2 = log( -#z ) elseif @formula2 == 33 temp2 = (1,0)/log( #z ) elseif @formula2 == 34 temp2 = sin(#z) * cos(#z) elseif @formula2 == 35 zextra = sin(#z) temp2 = zextra*zextra elseif @formula2 == 36 temp2 = exp((-1,0)/#z) elseif @formula2 == 37 temp2 = atan((1,0)/#z) elseif @formula2 == 38 temp2 = acos((1,0)/#z) elseif @formula2 == 39 temp2 = asin((1,0)/#z) elseif @formula2 == 40 temp2 = sin(1/#z) elseif @formula2 == 41 temp2 = cos(1/#z) elseif @formula2 == 42 temp2 = tan(1/#z) elseif @formula2 == 43 temp2 = cotan(1/#z) elseif @formula2 == 44 temp2 = (1,0)/cos(1/#z) elseif @formula2 == 45 temp2 = (1,0)/sin(1/#z) elseif @formula2 == 46 temp2 = cotanh(#z) elseif @formula2 == 47 temp2 = (1,0)/cosh(#z) elseif @formula2 == 48 temp2 = (1,0)/sinh(#z) elseif @formula2 == 49 temp2 = atanh(1/#z) elseif @formula2 == 50 temp2 = acosh(1/#z) elseif @formula2 == 51 temp2 = asinh(1/#z) elseif @formula2 == 52 zextra = sinh(#z) temp2 = zextra * zextra elseif @formula2 == 53 zextra = cosh( #z ) temp2 = zextra * zextra elseif @formula2 == 54 zextra = tanh(#z) temp2 = zextra * zextra elseif @formula2 == 55 zextra = cotanh( #z ) temp2 = zextra * zextra elseif @formula2 == 56 zextra = (1,0)/cosh(#z) temp2 = zextra * zextra elseif @formula2 == 57 zextra = (1,0) / sinh( #z ) temp2 = zextra * zextra elseif @formula2 == 58 temp2 = sinh(1/#z) elseif @formula2 == 59 temp2 = cosh(1/#z) elseif @formula2 == 60 temp2 = tanh(1/#z) elseif @formula2 == 61 temp2 = cotanh(1/#z) elseif @formula2 == 62 temp2 = (1,0)/cosh(1/#z) elseif @formula2 == 63 temp2 = (1,0)/sinh(1/#z) elseif @formula2 == 64 temp2 = sin( #z ) * tan(#z) elseif @formula2 == 65 temp2 = sinh(#z) * tanh(#z) elseif @formula2 == 66 temp2 = sinh(#z) * cosh(#z) elseif @formula2 == 67 temp2 = sinh(#z), zextra = cosh(#z) temp2 = temp2*temp2*zextra*zextra elseif @formula2 == 68 temp2 = sin(#z), zextra = cos(#z) temp2 = temp2*temp2*zextra*zextra elseif @formula2 == 69 zextra = 1/#z temp2 = sin(zextra)*cos(zextra) elseif @formula2 == 70 zextra = sin( 1/#z ) temp2 = zextra*zextra elseif @formula2 == 71 temp2 = sin(#z) * cos(1/#z) elseif @formula2 == 72 temp2 = sin(#z) * sin(1/#z) elseif @formula2 == 73 zextra = log(#z) temp2 = zextra*zextra elseif @formula2 == 74 temp2 = sin(#z) * sin(2*#z) elseif @formula2 == 75 temp2 = exp(2*#z) elseif @formula2 == 76 temp2 = exp(-2*#z) elseif @formula2 == 77 zextra = 1/#z temp2 = sinh(zextra)*cosh(zextra) elseif @formula2 == 78 zextra = sinh( 1/#z ) temp2 = zextra*zextra elseif @formula2 == 79 temp2 = sinh(#z) * cosh(1/#z) elseif @formula2 == 80 temp2 = sinh(#z) * sinh(1/#z) elseif @formula2 == 81 temp2 = sin(#z) * sinh(#z) elseif @formula2 == 82 temp2 = sin(#z) * cosh(#z) elseif @formula2 == 83 zextra = sin(#z), temp2 = sinh(#z) temp2 = temp2*temp2*zextra*zextra elseif @formula2 == 84 temp2 = sin(#z)*exp(#z) elseif @formula2 == 85 temp2 = cos(#z)*exp(#z) elseif @formula2 == 86 temp2 = sinh(#z)*exp(#z) elseif @formula2 == 87 temp2 = cosh(#z)*exp(#z) elseif @formula2 == 88 temp2 = sin(#z)*log(#z) elseif @formula2 == 89 temp2 = cos(#z)*log(#z) elseif @formula2 == 90 temp2 = sinh(#z)*log(#z) elseif @formula2 == 91 temp2 = cosh(#z)*log(#z) elseif @formula2 == 92 temp2 = exp(#z*#z) elseif @formula2 == 93 temp2 = exp(-(#z*#z)) elseif @formula2 == 94 temp2 = exp(1/(#z*#z)) else ; @formula2 == 95 temp2 = exp(-1/(#z*#z)) endif ; @formula2 ; Execute formula1 option if @formula1 == 0 temp1 = #z elseif @formula1 == 1 temp1 = log(z) elseif @formula1 == 2 temp1 = exp(#z) elseif @formula1 == 3 temp1 = #z ^ #z elseif @formula1 == 4 temp1 = sin(#z) elseif @formula1 == 5 temp1 = cos(#z) elseif @formula1 == 6 temp1 = tan( #z ) elseif @formula1 == 7 temp1 = asin(#z) elseif @formula1 == 8 temp1 = acos( #z) elseif @formula1 == 9 temp1 = atan(#z) elseif @formula1 == 10 temp1 = sinh( #z ) elseif @formula1 == 11 temp1 = cosh( #z ) elseif @formula1 == 12 temp1 = tanh( #z ) elseif @formula1 == 13 temp1 = asinh( #z ) elseif @formula1 == 14 temp1 = acosh( #z ) elseif @formula1 == 15 temp1 = atanh( #z ) elseif @formula1 == 16 temp1 = log( 1/#z ) elseif @formula1 == 17 temp1 = log(log( #z )) elseif @formula1 == 18 temp1 = exp( -#z ) elseif @formula1 == 19 temp1 = exp( 1/#z ) elseif @formula1 == 20 temp1 = #z^( -#z ) elseif @formula1 == 21 zextra = sin(#z) temp1 = zextra*zextra elseif @formula1 == 22 zextra = cos(#z) temp1 = zextra*zextra elseif @formula1 == 23 zextra = tan(#z) temp1 = zextra*zextra elseif @formula1 == 24 temp1 = cotan( #z ) elseif @formula1 == 25 temp1 = (1,0)/cos( #z ) elseif @formula1 == 26 temp1 = (1,0)/sin(#z) elseif @formula1 == 27 zextra = cotan( #z ) temp1 = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) temp1 = (1,0)/(zextra * zextra) elseif @formula1 == 29 zextra = sin( #z ) temp1 = (1,0)/(zextra * zextra) elseif @formula1 == 30 temp1 = #z^(#z^#z) elseif @formula1 == 31 temp1 = (1,0)/(#z^(#z^#z)) elseif @formula1 == 32 temp1 = log( -#z ) elseif @formula1 == 33 temp1 = (1,0)/log( #z ) elseif @formula1 == 34 temp1 = sin(#z) * cos(#z) elseif @formula1 == 35 zextra = sin(#z) temp1 = zextra*zextra elseif @formula1 == 36 temp1 = exp((-1,0)/#z) elseif @formula1 == 37 temp1 = atan((1,0)/#z) elseif @formula1 == 38 temp1 = acos((1,0)/#z) elseif @formula1 == 39 temp1 = asin((1,0)/#z) elseif @formula1 == 40 temp1 = sin(1/#z) elseif @formula1 == 41 temp1 = cos(1/#z) elseif @formula1 == 42 temp1 = tan(1/#z) elseif @formula1 == 43 temp1 = cotan(1/#z) elseif @formula1 == 44 temp1 = (1,0)/cos(1/#z) elseif @formula1 == 45 temp1 = (1,0)/sin(1/#z) elseif @formula1 == 46 temp1 = cotanh(#z) elseif @formula1 == 47 temp1 = (1,0)/cosh(#z) elseif @formula1 == 48 temp1 = (1,0)/sinh(#z) elseif @formula1 == 49 temp1 = atanh(1/#z) elseif @formula1 == 50 temp1 = acosh(1/#z) elseif @formula1 == 51 temp1 = asinh(1/#z) elseif @formula1 == 52 zextra = sinh(#z) temp1 = zextra * zextra elseif @formula1 == 53 zextra = cosh( #z ) temp1 = zextra * zextra elseif @formula1 == 54 zextra = tanh(#z) temp1 = zextra * zextra elseif @formula1 == 55 zextra = cotanh( #z ) temp1 = zextra * zextra elseif @formula1 == 56 zextra = (1,0)/cosh(#z) temp1 = zextra * zextra elseif @formula1 == 57 zextra = (1,0) / sinh( #z ) temp1 = zextra * zextra elseif @formula1 == 58 temp1 = sinh(1/#z) elseif @formula1 == 59 temp1 = cosh(1/#z) elseif @formula1 == 60 temp1 = tanh(1/#z) elseif @formula1 == 61 temp1 = cotanh(1/#z) elseif @formula1 == 62 temp1 = (1,0)/cosh(1/#z) elseif @formula1 == 63 temp1 = (1,0)/sinh(1/#z) elseif @formula1 == 64 temp1 = sin( #z ) * tan(#z) elseif @formula1 == 65 temp1 = sinh(#z) * tanh(#z) elseif @formula1 == 66 temp1 = sinh(#z) * cosh(#z) elseif @formula1 == 67 temp1 = sinh(#z), zextra = cosh(#z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 68 temp1 = sin(#z), zextra = cos(#z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 69 zextra = 1/#z temp1 = sin(zextra)*cos(zextra) elseif @formula1 == 70 zextra = sin( 1/#z ) temp1 = zextra*zextra elseif @formula1 == 71 temp1 = sin(#z) * cos(1/#z) elseif @formula1 == 72 temp1 = sin(#z) * sin(1/#z) elseif @formula1 == 73 zextra = log(#z) temp1 = zextra*zextra elseif @formula1 == 74 temp1 = sin(#z) * sin(2*#z) elseif @formula1 == 75 temp1 = exp(2*#z) elseif @formula1 == 76 temp1 = exp(-2*#z) elseif @formula1 == 77 zextra = 1/#z temp1 = sinh(zextra)*cosh(zextra) elseif @formula1 == 78 zextra = sinh( 1/#z ) temp1 = zextra*zextra elseif @formula1 == 79 temp1 = sinh(#z) * cosh(1/#z) elseif @formula1 == 80 temp1 = sinh(#z) * sinh(1/#z) elseif @formula1 == 81 temp1 = sin(#z) * sinh(#z) elseif @formula1 == 82 temp1 = sin(#z) * cosh(#z) elseif @formula1 == 83 zextra = sin(#z), temp1 = sinh(#z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 84 temp1 = sin(#z)*exp(#z) elseif @formula1 == 85 temp1 = cos(#z)*exp(#z) elseif @formula1 == 86 temp1 = sinh(#z)*exp(#z) elseif @formula1 == 87 temp1 = cosh(#z)*exp(#z) elseif @formula1 == 88 temp1 = sin(#z)*log(#z) elseif @formula1 == 89 temp1 = cos(#z)*log(#z) elseif @formula1 == 90 temp1 = sinh(#z)*log(#z) elseif @formula1 == 91 temp1 = cosh(#z)*log(#z) elseif @formula1 == 92 temp1 = exp(#z*#z) elseif @formula1 == 93 temp1 = exp(-(#z*#z)) elseif @formula1 == 94 temp1 = exp(1/(#z*#z)) else ; @formula1 == 95 temp1 = exp(-1/(#z*#z)) endif ; @formula1 z = @coeff2 * temp2^@power2 + @coeff1 * temp1^@power1 + @coeffp * jc if @blend z = @weightzfn * z + @weightzpwr * (zblend^@zpower + jc) endif ; @blend bailout: |z| < @bail default: title = "Binomial_1(Fn) +p Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param power2 caption = "Power 2" default = (3,0) hint = "This is the exponent used for the second term of the binomial" endparam param coeff2 caption = "Coeff 2" default = (1,0) hint = "This is the coefficient of the second term in the binomial" endparam param formula2 caption = "Formula 2" enum = "none" "log(z)" "e^z" "z^z" "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "sin(z)*cos(z)" "sin(z^2)" "e^(-1/z)" "acot(z)" "asec(z)" \ "acsc(z)" "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" \ "csc(1/z)" "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" \ "acosech(z)" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "This formula operates on z then forms the second term of the binomial" endparam param power1 caption = "Power 1" default = (2,0) hint = "This is the exponent used for the first term of the binomial" endparam param coeff1 caption = "Coeff 1" default = (-1,0) hint = "This is the coefficient of the first term in the binomial" endparam param formula1 caption = "Formula 1" enum = "none" "log(z)" "e^z" "z^z" "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "sin(z)*cos(z)" "sin(z^2)" "e^(-1/z)" "acot(z)" "asec(z)" \ "acsc(z)" "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" \ "csc(1/z)" "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" \ "acosech(z)" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" "e^(z^2)" "e^(-(z^2))" "e^(1/z^2)" "e^(-1/z^2)" default = 0 hint = "This formula operates on z then forms the first term of the binomial" endparam param coeffp caption = "Pixel Coefficient" default = 1.0 hint = "This is multiplied by the initialized pixel (Mand)/ seed \ constant (Julia) term" endparam param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" visible = @coeffp != 0 endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" visible = @pixelformula == "p^power" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" visible = @pixelformula == "3-term polynomial" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" visible = @pixelformula == "3-term polynomial" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" visible = @pixelformula == "3-term polynomial" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" visible = @plottype == 0 endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" visible = @plottype == 1 endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-binomial1c(Fn)+P" perturbation = #pixel bail = bail power2 = power2 coeff2 = coeff2 formula2 = formula2 power1 = power1 coeff1 = coeff1 formula1 = formula1 coeffp = coeffp blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc } jam-Fn[binomial1d+] { ; jam 011214 ; General binomial Mandelbrot/Julia. Formula executed is ; z(n+1) = f[ c2*z(n)^power2 + c1*z(n)^power1 + c0*g(pixel) ], ; where f and g are from my standard function library. ; For type Mandelbrot, g operates on #pixel; ; for type Julia, g operates on the seed constant. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = (0,0) ; temp/spare scratch variable complex temp1 = (0,0) complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: zblend = z z = @coeff2 * z^@power2 + @coeff1 * z^@power1 + @coeffp * jc ; Execute formula option if @formula1 == 0 temp1 = z elseif @formula1 <= 50 if @formula1 <= 25 if @formula1 == 1 temp1 = log(z) elseif @formula1 == 2 temp1 = exp(z) elseif @formula1 == 3 temp1 = z ^ z elseif @formula1 == 4 temp1 = sin(z) elseif @formula1 == 5 temp1 = cos(z) elseif @formula1 == 6 temp1 = tan( z ) elseif @formula1 == 7 temp1 = asin(z) elseif @formula1 == 8 temp1 = acos( z) elseif @formula1 == 9 temp1 = atan(z) elseif @formula1 == 10 temp1 = sinh( z ) elseif @formula1 == 11 temp1 = cosh( z ) elseif @formula1 == 12 temp1 = tanh( z ) elseif @formula1 == 13 temp1 = asinh( z ) elseif @formula1 == 14 temp1 = acosh( z ) elseif @formula1 == 15 temp1 = atanh( z ) elseif @formula1 == 16 temp1 = log( 1/z ) elseif @formula1 == 17 temp1 = log(log( z )) elseif @formula1 == 18 temp1 = exp( -z ) elseif @formula1 == 19 temp1 = exp( 1/z ) elseif @formula1 == 20 temp1 = z^( -z ) elseif @formula1 == 21 zextra = sin(z) temp1 = zextra*zextra elseif @formula1 == 22 zextra = cos(z) temp1 = zextra*zextra elseif @formula1 == 23 zextra = tan(z) temp1 = zextra*zextra elseif @formula1 == 24 temp1 = cotan( z ) else ; @formula1 == 25 temp1 = (1,0)/cos( z ) endif ; formula1-3 else ; 25 < @formula1 <= 50 if @formula1 == 26 temp1 = (1,0)/sin(z) elseif @formula1 == 27 zextra = cotan( z ) temp1 = zextra * zextra elseif @formula1 == 28 zextra = cos( z ) temp1 = (1,0)/(zextra * zextra) elseif @formula1 == 29 zextra = sin( z ) temp1 = (1,0)/(zextra * zextra) elseif @formula1 == 30 temp1 = z^(z^z) elseif @formula1 == 31 temp1 = (1,0)/(z^(z^z)) elseif @formula1 == 32 temp1 = log( -z ) elseif @formula1 == 33 temp1 = (1,0)/log( z ) elseif @formula1 == 34 temp1 = sin(z) * cos(z) elseif @formula1 == 35 zextra = sin(z) temp1 = zextra*zextra elseif @formula1 == 36 temp1 = exp((-1,0)/z) elseif @formula1 == 37 temp1 = atan((1,0)/z) elseif @formula1 == 38 temp1 = acos((1,0)/z) elseif @formula1 == 39 temp1 = asin((1,0)/z) elseif @formula1 == 40 temp1 = sin(1/z) elseif @formula1 == 41 temp1 = cos(1/z) elseif @formula1 == 42 temp1 = tan(1/z) elseif @formula1 == 43 temp1 = cotan(1/z) elseif @formula1 == 44 temp1 = (1,0)/cos(1/z) elseif @formula1 == 45 temp1 = (1,0)/sin(1/z) elseif @formula1 == 46 temp1 = cotanh(z) elseif @formula1 == 47 temp1 = (1,0)/cosh(z) elseif @formula1 == 48 temp1 = (1,0)/sinh(z) elseif @formula1 == 49 temp1 = atanh(1/z) else ; @formula1 == 50 temp1 = acosh(1/z) endif ; formula1-3 endif ; formula1-2 elseif @formula1 <= 75 if @formula1 == 51 temp1 = asinh(1/z) elseif @formula1 == 52 zextra = sinh(z) temp1 = zextra * zextra elseif @formula1 == 53 zextra = cosh( z ) temp1 = zextra * zextra elseif @formula1 == 54 zextra = tanh(z) temp1 = zextra * zextra elseif @formula1 == 55 zextra = cotanh( z ) temp1 = zextra * zextra elseif @formula1 == 56 zextra = (1,0)/cosh(z) temp1 = zextra * zextra elseif @formula1 == 57 zextra = (1,0) / sinh( z ) temp1 = zextra * zextra elseif @formula1 == 58 temp1 = sinh(1/z) elseif @formula1 == 59 temp1 = cosh(1/z) elseif @formula1 == 60 temp1 = tanh(1/z) elseif @formula1 == 61 temp1 = cotanh(1/z) elseif @formula1 == 62 temp1 = (1,0)/cosh(1/z) elseif @formula1 == 63 temp1 = (1,0)/sinh(1/z) elseif @formula1 == 64 temp1 = sin( z ) * tan(z) elseif @formula1 == 65 temp1 = sinh(z) * tanh(z) elseif @formula1 == 66 temp1 = sinh(z) * cosh(z) elseif @formula1 == 67 temp1 = sinh(z), zextra = cosh(z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 68 temp1 = sin(z), zextra = cos(z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 69 zextra = 1/z temp1 = sin(zextra)*cos(zextra) elseif @formula1 == 70 zextra = sin( 1/z ) temp1 = zextra*zextra elseif @formula1 == 71 temp1 = sin(z) * cos(1/z) elseif @formula1 == 72 temp1 = sin(z) * sin(1/z) elseif @formula1 == 73 zextra = log(z) temp1 = zextra*zextra elseif @formula1 == 74 temp1 = sin(z) * sin(2*z) else ; @formula1 == 75 temp1 = exp(2*z) endif ; formula1-2 else ; 75 < @formula1 <= 100 if @formula1 == 76 temp1 = exp(-2*z) elseif @formula1 == 77 zextra = 1/z temp1 = sinh(zextra)*cosh(zextra) elseif @formula1 == 78 zextra = sinh( 1/z ) temp1 = zextra*zextra elseif @formula1 == 79 temp1 = sinh(z) * cosh(1/z) elseif @formula1 == 80 temp1 = sinh(z) * sinh(1/z) elseif @formula1 == 81 temp1 = sin(z) * sinh(z) elseif @formula1 == 82 temp1 = sin(z) * cosh(z) elseif @formula1 == 83 zextra = sin(z), temp1 = sinh(z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 84 temp1 = sin(z)*exp(z) elseif @formula1 == 85 temp1 = cos(z)*exp(z) elseif @formula1 == 86 temp1 = sinh(z)*exp(z) elseif @formula1 == 87 temp1 = cosh(z)*exp(z) elseif @formula1 == 88 temp1 = sin(z)*log(z) elseif @formula1 == 89 temp1 = cos(z)*log(z) elseif @formula1 == 90 temp1 = sinh(z)*log(z) else ; @formula1 == 91 temp1 = cosh(z)*log(z) endif ; formula1-2 endif ; formula1-1 z = temp1 if @blend z = @weightzfn * z + @weightzpwr * (zblend^@zpower + jc) endif ; @blend bailout: |z| < @bail default: title = "Fn(Binomial_1 +p)" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param power2 caption = "Power 2" default = (3,0) hint = "This is the exponent used for the second term of the binomial" endparam param coeff2 caption = "Coeff 2" default = (1,0) hint = "This is the coefficient of the second term in the binomial" endparam param power1 caption = "Power 1" default = (2,0) hint = "This is the exponent used for the first term of the binomial" endparam param coeff1 caption = "Coeff 1" default = (-1,0) hint = "This is the coefficient of the first term in the binomial" endparam param formula1 caption = "Formula" enum = "none" "log(z)" "e^z" "z^z" "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "sin(z)*cos(z)" "sin(z^2)" "e^(-1/z)" "acot(z)" "asec(z)" \ "acsc(z)" "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" \ "csc(1/z)" "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" \ "acosech(z)" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula that operates on the entire binomial" endparam param coeffp caption = "Pixel Coefficient" default = 1.0 hint = "This is multiplied by the initialized pixel (Mand)/ seed \ constant (Julia) term" endparam param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-Fn[binomial1d+]-J" jconstant = #pixel bail = bail power2 = power2 coeff2 = coeff2 power1 = power1 coeff1 = coeff1 formula1 = formula1 coeffp = coeffp blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc } jam-Fn[binomial1d+]-J { ; jam 011214 ; General binomial Mandelbrot/Julia. Formula executed is ; z(n+1) = f[ c2*z(n)^power2 + c1*z(n)^power1 + c0*g(pixel) ], ; where f and g are from my standard function library. ; For type Mandelbrot, g operates on #pixel; ; for type Julia, g operates on the seed constant. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = (0,0) ; temp/spare scratch variable complex temp1 = (0,0) complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: zblend = z z = @coeff2 * z^@power2 + @coeff1 * z^@power1 + @coeffp * jc ; Execute formula option if @formula1 == 0 temp1 = z elseif @formula1 <= 50 if @formula1 <= 25 if @formula1 == 1 temp1 = log(z) elseif @formula1 == 2 temp1 = exp(z) elseif @formula1 == 3 temp1 = z ^ z elseif @formula1 == 4 temp1 = sin(z) elseif @formula1 == 5 temp1 = cos(z) elseif @formula1 == 6 temp1 = tan( z ) elseif @formula1 == 7 temp1 = asin(z) elseif @formula1 == 8 temp1 = acos( z) elseif @formula1 == 9 temp1 = atan(z) elseif @formula1 == 10 temp1 = sinh( z ) elseif @formula1 == 11 temp1 = cosh( z ) elseif @formula1 == 12 temp1 = tanh( z ) elseif @formula1 == 13 temp1 = asinh( z ) elseif @formula1 == 14 temp1 = acosh( z ) elseif @formula1 == 15 temp1 = atanh( z ) elseif @formula1 == 16 temp1 = log( 1/z ) elseif @formula1 == 17 temp1 = log(log( z )) elseif @formula1 == 18 temp1 = exp( -z ) elseif @formula1 == 19 temp1 = exp( 1/z ) elseif @formula1 == 20 temp1 = z^( -z ) elseif @formula1 == 21 zextra = sin(z) temp1 = zextra*zextra elseif @formula1 == 22 zextra = cos(z) temp1 = zextra*zextra elseif @formula1 == 23 zextra = tan(z) temp1 = zextra*zextra elseif @formula1 == 24 temp1 = cotan( z ) else ; @formula1 == 25 temp1 = (1,0)/cos( z ) endif ; formula1-3 else ; 25 < @formula1 <= 50 if @formula1 == 26 temp1 = (1,0)/sin(z) elseif @formula1 == 27 zextra = cotan( z ) temp1 = zextra * zextra elseif @formula1 == 28 zextra = cos( z ) temp1 = (1,0)/(zextra * zextra) elseif @formula1 == 29 zextra = sin( z ) temp1 = (1,0)/(zextra * zextra) elseif @formula1 == 30 temp1 = z^(z^z) elseif @formula1 == 31 temp1 = (1,0)/(z^(z^z)) elseif @formula1 == 32 temp1 = log( -z ) elseif @formula1 == 33 temp1 = (1,0)/log( z ) elseif @formula1 == 34 temp1 = sin(z) * cos(z) elseif @formula1 == 35 zextra = sin(z) temp1 = zextra*zextra elseif @formula1 == 36 temp1 = exp((-1,0)/z) elseif @formula1 == 37 temp1 = atan((1,0)/z) elseif @formula1 == 38 temp1 = acos((1,0)/z) elseif @formula1 == 39 temp1 = asin((1,0)/z) elseif @formula1 == 40 temp1 = sin(1/z) elseif @formula1 == 41 temp1 = cos(1/z) elseif @formula1 == 42 temp1 = tan(1/z) elseif @formula1 == 43 temp1 = cotan(1/z) elseif @formula1 == 44 temp1 = (1,0)/cos(1/z) elseif @formula1 == 45 temp1 = (1,0)/sin(1/z) elseif @formula1 == 46 temp1 = cotanh(z) elseif @formula1 == 47 temp1 = (1,0)/cosh(z) elseif @formula1 == 48 temp1 = (1,0)/sinh(z) elseif @formula1 == 49 temp1 = atanh(1/z) else ; @formula1 == 50 temp1 = acosh(1/z) endif ; formula1-3 endif ; formula1-2 elseif @formula1 <= 75 if @formula1 == 51 temp1 = asinh(1/z) elseif @formula1 == 52 zextra = sinh(z) temp1 = zextra * zextra elseif @formula1 == 53 zextra = cosh( z ) temp1 = zextra * zextra elseif @formula1 == 54 zextra = tanh(z) temp1 = zextra * zextra elseif @formula1 == 55 zextra = cotanh( z ) temp1 = zextra * zextra elseif @formula1 == 56 zextra = (1,0)/cosh(z) temp1 = zextra * zextra elseif @formula1 == 57 zextra = (1,0) / sinh( z ) temp1 = zextra * zextra elseif @formula1 == 58 temp1 = sinh(1/z) elseif @formula1 == 59 temp1 = cosh(1/z) elseif @formula1 == 60 temp1 = tanh(1/z) elseif @formula1 == 61 temp1 = cotanh(1/z) elseif @formula1 == 62 temp1 = (1,0)/cosh(1/z) elseif @formula1 == 63 temp1 = (1,0)/sinh(1/z) elseif @formula1 == 64 temp1 = sin( z ) * tan(z) elseif @formula1 == 65 temp1 = sinh(z) * tanh(z) elseif @formula1 == 66 temp1 = sinh(z) * cosh(z) elseif @formula1 == 67 temp1 = sinh(z), zextra = cosh(z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 68 temp1 = sin(z), zextra = cos(z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 69 zextra = 1/z temp1 = sin(zextra)*cos(zextra) elseif @formula1 == 70 zextra = sin( 1/z ) temp1 = zextra*zextra elseif @formula1 == 71 temp1 = sin(z) * cos(1/z) elseif @formula1 == 72 temp1 = sin(z) * sin(1/z) elseif @formula1 == 73 zextra = log(z) temp1 = zextra*zextra elseif @formula1 == 74 temp1 = sin(z) * sin(2*z) else ; @formula1 == 75 temp1 = exp(2*z) endif ; formula1-2 else ; 75 < @formula1 <= 100 if @formula1 == 76 temp1 = exp(-2*z) elseif @formula1 == 77 zextra = 1/z temp1 = sinh(zextra)*cosh(zextra) elseif @formula1 == 78 zextra = sinh( 1/z ) temp1 = zextra*zextra elseif @formula1 == 79 temp1 = sinh(z) * cosh(1/z) elseif @formula1 == 80 temp1 = sinh(z) * sinh(1/z) elseif @formula1 == 81 temp1 = sin(z) * sinh(z) elseif @formula1 == 82 temp1 = sin(z) * cosh(z) elseif @formula1 == 83 zextra = sin(z), temp1 = sinh(z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 84 temp1 = sin(z)*exp(z) elseif @formula1 == 85 temp1 = cos(z)*exp(z) elseif @formula1 == 86 temp1 = sinh(z)*exp(z) elseif @formula1 == 87 temp1 = cosh(z)*exp(z) elseif @formula1 == 88 temp1 = sin(z)*log(z) elseif @formula1 == 89 temp1 = cos(z)*log(z) elseif @formula1 == 90 temp1 = sinh(z)*log(z) else ; @formula1 == 91 temp1 = cosh(z)*log(z) endif ; formula1-2 endif ; formula1-1 z = temp1 if @blend z = @weightzfn * z + @weightzpwr * (zblend^@zpower + jc) endif ; @blend bailout: |z| < @bail default: title = "Fn(Binomial_1 +p) Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param power2 caption = "Power 2" default = (3,0) hint = "This is the exponent used for the second term of the binomial" endparam param coeff2 caption = "Coeff 2" default = (1,0) hint = "This is the coefficient of the second term in the binomial" endparam param power1 caption = "Power 1" default = (2,0) hint = "This is the exponent used for the first term of the binomial" endparam param coeff1 caption = "Coeff 1" default = (-1,0) hint = "This is the coefficient of the first term in the binomial" endparam param formula1 caption = "Formula" enum = "none" "log(z)" "e^z" "z^z" "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "sin(z)*cos(z)" "sin(z^2)" "e^(-1/z)" "acot(z)" "asec(z)" \ "acsc(z)" "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" \ "csc(1/z)" "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" \ "acosech(z)" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula that operates on the entire binomial" endparam param coeffp caption = "Pixel Coefficient" default = 1.0 hint = "This is multiplied by the initialized pixel (Mand)/ seed \ constant (Julia) term" endparam param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-Fn[binomial1d+]" perturbation = #pixel bail = bail power2 = power2 coeff2 = coeff2 power1 = power1 coeff1 = coeff1 formula1 = formula1 coeffp = coeffp blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc } jam-trinomial1a+P { ; jam 011214 ; General trinomial Mandelbrot/Julia. Formula executed is ; z(n+1) = c3*z(n)^power3 + c2*z(n)^power2 + c1*z(n)^power1 + c0*g(pixel), ; where g is from my standard function library. ; For type Mandelbrot, g operates on #pixel; ; for type Julia, g operates on the seed constant. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = (0,0) ; temp/spare scratch variable complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: zblend = z z = @coeff3 * z^@power3 + @coeff2 * z^@power2 + @coeff1 * z^@power1 + @coeffp * jc if @blend z = @weightzfn * z + @weightzpwr * (zblend^@zpower + jc) endif ; @blend bailout: |z| < @bail default: title = "Trinomial_1 +p" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param power3 caption = "Power 3" default = (4,0) hint = "This is the exponent used for the third term of the trinomial" endparam param coeff3 caption = "Coeff 3" default = (-1,0) hint = "This is the coefficient of the third term in the trinomial" endparam param power2 caption = "Power 2" default = (3,0) hint = "This is the exponent used for the second term of the trinomial" endparam param coeff2 caption = "Coeff 2" default = (1,0) hint = "This is the coefficient of the second term in the trinomial" endparam param power1 caption = "Power 1" default = (2,0) hint = "This is the exponent used for the first term of the trinomial" endparam param coeff1 caption = "Coeff 1" default = (-1,0) hint = "This is the coefficient of the first term in the trinomial" endparam param coeffp caption = "Pixel Coefficient" default = 1.0 hint = "This is multiplied by the initialized pixel (Mand)/ seed \ constant (Julia) term" endparam param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-trinomial1a+P-J" jconstant = #pixel bail = bail power3 = power3 coeff3 = coeff3 power2 = power2 coeff2 = coeff2 power1 = power1 coeff1 = coeff1 coeffp = coeffp blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc } jam-trinomial1b*Fn+P { ; jam 011214 ; General trinomial Mandelbrot/Julia. Formula executed is ; z(n+1) = c3*f3(z)*z(n)^power3 + c2*f2(z)*z(n)^power2 + c1*f1(z)*z(n)^power1 + c0*g(pixel), ; where f1, f2, f3, and g are from my standard function library. ; For type Mandelbrot, g operates on #pixel; ; for type Julia, g operates on the seed constant. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = (0,0) ; temp/spare scratch variable complex temp3 = complex temp2 = complex temp1 = (0,0) complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: zblend = z ; Execute formula3 option if @formula3 == 0 temp3 = (1,0) elseif @formula3 <= 50 if @formula3 <= 25 if @formula3 == 1 temp3 = log(z) elseif @formula3 == 2 temp3 = exp(#z) elseif @formula3 == 3 temp3 = #z ^ #z elseif @formula3 == 4 temp3 = sin(#z) elseif @formula3 == 5 temp3 = cos(#z) elseif @formula3 == 6 temp3 = tan( #z ) elseif @formula3 == 7 temp3 = asin(#z) elseif @formula3 == 8 temp3 = acos( #z) elseif @formula3 == 9 temp3 = atan(#z) elseif @formula3 == 10 temp3 = sinh( #z ) elseif @formula3 == 11 temp3 = cosh( #z ) elseif @formula3 == 12 temp3 = tanh( #z ) elseif @formula3 == 13 temp3 = asinh( #z ) elseif @formula3 == 14 temp3 = acosh( #z ) elseif @formula3 == 15 temp3 = atanh( #z ) elseif @formula3 == 16 temp3 = log( 1/#z ) elseif @formula3 == 17 temp3 = log(log( #z )) elseif @formula3 == 18 temp3 = exp( -#z ) elseif @formula3 == 19 temp3 = exp( 1/#z ) elseif @formula3 == 20 temp3 = #z^( -#z ) elseif @formula3 == 21 zextra = sin(#z) temp3 = zextra*zextra elseif @formula3 == 22 zextra = cos(#z) temp3 = zextra*zextra elseif @formula3 == 23 zextra = tan(#z) temp3 = zextra*zextra elseif @formula3 == 24 temp3 = cotan( #z ) else ; @formula3 == 25 temp3 = (1,0)/cos( #z ) endif ; formula3-3 else ; 25 < @formula3 <= 50 if @formula3 == 26 temp3 = (1,0)/sin(#z) elseif @formula3 == 27 zextra = cotan( #z ) temp3 = zextra * zextra elseif @formula3 == 28 zextra = cos( #z ) temp3 = (1,0)/(zextra * zextra) elseif @formula3 == 29 zextra = sin( #z ) temp3 = (1,0)/(zextra * zextra) elseif @formula3 == 30 temp3 = #z^(#z^#z) elseif @formula3 == 31 temp3 = (1,0)/(#z^(#z^#z)) elseif @formula3 == 32 temp3 = log( -#z ) elseif @formula3 == 33 temp3 = (1,0)/log( #z ) elseif @formula3 == 34 temp3 = sin(#z) * cos(#z) elseif @formula3 == 35 zextra = sin(#z) temp3 = zextra*zextra elseif @formula3 == 36 temp3 = exp((-1,0)/#z) elseif @formula3 == 37 temp3 = atan((1,0)/#z) elseif @formula3 == 38 temp3 = acos((1,0)/#z) elseif @formula3 == 39 temp3 = asin((1,0)/#z) elseif @formula3 == 40 temp3 = sin(1/#z) elseif @formula3 == 41 temp3 = cos(1/#z) elseif @formula3 == 42 temp3 = tan(1/#z) elseif @formula3 == 43 temp3 = cotan(1/#z) elseif @formula3 == 44 temp3 = (1,0)/cos(1/#z) elseif @formula3 == 45 temp3 = (1,0)/sin(1/#z) elseif @formula3 == 46 temp3 = cotanh(#z) elseif @formula3 == 47 temp3 = (1,0)/cosh(#z) elseif @formula3 == 48 temp3 = (1,0)/sinh(#z) elseif @formula3 == 49 temp3 = atanh(1/#z) else ; @formula3 == 50 temp3 = acosh(1/#z) endif ; formula3-3 endif ; formula3-2 elseif @formula3 <= 75 if @formula3 == 51 temp3 = asinh(1/#z) elseif @formula3 == 52 zextra = sinh(#z) temp3 = zextra * zextra elseif @formula3 == 53 zextra = cosh( #z ) temp3 = zextra * zextra elseif @formula3 == 54 zextra = tanh(#z) temp3 = zextra * zextra elseif @formula3 == 55 zextra = cotanh( #z ) temp3 = zextra * zextra elseif @formula3 == 56 zextra = (1,0)/cosh(#z) temp3 = zextra * zextra elseif @formula3 == 57 zextra = (1,0) / sinh( #z ) temp3 = zextra * zextra elseif @formula3 == 58 temp3 = sinh(1/#z) elseif @formula3 == 59 temp3 = cosh(1/#z) elseif @formula3 == 60 temp3 = tanh(1/#z) elseif @formula3 == 61 temp3 = cotanh(1/#z) elseif @formula3 == 62 temp3 = (1,0)/cosh(1/#z) elseif @formula3 == 63 temp3 = (1,0)/sinh(1/#z) elseif @formula3 == 64 temp3 = sin( #z ) * tan(#z) elseif @formula3 == 65 temp3 = sinh(#z) * tanh(#z) elseif @formula3 == 66 temp3 = sinh(#z) * cosh(#z) elseif @formula3 == 67 temp3 = sinh(#z), zextra = cosh(#z) temp3 = temp3*temp3*zextra*zextra elseif @formula3 == 68 temp3 = sin(#z), zextra = cos(#z) temp3 = temp3*temp3*zextra*zextra elseif @formula3 == 69 zextra = 1/#z temp3 = sin(zextra)*cos(zextra) elseif @formula3 == 70 zextra = sin( 1/#z ) temp3 = zextra*zextra elseif @formula3 == 71 temp3 = sin(#z) * cos(1/#z) elseif @formula3 == 72 temp3 = sin(#z) * sin(1/#z) elseif @formula3 == 73 zextra = log(#z) temp3 = zextra*zextra elseif @formula3 == 74 temp3 = sin(#z) * sin(2*#z) else ; @formula3 == 75 temp3 = exp(2*#z) endif ; formula3-2 else ; 75 < @formula3 <= 100 if @formula3 == 76 temp3 = exp(-2*#z) elseif @formula3 == 77 zextra = 1/#z temp3 = sinh(zextra)*cosh(zextra) elseif @formula3 == 78 zextra = sinh( 1/#z ) temp3 = zextra*zextra elseif @formula3 == 79 temp3 = sinh(#z) * cosh(1/#z) elseif @formula3 == 80 temp3 = sinh(#z) * sinh(1/#z) elseif @formula3 == 81 temp3 = sin(#z) * sinh(#z) elseif @formula3 == 82 temp3 = sin(#z) * cosh(#z) elseif @formula3 == 83 zextra = sin(#z), temp3 = sinh(#z) temp3 = temp3*temp3*zextra*zextra elseif @formula3 == 84 temp3 = sin(#z)*exp(#z) elseif @formula3 == 85 temp3 = cos(#z)*exp(#z) elseif @formula3 == 86 temp3 = sinh(#z)*exp(#z) elseif @formula3 == 87 temp3 = cosh(#z)*exp(#z) elseif @formula3 == 88 temp3 = sin(#z)*log(#z) elseif @formula3 == 89 temp3 = cos(#z)*log(#z) elseif @formula3 == 90 temp3 = sinh(#z)*log(#z) else ; @formula3 == 91 temp3 = cosh(#z)*log(#z) endif ; formula3-2 endif ; formula3-1 ; Execute formula2 option if @formula2 == 0 temp2 = (1,0) elseif @formula2 <= 50 if @formula2 <= 25 if @formula2 == 1 temp2 = log(z) elseif @formula2 == 2 temp2 = exp(#z) elseif @formula2 == 3 temp2 = #z ^ #z elseif @formula2 == 4 temp2 = sin(#z) elseif @formula2 == 5 temp2 = cos(#z) elseif @formula2 == 6 temp2 = tan( #z ) elseif @formula2 == 7 temp2 = asin(#z) elseif @formula2 == 8 temp2 = acos( #z) elseif @formula2 == 9 temp2 = atan(#z) elseif @formula2 == 10 temp2 = sinh( #z ) elseif @formula2 == 11 temp2 = cosh( #z ) elseif @formula2 == 12 temp2 = tanh( #z ) elseif @formula2 == 13 temp2 = asinh( #z ) elseif @formula2 == 14 temp2 = acosh( #z ) elseif @formula2 == 15 temp2 = atanh( #z ) elseif @formula2 == 16 temp2 = log( 1/#z ) elseif @formula2 == 17 temp2 = log(log( #z )) elseif @formula2 == 18 temp2 = exp( -#z ) elseif @formula2 == 19 temp2 = exp( 1/#z ) elseif @formula2 == 20 temp2 = #z^( -#z ) elseif @formula2 == 21 zextra = sin(#z) temp2 = zextra*zextra elseif @formula2 == 22 zextra = cos(#z) temp2 = zextra*zextra elseif @formula2 == 23 zextra = tan(#z) temp2 = zextra*zextra elseif @formula2 == 24 temp2 = cotan( #z ) else ; @formula2 == 25 temp2 = (1,0)/cos( #z ) endif ; formula2-3 else ; 25 < @formula2 <= 50 if @formula2 == 26 temp2 = (1,0)/sin(#z) elseif @formula2 == 27 zextra = cotan( #z ) temp2 = zextra * zextra elseif @formula2 == 28 zextra = cos( #z ) temp2 = (1,0)/(zextra * zextra) elseif @formula2 == 29 zextra = sin( #z ) temp2 = (1,0)/(zextra * zextra) elseif @formula2 == 30 temp2 = #z^(#z^#z) elseif @formula2 == 31 temp2 = (1,0)/(#z^(#z^#z)) elseif @formula2 == 32 temp2 = log( -#z ) elseif @formula2 == 33 temp2 = (1,0)/log( #z ) elseif @formula2 == 34 temp2 = sin(#z) * cos(#z) elseif @formula2 == 35 zextra = sin(#z) temp2 = zextra*zextra elseif @formula2 == 36 temp2 = exp((-1,0)/#z) elseif @formula2 == 37 temp2 = atan((1,0)/#z) elseif @formula2 == 38 temp2 = acos((1,0)/#z) elseif @formula2 == 39 temp2 = asin((1,0)/#z) elseif @formula2 == 40 temp2 = sin(1/#z) elseif @formula2 == 41 temp2 = cos(1/#z) elseif @formula2 == 42 temp2 = tan(1/#z) elseif @formula2 == 43 temp2 = cotan(1/#z) elseif @formula2 == 44 temp2 = (1,0)/cos(1/#z) elseif @formula2 == 45 temp2 = (1,0)/sin(1/#z) elseif @formula2 == 46 temp2 = cotanh(#z) elseif @formula2 == 47 temp2 = (1,0)/cosh(#z) elseif @formula2 == 48 temp2 = (1,0)/sinh(#z) elseif @formula2 == 49 temp2 = atanh(1/#z) else ; @formula2 == 50 temp2 = acosh(1/#z) endif ; formula2-3 endif ; formula2-2 elseif @formula2 <= 75 if @formula2 == 51 temp2 = asinh(1/#z) elseif @formula2 == 52 zextra = sinh(#z) temp2 = zextra * zextra elseif @formula2 == 53 zextra = cosh( #z ) temp2 = zextra * zextra elseif @formula2 == 54 zextra = tanh(#z) temp2 = zextra * zextra elseif @formula2 == 55 zextra = cotanh( #z ) temp2 = zextra * zextra elseif @formula2 == 56 zextra = (1,0)/cosh(#z) temp2 = zextra * zextra elseif @formula2 == 57 zextra = (1,0) / sinh( #z ) temp2 = zextra * zextra elseif @formula2 == 58 temp2 = sinh(1/#z) elseif @formula2 == 59 temp2 = cosh(1/#z) elseif @formula2 == 60 temp2 = tanh(1/#z) elseif @formula2 == 61 temp2 = cotanh(1/#z) elseif @formula2 == 62 temp2 = (1,0)/cosh(1/#z) elseif @formula2 == 63 temp2 = (1,0)/sinh(1/#z) elseif @formula2 == 64 temp2 = sin( #z ) * tan(#z) elseif @formula2 == 65 temp2 = sinh(#z) * tanh(#z) elseif @formula2 == 66 temp2 = sinh(#z) * cosh(#z) elseif @formula2 == 67 temp2 = sinh(#z), zextra = cosh(#z) temp2 = temp2*temp2*zextra*zextra elseif @formula2 == 68 temp2 = sin(#z), zextra = cos(#z) temp2 = temp2*temp2*zextra*zextra elseif @formula2 == 69 zextra = 1/#z temp2 = sin(zextra)*cos(zextra) elseif @formula2 == 70 zextra = sin( 1/#z ) temp2 = zextra*zextra elseif @formula2 == 71 temp2 = sin(#z) * cos(1/#z) elseif @formula2 == 72 temp2 = sin(#z) * sin(1/#z) elseif @formula2 == 73 zextra = log(#z) temp2 = zextra*zextra elseif @formula2 == 74 temp2 = sin(#z) * sin(2*#z) else ; @formula2 == 75 temp2 = exp(2*#z) endif ; formula2-2 else ; 75 < @formula2 <= 100 if @formula2 == 76 temp2 = exp(-2*#z) elseif @formula2 == 77 zextra = 1/#z temp2 = sinh(zextra)*cosh(zextra) elseif @formula2 == 78 zextra = sinh( 1/#z ) temp2 = zextra*zextra elseif @formula2 == 79 temp2 = sinh(#z) * cosh(1/#z) elseif @formula2 == 80 temp2 = sinh(#z) * sinh(1/#z) elseif @formula2 == 81 temp2 = sin(#z) * sinh(#z) elseif @formula2 == 82 temp2 = sin(#z) * cosh(#z) elseif @formula2 == 83 zextra = sin(#z), temp2 = sinh(#z) temp2 = temp2*temp2*zextra*zextra elseif @formula2 == 84 temp2 = sin(#z)*exp(#z) elseif @formula2 == 85 temp2 = cos(#z)*exp(#z) elseif @formula2 == 86 temp2 = sinh(#z)*exp(#z) elseif @formula2 == 87 temp2 = cosh(#z)*exp(#z) elseif @formula2 == 88 temp2 = sin(#z)*log(#z) elseif @formula2 == 89 temp2 = cos(#z)*log(#z) elseif @formula2 == 90 temp2 = sinh(#z)*log(#z) else ; @formula2 == 91 temp2 = cosh(#z)*log(#z) endif ; formula2-2 endif ; formula2-1 ; Execute formula1 option if @formula1 == 0 temp1 = (1,0) elseif @formula1 <= 50 if @formula1 <= 25 if @formula1 == 1 temp1 = log(z) elseif @formula1 == 2 temp1 = exp(#z) elseif @formula1 == 3 temp1 = #z ^ #z elseif @formula1 == 4 temp1 = sin(#z) elseif @formula1 == 5 temp1 = cos(#z) elseif @formula1 == 6 temp1 = tan( #z ) elseif @formula1 == 7 temp1 = asin(#z) elseif @formula1 == 8 temp1 = acos( #z) elseif @formula1 == 9 temp1 = atan(#z) elseif @formula1 == 10 temp1 = sinh( #z ) elseif @formula1 == 11 temp1 = cosh( #z ) elseif @formula1 == 12 temp1 = tanh( #z ) elseif @formula1 == 13 temp1 = asinh( #z ) elseif @formula1 == 14 temp1 = acosh( #z ) elseif @formula1 == 15 temp1 = atanh( #z ) elseif @formula1 == 16 temp1 = log( 1/#z ) elseif @formula1 == 17 temp1 = log(log( #z )) elseif @formula1 == 18 temp1 = exp( -#z ) elseif @formula1 == 19 temp1 = exp( 1/#z ) elseif @formula1 == 20 temp1 = #z^( -#z ) elseif @formula1 == 21 zextra = sin(#z) temp1 = zextra*zextra elseif @formula1 == 22 zextra = cos(#z) temp1 = zextra*zextra elseif @formula1 == 23 zextra = tan(#z) temp1 = zextra*zextra elseif @formula1 == 24 temp1 = cotan( #z ) else ; @formula1 == 25 temp1 = (1,0)/cos( #z ) endif ; formula1-3 else ; 25 < @formula1 <= 50 if @formula1 == 26 temp1 = (1,0)/sin(#z) elseif @formula1 == 27 zextra = cotan( #z ) temp1 = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) temp1 = (1,0)/(zextra * zextra) elseif @formula1 == 29 zextra = sin( #z ) temp1 = (1,0)/(zextra * zextra) elseif @formula1 == 30 temp1 = #z^(#z^#z) elseif @formula1 == 31 temp1 = (1,0)/(#z^(#z^#z)) elseif @formula1 == 32 temp1 = log( -#z ) elseif @formula1 == 33 temp1 = (1,0)/log( #z ) elseif @formula1 == 34 temp1 = sin(#z) * cos(#z) elseif @formula1 == 35 zextra = sin(#z) temp1 = zextra*zextra elseif @formula1 == 36 temp1 = exp((-1,0)/#z) elseif @formula1 == 37 temp1 = atan((1,0)/#z) elseif @formula1 == 38 temp1 = acos((1,0)/#z) elseif @formula1 == 39 temp1 = asin((1,0)/#z) elseif @formula1 == 40 temp1 = sin(1/#z) elseif @formula1 == 41 temp1 = cos(1/#z) elseif @formula1 == 42 temp1 = tan(1/#z) elseif @formula1 == 43 temp1 = cotan(1/#z) elseif @formula1 == 44 temp1 = (1,0)/cos(1/#z) elseif @formula1 == 45 temp1 = (1,0)/sin(1/#z) elseif @formula1 == 46 temp1 = cotanh(#z) elseif @formula1 == 47 temp1 = (1,0)/cosh(#z) elseif @formula1 == 48 temp1 = (1,0)/sinh(#z) elseif @formula1 == 49 temp1 = atanh(1/#z) else ; @formula1 == 50 temp1 = acosh(1/#z) endif ; formula1-3 endif ; formula1-2 elseif @formula1 <= 75 if @formula1 == 51 temp1 = asinh(1/#z) elseif @formula1 == 52 zextra = sinh(#z) temp1 = zextra * zextra elseif @formula1 == 53 zextra = cosh( #z ) temp1 = zextra * zextra elseif @formula1 == 54 zextra = tanh(#z) temp1 = zextra * zextra elseif @formula1 == 55 zextra = cotanh( #z ) temp1 = zextra * zextra elseif @formula1 == 56 zextra = (1,0)/cosh(#z) temp1 = zextra * zextra elseif @formula1 == 57 zextra = (1,0) / sinh( #z ) temp1 = zextra * zextra elseif @formula1 == 58 temp1 = sinh(1/#z) elseif @formula1 == 59 temp1 = cosh(1/#z) elseif @formula1 == 60 temp1 = tanh(1/#z) elseif @formula1 == 61 temp1 = cotanh(1/#z) elseif @formula1 == 62 temp1 = (1,0)/cosh(1/#z) elseif @formula1 == 63 temp1 = (1,0)/sinh(1/#z) elseif @formula1 == 64 temp1 = sin( #z ) * tan(#z) elseif @formula1 == 65 temp1 = sinh(#z) * tanh(#z) elseif @formula1 == 66 temp1 = sinh(#z) * cosh(#z) elseif @formula1 == 67 temp1 = sinh(#z), zextra = cosh(#z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 68 temp1 = sin(#z), zextra = cos(#z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 69 zextra = 1/#z temp1 = sin(zextra)*cos(zextra) elseif @formula1 == 70 zextra = sin( 1/#z ) temp1 = zextra*zextra elseif @formula1 == 71 temp1 = sin(#z) * cos(1/#z) elseif @formula1 == 72 temp1 = sin(#z) * sin(1/#z) elseif @formula1 == 73 zextra = log(#z) temp1 = zextra*zextra elseif @formula1 == 74 temp1 = sin(#z) * sin(2*#z) else ; @formula1 == 75 temp1 = exp(2*#z) endif ; formula1-2 else ; 75 < @formula1 <= 100 if @formula1 == 76 temp1 = exp(-2*#z) elseif @formula1 == 77 zextra = 1/#z temp1 = sinh(zextra)*cosh(zextra) elseif @formula1 == 78 zextra = sinh( 1/#z ) temp1 = zextra*zextra elseif @formula1 == 79 temp1 = sinh(#z) * cosh(1/#z) elseif @formula1 == 80 temp1 = sinh(#z) * sinh(1/#z) elseif @formula1 == 81 temp1 = sin(#z) * sinh(#z) elseif @formula1 == 82 temp1 = sin(#z) * cosh(#z) elseif @formula1 == 83 zextra = sin(#z), temp1 = sinh(#z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 84 temp1 = sin(#z)*exp(#z) elseif @formula1 == 85 temp1 = cos(#z)*exp(#z) elseif @formula1 == 86 temp1 = sinh(#z)*exp(#z) elseif @formula1 == 87 temp1 = cosh(#z)*exp(#z) elseif @formula1 == 88 temp1 = sin(#z)*log(#z) elseif @formula1 == 89 temp1 = cos(#z)*log(#z) elseif @formula1 == 90 temp1 = sinh(#z)*log(#z) else ; @formula1 == 91 temp1 = cosh(#z)*log(#z) endif ; formula1-2 endif ; formula1-1 z = @coeff3 * temp3 * z^@power3 + @coeff2 * temp2 * z^@power2 + \ @coeff1 * temp1 * z^@power1 + @coeffp * jc if @blend z = @weightzfn * z + @weightzpwr * (zblend^@zpower + jc) endif ; @blend bailout: |z| < @bail default: title = "Trinomial_1*Fn +p" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param power3 caption = "Power 3" default = (4,0) hint = "This is the exponent used for the third term of the trinomial" endparam param coeff3 caption = "Coeff 3" default = (-1,0) hint = "This is the coefficient of the third term in the trinomial" endparam param formula3 caption = "Formula 3" enum = "none" "log(z)" "e^z" "z^z" "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "sin(z)*cos(z)" "sin(z^2)" "e^(-1/z)" "acot(z)" "asec(z)" \ "acsc(z)" "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" \ "csc(1/z)" "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" \ "acosech(z)" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula that is multiplied by the third term of the trinomial" endparam param power2 caption = "Power 2" default = (3,0) hint = "This is the exponent used for the second term of the trinomial" endparam param coeff2 caption = "Coeff 2" default = (1,0) hint = "This is the coefficient of the second term in the trinomial" endparam param formula2 caption = "Formula 2" enum = "none" "log(z)" "e^z" "z^z" "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "sin(z)*cos(z)" "sin(z^2)" "e^(-1/z)" "acot(z)" "asec(z)" \ "acsc(z)" "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" \ "csc(1/z)" "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" \ "acosech(z)" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula that is multiplied by the second term of the trinomial" endparam param power1 caption = "Power 1" default = (2,0) hint = "This is the exponent used for the first term of the trinomial" endparam param coeff1 caption = "Coeff 1" default = (-1,0) hint = "This is the coefficient of the first term in the trinomial" endparam param formula1 caption = "Formula 1" enum = "none" "log(z)" "e^z" "z^z" "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "sin(z)*cos(z)" "sin(z^2)" "e^(-1/z)" "acot(z)" "asec(z)" \ "acsc(z)" "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" \ "csc(1/z)" "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" \ "acosech(z)" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula that is multiplied by the first term of the trinomial" endparam param coeffp caption = "Pixel Coefficient" default = 1.0 hint = "This is multiplied by the initialized pixel (Mand)/ seed \ constant (Julia) term" endparam param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-trinomial1b*Fn+P-J" jconstant = #pixel bail = bail power3 = power3 coeff3 = coeff3 formula3 = formula3 power2 = power2 coeff2 = coeff2 formula2 = formula2 power1 = power1 coeff1 = coeff1 formula1 = formula1 coeffp = coeffp blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc } jam-trinomial1c(Fn)+P { ; jam 011214 ; General trinomial Mandelbrot/Julia. Formula executed is ; z(n+1) = c3*f3(z(n))^power3 + c2*f2(z(n))^power2 + c1*f1(z(n))^power1 + c0*g(pixel), ; where f1, f2, f3, and g are from my standard function library. ; For type Mandelbrot, g operates on #pixel; ; for type Julia, g operates on the seed constant. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = (0,0) ; temp/spare scratch variable complex temp3 = complex temp2 = complex temp1 = (0,0) complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: zblend = z ; Execute formula3 option if @formula3 == 0 temp3 = #z elseif @formula3 <= 50 if @formula3 <= 25 if @formula3 == 1 temp3 = log(z) elseif @formula3 == 2 temp3 = exp(#z) elseif @formula3 == 3 temp3 = #z ^ #z elseif @formula3 == 4 temp3 = sin(#z) elseif @formula3 == 5 temp3 = cos(#z) elseif @formula3 == 6 temp3 = tan( #z ) elseif @formula3 == 7 temp3 = asin(#z) elseif @formula3 == 8 temp3 = acos( #z) elseif @formula3 == 9 temp3 = atan(#z) elseif @formula3 == 10 temp3 = sinh( #z ) elseif @formula3 == 11 temp3 = cosh( #z ) elseif @formula3 == 12 temp3 = tanh( #z ) elseif @formula3 == 13 temp3 = asinh( #z ) elseif @formula3 == 14 temp3 = acosh( #z ) elseif @formula3 == 15 temp3 = atanh( #z ) elseif @formula3 == 16 temp3 = log( 1/#z ) elseif @formula3 == 17 temp3 = log(log( #z )) elseif @formula3 == 18 temp3 = exp( -#z ) elseif @formula3 == 19 temp3 = exp( 1/#z ) elseif @formula3 == 20 temp3 = #z^( -#z ) elseif @formula3 == 21 zextra = sin(#z) temp3 = zextra*zextra elseif @formula3 == 22 zextra = cos(#z) temp3 = zextra*zextra elseif @formula3 == 23 zextra = tan(#z) temp3 = zextra*zextra elseif @formula3 == 24 temp3 = cotan( #z ) else ; @formula3 == 25 temp3 = (1,0)/cos( #z ) endif ; formula3-3 else ; 25 < @formula3 <= 50 if @formula3 == 26 temp3 = (1,0)/sin(#z) elseif @formula3 == 27 zextra = cotan( #z ) temp3 = zextra * zextra elseif @formula3 == 28 zextra = cos( #z ) temp3 = (1,0)/(zextra * zextra) elseif @formula3 == 29 zextra = sin( #z ) temp3 = (1,0)/(zextra * zextra) elseif @formula3 == 30 temp3 = #z^(#z^#z) elseif @formula3 == 31 temp3 = (1,0)/(#z^(#z^#z)) elseif @formula3 == 32 temp3 = log( -#z ) elseif @formula3 == 33 temp3 = (1,0)/log( #z ) elseif @formula3 == 34 temp3 = sin(#z) * cos(#z) elseif @formula3 == 35 zextra = sin(#z) temp3 = zextra*zextra elseif @formula3 == 36 temp3 = exp((-1,0)/#z) elseif @formula3 == 37 temp3 = atan((1,0)/#z) elseif @formula3 == 38 temp3 = acos((1,0)/#z) elseif @formula3 == 39 temp3 = asin((1,0)/#z) elseif @formula3 == 40 temp3 = sin(1/#z) elseif @formula3 == 41 temp3 = cos(1/#z) elseif @formula3 == 42 temp3 = tan(1/#z) elseif @formula3 == 43 temp3 = cotan(1/#z) elseif @formula3 == 44 temp3 = (1,0)/cos(1/#z) elseif @formula3 == 45 temp3 = (1,0)/sin(1/#z) elseif @formula3 == 46 temp3 = cotanh(#z) elseif @formula3 == 47 temp3 = (1,0)/cosh(#z) elseif @formula3 == 48 temp3 = (1,0)/sinh(#z) elseif @formula3 == 49 temp3 = atanh(1/#z) else ; @formula3 == 50 temp3 = acosh(1/#z) endif ; formula3-3 endif ; formula3-2 elseif @formula3 <= 75 if @formula3 == 51 temp3 = asinh(1/#z) elseif @formula3 == 52 zextra = sinh(#z) temp3 = zextra * zextra elseif @formula3 == 53 zextra = cosh( #z ) temp3 = zextra * zextra elseif @formula3 == 54 zextra = tanh(#z) temp3 = zextra * zextra elseif @formula3 == 55 zextra = cotanh( #z ) temp3 = zextra * zextra elseif @formula3 == 56 zextra = (1,0)/cosh(#z) temp3 = zextra * zextra elseif @formula3 == 57 zextra = (1,0) / sinh( #z ) temp3 = zextra * zextra elseif @formula3 == 58 temp3 = sinh(1/#z) elseif @formula3 == 59 temp3 = cosh(1/#z) elseif @formula3 == 60 temp3 = tanh(1/#z) elseif @formula3 == 61 temp3 = cotanh(1/#z) elseif @formula3 == 62 temp3 = (1,0)/cosh(1/#z) elseif @formula3 == 63 temp3 = (1,0)/sinh(1/#z) elseif @formula3 == 64 temp3 = sin( #z ) * tan(#z) elseif @formula3 == 65 temp3 = sinh(#z) * tanh(#z) elseif @formula3 == 66 temp3 = sinh(#z) * cosh(#z) elseif @formula3 == 67 temp3 = sinh(#z), zextra = cosh(#z) temp3 = temp3*temp3*zextra*zextra elseif @formula3 == 68 temp3 = sin(#z), zextra = cos(#z) temp3 = temp3*temp3*zextra*zextra elseif @formula3 == 69 zextra = 1/#z temp3 = sin(zextra)*cos(zextra) elseif @formula3 == 70 zextra = sin( 1/#z ) temp3 = zextra*zextra elseif @formula3 == 71 temp3 = sin(#z) * cos(1/#z) elseif @formula3 == 72 temp3 = sin(#z) * sin(1/#z) elseif @formula3 == 73 zextra = log(#z) temp3 = zextra*zextra elseif @formula3 == 74 temp3 = sin(#z) * sin(2*#z) else ; @formula3 == 75 temp3 = exp(2*#z) endif ; formula3-2 else ; 75 < @formula3 <= 100 if @formula3 == 76 temp3 = exp(-2*#z) elseif @formula3 == 77 zextra = 1/#z temp3 = sinh(zextra)*cosh(zextra) elseif @formula3 == 78 zextra = sinh( 1/#z ) temp3 = zextra*zextra elseif @formula3 == 79 temp3 = sinh(#z) * cosh(1/#z) elseif @formula3 == 80 temp3 = sinh(#z) * sinh(1/#z) elseif @formula3 == 81 temp3 = sin(#z) * sinh(#z) elseif @formula3 == 82 temp3 = sin(#z) * cosh(#z) elseif @formula3 == 83 zextra = sin(#z), temp3 = sinh(#z) temp3 = temp3*temp3*zextra*zextra elseif @formula3 == 84 temp3 = sin(#z)*exp(#z) elseif @formula3 == 85 temp3 = cos(#z)*exp(#z) elseif @formula3 == 86 temp3 = sinh(#z)*exp(#z) elseif @formula3 == 87 temp3 = cosh(#z)*exp(#z) elseif @formula3 == 88 temp3 = sin(#z)*log(#z) elseif @formula3 == 89 temp3 = cos(#z)*log(#z) elseif @formula3 == 90 temp3 = sinh(#z)*log(#z) else ; @formula3 == 91 temp3 = cosh(#z)*log(#z) endif ; formula3-2 endif ; formula3-1 ; Execute formula2 option if @formula2 == 0 temp2 = #z elseif @formula2 <= 50 if @formula2 <= 25 if @formula2 == 1 temp2 = log(z) elseif @formula2 == 2 temp2 = exp(#z) elseif @formula2 == 3 temp2 = #z ^ #z elseif @formula2 == 4 temp2 = sin(#z) elseif @formula2 == 5 temp2 = cos(#z) elseif @formula2 == 6 temp2 = tan( #z ) elseif @formula2 == 7 temp2 = asin(#z) elseif @formula2 == 8 temp2 = acos( #z) elseif @formula2 == 9 temp2 = atan(#z) elseif @formula2 == 10 temp2 = sinh( #z ) elseif @formula2 == 11 temp2 = cosh( #z ) elseif @formula2 == 12 temp2 = tanh( #z ) elseif @formula2 == 13 temp2 = asinh( #z ) elseif @formula2 == 14 temp2 = acosh( #z ) elseif @formula2 == 15 temp2 = atanh( #z ) elseif @formula2 == 16 temp2 = log( 1/#z ) elseif @formula2 == 17 temp2 = log(log( #z )) elseif @formula2 == 18 temp2 = exp( -#z ) elseif @formula2 == 19 temp2 = exp( 1/#z ) elseif @formula2 == 20 temp2 = #z^( -#z ) elseif @formula2 == 21 zextra = sin(#z) temp2 = zextra*zextra elseif @formula2 == 22 zextra = cos(#z) temp2 = zextra*zextra elseif @formula2 == 23 zextra = tan(#z) temp2 = zextra*zextra elseif @formula2 == 24 temp2 = cotan( #z ) else ; @formula2 == 25 temp2 = (1,0)/cos( #z ) endif ; formula2-3 else ; 25 < @formula2 <= 50 if @formula2 == 26 temp2 = (1,0)/sin(#z) elseif @formula2 == 27 zextra = cotan( #z ) temp2 = zextra * zextra elseif @formula2 == 28 zextra = cos( #z ) temp2 = (1,0)/(zextra * zextra) elseif @formula2 == 29 zextra = sin( #z ) temp2 = (1,0)/(zextra * zextra) elseif @formula2 == 30 temp2 = #z^(#z^#z) elseif @formula2 == 31 temp2 = (1,0)/(#z^(#z^#z)) elseif @formula2 == 32 temp2 = log( -#z ) elseif @formula2 == 33 temp2 = (1,0)/log( #z ) elseif @formula2 == 34 temp2 = sin(#z) * cos(#z) elseif @formula2 == 35 zextra = sin(#z) temp2 = zextra*zextra elseif @formula2 == 36 temp2 = exp((-1,0)/#z) elseif @formula2 == 37 temp2 = atan((1,0)/#z) elseif @formula2 == 38 temp2 = acos((1,0)/#z) elseif @formula2 == 39 temp2 = asin((1,0)/#z) elseif @formula2 == 40 temp2 = sin(1/#z) elseif @formula2 == 41 temp2 = cos(1/#z) elseif @formula2 == 42 temp2 = tan(1/#z) elseif @formula2 == 43 temp2 = cotan(1/#z) elseif @formula2 == 44 temp2 = (1,0)/cos(1/#z) elseif @formula2 == 45 temp2 = (1,0)/sin(1/#z) elseif @formula2 == 46 temp2 = cotanh(#z) elseif @formula2 == 47 temp2 = (1,0)/cosh(#z) elseif @formula2 == 48 temp2 = (1,0)/sinh(#z) elseif @formula2 == 49 temp2 = atanh(1/#z) else ; @formula2 == 50 temp2 = acosh(1/#z) endif ; formula2-3 endif ; formula2-2 elseif @formula2 <= 75 if @formula2 == 51 temp2 = asinh(1/#z) elseif @formula2 == 52 zextra = sinh(#z) temp2 = zextra * zextra elseif @formula2 == 53 zextra = cosh( #z ) temp2 = zextra * zextra elseif @formula2 == 54 zextra = tanh(#z) temp2 = zextra * zextra elseif @formula2 == 55 zextra = cotanh( #z ) temp2 = zextra * zextra elseif @formula2 == 56 zextra = (1,0)/cosh(#z) temp2 = zextra * zextra elseif @formula2 == 57 zextra = (1,0) / sinh( #z ) temp2 = zextra * zextra elseif @formula2 == 58 temp2 = sinh(1/#z) elseif @formula2 == 59 temp2 = cosh(1/#z) elseif @formula2 == 60 temp2 = tanh(1/#z) elseif @formula2 == 61 temp2 = cotanh(1/#z) elseif @formula2 == 62 temp2 = (1,0)/cosh(1/#z) elseif @formula2 == 63 temp2 = (1,0)/sinh(1/#z) elseif @formula2 == 64 temp2 = sin( #z ) * tan(#z) elseif @formula2 == 65 temp2 = sinh(#z) * tanh(#z) elseif @formula2 == 66 temp2 = sinh(#z) * cosh(#z) elseif @formula2 == 67 temp2 = sinh(#z), zextra = cosh(#z) temp2 = temp2*temp2*zextra*zextra elseif @formula2 == 68 temp2 = sin(#z), zextra = cos(#z) temp2 = temp2*temp2*zextra*zextra elseif @formula2 == 69 zextra = 1/#z temp2 = sin(zextra)*cos(zextra) elseif @formula2 == 70 zextra = sin( 1/#z ) temp2 = zextra*zextra elseif @formula2 == 71 temp2 = sin(#z) * cos(1/#z) elseif @formula2 == 72 temp2 = sin(#z) * sin(1/#z) elseif @formula2 == 73 zextra = log(#z) temp2 = zextra*zextra elseif @formula2 == 74 temp2 = sin(#z) * sin(2*#z) else ; @formula2 == 75 temp2 = exp(2*#z) endif ; formula2-2 else ; 75 < @formula2 <= 100 if @formula2 == 76 temp2 = exp(-2*#z) elseif @formula2 == 77 zextra = 1/#z temp2 = sinh(zextra)*cosh(zextra) elseif @formula2 == 78 zextra = sinh( 1/#z ) temp2 = zextra*zextra elseif @formula2 == 79 temp2 = sinh(#z) * cosh(1/#z) elseif @formula2 == 80 temp2 = sinh(#z) * sinh(1/#z) elseif @formula2 == 81 temp2 = sin(#z) * sinh(#z) elseif @formula2 == 82 temp2 = sin(#z) * cosh(#z) elseif @formula2 == 83 zextra = sin(#z), temp2 = sinh(#z) temp2 = temp2*temp2*zextra*zextra elseif @formula2 == 84 temp2 = sin(#z)*exp(#z) elseif @formula2 == 85 temp2 = cos(#z)*exp(#z) elseif @formula2 == 86 temp2 = sinh(#z)*exp(#z) elseif @formula2 == 87 temp2 = cosh(#z)*exp(#z) elseif @formula2 == 88 temp2 = sin(#z)*log(#z) elseif @formula2 == 89 temp2 = cos(#z)*log(#z) elseif @formula2 == 90 temp2 = sinh(#z)*log(#z) else ; @formula2 == 91 temp2 = cosh(#z)*log(#z) endif ; formula2-2 endif ; formula2-1 ; Execute formula1 option if @formula1 == 0 temp1 = #z elseif @formula1 <= 50 if @formula1 <= 25 if @formula1 == 1 temp1 = log(z) elseif @formula1 == 2 temp1 = exp(#z) elseif @formula1 == 3 temp1 = #z ^ #z elseif @formula1 == 4 temp1 = sin(#z) elseif @formula1 == 5 temp1 = cos(#z) elseif @formula1 == 6 temp1 = tan( #z ) elseif @formula1 == 7 temp1 = asin(#z) elseif @formula1 == 8 temp1 = acos( #z) elseif @formula1 == 9 temp1 = atan(#z) elseif @formula1 == 10 temp1 = sinh( #z ) elseif @formula1 == 11 temp1 = cosh( #z ) elseif @formula1 == 12 temp1 = tanh( #z ) elseif @formula1 == 13 temp1 = asinh( #z ) elseif @formula1 == 14 temp1 = acosh( #z ) elseif @formula1 == 15 temp1 = atanh( #z ) elseif @formula1 == 16 temp1 = log( 1/#z ) elseif @formula1 == 17 temp1 = log(log( #z )) elseif @formula1 == 18 temp1 = exp( -#z ) elseif @formula1 == 19 temp1 = exp( 1/#z ) elseif @formula1 == 20 temp1 = #z^( -#z ) elseif @formula1 == 21 zextra = sin(#z) temp1 = zextra*zextra elseif @formula1 == 22 zextra = cos(#z) temp1 = zextra*zextra elseif @formula1 == 23 zextra = tan(#z) temp1 = zextra*zextra elseif @formula1 == 24 temp1 = cotan( #z ) else ; @formula1 == 25 temp1 = (1,0)/cos( #z ) endif ; formula1-3 else ; 25 < @formula1 <= 50 if @formula1 == 26 temp1 = (1,0)/sin(#z) elseif @formula1 == 27 zextra = cotan( #z ) temp1 = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) temp1 = (1,0)/(zextra * zextra) elseif @formula1 == 29 zextra = sin( #z ) temp1 = (1,0)/(zextra * zextra) elseif @formula1 == 30 temp1 = #z^(#z^#z) elseif @formula1 == 31 temp1 = (1,0)/(#z^(#z^#z)) elseif @formula1 == 32 temp1 = log( -#z ) elseif @formula1 == 33 temp1 = (1,0)/log( #z ) elseif @formula1 == 34 temp1 = sin(#z) * cos(#z) elseif @formula1 == 35 zextra = sin(#z) temp1 = zextra*zextra elseif @formula1 == 36 temp1 = exp((-1,0)/#z) elseif @formula1 == 37 temp1 = atan((1,0)/#z) elseif @formula1 == 38 temp1 = acos((1,0)/#z) elseif @formula1 == 39 temp1 = asin((1,0)/#z) elseif @formula1 == 40 temp1 = sin(1/#z) elseif @formula1 == 41 temp1 = cos(1/#z) elseif @formula1 == 42 temp1 = tan(1/#z) elseif @formula1 == 43 temp1 = cotan(1/#z) elseif @formula1 == 44 temp1 = (1,0)/cos(1/#z) elseif @formula1 == 45 temp1 = (1,0)/sin(1/#z) elseif @formula1 == 46 temp1 = cotanh(#z) elseif @formula1 == 47 temp1 = (1,0)/cosh(#z) elseif @formula1 == 48 temp1 = (1,0)/sinh(#z) elseif @formula1 == 49 temp1 = atanh(1/#z) else ; @formula1 == 50 temp1 = acosh(1/#z) endif ; formula1-3 endif ; formula1-2 elseif @formula1 <= 75 if @formula1 == 51 temp1 = asinh(1/#z) elseif @formula1 == 52 zextra = sinh(#z) temp1 = zextra * zextra elseif @formula1 == 53 zextra = cosh( #z ) temp1 = zextra * zextra elseif @formula1 == 54 zextra = tanh(#z) temp1 = zextra * zextra elseif @formula1 == 55 zextra = cotanh( #z ) temp1 = zextra * zextra elseif @formula1 == 56 zextra = (1,0)/cosh(#z) temp1 = zextra * zextra elseif @formula1 == 57 zextra = (1,0) / sinh( #z ) temp1 = zextra * zextra elseif @formula1 == 58 temp1 = sinh(1/#z) elseif @formula1 == 59 temp1 = cosh(1/#z) elseif @formula1 == 60 temp1 = tanh(1/#z) elseif @formula1 == 61 temp1 = cotanh(1/#z) elseif @formula1 == 62 temp1 = (1,0)/cosh(1/#z) elseif @formula1 == 63 temp1 = (1,0)/sinh(1/#z) elseif @formula1 == 64 temp1 = sin( #z ) * tan(#z) elseif @formula1 == 65 temp1 = sinh(#z) * tanh(#z) elseif @formula1 == 66 temp1 = sinh(#z) * cosh(#z) elseif @formula1 == 67 temp1 = sinh(#z), zextra = cosh(#z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 68 temp1 = sin(#z), zextra = cos(#z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 69 zextra = 1/#z temp1 = sin(zextra)*cos(zextra) elseif @formula1 == 70 zextra = sin( 1/#z ) temp1 = zextra*zextra elseif @formula1 == 71 temp1 = sin(#z) * cos(1/#z) elseif @formula1 == 72 temp1 = sin(#z) * sin(1/#z) elseif @formula1 == 73 zextra = log(#z) temp1 = zextra*zextra elseif @formula1 == 74 temp1 = sin(#z) * sin(2*#z) else ; @formula1 == 75 temp1 = exp(2*#z) endif ; formula1-2 else ; 75 < @formula1 <= 100 if @formula1 == 76 temp1 = exp(-2*#z) elseif @formula1 == 77 zextra = 1/#z temp1 = sinh(zextra)*cosh(zextra) elseif @formula1 == 78 zextra = sinh( 1/#z ) temp1 = zextra*zextra elseif @formula1 == 79 temp1 = sinh(#z) * cosh(1/#z) elseif @formula1 == 80 temp1 = sinh(#z) * sinh(1/#z) elseif @formula1 == 81 temp1 = sin(#z) * sinh(#z) elseif @formula1 == 82 temp1 = sin(#z) * cosh(#z) elseif @formula1 == 83 zextra = sin(#z), temp1 = sinh(#z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 84 temp1 = sin(#z)*exp(#z) elseif @formula1 == 85 temp1 = cos(#z)*exp(#z) elseif @formula1 == 86 temp1 = sinh(#z)*exp(#z) elseif @formula1 == 87 temp1 = cosh(#z)*exp(#z) elseif @formula1 == 88 temp1 = sin(#z)*log(#z) elseif @formula1 == 89 temp1 = cos(#z)*log(#z) elseif @formula1 == 90 temp1 = sinh(#z)*log(#z) else ; @formula1 == 91 temp1 = cosh(#z)*log(#z) endif ; formula1-2 endif ; formula1-1 z = @coeff3 * temp3^@power3 + @coeff2 * temp2^@power2 + \ @coeff1 * temp1^@power1 + @coeffp * jc if @blend z = @weightzfn * z + @weightzpwr * (zblend^@zpower + jc) endif ; @blend bailout: |z| < @bail default: title = "Trinomial_1(Fn) +p" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param power3 caption = "Power 3" default = (4,0) hint = "This is the exponent used for the third term of the trinomial" endparam param coeff3 caption = "Coeff 3" default = (-1,0) hint = "This is the coefficient of the third term in the trinomial" endparam param formula3 caption = "Formula 3" enum = "none" "log(z)" "e^z" "z^z" "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "sin(z)*cos(z)" "sin(z^2)" "e^(-1/z)" "acot(z)" "asec(z)" \ "acsc(z)" "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" \ "csc(1/z)" "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" \ "acosech(z)" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "This formula operates on z then forms the third term of the trinomial" endparam param power2 caption = "Power 2" default = (3,0) hint = "This is the exponent used for the second term of the trinomial" endparam param coeff2 caption = "Coeff 2" default = (1,0) hint = "This is the coefficient of the second term in the trinomial" endparam param formula2 caption = "Formula 2" enum = "none" "log(z)" "e^z" "z^z" "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "sin(z)*cos(z)" "sin(z^2)" "e^(-1/z)" "acot(z)" "asec(z)" \ "acsc(z)" "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" \ "csc(1/z)" "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" \ "acosech(z)" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "This formula operates on z then forms the second term of the trinomial" endparam param power1 caption = "Power 1" default = (2,0) hint = "This is the exponent used for the first term of the trinomial" endparam param coeff1 caption = "Coeff 1" default = (-1,0) hint = "This is the coefficient of the first term in the trinomial" endparam param formula1 caption = "Formula 1" enum = "none" "log(z)" "e^z" "z^z" "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "sin(z)*cos(z)" "sin(z^2)" "e^(-1/z)" "acot(z)" "asec(z)" \ "acsc(z)" "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" \ "csc(1/z)" "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" \ "acosech(z)" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "This formula operates on z then forms the first term of the trinomial" endparam param coeffp caption = "Pixel Coefficient" default = 1.0 hint = "This is multiplied by the initialized pixel (Mand)/ seed \ constant (Julia) term" endparam param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-trinomial1c(Fn)+P-J" jconstant = #pixel bail = bail power3 = power3 coeff3 = coeff3 formula3 = formula3 power2 = power2 coeff2 = coeff2 formula2 = formula2 power1 = power1 coeff1 = coeff1 formula1 = formula1 coeffp = coeffp blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc } jam-Fn[trinomial1d+] { ; jam 011214 ; General trinomial Mandelbrot/Julia. Formula executed is ; z(n+1) = f[ c3*z(n)^power3 + c2*z(n)^power2 + c1*z(n)^power1 + c0*g(pixel) ], ; where f and g are from my standard function library. ; For type Mandelbrot, g operates on #pixel; ; for type Julia, g operates on the seed constant. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = (0,0) ; temp/spare scratch variable complex temp1 = (0,0) complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: zblend = z z = @coeff3 * z^@power3 + @coeff2 * z^@power2 + @coeff1 * z^@power1 + @coeffp * jc ; Execute formula option if @formula1 == 0 temp1 = z elseif @formula1 <= 50 if @formula1 <= 25 if @formula1 == 1 temp1 = log(z) elseif @formula1 == 2 temp1 = exp(z) elseif @formula1 == 3 temp1 = z ^ z elseif @formula1 == 4 temp1 = sin(z) elseif @formula1 == 5 temp1 = cos(z) elseif @formula1 == 6 temp1 = tan( z ) elseif @formula1 == 7 temp1 = asin(z) elseif @formula1 == 8 temp1 = acos( z) elseif @formula1 == 9 temp1 = atan(z) elseif @formula1 == 10 temp1 = sinh( z ) elseif @formula1 == 11 temp1 = cosh( z ) elseif @formula1 == 12 temp1 = tanh( z ) elseif @formula1 == 13 temp1 = asinh( z ) elseif @formula1 == 14 temp1 = acosh( z ) elseif @formula1 == 15 temp1 = atanh( z ) elseif @formula1 == 16 temp1 = log( 1/z ) elseif @formula1 == 17 temp1 = log(log( z )) elseif @formula1 == 18 temp1 = exp( -z ) elseif @formula1 == 19 temp1 = exp( 1/z ) elseif @formula1 == 20 temp1 = z^( -z ) elseif @formula1 == 21 zextra = sin(z) temp1 = zextra*zextra elseif @formula1 == 22 zextra = cos(z) temp1 = zextra*zextra elseif @formula1 == 23 zextra = tan(z) temp1 = zextra*zextra elseif @formula1 == 24 temp1 = cotan( z ) else ; @formula1 == 25 temp1 = (1,0)/cos( z ) endif ; formula1-3 else ; 25 < @formula1 <= 50 if @formula1 == 26 temp1 = (1,0)/sin(z) elseif @formula1 == 27 zextra = cotan( z ) temp1 = zextra * zextra elseif @formula1 == 28 zextra = cos( z ) temp1 = (1,0)/(zextra * zextra) elseif @formula1 == 29 zextra = sin( z ) temp1 = (1,0)/(zextra * zextra) elseif @formula1 == 30 temp1 = z^(z^z) elseif @formula1 == 31 temp1 = (1,0)/(z^(z^z)) elseif @formula1 == 32 temp1 = log( -z ) elseif @formula1 == 33 temp1 = (1,0)/log( z ) elseif @formula1 == 34 temp1 = sin(z) * cos(z) elseif @formula1 == 35 zextra = sin(z) temp1 = zextra*zextra elseif @formula1 == 36 temp1 = exp((-1,0)/z) elseif @formula1 == 37 temp1 = atan((1,0)/z) elseif @formula1 == 38 temp1 = acos((1,0)/z) elseif @formula1 == 39 temp1 = asin((1,0)/z) elseif @formula1 == 40 temp1 = sin(1/z) elseif @formula1 == 41 temp1 = cos(1/z) elseif @formula1 == 42 temp1 = tan(1/z) elseif @formula1 == 43 temp1 = cotan(1/z) elseif @formula1 == 44 temp1 = (1,0)/cos(1/z) elseif @formula1 == 45 temp1 = (1,0)/sin(1/z) elseif @formula1 == 46 temp1 = cotanh(z) elseif @formula1 == 47 temp1 = (1,0)/cosh(z) elseif @formula1 == 48 temp1 = (1,0)/sinh(z) elseif @formula1 == 49 temp1 = atanh(1/z) else ; @formula1 == 50 temp1 = acosh(1/z) endif ; formula1-3 endif ; formula1-2 elseif @formula1 <= 75 if @formula1 == 51 temp1 = asinh(1/z) elseif @formula1 == 52 zextra = sinh(z) temp1 = zextra * zextra elseif @formula1 == 53 zextra = cosh( z ) temp1 = zextra * zextra elseif @formula1 == 54 zextra = tanh(z) temp1 = zextra * zextra elseif @formula1 == 55 zextra = cotanh( z ) temp1 = zextra * zextra elseif @formula1 == 56 zextra = (1,0)/cosh(z) temp1 = zextra * zextra elseif @formula1 == 57 zextra = (1,0) / sinh( z ) temp1 = zextra * zextra elseif @formula1 == 58 temp1 = sinh(1/z) elseif @formula1 == 59 temp1 = cosh(1/z) elseif @formula1 == 60 temp1 = tanh(1/z) elseif @formula1 == 61 temp1 = cotanh(1/z) elseif @formula1 == 62 temp1 = (1,0)/cosh(1/z) elseif @formula1 == 63 temp1 = (1,0)/sinh(1/z) elseif @formula1 == 64 temp1 = sin( z ) * tan(z) elseif @formula1 == 65 temp1 = sinh(z) * tanh(z) elseif @formula1 == 66 temp1 = sinh(z) * cosh(z) elseif @formula1 == 67 temp1 = sinh(z), zextra = cosh(z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 68 temp1 = sin(z), zextra = cos(z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 69 zextra = 1/z temp1 = sin(zextra)*cos(zextra) elseif @formula1 == 70 zextra = sin( 1/z ) temp1 = zextra*zextra elseif @formula1 == 71 temp1 = sin(z) * cos(1/z) elseif @formula1 == 72 temp1 = sin(z) * sin(1/z) elseif @formula1 == 73 zextra = log(z) temp1 = zextra*zextra elseif @formula1 == 74 temp1 = sin(z) * sin(2*z) else ; @formula1 == 75 temp1 = exp(2*z) endif ; formula1-2 else ; 75 < @formula1 <= 100 if @formula1 == 76 temp1 = exp(-2*z) elseif @formula1 == 77 zextra = 1/z temp1 = sinh(zextra)*cosh(zextra) elseif @formula1 == 78 zextra = sinh( 1/z ) temp1 = zextra*zextra elseif @formula1 == 79 temp1 = sinh(z) * cosh(1/z) elseif @formula1 == 80 temp1 = sinh(z) * sinh(1/z) elseif @formula1 == 81 temp1 = sin(z) * sinh(z) elseif @formula1 == 82 temp1 = sin(z) * cosh(z) elseif @formula1 == 83 zextra = sin(z), temp1 = sinh(z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 84 temp1 = sin(z)*exp(z) elseif @formula1 == 85 temp1 = cos(z)*exp(z) elseif @formula1 == 86 temp1 = sinh(z)*exp(z) elseif @formula1 == 87 temp1 = cosh(z)*exp(z) elseif @formula1 == 88 temp1 = sin(z)*log(z) elseif @formula1 == 89 temp1 = cos(z)*log(z) elseif @formula1 == 90 temp1 = sinh(z)*log(z) else ; @formula1 == 91 temp1 = cosh(z)*log(z) endif ; formula1-2 endif ; formula1-1 z = temp1 if @blend z = @weightzfn * z + @weightzpwr * (zblend^@zpower + jc) endif ; @blend bailout: |z| < @bail default: title = "Fn(Trinomial_1 +p)" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param power3 caption = "Power 3" default = (4,0) hint = "This is the exponent used for the third term of the trinomial" endparam param coeff3 caption = "Coeff 3" default = (-1,0) hint = "This is the coefficient of the third term in the trinomial" endparam param power2 caption = "Power 2" default = (3,0) hint = "This is the exponent used for the second term of the trinomial" endparam param coeff2 caption = "Coeff 2" default = (1,0) hint = "This is the coefficient of the second term in the trinomial" endparam param power1 caption = "Power 1" default = (2,0) hint = "This is the exponent used for the first term of the trinomial" endparam param coeff1 caption = "Coeff 1" default = (-1,0) hint = "This is the coefficient of the first term in the trinomial" endparam param formula1 caption = "Formula" enum = "none" "log(z)" "e^z" "z^z" "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "sin(z)*cos(z)" "sin(z^2)" "e^(-1/z)" "acot(z)" "asec(z)" \ "acsc(z)" "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" \ "csc(1/z)" "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" \ "acosech(z)" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula that operates on the entire trinomial" endparam param coeffp caption = "Pixel Coefficient" default = 1.0 hint = "This is multiplied by the initialized pixel (Mand)/ seed \ constant (Julia) term" endparam param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 0 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-Fn[trinomial1d+]-J" jconstant = #pixel bail = bail power3 = power3 coeff3 = coeff3 power2 = power2 coeff2 = coeff2 power1 = power1 coeff1 = coeff1 formula1 = formula1 coeffp = coeffp blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc } jam-trinomial1a+P-J { ; jam 011214 ; General trinomial Mandelbrot/Julia. Formula executed is ; z(n+1) = c3*z(n)^power3 + c2*z(n)^power2 + c1*z(n)^power1 + c0*g(pixel), ; where g is from my standard function library. ; For type Mandelbrot, g operates on #pixel; ; for type Julia, g operates on the seed constant. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = (0,0) ; temp/spare scratch variable complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: zblend = z z = @coeff3 * z^@power3 + @coeff2 * z^@power2 + @coeff1 * z^@power1 + @coeffp * jc if @blend z = @weightzfn * z + @weightzpwr * (zblend^@zpower + jc) endif ; @blend bailout: |z| < @bail default: title = "Trinomial_1 +p Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param power3 caption = "Power 3" default = (4,0) hint = "This is the exponent used for the third term of the trinomial" endparam param coeff3 caption = "Coeff 3" default = (-1,0) hint = "This is the coefficient of the third term in the trinomial" endparam param power2 caption = "Power 2" default = (3,0) hint = "This is the exponent used for the second term of the trinomial" endparam param coeff2 caption = "Coeff 2" default = (1,0) hint = "This is the coefficient of the second term in the trinomial" endparam param power1 caption = "Power 1" default = (2,0) hint = "This is the exponent used for the first term of the trinomial" endparam param coeff1 caption = "Coeff 1" default = (-1,0) hint = "This is the coefficient of the first term in the trinomial" endparam param coeffp caption = "Pixel Coefficient" default = 1.0 hint = "This is multiplied by the initialized pixel (Mand)/ seed \ constant (Julia) term" endparam param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-trinomial1a+P" perturbation = #pixel bail = bail power3 = power3 coeff3 = coeff3 power2 = power2 coeff2 = coeff2 power1 = power1 coeff1 = coeff1 coeffp = coeffp blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc } jam-trinomial1b*Fn+P-J { ; jam 011214 ; General trinomial Mandelbrot/Julia. Formula executed is ; z(n+1) = c3*f3(z)*z(n)^power3 + c2*f2(z)*z(n)^power2 + c1*f1(z)*z(n)^power1 + c0*g(pixel), ; where f1, f2, f3, and g are from my standard function library. ; For type Mandelbrot, g operates on #pixel; ; for type Julia, g operates on the seed constant. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = (0,0) ; temp/spare scratch variable complex temp3 = complex temp2 = complex temp1 = (0,0) complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra elseif @pixelformula == 35 zextra = 1/cos( jc ) jc = zextra * zextra elseif @pixelformula == 36 zextra = 1/sin( jc ) jc = zextra * zextra elseif @pixelformula == 37 zextra = jc^(jc) jc = jc^zextra elseif @pixelformula == 38 zextra = jc^(jc) jc = 1/( jc^zextra ) elseif @pixelformula == 39 jc = log(-jc) elseif @pixelformula == 40 jc = 1/log( jc ) elseif @pixelformula == 41 jc = jc * log( jc ) elseif @pixelformula == 42 jc = sin( jc ) / jc elseif @pixelformula == 43 jc = cos( jc ) / jc elseif @pixelformula == 44 jc = sin( jc ) * cos( jc ) elseif @pixelformula == 45 jc = sin( jc^2 ) elseif @pixelformula == 46 jc = exp( -1/jc ) elseif @pixelformula == 47 jc = jc * exp( jc ) elseif @pixelformula == 48 jc = jc * exp( -jc ) elseif @pixelformula == 49 jc = jc * exp( 1/jc ) elseif @pixelformula == 50 jc = jc * exp( -1/jc ) elseif @pixelformula == 51 jc = jc * jc * jc elseif @pixelformula == 52 jc = 1 / ( jc * jc * jc ) elseif @pixelformula == 53 jc = atan( 1 / jc ) elseif @pixelformula == 54 jc = acos( 1 / jc ) elseif @pixelformula == 55 jc = asin( 1 / jc ) elseif @pixelformula == 56 jc = tan( jc ) / jc elseif @pixelformula == 57 jc = cotan( jc ) / jc elseif @pixelformula == 58 jc = 1 / ( jc * cos( jc )) elseif @pixelformula == 59 jc = 1 / ( jc * sin( jc )) elseif @pixelformula == 60 jc = jc * sin( jc ) elseif @pixelformula == 61 jc = jc * cos( jc ) elseif @pixelformula == 62 jc = jc * tan( jc ) elseif @pixelformula == 63 jc = jc * cotan( jc ) elseif @pixelformula == 64 jc = jc/cos( jc ) elseif @pixelformula == 65 jc = jc/sin( jc ) elseif @pixelformula == 66 jc = sin( 1/jc ) elseif @pixelformula == 67 jc = cos( 1/jc ) elseif @pixelformula == 68 jc = tan( 1/jc ) elseif @pixelformula == 69 jc = cotan( 1/jc ) elseif @pixelformula == 70 jc = 1/cos( 1/jc ) elseif @pixelformula == 71 jc = 1/sin( 1/jc ) elseif @pixelformula == 72 jc = cotanh( jc ) elseif @pixelformula == 73 jc = 1/cosh( jc ) elseif @pixelformula == 74 jc = 1/sinh( jc ) elseif @pixelformula == 75 jc = atanh( 1/jc ) elseif @pixelformula == 76 jc = acosh( 1/jc ) elseif @pixelformula == 77 jc = asinh( 1/jc ) elseif @pixelformula == 78 jc = @coeffpa * jc^@exponentpa + @coeffpb * jc^@exponentpb + \ @coeffpc * jc^@exponentpc elseif @pixelformula == 79 zextra = sinh(#z) jc = zextra * zextra elseif @pixelformula == 80 zextra = cosh( jc ) jc = zextra * zextra elseif @pixelformula == 81 zextra = tanh(jc) jc = zextra * zextra elseif @pixelformula == 82 zextra = cotanh( jc ) jc = zextra * zextra elseif @pixelformula == 83 zextra = (1,0)/cosh(jc) jc = zextra * zextra elseif @pixelformula == 84 zextra = (1,0) / sinh( jc ) jc = zextra * zextra elseif @pixelformula == 85 jc = sinh(1/jc) elseif @pixelformula == 86 jc = cosh(1/jc) elseif @pixelformula == 87 jc = tanh(1/jc) elseif @pixelformula == 88 jc = cotanh(1/jc) elseif @pixelformula == 89 jc = (1,0)/cosh(1/jc) elseif @pixelformula == 90 jc = (1,0)/sinh(1/jc) elseif @pixelformula == 91 jc = sin( jc ) * tan(jc) elseif @pixelformula == 92 jc = sinh(jc) * tanh(jc) elseif @pixelformula == 93 jc = sinh(jc) * cosh(jc) elseif @pixelformula == 94 temp2 = sinh(jc), zextra = cosh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 95 temp2 = sin(jc), zextra = cos(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 96 zextra = 1/jc jc = sin(zextra)*cos(zextra) elseif @pixelformula == 97 zextra = sin( 1/jc ) jc = zextra*zextra elseif @pixelformula == 98 jc = sin(jc) * cos(1/jc) elseif @pixelformula == 99 jc = sin(jc) * sin(1/jc) elseif @pixelformula == 100 zextra = log(jc) jc = zextra*zextra elseif @pixelformula == 101 jc = sin(jc) * sin(2*jc) elseif @pixelformula == 102 jc = exp(2*jc) elseif @pixelformula == 103 jc = exp(-2*jc) elseif @pixelformula == 104 zextra = 1/jc jc = sinh(zextra)*cosh(zextra) elseif @pixelformula == 105 zextra = sinh( 1/jc ) jc = zextra*zextra elseif @pixelformula == 106 jc = sinh(jc) * cosh(1/jc) elseif @pixelformula == 107 jc = sinh(jc) * sinh(1/jc) elseif @pixelformula == 108 jc = sin(jc) * sinh(jc) elseif @pixelformula == 109 jc = sin(jc) * cosh(jc) elseif @pixelformula == 110 zextra = sin(jc), temp2 = sinh(jc) jc = temp2*temp2*zextra*zextra elseif @pixelformula == 111 jc = sin(jc)*exp(jc) elseif @pixelformula == 112 jc = cos(jc)*exp(jc) elseif @pixelformula == 113 jc = sinh(jc)*exp(jc) elseif @pixelformula == 114 jc = cosh(jc)*exp(jc) elseif @pixelformula == 115 jc = sin(jc)*log(jc) elseif @pixelformula == 116 jc = cos(jc)*log(jc) elseif @pixelformula == 117 jc = sinh(jc)*log(jc) else ; @pixelformula == 118 jc = cosh(jc)*log(jc) endif ; @pixelformula = 1 endif ; @pixelformula != 0 loop: zblend = z ; Execute formula3 option if @formula3 == 0 temp3 = (1,0) elseif @formula3 <= 50 if @formula3 <= 25 if @formula3 == 1 temp3 = log(z) elseif @formula3 == 2 temp3 = exp(#z) elseif @formula3 == 3 temp3 = #z ^ #z elseif @formula3 == 4 temp3 = sin(#z) elseif @formula3 == 5 temp3 = cos(#z) elseif @formula3 == 6 temp3 = tan( #z ) elseif @formula3 == 7 temp3 = asin(#z) elseif @formula3 == 8 temp3 = acos( #z) elseif @formula3 == 9 temp3 = atan(#z) elseif @formula3 == 10 temp3 = sinh( #z ) elseif @formula3 == 11 temp3 = cosh( #z ) elseif @formula3 == 12 temp3 = tanh( #z ) elseif @formula3 == 13 temp3 = asinh( #z ) elseif @formula3 == 14 temp3 = acosh( #z ) elseif @formula3 == 15 temp3 = atanh( #z ) elseif @formula3 == 16 temp3 = log( 1/#z ) elseif @formula3 == 17 temp3 = log(log( #z )) elseif @formula3 == 18 temp3 = exp( -#z ) elseif @formula3 == 19 temp3 = exp( 1/#z ) elseif @formula3 == 20 temp3 = #z^( -#z ) elseif @formula3 == 21 zextra = sin(#z) temp3 = zextra*zextra elseif @formula3 == 22 zextra = cos(#z) temp3 = zextra*zextra elseif @formula3 == 23 zextra = tan(#z) temp3 = zextra*zextra elseif @formula3 == 24 temp3 = cotan( #z ) else ; @formula3 == 25 temp3 = (1,0)/cos( #z ) endif ; formula3-3 else ; 25 < @formula3 <= 50 if @formula3 == 26 temp3 = (1,0)/sin(#z) elseif @formula3 == 27 zextra = cotan( #z ) temp3 = zextra * zextra elseif @formula3 == 28 zextra = cos( #z ) temp3 = (1,0)/(zextra * zextra) elseif @formula3 == 29 zextra = sin( #z ) temp3 = (1,0)/(zextra * zextra) elseif @formula3 == 30 temp3 = #z^(#z^#z) elseif @formula3 == 31 temp3 = (1,0)/(#z^(#z^#z)) elseif @formula3 == 32 temp3 = log( -#z ) elseif @formula3 == 33 temp3 = (1,0)/log( #z ) elseif @formula3 == 34 temp3 = sin(#z) * cos(#z) elseif @formula3 == 35 zextra = sin(#z) temp3 = zextra*zextra elseif @formula3 == 36 temp3 = exp((-1,0)/#z) elseif @formula3 == 37 temp3 = atan((1,0)/#z) elseif @formula3 == 38 temp3 = acos((1,0)/#z) elseif @formula3 == 39 temp3 = asin((1,0)/#z) elseif @formula3 == 40 temp3 = sin(1/#z) elseif @formula3 == 41 temp3 = cos(1/#z) elseif @formula3 == 42 temp3 = tan(1/#z) elseif @formula3 == 43 temp3 = cotan(1/#z) elseif @formula3 == 44 temp3 = (1,0)/cos(1/#z) elseif @formula3 == 45 temp3 = (1,0)/sin(1/#z) elseif @formula3 == 46 temp3 = cotanh(#z) elseif @formula3 == 47 temp3 = (1,0)/cosh(#z) elseif @formula3 == 48 temp3 = (1,0)/sinh(#z) elseif @formula3 == 49 temp3 = atanh(1/#z) else ; @formula3 == 50 temp3 = acosh(1/#z) endif ; formula3-3 endif ; formula3-2 elseif @formula3 <= 75 if @formula3 == 51 temp3 = asinh(1/#z) elseif @formula3 == 52 zextra = sinh(#z) temp3 = zextra * zextra elseif @formula3 == 53 zextra = cosh( #z ) temp3 = zextra * zextra elseif @formula3 == 54 zextra = tanh(#z) temp3 = zextra * zextra elseif @formula3 == 55 zextra = cotanh( #z ) temp3 = zextra * zextra elseif @formula3 == 56 zextra = (1,0)/cosh(#z) temp3 = zextra * zextra elseif @formula3 == 57 zextra = (1,0) / sinh( #z ) temp3 = zextra * zextra elseif @formula3 == 58 temp3 = sinh(1/#z) elseif @formula3 == 59 temp3 = cosh(1/#z) elseif @formula3 == 60 temp3 = tanh(1/#z) elseif @formula3 == 61 temp3 = cotanh(1/#z) elseif @formula3 == 62 temp3 = (1,0)/cosh(1/#z) elseif @formula3 == 63 temp3 = (1,0)/sinh(1/#z) elseif @formula3 == 64 temp3 = sin( #z ) * tan(#z) elseif @formula3 == 65 temp3 = sinh(#z) * tanh(#z) elseif @formula3 == 66 temp3 = sinh(#z) * cosh(#z) elseif @formula3 == 67 temp3 = sinh(#z), zextra = cosh(#z) temp3 = temp3*temp3*zextra*zextra elseif @formula3 == 68 temp3 = sin(#z), zextra = cos(#z) temp3 = temp3*temp3*zextra*zextra elseif @formula3 == 69 zextra = 1/#z temp3 = sin(zextra)*cos(zextra) elseif @formula3 == 70 zextra = sin( 1/#z ) temp3 = zextra*zextra elseif @formula3 == 71 temp3 = sin(#z) * cos(1/#z) elseif @formula3 == 72 temp3 = sin(#z) * sin(1/#z) elseif @formula3 == 73 zextra = log(#z) temp3 = zextra*zextra elseif @formula3 == 74 temp3 = sin(#z) * sin(2*#z) else ; @formula3 == 75 temp3 = exp(2*#z) endif ; formula3-2 else ; 75 < @formula3 <= 100 if @formula3 == 76 temp3 = exp(-2*#z) elseif @formula3 == 77 zextra = 1/#z temp3 = sinh(zextra)*cosh(zextra) elseif @formula3 == 78 zextra = sinh( 1/#z ) temp3 = zextra*zextra elseif @formula3 == 79 temp3 = sinh(#z) * cosh(1/#z) elseif @formula3 == 80 temp3 = sinh(#z) * sinh(1/#z) elseif @formula3 == 81 temp3 = sin(#z) * sinh(#z) elseif @formula3 == 82 temp3 = sin(#z) * cosh(#z) elseif @formula3 == 83 zextra = sin(#z), temp3 = sinh(#z) temp3 = temp3*temp3*zextra*zextra elseif @formula3 == 84 temp3 = sin(#z)*exp(#z) elseif @formula3 == 85 temp3 = cos(#z)*exp(#z) elseif @formula3 == 86 temp3 = sinh(#z)*exp(#z) elseif @formula3 == 87 temp3 = cosh(#z)*exp(#z) elseif @formula3 == 88 temp3 = sin(#z)*log(#z) elseif @formula3 == 89 temp3 = cos(#z)*log(#z) elseif @formula3 == 90 temp3 = sinh(#z)*log(#z) else ; @formula3 == 91 temp3 = cosh(#z)*log(#z) endif ; formula3-2 endif ; formula3-1 ; Execute formula2 option if @formula2 == 0 temp2 = (1,0) elseif @formula2 <= 50 if @formula2 <= 25 if @formula2 == 1 temp2 = log(z) elseif @formula2 == 2 temp2 = exp(#z) elseif @formula2 == 3 temp2 = #z ^ #z elseif @formula2 == 4 temp2 = sin(#z) elseif @formula2 == 5 temp2 = cos(#z) elseif @formula2 == 6 temp2 = tan( #z ) elseif @formula2 == 7 temp2 = asin(#z) elseif @formula2 == 8 temp2 = acos( #z) elseif @formula2 == 9 temp2 = atan(#z) elseif @formula2 == 10 temp2 = sinh( #z ) elseif @formula2 == 11 temp2 = cosh( #z ) elseif @formula2 == 12 temp2 = tanh( #z ) elseif @formula2 == 13 temp2 = asinh( #z ) elseif @formula2 == 14 temp2 = acosh( #z ) elseif @formula2 == 15 temp2 = atanh( #z ) elseif @formula2 == 16 temp2 = log( 1/#z ) elseif @formula2 == 17 temp2 = log(log( #z )) elseif @formula2 == 18 temp2 = exp( -#z ) elseif @formula2 == 19 temp2 = exp( 1/#z ) elseif @formula2 == 20 temp2 = #z^( -#z ) elseif @formula2 == 21 zextra = sin(#z) temp2 = zextra*zextra elseif @formula2 == 22 zextra = cos(#z) temp2 = zextra*zextra elseif @formula2 == 23 zextra = tan(#z) temp2 = zextra*zextra elseif @formula2 == 24 temp2 = cotan( #z ) else ; @formula2 == 25 temp2 = (1,0)/cos( #z ) endif ; formula2-3 else ; 25 < @formula2 <= 50 if @formula2 == 26 temp2 = (1,0)/sin(#z) elseif @formula2 == 27 zextra = cotan( #z ) temp2 = zextra * zextra elseif @formula2 == 28 zextra = cos( #z ) temp2 = (1,0)/(zextra * zextra) elseif @formula2 == 29 zextra = sin( #z ) temp2 = (1,0)/(zextra * zextra) elseif @formula2 == 30 temp2 = #z^(#z^#z) elseif @formula2 == 31 temp2 = (1,0)/(#z^(#z^#z)) elseif @formula2 == 32 temp2 = log( -#z ) elseif @formula2 == 33 temp2 = (1,0)/log( #z ) elseif @formula2 == 34 temp2 = sin(#z) * cos(#z) elseif @formula2 == 35 zextra = sin(#z) temp2 = zextra*zextra elseif @formula2 == 36 temp2 = exp((-1,0)/#z) elseif @formula2 == 37 temp2 = atan((1,0)/#z) elseif @formula2 == 38 temp2 = acos((1,0)/#z) elseif @formula2 == 39 temp2 = asin((1,0)/#z) elseif @formula2 == 40 temp2 = sin(1/#z) elseif @formula2 == 41 temp2 = cos(1/#z) elseif @formula2 == 42 temp2 = tan(1/#z) elseif @formula2 == 43 temp2 = cotan(1/#z) elseif @formula2 == 44 temp2 = (1,0)/cos(1/#z) elseif @formula2 == 45 temp2 = (1,0)/sin(1/#z) elseif @formula2 == 46 temp2 = cotanh(#z) elseif @formula2 == 47 temp2 = (1,0)/cosh(#z) elseif @formula2 == 48 temp2 = (1,0)/sinh(#z) elseif @formula2 == 49 temp2 = atanh(1/#z) else ; @formula2 == 50 temp2 = acosh(1/#z) endif ; formula2-3 endif ; formula2-2 elseif @formula2 <= 75 if @formula2 == 51 temp2 = asinh(1/#z) elseif @formula2 == 52 zextra = sinh(#z) temp2 = zextra * zextra elseif @formula2 == 53 zextra = cosh( #z ) temp2 = zextra * zextra elseif @formula2 == 54 zextra = tanh(#z) temp2 = zextra * zextra elseif @formula2 == 55 zextra = cotanh( #z ) temp2 = zextra * zextra elseif @formula2 == 56 zextra = (1,0)/cosh(#z) temp2 = zextra * zextra elseif @formula2 == 57 zextra = (1,0) / sinh( #z ) temp2 = zextra * zextra elseif @formula2 == 58 temp2 = sinh(1/#z) elseif @formula2 == 59 temp2 = cosh(1/#z) elseif @formula2 == 60 temp2 = tanh(1/#z) elseif @formula2 == 61 temp2 = cotanh(1/#z) elseif @formula2 == 62 temp2 = (1,0)/cosh(1/#z) elseif @formula2 == 63 temp2 = (1,0)/sinh(1/#z) elseif @formula2 == 64 temp2 = sin( #z ) * tan(#z) elseif @formula2 == 65 temp2 = sinh(#z) * tanh(#z) elseif @formula2 == 66 temp2 = sinh(#z) * cosh(#z) elseif @formula2 == 67 temp2 = sinh(#z), zextra = cosh(#z) temp2 = temp2*temp2*zextra*zextra elseif @formula2 == 68 temp2 = sin(#z), zextra = cos(#z) temp2 = temp2*temp2*zextra*zextra elseif @formula2 == 69 zextra = 1/#z temp2 = sin(zextra)*cos(zextra) elseif @formula2 == 70 zextra = sin( 1/#z ) temp2 = zextra*zextra elseif @formula2 == 71 temp2 = sin(#z) * cos(1/#z) elseif @formula2 == 72 temp2 = sin(#z) * sin(1/#z) elseif @formula2 == 73 zextra = log(#z) temp2 = zextra*zextra elseif @formula2 == 74 temp2 = sin(#z) * sin(2*#z) else ; @formula2 == 75 temp2 = exp(2*#z) endif ; formula2-2 else ; 75 < @formula2 <= 100 if @formula2 == 76 temp2 = exp(-2*#z) elseif @formula2 == 77 zextra = 1/#z temp2 = sinh(zextra)*cosh(zextra) elseif @formula2 == 78 zextra = sinh( 1/#z ) temp2 = zextra*zextra elseif @formula2 == 79 temp2 = sinh(#z) * cosh(1/#z) elseif @formula2 == 80 temp2 = sinh(#z) * sinh(1/#z) elseif @formula2 == 81 temp2 = sin(#z) * sinh(#z) elseif @formula2 == 82 temp2 = sin(#z) * cosh(#z) elseif @formula2 == 83 zextra = sin(#z), temp2 = sinh(#z) temp2 = temp2*temp2*zextra*zextra elseif @formula2 == 84 temp2 = sin(#z)*exp(#z) elseif @formula2 == 85 temp2 = cos(#z)*exp(#z) elseif @formula2 == 86 temp2 = sinh(#z)*exp(#z) elseif @formula2 == 87 temp2 = cosh(#z)*exp(#z) elseif @formula2 == 88 temp2 = sin(#z)*log(#z) elseif @formula2 == 89 temp2 = cos(#z)*log(#z) elseif @formula2 == 90 temp2 = sinh(#z)*log(#z) else ; @formula2 == 91 temp2 = cosh(#z)*log(#z) endif ; formula2-2 endif ; formula2-1 ; Execute formula1 option if @formula1 == 0 temp1 = (1,0) elseif @formula1 <= 50 if @formula1 <= 25 if @formula1 == 1 temp1 = log(z) elseif @formula1 == 2 temp1 = exp(#z) elseif @formula1 == 3 temp1 = #z ^ #z elseif @formula1 == 4 temp1 = sin(#z) elseif @formula1 == 5 temp1 = cos(#z) elseif @formula1 == 6 temp1 = tan( #z ) elseif @formula1 == 7 temp1 = asin(#z) elseif @formula1 == 8 temp1 = acos( #z) elseif @formula1 == 9 temp1 = atan(#z) elseif @formula1 == 10 temp1 = sinh( #z ) elseif @formula1 == 11 temp1 = cosh( #z ) elseif @formula1 == 12 temp1 = tanh( #z ) elseif @formula1 == 13 temp1 = asinh( #z ) elseif @formula1 == 14 temp1 = acosh( #z ) elseif @formula1 == 15 temp1 = atanh( #z ) elseif @formula1 == 16 temp1 = log( 1/#z ) elseif @formula1 == 17 temp1 = log(log( #z )) elseif @formula1 == 18 temp1 = exp( -#z ) elseif @formula1 == 19 temp1 = exp( 1/#z ) elseif @formula1 == 20 temp1 = #z^( -#z ) elseif @formula1 == 21 zextra = sin(#z) temp1 = zextra*zextra elseif @formula1 == 22 zextra = cos(#z) temp1 = zextra*zextra elseif @formula1 == 23 zextra = tan(#z) temp1 = zextra*zextra elseif @formula1 == 24 temp1 = cotan( #z ) else ; @formula1 == 25 temp1 = (1,0)/cos( #z ) endif ; formula1-3 else ; 25 < @formula1 <= 50 if @formula1 == 26 temp1 = (1,0)/sin(#z) elseif @formula1 == 27 zextra = cotan( #z ) temp1 = zextra * zextra elseif @formula1 == 28 zextra = cos( #z ) temp1 = (1,0)/(zextra * zextra) elseif @formula1 == 29 zextra = sin( #z ) temp1 = (1,0)/(zextra * zextra) elseif @formula1 == 30 temp1 = #z^(#z^#z) elseif @formula1 == 31 temp1 = (1,0)/(#z^(#z^#z)) elseif @formula1 == 32 temp1 = log( -#z ) elseif @formula1 == 33 temp1 = (1,0)/log( #z ) elseif @formula1 == 34 temp1 = sin(#z) * cos(#z) elseif @formula1 == 35 zextra = sin(#z) temp1 = zextra*zextra elseif @formula1 == 36 temp1 = exp((-1,0)/#z) elseif @formula1 == 37 temp1 = atan((1,0)/#z) elseif @formula1 == 38 temp1 = acos((1,0)/#z) elseif @formula1 == 39 temp1 = asin((1,0)/#z) elseif @formula1 == 40 temp1 = sin(1/#z) elseif @formula1 == 41 temp1 = cos(1/#z) elseif @formula1 == 42 temp1 = tan(1/#z) elseif @formula1 == 43 temp1 = cotan(1/#z) elseif @formula1 == 44 temp1 = (1,0)/cos(1/#z) elseif @formula1 == 45 temp1 = (1,0)/sin(1/#z) elseif @formula1 == 46 temp1 = cotanh(#z) elseif @formula1 == 47 temp1 = (1,0)/cosh(#z) elseif @formula1 == 48 temp1 = (1,0)/sinh(#z) elseif @formula1 == 49 temp1 = atanh(1/#z) else ; @formula1 == 50 temp1 = acosh(1/#z) endif ; formula1-3 endif ; formula1-2 elseif @formula1 <= 75 if @formula1 == 51 temp1 = asinh(1/#z) elseif @formula1 == 52 zextra = sinh(#z) temp1 = zextra * zextra elseif @formula1 == 53 zextra = cosh( #z ) temp1 = zextra * zextra elseif @formula1 == 54 zextra = tanh(#z) temp1 = zextra * zextra elseif @formula1 == 55 zextra = cotanh( #z ) temp1 = zextra * zextra elseif @formula1 == 56 zextra = (1,0)/cosh(#z) temp1 = zextra * zextra elseif @formula1 == 57 zextra = (1,0) / sinh( #z ) temp1 = zextra * zextra elseif @formula1 == 58 temp1 = sinh(1/#z) elseif @formula1 == 59 temp1 = cosh(1/#z) elseif @formula1 == 60 temp1 = tanh(1/#z) elseif @formula1 == 61 temp1 = cotanh(1/#z) elseif @formula1 == 62 temp1 = (1,0)/cosh(1/#z) elseif @formula1 == 63 temp1 = (1,0)/sinh(1/#z) elseif @formula1 == 64 temp1 = sin( #z ) * tan(#z) elseif @formula1 == 65 temp1 = sinh(#z) * tanh(#z) elseif @formula1 == 66 temp1 = sinh(#z) * cosh(#z) elseif @formula1 == 67 temp1 = sinh(#z), zextra = cosh(#z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 68 temp1 = sin(#z), zextra = cos(#z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 69 zextra = 1/#z temp1 = sin(zextra)*cos(zextra) elseif @formula1 == 70 zextra = sin( 1/#z ) temp1 = zextra*zextra elseif @formula1 == 71 temp1 = sin(#z) * cos(1/#z) elseif @formula1 == 72 temp1 = sin(#z) * sin(1/#z) elseif @formula1 == 73 zextra = log(#z) temp1 = zextra*zextra elseif @formula1 == 74 temp1 = sin(#z) * sin(2*#z) else ; @formula1 == 75 temp1 = exp(2*#z) endif ; formula1-2 else ; 75 < @formula1 <= 100 if @formula1 == 76 temp1 = exp(-2*#z) elseif @formula1 == 77 zextra = 1/#z temp1 = sinh(zextra)*cosh(zextra) elseif @formula1 == 78 zextra = sinh( 1/#z ) temp1 = zextra*zextra elseif @formula1 == 79 temp1 = sinh(#z) * cosh(1/#z) elseif @formula1 == 80 temp1 = sinh(#z) * sinh(1/#z) elseif @formula1 == 81 temp1 = sin(#z) * sinh(#z) elseif @formula1 == 82 temp1 = sin(#z) * cosh(#z) elseif @formula1 == 83 zextra = sin(#z), temp1 = sinh(#z) temp1 = temp1*temp1*zextra*zextra elseif @formula1 == 84 temp1 = sin(#z)*exp(#z) elseif @formula1 == 85 temp1 = cos(#z)*exp(#z) elseif @formula1 == 86 temp1 = sinh(#z)*exp(#z) elseif @formula1 == 87 temp1 = cosh(#z)*exp(#z) elseif @formula1 == 88 temp1 = sin(#z)*log(#z) elseif @formula1 == 89 temp1 = cos(#z)*log(#z) elseif @formula1 == 90 temp1 = sinh(#z)*log(#z) else ; @formula1 == 91 temp1 = cosh(#z)*log(#z) endif ; formula1-2 endif ; formula1-1 z = @coeff3 * temp3 * z^@power3 + @coeff2 * temp2 * z^@power2 + \ @coeff1 * temp1 * z^@power1 + @coeffp * jc if @blend z = @weightzfn * z + @weightzpwr * (zblend^@zpower + jc) endif ; @blend bailout: |z| < @bail default: title = "Trinomial_1*Fn +p Julia" center = (0,0) maxiter = 100 method = multipass periodicity = 0 param power3 caption = "Power 3" default = (4,0) hint = "This is the exponent used for the third term of the trinomial" endparam param coeff3 caption = "Coeff 3" default = (-1,0) hint = "This is the coefficient of the third term in the trinomial" endparam param formula3 caption = "Formula 3" enum = "none" "log(z)" "e^z" "z^z" "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "sin(z)*cos(z)" "sin(z^2)" "e^(-1/z)" "acot(z)" "asec(z)" \ "acsc(z)" "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" \ "csc(1/z)" "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" \ "acosech(z)" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula that is multiplied by the third term of the trinomial" endparam param power2 caption = "Power 2" default = (3,0) hint = "This is the exponent used for the second term of the trinomial" endparam param coeff2 caption = "Coeff 2" default = (1,0) hint = "This is the coefficient of the second term in the trinomial" endparam param formula2 caption = "Formula 2" enum = "none" "log(z)" "e^z" "z^z" "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "sin(z)*cos(z)" "sin(z^2)" "e^(-1/z)" "acot(z)" "asec(z)" \ "acsc(z)" "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" \ "csc(1/z)" "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" \ "acosech(z)" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula that is multiplied by the second term of the trinomial" endparam param power1 caption = "Power 1" default = (2,0) hint = "This is the exponent used for the first term of the trinomial" endparam param coeff1 caption = "Coeff 1" default = (-1,0) hint = "This is the coefficient of the first term in the trinomial" endparam param formula1 caption = "Formula 1" enum = "none" "log(z)" "e^z" "z^z" "sin(z)" "cos(z)" \ "tan(z)" "asin(z)" "acos(z)" "atan(z)" "sinh(z)" "cosh(z)" "tanh(z)" \ "asinh(z)" "acosh(z)" "atanh(z)" "log(1/z)" "log(log(z))" "e^-z" \ "e^(1/z)" "z^-z" "sin(z)^2" "cos(z)^2" "tan(z)^2" "cot(z)" "sec(z)" \ "csc(z)" "cot(z)^2" "sec(z)^2" "csc(z)^2" "z^z^z" "1/z^z^z" "log(-z)" \ "1/log(z)" "sin(z)*cos(z)" "sin(z^2)" "e^(-1/z)" "acot(z)" "asec(z)" \ "acsc(z)" "sin(1/z)" "cos(1/z)" "tan(1/z)" "cot(1/z)" "sec(1/z)" \ "csc(1/z)" "cotanh(z)" "sech(z)" "cosech(z)" "acoth(z)" "asech(z)" \ "acosech(z)" "sinh(z)^2" "cosh(z)^2" "tanh(z)^2" "cotanh(z)^2" \ "sech(z)^2" "cosech(z)^2" "sinh(1/z)" "cosh(1/z)" "tanh(1/z)" \ "cotanh(1/z)" "sech(1/z)" "cosech(1/z)" "sin(z)tan(z)" "sinh(z)tanh(z)" \ "sinh(z)cosh(z)" "sinh(z)^2*cosh(z)^2" "sin(z)^2*cos(z)^2" \ "sin(1/z)*cos(1/z)" "sin(1/z)^2" "sin(z)cos(1/z)" "sin(z)sin(1/z)" \ "log(z)^2" "sin(z)sin(2z)" "e^2z" "e^-2z" "sinh(1/z)cosh(1/z)" \ "sinh(1/z)^2" "sinh(z)cosh(1/z)" "sinh(z)sinh(1/z)" "sin(z)sinh(z)" \ "sin(z)cosh(z)" "sin(z)^2*sinh(z)^2" "sin(z)e^z" "cos(z)e^z" \ "sinh(z)e^z" "cosh(z)e^z" "sin(z)log(z)" "cos(z)log(z)" "sinh(z)log(z)" \ "cosh(z)log(z)" default = 0 hint = "Sets the formula that is multiplied by the first term of the trinomial" endparam param coeffp caption = "Pixel Coefficient" default = 1.0 hint = "This is multiplied by the initialized pixel (Mand)/ seed \ constant (Julia) term" endparam param blend caption = "Blend Z^Power?" default = FALSE hint = "If enabled, the iterated function can be blended into a normal \ z^power Mandelbrot function; set parameter 'Z Power' to fix exponent, \ and 'Z Weight' and 'Function Weight' to fix blend proportions" endparam param weightzfn caption = "Function Weight" default = -0.1 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ function that is blended in with the normal z^power Mandelbrot" visible = @blend == TRUE endparam param weightzpwr caption = "Z^Power Weight" default = 1.0 hint = "If 'Blend Z^Power' is enabled, then this is the fraction of the \ normal z^power Mandelbrot that is blended in with the function" visible = @blend == TRUE endparam param zpower caption = "Z Power" default = (2,0) hint = "If 'Blend Z^Power' is enabled, then this is the exponent for the \ normal z^power Mandelbrot" visible = @blend == TRUE endparam param pixelformula caption = "Pixel Formula" enum = "p" "p^2" "p^3" "p^4" "p^power" "1/p" "sqrt(p)" "1/p^2" "log(p)" "e^p" \ "p^p" "sin(p)" "cos(p)" \ "tan(p)" "asin(p)" "acos(p)" "atan(p)" "sinh(p)" "cosh(p)" "tanh(p)" \ "asinh(p)" "acosh(p)" "atanh(p)" "log(1/p)" "log(log(p))" "e^-p" \ "e^(1/p)" "p^-p" "sin(p)^2" "cos(p)^2" "tan(p)^2" "cot(p)" "sec(p)" \ "csc(p)" "cot(p)^2" "sec(p)^2" "csc(p)^2" "p^p^p" "1/p^p^p" "log(-p)" \ "1/log(p)" "plog(p)" "sin(p)/p" "cos(p)/p" "sin(p)*cos(p)" "sin(p^2)" \ "e^(-1/p)" "pe^p" "pe^-p" "pe^(1/p)" "pe^(-1/p)" "p^3" "1/p^3" \ "acot(p)" "asec(p)" "acsc(p)" "tan(p)/p" "cot(p)/p" "sec(p)/p" \ "csc(p)/p" "psin(p)" "pcos(p)" "ptan(p)" "pcot(p)" "psec(p)" "pcsc(p)" \ "sin(1/p)" "cos(1/p)" "tan(1/p)" "cot(1/p)" "sec(1/p)" "csc(1/p)" \ "cotanh(p)" "sech(p)" "cosech(p)" "acoth(p)" "asech(p)" "acosech(p)" \ "3-term polynomial" "sinh(p)^2" "cosh(p)^2" "tanh(p)^2" "cotanh(p)^2" \ "sech(p)^2" "cosech(p)^2" "sinh(1/p)" "cosh(1/p)" "tanh(1/p)" \ "cotanh(1/p)" "sech(1/p)" "cosech(1/p)" "sin(p)tan(p)" "sinh(p)tanh(p)" \ "sinh(p)cosh(p)" "sinh(p)^2*cosh(p)^2" "sin(p)^2*cos(p)^2" \ "sin(1/p)*cos(1/p)" "sin(1/p)^2" "sin(p)cos(1/p)" "sin(p)sin(1/p)" \ "log(p)^2" "sin(p)sin(2p)" "e^2p" "e^-2p" "sinh(1/p)cosh(1/p)" \ "sinh(1/p)^2" "sinh(p)cosh(1/p)" "sinh(p)sinh(1/p)" "sin(p)sinh(p)" \ "sin(p)cosh(p)" "sin(p)^2*sinh(p)^2" "sin(p)e^p" "cos(p)e^p" \ "sinh(p)e^p" "cosh(p)e^p" "sin(p)log(p)" "cos(p)log(p)" "sinh(p)log(p)" \ "cosh(p)log(p)" default = 0 hint = "Pixel value (Mand) or seed (Julia) can be initialized \ before iterating. For 'p^power', set parameter 'Pixel Power'; \ for '3-term polynomial', set 'Coeff Pa', 'Exponent Pa', 'Coeff Pb', \ 'Exponent Pb', 'Coeff Pc', 'Exponent Pc'. 'p' results in normal \ initialization" endparam param ppower caption = "Pixel Power" default = (5,0) hint = "This is the power used if parameter \ 'Pixel Formula' is set to 'p^power'" endparam param coeffpa caption = "Coeff Pa" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 1st term" endparam param exponentpa caption = "Exponent Pa" default = (6,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 1st term" endparam param coeffpb caption = "Coeff Pb" default = (-1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 2nd term" endparam param exponentpb caption = "Exponent Pb" default = (4,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 2nd term" endparam param coeffpc caption = "Coeff Pc" default = (1,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the coefficient \ of the 3rd term" endparam param exponentpc caption = "Exponent Pc" default = (2,0) hint = "If 'Pixel Formula' is set to '3-term polynomial', this is the power \ of the 3rd term" endparam param plottype caption = "Plotting Method" enum = "Mandelbrot" "Julia" default = 1 hint = "Select type of initialization for z, c" endparam param perturbation caption = "Initial Perturbation" default = (0,0) hint = "Iteration starting value" endparam param jconstant caption = "Julia Constant" default = (0,0) hint = "Iteration constant" endparam param bail caption = "Bailout Value" default = 64.0 hint = "Value needed to 'escape' to infinity" endparam switch: type = "jam-trinomial1b*Fn+P" perturbation = #pixel bail = bail power3 = power3 coeff3 = coeff3 formula3 = formula3 power2 = power2 coeff2 = coeff2 formula2 = formula2 power1 = power1 coeff1 = coeff1 formula1 = formula1 coeffp = coeffp blend = blend weightzfn = weightzfn weightzpwr = weightzpwr zpower = zpower pixelformula = pixelformula ppower = ppower coeffpa = coeffpa exponentpa = exponentpa coeffpb = coeffpb exponentpb = exponentpb coeffpc = coeffpc exponentpc = exponentpc } jam-trinomial1c(Fn)+P-J { ; jam 011214 ; General trinomial Mandelbrot/Julia. Formula executed is ; z(n+1) = c3*f3(z(n))^power3 + c2*f2(z(n))^power2 + c1*f1(z(n))^power1 + c0*g(pixel), ; where f1, f2, f3, and g are from my standard function library. ; For type Mandelbrot, g operates on #pixel; ; for type Julia, g operates on the seed constant. init: if ( @plottype == 0 ) z = @perturbation, jc = #pixel else z = #pixel, jc = @jconstant endif complex zextra = (0,0) ; temp/spare scratch variable complex temp3 = complex temp2 = complex temp1 = (0,0) complex zblend = (0,0) ; Pixel/constant initialization section if @pixelformula != 0 if @pixelformula == 1 jc = jc * jc elseif @pixelformula == 2 jc = jc * jc * jc elseif @pixelformula == 3 zextra = jc * jc jc = zextra * zextra elseif @pixelformula == 4 jc = jc ^ @ppower elseif @pixelformula == 5 jc = 1/jc elseif @pixelformula == 6 jc = sqrt(jc) elseif @pixelformula == 7 jc = 1 / ( jc * jc ) elseif @pixelformula == 8 jc = log(jc) elseif @pixelformula == 9 jc = exp( jc) elseif @pixelformula == 10 jc = jc^jc elseif @pixelformula == 11 jc = sin( jc ) elseif @pixelformula == 12 jc = cos( jc ) elseif @pixelformula == 13 jc = tan( jc ) elseif @pixelformula == 14 jc = asin( jc ) elseif @pixelformula == 15 jc = acos( jc ) elseif @pixelformula == 16 jc = atan( jc ) elseif @pixelformula == 17 jc = sinh( jc ) elseif @pixelformula == 18 jc = cosh( jc ) elseif @pixelformula == 19 jc = tanh( jc ) elseif @pixelformula == 20 jc = asinh( jc ) elseif @pixelformula == 21 jc = acosh( jc ) elseif @pixelformula == 22 jc = atanh( jc ) elseif @pixelformula == 23 jc = log( 1/jc ) elseif @pixelformula == 24 jc = log( log( jc )) elseif @pixelformula == 25 jc = exp( -jc ) elseif @pixelformula == 26 jc = exp( 1/jc ) elseif @pixelformula == 27 jc = jc^(-jc) elseif @pixelformula == 28 zextra = sin( jc ) jc = zextra * zextra elseif @pixelformula == 29 zextra = cos( jc ) jc = zextra * zextra elseif @pixelformula == 30 zextra = tan( jc ) jc = zextra * zextra elseif @pixelformula == 31 jc = cotan( jc ) elseif @pixelformula == 32 jc = 1/cos( jc ) elseif @pixelformula == 33 jc = 1/sin( jc ) elseif @pixelformula == 34 zextra = cotan( jc ) jc = zextra * zextra