comment { Brian's Formulae } bwp1 { init: z = @InitValue loop: z = z ^ @Exponent + @ZCoeff * z + #pixel bailout: |z| < @Bailout default: title = "BWP 01" param InitValue caption = "Initial Value" default = (0, 0) endparam param Exponent caption = "Exponent" default = 2 min = 2 max = 10 endparam param ZCoeff caption = "Z Coefficient" default = (1, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam switch: type = "bwp2" Seed = #pixel Exponent = @Exponent ZCoeff = @ZCoeff Bailout = @Bailout } bwp2 { init: z = #pixel loop: z = z ^ @Exponent + @ZCoeff * z + @Seed bailout: |z| <= @bailout default: title = "BWP 02" param Seed caption = "Seed" default = (0, 0) endparam param Exponent caption = "Exponent" default = 2 min = 2 max = 10 endparam param ZCoeff caption = "Z Coefficient" default = (1, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam switch: type = "bwp1" Exponent = @Exponent ZCoeff = @ZCoeff Bailout = @Bailout } bwp3 { init: z1 = @InitValue t = #pixel loop: z2 = z1 z1 = sin(z1) - t t = 1 / (z1 * @Value) z = z1 - z2 bailout: |z| < @Bailout default: title = "BWP 03" param InitValue caption = "Initial Value" default = (0, 0) endparam param Value caption = "Value" default = (50, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam } bwp4 { init: z = @InitValue t = #pixel loop: z = sin(z) - t t = 1 / (z * @Value) bailout: |z| < @Bailout default: title = "BWP 04" param InitValue caption = "Initial Value" default = (0, 0) endparam param Value caption = "Value" default = (50, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam } bwp5 { init: z = @InitValue t = #pixel loop: z = sin(z) - t t = #pixel / (z * @Value) bailout: |z| < @Bailout default: title = "BWP 05" param InitValue caption = "Initial Value" default = (0, 0) endparam param Value caption = "Value" default = (50, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam } bwp6 { init: z = @InitValue loop: z = @Fun1(z) * @Fun2(z) + #pixel bailout: |z| < @Bailout default: title = "BWP 06" param InitValue caption = "Initial Value" default = (0, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam func Fun1 caption = "Function 1" default = ident() endfunc func Fun2 caption = "Function 2" default = sin() endfunc switch: type = "bwp13" Seed = #pixel Fun1 = @Fun1 Fun2 = @Fun2 Bailout = @Bailout } bwp7 { init: z = @InitValue t = #pixel loop: z = tanh(z) - t t = 1 / (z * @Value) bailout: |z| < @Bailout default: title = "BWP 07" param InitValue caption = "Initial Value" default = (0, 0) endparam param Value caption = "Value" default = (50, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam } bwp8 { init: z = @InitValue t = #pixel loop: z = sin(z) - t t = 1 / (z ^ @Exponent) bailout: |z| < @Bailout default: title = "BWP 08" param InitValue caption = "Initial Value" default = (0, 0) endparam param Exponent caption = "Exponent" default = (1, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam } bwp9 { init: z = @InitValue loop: zs = z * z z = (zs + #pixel) / (1 + zs) bailout: |z| < @Bailout default: title = "BWP 09" param InitValue caption = "Initial Value" default = (-2, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam } bwp10 { init: z = @InitValue t = #pixel loop: z = @Fun(z) - t t = 1 / (z ^ @Exponent) bailout: |z| < @Bailout default: title = "BWP 10" param InitValue caption = "Initial Value" default = (0, 0) endparam param Exponent caption = "Exponent" default = (1, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam func Fun caption = "Function" default = sin() endfunc } bwp11 { init: z = @InitValue t = (0, 0) loop: z = z ^ @Exponent - t + #pixel t = 1 / @Fun(z) bailout: |z| < @Bailout default: title = "BWP 11" param InitValue caption = "Initial Value" default = (0, 0) endparam param Exponent caption = "Exponent" default = (2, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam func Fun caption = "Function" default = recip() endfunc } bwp12 { init: z = @InitValue loop: z = z ^ @Exponent + @FunZCoeff * @Fun(z) + #pixel bailout: |z| < @Bailout default: title = "BWP 12" param InitValue caption = "Initial Value" default = (0, 0) endparam param Exponent caption = "Exponent" default = (2, 0) endparam param FunZCoeff caption = "Fun(z) Coefficient" default = (1, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam func Fun caption = "Function" default = ident() endfunc } bwp13 { init: z = #pixel loop: z = @Fun1(z) * @Fun2(z) + @Seed bailout: |z| < @Bailout default: title = "BWP 13" param Seed caption = "Seed" default = (0, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam func Fun1 caption = "Function 1" default = ident() endfunc func Fun2 caption = "Function 2" default = ident() endfunc switch: type = "bwp6" Fun1 = @Fun1 Fun2 = @Fun2 Bailout = @Bailout } bwp14 { init: z = @InitValue loop: z = (z ^ @Exponent1) * (#pixel ^ @Exponent2) + #pixel bailout: |z| < @Bailout default: title = "BWP 14" param InitValue caption = "Initial Value" default = (0, 0) endparam param Exponent1 caption = "Exponent 1" default = (2, 0) endparam param Exponent2 caption = "Exponent 2" default = (0, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam switch: type = "bwp15" Seed = #pixel Exponent1 = @Exponent1 Exponent2 = @Exponent2 Bailout = @Bailout } bwp15 { init: z = #pixel loop: z = (z ^ @Exponent1) * (@Seed ^ @Exponent2) + @Seed bailout: |z| <= @bailout default: title = "BWP 15" param Seed caption = "Seed" default = (0, 0) endparam param Exponent1 caption = "Exponent 1" default = (2, 0) endparam param Exponent2 caption = "Exponent 2" default = (0, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam switch: type = "bwp14" Exponent1 = @Exponent1 Exponent2 = @Exponent2 Bailout = @Bailout } bwp16 { init: z = @InitValue loop: z = @Mult3 * ((@Mult1 * (z ^ @Exp1)) + \ (@Mult2 * (z ^ @Exp2))) + @Fun(#pixel) bailout: |z| < @Bailout default: title = "BWP 16" param InitValue caption = "Initial Value" default = (0, 0) endparam param Mult1 caption = "Multiplier 1" default = (0.5, 0) endparam param Mult2 caption = "Multiplier 2" default = (0.5, 0) endparam param Mult3 caption = "Multiplier 3" default = (1, 0) endparam param Exp1 caption = "Exponent 1" default = (2, 0) endparam param Exp2 caption = "Exponent 2" default = (2, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam func Fun caption = "Function" default = ident() endfunc switch: type = "bwp17" Seed = #pixel Mult1 = @Mult1 Mult2 = @Mult2 Mult3 = @Mult3 Exp1 = @Exp1 Exp2 = @Exp2 Fun = @Fun Bailout = @Bailout } bwp17 { init: z = @Fun(#pixel) loop: z = @Mult3 * ((@Mult1 * (z ^ @Exp1)) + \ (@Mult2 * (z ^ @Exp2))) + @Fun(@Seed) bailout: |z| < @Bailout default: title = "BWP 17" param Seed caption = "Seed" default = (0, 0) endparam param Mult1 caption = "Multiplier 1" default = (0.5, 0) endparam param Mult2 caption = "Multiplier 2" default = (0.5, 0) endparam param Mult3 caption = "Multiplier 3" default = (1, 0) endparam param Exp1 caption = "Exponent 1" default = (2, 0) endparam param Exp2 caption = "Exponent 2" default = (2, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam func Fun caption = "Function" default = ident() endfunc switch: type = "bwp16" Mult1 = @Mult1 Mult2 = @Mult2 Mult3 = @Mult3 Exp1 = @Exp1 Exp2 = @Exp2 Fun = @Fun Bailout = @Bailout } bwp18 { init: z = @InitValue int i = 0 loop: if ((i % 2) == 0) z = @Mult1 * (z ^ @Exp1) else z = @Mult2 * (z ^ @Exp2) endif z = z + @Fun(#pixel) i = i + 1 bailout: |z| < @Bailout default: title = "BWP 18" param InitValue caption = "Initial Value" default = (0, 0) endparam param Mult1 caption = "Multiplier 1" default = (1, 0) endparam param Mult2 caption = "Multiplier 2" default = (1, 0) endparam param Exp1 caption = "Exponent 1" default = (2, 0) endparam param Exp2 caption = "Exponent 2" default = (2, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam func Fun caption = "Function" default = ident() endfunc switch: type = "bwp19" Seed = #pixel Mult1 = @Mult1 Mult2 = @Mult2 Exp1 = @Exp1 Exp2 = @Exp2 Fun = @Fun Bailout = @Bailout } bwp19 { init: z = @Fun(#pixel) int i = 0 loop: if ((i % 2) == 0) z = @Mult1 * (z ^ @Exp1) else z = @Mult2 * (z ^ @Exp2) endif z = z + @Fun(@Seed) i = i + 1 bailout: |z| < @Bailout default: title = "BWP 19" param Seed caption = "Seed" default = (0, 0) endparam param Mult1 caption = "Multiplier 1" default = (1, 0) endparam param Mult2 caption = "Multiplier 2" default = (1, 0) endparam param Exp1 caption = "Exponent 1" default = (2, 0) endparam param Exp2 caption = "Exponent 2" default = (2, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam func Fun caption = "Function" default = ident() endfunc switch: type = "bwp18" Mult1 = @Mult1 Mult2 = @Mult2 Exp1 = @Exp1 Exp2 = @Exp2 Fun = @Fun Bailout = @Bailout } bwp20 { init: c = #pixel z = sqrt((1 - c) / 6) loop: zs = z * z z = zs * zs + (c - 1) * zs - c bailout: |z| < @Bailout default: title = "BWP 20" param Bailout caption = "Bailout Value" default = 4.0 endparam switch: type = "bwp21" Seed = #pixel Bailout = @Bailout } bwp20a { init: c = #pixel z = @InitValue loop: zs = z * z z = zs * zs + (c - 1) * zs - c bailout: |z| < @Bailout default: title = "BWP 20a" param InitValue caption = "Initial Value" default = (0, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam switch: type = "bwp21" Seed = #pixel Bailout = @Bailout } bwp21 { init: z = #pixel loop: zs = z * z z = zs * zs + (@Seed - 1) * zs - @Seed bailout: |z| < @Bailout default: title = "BWP 21" param Bailout caption = "Bailout Value" default = 4.0 endparam switch: type = "bwp20" Bailout = @Bailout } bwp22 { ; From PWC_Eqn_Mset and PWC_Eqn_Mset2 by Paul Carlson. init: z = @InitValue loop: z = (z^2 + #pixel) * (1 - z^2) / (1 + z^2) + @PixMult * #pixel bailout: |z| < @Bailout default: title = "BWP 22" maxiter = 1000 param InitValue caption = "Initial Value" default = (0, 0) hint = "The initial value" endparam param PixMult caption = "Pixel multiplier" default = (0, 0) hint = "The pixel multiplier" endparam param Bailout caption = "Bailout Value" default = 1.0e20 hint = "The bailout value." endparam switch: type = "bwp23" Seed = #pixel PixMult = @PixMult Bailout = @Bailout } bwp23 { ; From PWC_Eqn_Mset and PWC_Eqn_Mset2 by Paul Carlson. init: z = #pixel loop: z = (z^2 + @Seed) * (1 - z^2) / (1 + z^2) + @PixMult * @Seed bailout: |z| < @Bailout default: title = "BWP 23" maxiter = 1000 param Bailout caption = "Bailout Value" default = 1.0e20 hint = "The bailout value." endparam param PixMult caption = "Pixel multiplier" default = (0, 0) hint = "The pixel multiplier" endparam switch: type = "bwp22" PixMult = @PixMult Bailout = @Bailout } bwp24 { init: z = @InitValue loop: z = (z ^ @Exponent + #pixel) / (@Value + #pixel) bailout: |z| < @Bailout default: title = "BWP 24" param InitValue caption = "Initial Value" default = (0, 0) endparam param Exponent caption = "Exponent" default = (2, 0) endparam param Value caption = "Value" default = (1, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam switch: type = "bwp25" Seed = #pixel Exponent = @Exponent Value = @Value Bailout = @Bailout } bwp25 { init: z = #pixel loop: z = (z ^ @Exponent + @Seed) / (@Value + @Seed) bailout: |z| <= @bailout default: title = "BWP 25" param Seed caption = "Seed" default = (0, 0) endparam param Exponent caption = "Exponent" default = (2, 0) endparam param Value caption = "Value" default = (1, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam switch: type = "bwp24" Exponent = @Exponent Value = @Value Bailout = @Bailout } bwp26 { init: z = c = #pixel loop: a = z ^ 3 + (c - 1) * z - c b = @Coeff1 * z ^ 2 + c - 1 z = z - @Coeff2 * a / b bailout: |z| <= @bailout default: title = "BWP 26" param Coeff1 caption = "Coefficient 1" default = (1, 0) endparam param Coeff2 caption = "Coefficient 2" default = (1, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam } bwp27 { init: z = @InitValue loop: z = @Fun3(@Mult3 * (@Fun1(@Mult1 * (z ^ @Exp1)) + \ @Fun2(@Mult2 * (z ^ @Exp2)))) + @Fun4(#pixel) bailout: |z| < @Bailout default: title = "BWP 27" param InitValue caption = "Initial Value" default = (0, 0) endparam param Mult1 caption = "Multiplier 1" default = (0.5, 0) endparam param Mult2 caption = "Multiplier 2" default = (0.5, 0) endparam param Mult3 caption = "Multiplier 3" default = (1, 0) endparam param Exp1 caption = "Exponent 1" default = (2, 0) endparam param Exp2 caption = "Exponent 2" default = (2, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam func Fun1 caption = "Function 1" default = ident() endfunc func Fun2 caption = "Function 2" default = ident() endfunc func Fun3 caption = "Function 3" default = ident() endfunc func Fun4 caption = "Function 4" default = ident() endfunc switch: type = "bwp28" Seed = #pixel Mult1 = @Mult1 Mult2 = @Mult2 Mult3 = @Mult3 Exp1 = @Exp1 Exp2 = @Exp2 Fun1 = @Fun1 Fun2 = @Fun2 Fun3 = @Fun3 Fun4 = @Fun4 Bailout = @Bailout } bwp28 { init: z = @Fun4(#pixel) loop: z = @Fun3(@Mult3 * (@Fun1(@Mult1 * (z ^ @Exp1)) + \ @Fun2(@Mult2 * (z ^ @Exp2)))) + @Fun4(@Seed) bailout: |z| < @Bailout default: title = "BWP 28" param Seed caption = "Seed" default = (0, 0) endparam param Mult1 caption = "Multiplier 1" default = (0.5, 0) endparam param Mult2 caption = "Multiplier 2" default = (0.5, 0) endparam param Mult3 caption = "Multiplier 3" default = (1, 0) endparam param Exp1 caption = "Exponent 1" default = (2, 0) endparam param Exp2 caption = "Exponent 2" default = (2, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam func Fun1 caption = "Function 1" default = ident() endfunc func Fun2 caption = "Function 2" default = ident() endfunc func Fun3 caption = "Function 3" default = ident() endfunc func Fun4 caption = "Function 4" default = ident() endfunc switch: type = "bwp27" Mult1 = @Mult1 Mult2 = @Mult2 Mult3 = @Mult3 Exp1 = @Exp1 Exp2 = @Exp2 Fun1 = @Fun1 Fun2 = @Fun2 Fun3 = @Fun3 Fun4 = @Fun4 Bailout = @Bailout } bwp29 { init: z = @InitValue loop: z = @Fun1((-z) ^ @Exponent) + @Fun2(@Offset + #pixel) bailout: |z| < @Bailout default: title = "BWP 29" param InitValue caption = "Initial Value" default = (0, 0) endparam param Exponent caption = "Exponent" default = (2, 0) endparam param Offset caption = "Offset" default = (0, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam func Fun1 caption = "Function 1" default = ident() endfunc func Fun2 caption = "Function 2" default = ident() endfunc switch: type = "bwp30" Seed = #pixel Exponent = @Exponent Offset = @Offset Fun1 = @Fun1 Fun2 = @Fun2 Bailout = @Bailout } bwp30 { init: z = #pixel loop: z = @Fun1((-z) ^ @Exponent) + @Fun2(@Offset + @Seed) bailout: |z| <= @bailout default: title = "BWP 30" param Seed caption = "Seed" default = (0, 0) endparam param Exponent caption = "Exponent" default = (2, 0) endparam param Offset caption = "Offset" default = (0, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam func Fun1 caption = "Function 1" default = ident() endfunc func Fun2 caption = "Function 2" default = ident() endfunc switch: type = "bwp29" Exponent = @Exponent Offset = @Offset Fun1 = @Fun1 Fun2 = @Fun2 Bailout = @Bailout } bwp31 { init: a = @Mult2 b = @Exp2 a = 1 / a b = 1 / b c = 1 / (@Exp2 - @Exp1) z = (-@Mult1 * @Exp1 * a * b) ^ c loop: z = @Fun3(@Mult3 * (@Fun1(@Mult1 * (z ^ @Exp1)) + \ @Fun2(@Mult2 * (z ^ @Exp2)))) + @Fun4(#pixel) bailout: |z| < @Bailout default: title = "BWP 31" param Mult1 caption = "Multiplier 1" default = (0.5, 0) endparam param Mult2 caption = "Multiplier 2" default = (0.5, 0) endparam param Mult3 caption = "Multiplier 3" default = (1, 0) endparam param Exp1 caption = "Exponent 1" default = (2, 0) endparam param Exp2 caption = "Exponent 2" default = (2, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam func Fun1 caption = "Function 1" default = ident() endfunc func Fun2 caption = "Function 2" default = ident() endfunc func Fun3 caption = "Function 3" default = ident() endfunc func Fun4 caption = "Function 4" default = ident() endfunc switch: type = "bwp32" Seed = #pixel Mult1 = @Mult1 Mult2 = @Mult2 Mult3 = @Mult3 Exp1 = @Exp1 Exp2 = @Exp2 Fun1 = @Fun1 Fun2 = @Fun2 Fun3 = @Fun3 Fun4 = @Fun4 Bailout = @Bailout } bwp32 { init: z = @Fun4(#pixel) loop: z = @Fun3(@Mult3 * (@Fun1(@Mult1 * (z ^ @Exp1)) + \ @Fun2(@Mult2 * (z ^ @Exp2)))) + @Fun4(@Seed) bailout: |z| < @Bailout default: title = "BWP 32" param Seed caption = "Seed" default = (0, 0) endparam param Mult1 caption = "Multiplier 1" default = (0.5, 0) endparam param Mult2 caption = "Multiplier 2" default = (0.5, 0) endparam param Mult3 caption = "Multiplier 3" default = (1, 0) endparam param Exp1 caption = "Exponent 1" default = (2, 0) endparam param Exp2 caption = "Exponent 2" default = (2, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam func Fun1 caption = "Function 1" default = ident() endfunc func Fun2 caption = "Function 2" default = ident() endfunc func Fun3 caption = "Function 3" default = ident() endfunc func Fun4 caption = "Function 4" default = ident() endfunc switch: type = "bwp31" Mult1 = @Mult1 Mult2 = @Mult2 Mult3 = @Mult3 Exp1 = @Exp1 Exp2 = @Exp2 Fun1 = @Fun1 Fun2 = @Fun2 Fun3 = @Fun3 Fun4 = @Fun4 Bailout = @Bailout } bwp31n { ; A generalization of Jim Muth's MandelbrotMix4 formula init: a = @Mult2 b = @Exp2 a = 1 / a b = 1 / b c = 1 / (@Exp2 - @Exp1) z = (-(@Mult1 * @Exp1 * a * b)) ^ c loop: z = @Fun3(@Mult3 * (@Fun1(@Mult1 * (z ^ @Exp1)) + \ @Fun2(@Mult2 * (z ^ @Exp2)))) + @Fun4(#pixel) bailout: |z| < @Bailout default: title = "BWP 31N" param Mult1 caption = "Multiplier 1" default = (0.5, 0) endparam param Mult2 caption = "Multiplier 2" default = (0.5, 0) endparam param Mult3 caption = "Multiplier 3" default = (1, 0) endparam param Exp1 caption = "Exponent 1" default = (2, 0) endparam param Exp2 caption = "Exponent 2" default = (2, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam func Fun1 caption = "Function 1" default = ident() endfunc func Fun2 caption = "Function 2" default = ident() endfunc func Fun3 caption = "Function 3" default = ident() endfunc func Fun4 caption = "Function 4" default = ident() endfunc switch: type = "bwp32n" Seed = #pixel Mult1 = @Mult1 Mult2 = @Mult2 Mult3 = @Mult3 Exp1 = @Exp1 Exp2 = @Exp2 Fun1 = @Fun1 Fun2 = @Fun2 Fun3 = @Fun3 Fun4 = @Fun4 Bailout = @Bailout } bwp31nc { ; A generalization of Jim Muth's MandelbrotMix4 formula init: a = @Mult2 b = @Exp2 a = 1 / a b = 1 / b c = 1 / (@Exp2 - @Exp1) z = conj((-(@Mult1 * @Exp1 * a * b)) ^ c) loop: z = @Fun3(@Mult3 * (@Fun1(@Mult1 * (z ^ @Exp1)) + \ @Fun2(@Mult2 * (z ^ @Exp2)))) + @Fun4(#pixel) bailout: |z| < @Bailout default: title = "BWP 31NC" param Mult1 caption = "Multiplier 1" default = (0.5, 0) endparam param Mult2 caption = "Multiplier 2" default = (0.5, 0) endparam param Mult3 caption = "Multiplier 3" default = (1, 0) endparam param Exp1 caption = "Exponent 1" default = (2, 0) endparam param Exp2 caption = "Exponent 2" default = (2, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam func Fun1 caption = "Function 1" default = ident() endfunc func Fun2 caption = "Function 2" default = ident() endfunc func Fun3 caption = "Function 3" default = ident() endfunc func Fun4 caption = "Function 4" default = ident() endfunc switch: type = "bwp32n" Seed = #pixel Mult1 = @Mult1 Mult2 = @Mult2 Mult3 = @Mult3 Exp1 = @Exp1 Exp2 = @Exp2 Fun1 = @Fun1 Fun2 = @Fun2 Fun3 = @Fun3 Fun4 = @Fun4 Bailout = @Bailout } bwp32n { init: z = @Fun4(#pixel) loop: z = @Fun3(@Mult3 * (@Fun1(@Mult1 * (z ^ @Exp1)) + \ @Fun2(@Mult2 * (z ^ @Exp2)))) + @Fun4(@Seed) bailout: |z| < @Bailout default: title = "BWP 32N" param Seed caption = "Seed" default = (0, 0) endparam param Mult1 caption = "Multiplier 1" default = (0.5, 0) endparam param Mult2 caption = "Multiplier 2" default = (0.5, 0) endparam param Mult3 caption = "Multiplier 3" default = (1, 0) endparam param Exp1 caption = "Exponent 1" default = (2, 0) endparam param Exp2 caption = "Exponent 2" default = (2, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam func Fun1 caption = "Function 1" default = ident() endfunc func Fun2 caption = "Function 2" default = ident() endfunc func Fun3 caption = "Function 3" default = ident() endfunc func Fun4 caption = "Function 4" default = ident() endfunc switch: type = "bwp31n" Mult1 = @Mult1 Mult2 = @Mult2 Mult3 = @Mult3 Exp1 = @Exp1 Exp2 = @Exp2 Fun1 = @Fun1 Fun2 = @Fun2 Fun3 = @Fun3 Fun4 = @Fun4 Bailout = @Bailout } bwp33 { init: z = 0 loop: z = z * @Fun1(@ZCoeff ^ z) + z ^ @Fun2(@Exponent) + #pixel bailout: |z| < @Bailout default: title = "BWP 33" center = (0, 0.1) magn = 2 param ZCoeff caption = "Z Coefficient" default = (0, 0.3) endparam param Exponent caption = "Exponent" default = (2, 0) endparam param Bailout caption = "Bailout Value" default = 2.0 endparam func Fun1 caption = "Function 1" default = ident() endfunc func Fun2 caption = "Function 2" default = ident() endfunc switch: type = "bwp34" Seed = #pixel ZCoeff = @ZCoeff Exponent = @Exponent Fun1 = @Fun1 Fun2 = @Fun2 Bailout = @Bailout } bwp34 { init: z = #pixel loop: z = z * @Fun1(@ZCoeff ^ z) + z ^ @Fun2(@Exponent) + @seed bailout: |z| < @Bailout default: title = "BWP 34" center = (0, 0.1) magn = 2 param Seed caption = "Seed" default = (0, 0) endparam param ZCoeff caption = "Z Coefficient" default = (0, 0.3) endparam param Exponent caption = "Exponent" default = (2, 0) endparam param Bailout caption = "Bailout Value" default = 2.0 endparam func Fun1 caption = "Function 1" default = ident() endfunc func Fun2 caption = "Function 2" default = ident() endfunc switch: type = "bwp33" ZCoeff = @ZCoeff Exponent = @Exponent Fun1 = @Fun1 Fun2 = @Fun2 Bailout = @Bailout } bwp35 { ; z = z ^ e + c p = @p2 + PI q = 2 * PI * trunc(p / (2 * PI)) r = @p2 - q z = c = #pixel loop: z = log(z) if (imag(z) > r) z = z + flip(2 * PI) endif z = exp(@p1 * (z + flip(q))) + c bailout: |z| < @Bailout default: title = "BWP 35" param p1 caption = "Parameter 1" default = (2, 0) endparam param p2 caption = "Parameter 2" default = 1 endparam param Bailout caption = "Bailout Value" default = 2.0 endparam } bwp36 { init: z = @InitValue t = #pixel loop: z = @Fun1(z) - @Fun2(t) t = @Fun3(z ^ @Exponent) bailout: |z| < @Bailout default: title = "BWP 36" param InitValue caption = "Initial Value" default = (0, 0) endparam param Exponent caption = "Exponent" default = (1, 0) endparam param Bailout caption = "Bailout Value" default = 4.0 endparam func Fun1 caption = "Function 1" default = sin() endfunc func Fun2 caption = "Function 2" default = ident() endfunc func Fun3 caption = "Function 3" default = recip() endfunc } bwp37 { init: zc = #pixel int n = @exp int nm1 = n - 1 loop: fp = @fun1(zc) ^ @fun2(nm1) f = zc * fp - (1.0, 0.0) dz = f / (fp * n) zc = zc - dz z = 1 / dz bailout: |z| < @bailout default: title="BWP 37" maxiter = 100 periodicity = 0 center = (0.0, 0.0) magn = 1.0 angle = 0 param exp caption = "Exponent" default = 4 min = 2 endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "make large" endparam func fun1 caption = "Function 1" default = ident() endfunc func fun2 caption = "Function 2" default = ident() endfunc } bwp38 { init: zc = #pixel n = @exp nm1 = n - 1 loop: fp = @fun1(zc) ^ @fun2(nm1) f = zc * fp - (1.0, 0.0) dz = f / (fp * n) zc = zc - dz z = 1 / dz bailout: |z| < @bailout default: title="BWP 38" maxiter = 100 periodicity = 0 center = (0.0, 0.0) magn = 1.0 angle = 0 param exp caption = "Exponent" default = (4, 0) min = (2, 0) endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 hint = "make large" endparam func fun1 caption = "Function 1" default = ident() endfunc func fun2 caption = "Function 2" default = ident() endfunc } bwp39 { init: zc = #pixel n = @exp nm1 = n - 1 loop: fp = @fun1(zc) ^ @fun2(nm1) + @fun3(#pixel) f = zc * fp - (1.0, 0.0) dz = f / (fp * n) zc = zc - dz z = 1 / dz bailout: |z| < @bailout default: title="BWP 39" maxiter = 100 periodicity = 0 center = (0.0, 0.0) magn = 1.0 angle = 0 param exp caption = "Exponent" default = (4, 0) min = (2, 0) endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 endparam func fun1 caption = "Function 1" default = ident() endfunc func fun2 caption = "Function 2" default = ident() endfunc func fun3 caption = "Function 3" default = ident() endfunc } bwp40 { init: zc = #pixel n = @exp nm1 = n - 1 zm = 0 loop: zm = zm ^ n + @fun3(#pixel) fp = @fun1(zc) ^ @fun2(nm1) + zm f = zc * fp - (1.0, 0.0) dz = f / (fp * n) zc = zc - dz z = 1 / dz bailout: |z| < @bailout default: title="BWP 40" maxiter = 100 periodicity = 0 center = (0.0, 0.0) magn = 1.0 angle = 0 param exp caption = "Exponent" default = (4, 0) min = (2, 0) endparam param bailout caption = "Bailout Value" default = 100.0 min = 0.0 endparam func fun1 caption = "Function 1" default = ident() endfunc func fun2 caption = "Function 2" default = ident() endfunc func fun3 caption = "Function 3" default = ident() endfunc } bwp41 { init: pix = #pixel u = real(pix) v = imag(pix) a = pi * @a1 b = pi * @a2 g = pi * @a3 d = pi * @a4 ca = cos(a) cb = cos(b) sb = sin(b) cg = cos(g) sg = sin(g) cd = cos(d) sd = sin(d) p = u * cg * cd - v * (ca * sb * sg * cd + ca * cb * sd) q = u * cg * sd + v * (ca * cb * cd - ca * sb * sg * sd) r = u * sg + v * ca * sb * cg s = v * sin(a) c = p + flip(q) + @o1 z = r + flip(s) + @o2 loop: z = z ^ @exp + c bailout: |z| <= @bailout default: title="BWP 41" param exp caption = "Exponent" default = (2, 0) endparam param a1 caption = "Angle 1" endparam param a2 caption = "Angle 2" endparam param a3 caption = "Angle 3" endparam param a4 caption = "Angle 4" endparam param o1 caption = "Offset 1" endparam param o2 caption = "Offset 2" endparam param bailout caption = "Bailout Value" default = 9 endparam } bwp42 { init: z = @init loop: z = 4 * @r * (z ^ @e1) * (1 - (z ^ @e2)) + #pixel bailout: |z| <= @bailout default: title="BWP 42" maxiter = 1000 periodicity = 0 center = (0, 0) magn = 4 angle = 0 param init caption = "Initial Value" default = (0.75, 0.0) endparam param r caption = "R" default = (0.75, 0.0) endparam param e1 caption = "Exponent 1" default = (1, 0) endparam param e2 caption = "Exponent 2" default = (1, 0) endparam param bailout caption = "Bailout Value" default = 100 endparam switch: type = "bwp43" seed = #pixel r = @r e1 = @e1 e2 = @e2 bailout = @bailout } bwp43 { init: z = #pixel loop: z = 4 * @r * (z ^ @e1) * (1 - (z ^ @e2)) + @seed bailout: |z| <= @bailout default: title="BWP 43" maxiter = 1000 periodicity = 0 center = (0.5, 0) magn = 4 angle = 0 param seed caption = "Seed" default = (0, 0) endparam param r caption = "R" default = (0.75, 0.0) endparam param e1 caption = "Exponent 1" default = (1, 0) endparam param e2 caption = "Exponent 2" default = (1, 0) endparam param bailout caption = "Bailout Value" default = 100 endparam switch: type = "bwp42" r = @r e1 = @e1 e2 = @e2 bailout = @bailout } bwp44 { ; A generalization of Jim Muth's MandNewt formulas init: z = c = @f1(@p1 * #pixel) loop: a = z ^ @p2 + (c - @p3) * @f2(z) - @f3(@p4 * c) b = @p5 * z ^ @p6 + @f4(@p7 * c - @p8) z = z - @f5(@p9 * a / b) bailout: |a| >= @bailout default: title="BWP 44" method = onepass periodicity = 0 maxiter = 1000 param p1 caption = "Parameter 1" default = (1, 0) endparam param p2 caption = "Parameter 2" default = (3, 0) endparam param p3 caption = "Parameter 3" default = (1, 0) endparam param p4 caption = "Parameter 4" default = (1, 0) endparam param p5 caption = "Parameter 5" default = (3, 0) endparam param p6 caption = "Parameter 6" default = (2, 0) endparam param p7 caption = "Parameter 7" default = (1, 0) endparam param p8 caption = "Parameter 8" default = (1, 0) endparam param p9 caption = "Parameter 9" default = (1, 0) endparam param bailout caption = "Bailout" default = (1E-10, 0) endparam func f1 caption = "Function 1" default = ident() endfunc func f2 caption = "Function 2" default = ident() endfunc func f3 caption = "Function 3" default = ident() endfunc func f4 caption = "Function 4" default = ident() endfunc func f5 caption = "Function 5" default = ident() endfunc }