Fractal 056 C – Shyness

Part of ENCOUNTER series – 12 2021

darkness . dripping . obstacle . pastels . shyness . star
Fractal 056 C - Shyness
Fractal 056 C zoom1

Fractal 056 C – zoom level 1

Fractal 056 C zoom2

Fractal 056 C – zoom level 2

Data

This digital works is created exclusively from fractals, with 0% AI generated. It can therefore be converted into a set of functions and parameters that can be the basis for the training of an AI.

The mathematical formulas and parameter combinations corresponding to each fractal are presented below. In each case, the numerical characters have been replaced by ■ to prevent unauthorized reproduction. If you are interested in using the full data set, please contact Philippe.

Fractal 056 C - Shyness - Part of ENCOUNTER series - 12.2021

Fractal 056 C | Shy Star

Fractal_■■■_C {
fractal:
  title="Fractal_■■■_C" width=■■■■ height=■■■■ layers=■
  credits="Philoxerax;■/■/■■■■"
layer:
  caption="Background" opacity=■■ mergemode=lighten
mapping:
  center=■■■■■■.■■■■/-■■■■■.■■■■■■ magn=■.■■■■■■■■ angle=■■.■■■■
  stretch=■.■■■■ skew=■.■■■
formula:
  maxiter=■■■■ percheck=off filename="dmj.ufm"
  entry="dmj-fBmNovaMandel" p_start=■/■ p_power=■/■ p_bailout=■.■■■■■
  p_relax=■/■ p_distortion=■.■ p_style=radial p_distangle=■.■
  p_distcenter=■/■ p_centermove=no p_offset=■/■ p_scale=■.■
  p_angle=■.■ p_step=■.■ p_anglestep=■■.■ p_octaves=■ p_npower=■.■
  p_noisestart=■.■ p_noiseiter=■■■■■.■ p_noiseskip=■.■ p_coloronly=no
inside:
  transfer=none solid=■■■■■■■■■■
outside:
  transfer=linear
gradient:
  smooth=yes rotation=■■■ index=■■■ color=■ index=■■■ color=■■■■■■
  index=■■■ color=■■■■■■■ index=■■■ color=■■■■■■■
opacity:
  smooth=no index=■ opacity=■■■
layer:
  caption="Layer ■" opacity=■■ mergemode=screen
mapping:
  center=-■.■■■■■■■■■■■■/-■.■■■■■■■■■■■■■■ magn=■■■■.■■■■
  angle=-■■■.■■■■
formula:
  maxiter=■■■ filename="lkm■.ufm" entry="alternating-functions"
  p_initz_type=pixel p_initial_z=■/■ p_bailout=■■■■ p_ztype=iterate
  p_nfunction=■ p_fn■="Newton J ■" p_fn■="Mandelbrot ■" p_fn■=" "
  p_fn■=" " p_fn■=" " p_fn■=" " p_m■power=■/■ p_m■weight=■/■
  p_j■power=■/■ p_j■param=■/■ p_j■weight=■/■ p_nm■power=■/■
  p_nm■weight=■/■ p_nj■power=■/■ p_nj■param=■/■ p_nj■weight=■/■
  p_pc■h=■.■/■ p_pc■c=■/■ f_pc■out=sin f_pc■in=tan p_pr■h=■.■ p_pr■c=■
  f_pr■out=sin f_pr■in=tan p_m■power=■/■ p_m■weight=■/■ p_j■power=■/■
  p_j■param=■/■ p_j■weight=■/■ p_nm■power=■/■ p_nm■weight=■/■
  p_nj■power=■/■ p_nj■param=■/■ p_nj■weight=■/■ p_pc■h=■.■/■
  p_pc■c=■/■ f_pc■out=sin f_pc■in=tan p_pr■h=■.■ p_pr■c=■ f_pr■out=sin
  f_pr■in=tan p_oscillator_type=ramp p_initial_seed=■■■■
inside:
  transfer=none solid=■■■■■■■■■■
outside:
  transfer=linear
gradient:
  smooth=yes rotation=■■■ index=■■■ color=■■■■■■■ index=■■■
  color=■■■■■■■ index=■■■ color=■■■■■■■■ index=■■■ color=■■■■■■■
  index=■■■ color=■■■■■■■■ index=■■■ color=■■■■■ index=■■■
  color=■■■■■■■ index=■■■ color=■■■■■■■■
opacity:
  smooth=no index=■ opacity=■■■
layer:
  caption="Background" opacity=■■■ mergemode=luminance
mapping:
  center=-■.■■■■■■■■■■■■/-■.■■■■■■■■■■■■■ magn=■■■■.■■■■
  angle=-■■■.■■■■
formula:
  maxiter=■■■ filename="lkm■.ufm" entry="alternating-functions"
  p_initz_type=pixel p_initial_z=■/■ p_bailout=■■■■ p_ztype=iterate
  p_nfunction=■ p_fn■="Newton J ■" p_fn■="Mandelbrot ■" p_fn■=" "
  p_fn■=" " p_fn■=" " p_fn■=" " p_m■power=■/■ p_m■weight=■/■
  p_j■power=■/■ p_j■param=■/■ p_j■weight=■/■ p_nm■power=■/■
  p_nm■weight=■/■ p_nj■power=■/■ p_nj■param=■/■ p_nj■weight=■/■
  p_pc■h=■.■/■ p_pc■c=■/■ f_pc■out=sin f_pc■in=tan p_pr■h=■.■ p_pr■c=■
  f_pr■out=sin f_pr■in=tan p_m■power=■/■ p_m■weight=■/■ p_j■power=■/■
  p_j■param=■/■ p_j■weight=■/■ p_nm■power=■/■ p_nm■weight=■/■
  p_nj■power=■/■ p_nj■param=■/■ p_nj■weight=■/■ p_pc■h=■.■/■
  p_pc■c=■/■ f_pc■out=sin f_pc■in=tan p_pr■h=■.■ p_pr■c=■ f_pr■out=sin
  f_pr■in=tan p_oscillator_type=ramp p_initial_seed=■■■■
inside:
  transfer=none
outside:
  transfer=linear
gradient:
  smooth=yes rotation=-■■■ index=■■ color=■■■■■■■ index=■■■
  color=■■■■■■■ index=■■■ color=■■■■■■■ index=-■■■ color=■■■■■■■
  index=-■■ color=■■■■■■■■ index=-■■ color=■■■■■■■ index=-■■
  color=■■■■■■■■ index=-■■ color=■■■■■
opacity:
  smooth=no index=■ opacity=■■■
layer:
  caption="Background" opacity=■■■ mergemode=lighten
mapping:
  center=-■.■■■■■■■■■■■■/-■.■■■■■■■■■■■■■■ magn=■■■■.■■■■
  angle=-■■.■■■■
formula:
  maxiter=■■■ filename="lkm■.ufm" entry="alternating-functions"
  p_initz_type=pixel p_initial_z=■/■ p_bailout=■■■■ p_ztype=iterate
  p_nfunction=■ p_fn■="Newton J ■" p_fn■="Mandelbrot ■" p_fn■=" "
  p_fn■=" " p_fn■=" " p_fn■=" " p_m■power=■/■ p_m■weight=■/■
  p_j■power=■/■ p_j■param=■/■ p_j■weight=■/■ p_nm■power=■/■
  p_nm■weight=■/■ p_nj■power=■/■ p_nj■param=■/■ p_nj■weight=■/■
  p_pc■h=■.■/■ p_pc■c=■/■ f_pc■out=sin f_pc■in=tan p_pr■h=■.■ p_pr■c=■
  f_pr■out=sin f_pr■in=tan p_m■power=■/■ p_m■weight=■/■ p_j■power=■/■
  p_j■param=■/■ p_j■weight=■/■ p_nm■power=■/■ p_nm■weight=■/■
  p_nj■power=■/■ p_nj■param=■/■ p_nj■weight=■/■ p_pc■h=■.■/■
  p_pc■c=■/■ f_pc■out=sin f_pc■in=tan p_pr■h=■.■ p_pr■c=■ f_pr■out=sin
  f_pr■in=tan p_oscillator_type=ramp p_initial_seed=■■■■
inside:
  transfer=none
outside:
  transfer=linear
gradient:
  smooth=yes rotation=-■■■ index=■ color=■■■■■■■ index=■■■
  color=■■■■■■■ index=■■■ color=■■■■■■■ index=-■■■ color=■■■■■■■
  index=-■■■ color=■■■■■■■■ index=-■■ color=■■■■■■■ index=-■■
  color=■■■■■■■■ index=-■■ color=■■■■■
opacity:
  smooth=no index=■ opacity=■■■
layer:
  caption="Background" opacity=■■
mapping:
  center=-■.■■■■■■■■■■■■■/-■.■■■■■■■■■■■■■■■ magn=■■■■■.■■■
  angle=-■■■.■■■■
formula:
  maxiter=■■■ filename="lkm■.ufm" entry="alternating-functions"
  p_initz_type=pixel p_initial_z=■/■ p_bailout=■■■■ p_ztype=iterate
  p_nfunction=■ p_fn■="Newton J ■" p_fn■="Mandelbrot ■" p_fn■=" "
  p_fn■=" " p_fn■=" " p_fn■=" " p_m■power=■/■ p_m■weight=■/■
  p_j■power=■/■ p_j■param=■/■ p_j■weight=■/■ p_nm■power=■/■
  p_nm■weight=■/■ p_nj■power=■/■ p_nj■param=■/■ p_nj■weight=■/■
  p_pc■h=■.■/■ p_pc■c=■/■ f_pc■out=sin f_pc■in=tan p_pr■h=■.■ p_pr■c=■
  f_pr■out=sin f_pr■in=tan p_m■power=■/■ p_m■weight=■/■ p_j■power=■/■
  p_j■param=■/■ p_j■weight=■/■ p_nm■power=■/■ p_nm■weight=■/■
  p_nj■power=■/■ p_nj■param=■/■ p_nj■weight=■/■ p_pc■h=■.■/■
  p_pc■c=■/■ f_pc■out=sin f_pc■in=tan p_pr■h=■.■ p_pr■c=■ f_pr■out=sin
  f_pr■in=tan p_oscillator_type=ramp p_initial_seed=■■■■
inside:
  transfer=none solid=■■■■■■■■■■
outside:
  transfer=linear
gradient:
  smooth=yes rotation=■■■ index=■■■ color=■■■■■■■■ index=■■■
  color=■■■■■■■■ index=■■■ color=■■■■■■■■ index=■■■ color=■■■■■■■■
  index=■■■ color=■■■■■■■ index=■■■ color=■■■■■■■■ index=■■■
  color=■■■■■■■■ index=■■■ color=■■■■■■■■ index=■■■ color=■■■■■■■■
  index=■■■ color=■■■■■■■ index=■■■ color=■■■■■■■ index=■■■
  color=■■■■■■■■ index=■■■ color=■■■■■■■■ index=■■■ color=■■■■■■■■
  index=■■■ color=■■■■■■■■ index=■■■ color=■■■■■■■■ index=■■■
  color=■■■■■■■■ index=■■■ color=■■■■■■■■ index=■■■ color=■■■■■■■■
  index=■■■ color=■■■■■■■ index=■■■ color=■■■■■■■ index=■■■
  color=■■■■■■■■ index=■■■ color=■■■■■■■■ index=■■■ color=■■■■■■■■
  index=■■■ color=■■■■■■■■ index=■■■ color=■■■■■■■ index=■■■
  color=■■■■■■■■
opacity:
  smooth=no index=■ opacity=■■■
}

dmj-fBmNovaMandel {
;
; This is the basic Nova (Mandelbrot) type, but with a
; bit of fBm noise added at each iteration. This
; tends to distort the fractal beyond all recognition
; after just a few iterations, which may or may not
; be what you're looking for.
;
; You can also use the "Coloring Only" option to
; restrict the fBm distortion to the value passed
; to the coloring algorithm; the distortion will be
; removed before the next iteration is calculated.
;
init:
  complex zsquared = (■,■)
  complex zcubed = (■,■)
  complex zold = (■,■)
  
  z = @start
  complex oz = z

  complex c = @distcenter
  IF (@centermove)
    c = #center
  ENDIF

  complex r = (■,■) ^ (@angle / ■■.■)
  complex r■ = (■,■) ^ (@anglestep / ■■.■)
  complex r■ = (■,■) ^ (@distangle / ■■.■)
  
  float fiter = @noisestart
  BOOL noise = false
  
loop:
  IF (@noiseskip != ■); we are skipping some iterations
    fiter = fiter - ■; one less to go before we add noise
    WHILE (fiter < ■.■); iterations all used up
      IF (noise); we are currently adding noise
        noise = false; so stop
fiter = fiter + @noiseskip; skip this many iterations
      ELSE; we aren't currently adding noise
        noise = true; so start
fiter = fiter + @noiseiter; do this many iterations
      ENDIF
    ENDWHILE
  ENDIF

  IF (@coloronly); only using fBm on coloring
    z = oz; restore z from un-fBm'ed copy
  ENDIF
  IF (@power == (■,■)); special optimized routine for power ■
    zsquared = sqr(z)
    zcubed = zsquared ■ z
    zold = z
    z = z - @relax ■ (zcubed-■) / (■■zsquared) + #pixel
  ELSE
    zold = z
    z = z - @relax ■ (z^@power-■) / (@power ■ z^(@power-■)) + #pixel
  ENDIF
  IF (@coloronly); only using fBm on coloring
    oz = z
  ENDIF

  IF (@noiseskip == ■.■ || noise); adding noise this iteration
    complex p = z ■ @scale ■ r ;+ @offset
    float sum = ■.■
    float freq = ■.■
    complex v = (■,■)
    int i = @octaves
    WHILE (i > ■)
      ; determine integer coordinate for corners of square
      ; surrounding p
      float bx■ = floor(real(p)) % ■■■
      float by■ = floor(imag(p)) % ■■■
      IF (bx■ < ■)
        bx■ = bx■ + ■■■
      ENDIF
      IF (by■ < ■)
        by■ = by■ + ■■■
      ENDIF
      float bx■ = (bx■ + ■) % ■■■
      float by■ = (by■ + ■) % ■■■

      float rx■ = real(p) - floor(real(p))
      float ry■ = imag(p) - floor(imag(p))
      float rx■ = rx■ - ■
      float ry■ = ry■ - ■
      
      ; create a "random" index for each corner
      ; (this is where Intel's version differs from Perlin's;
      ; I used Intel's version because it doesn't require a
      ; pre-computed random table, which is difficult to manage
      ; in UF.)
      float b■■ = (bx■^@npower % ■■■■■ + by■)^@npower % ■■■■■
      float b■■ = (bx■^@npower % ■■■■■ + by■)^@npower % ■■■■■
      float b■■ = (bx■^@npower % ■■■■■ + by■)^@npower % ■■■■■
      float b■■ = (bx■^@npower % ■■■■■ + by■)^@npower % ■■■■■

      ; produce a "random" vector for each corner
      float g_b■■_■ = (b■■)^@npower■■.■■ % ■■■ - ■■■
      float g_b■■_■ = (b■■)^@npower■■.■■ % ■■■ - ■■■
      float g_b■■_■ = (b■■)^@npower■■.■■ % ■■■ - ■■■
      float g_b■■_■ = (b■■)^@npower■■.■■ % ■■■ - ■■■
      float g_b■■_■ = (b■■+■)^@npower■■.■■ % ■■■ - ■■■
      float g_b■■_■ = (b■■+■)^@npower■■.■■ % ■■■ - ■■■
      float g_b■■_■ = (b■■+■)^@npower■■.■■ % ■■■ - ■■■
      float g_b■■_■ = (b■■+■)^@npower■■.■■ % ■■■ - ■■■
      
      ; normalize each vector
      float d = ■.■;
      d = ■ / sqrt(sqr(g_b■■_■) + sqr(g_b■■_■))
      g_b■■_■ = g_b■■_■ ■ d
      g_b■■_■ = g_b■■_■ ■ d
      d = ■ / sqrt(sqr(g_b■■_■) + sqr(g_b■■_■))
      g_b■■_■ = g_b■■_■ ■ d
      g_b■■_■ = g_b■■_■ ■ d
      d = ■ / sqrt(sqr(g_b■■_■) + sqr(g_b■■_■))
      g_b■■_■ = g_b■■_■ ■ d
      g_b■■_■ = g_b■■_■ ■ d
      d = ■ / sqrt(sqr(g_b■■_■) + sqr(g_b■■_■))
      g_b■■_■ = g_b■■_■ ■ d
      g_b■■_■ = g_b■■_■ ■ d
      
      ; produce colors for each corner
      float u■ = rx■ ■ g_b■■_■ + ry■ ■ g_b■■_■
      float v■ = rx■ ■ g_b■■_■ + ry■ ■ g_b■■_■
      float u■ = rx■ ■ g_b■■_■ + ry■ ■ g_b■■_■
      float v■ = rx■ ■ g_b■■_■ + ry■ ■ g_b■■_■
      
      ; interpolate between corners using
      ; bilinear filtering
      float sx = sqr(rx■) ■ (■ - rx■■■)
      float sy = sqr(ry■) ■ (■ - ry■■■)
      float a = u■ + sx■(v■-u■)
      float b = u■ + sx■(v■-u■)
      
      sum = sum + (a + sy■(b-a))■freq
      freq = freq ■ @step
      p = p ■ r■ / @step
      i = i - ■
    ENDWHILE

    IF (@style == ■); radial distortion
      v = (z-c)/cabs(z-c) ■ r■; use vector based on angle to distortion center
    ELSEIF (@style == ■); linear distortion
      v = r■; just use rotation vector
    ENDIF
    z = z + v ■ sum■■.■■@distortion
  ENDIF
  
  IF (@coloronly == false); not just using fBm on coloring
    oz = z; value for bailout is fBm'ed z
  ENDIF
  
bailout:
  |oz - zold| > @bailout

default:
  title = "Nova (Mandelbrot) + fBm"
  helpfile = "dmj-pub\dmj-pub-uf-nf.htm"
  maxiter = ■■■■
  periodicity = ■
  center = (-■.■,■)
  magn = ■.■
  
  param start
    caption = "Start Value"
    default = (■,■)
    hint = "Starting value for each point.  You can use this to \
            'perturb' the fractal."
  endparam
  param power
    caption = "Exponent"
    default = (■,■)
    hint = "Overall exponent for the equation.  (■,■) gives \
            the classic NovaM type."
  endparam
  param bailout
    caption = "Bailout"
    default = ■.■■■■■
    hint = "Bailout value; smaller values will cause more \
            iterations to be done for each point."
  endparam
  param relax
    caption = "Relaxation"
    default = (■,■)
    hint = "This can be used to slow down the convergence of \
            the formula."
  endparam

  param distortion
    caption = "Distortion Strength"
    default = ■.■
    hint = "This is the amount the noise distorts the image."
  endparam
  param style
    caption = "Distortion Style"
    default = ■
    enum = "radial" "linear"
    hint = "This selects whether the distortion will be focused \
            around a single point, or directed along a line."
  endparam
  param distangle
    caption = "Distortion Angle"
    default = ■.■
    hint = "This is the angle to rotate the distortion."
  endparam
  param distcenter
    caption = "Distortion Center"
    default = (■,■)
    hint = "Sets the center of distortion.  If Use Screen \
            Center is set, this item is ignored."
  endparam
  param centermove
    caption = "Use Screen Center"
    default = FALSE
    hint = "If set, distortion will be around the center of \
            the window, regardless of the Distortion Center \
            setting."
  endparam
  param offset
    caption = "Noise Offset"
    default = (■,■)
    hint = "This is the offset of the pattern. You can use this to shift \
            the pattern around on the complex plane."
  endparam
  param scale
    caption = "Noise Scale"
    default = ■.■
    hint = "This is the overall scale of the noise."
  endparam
  param angle
    caption = "Noise Rotation"
    default = ■.■
    hint = "This is the angle, in degrees, of the noise."
  endparam
  param step
    caption = "Noise Scale Step"
    default = ■.■
    hint = "This is the step in scale between noise iterations."
  endparam
  param anglestep
    caption = "Noise Rotation Step"
    default = ■■.■
    hint = "This is the angle, in degrees, to rotate between noise \
            iterations."
  endparam
  param octaves
    caption = "Noise Octaves"
    default = ■
    min = ■
    hint = "This is the number of iterations of the noise formula."
  endparam
  param npower
    caption = "Noise Exponent"
    default = ■.■
    hint = "This is the exponent used to scramble numbers."
  endparam

  param noisestart
    caption = "Start Iteration"
    default = ■.■
    hint = "This is the iteration at which to start adding noise."
  endparam
  param noiseiter
    caption = "Noise Iterations"
    default = ■■■■■.■
    hint = "This is the number of iterations to add noise to."
  endparam
  param noiseskip
    caption = "Skip Iterations"
    default = ■.■
    hint = "This is the number of iterations to skip adding noise \
            before starting again."
  endparam
  param coloronly
    caption = "Coloring Only"
    default = false
    hint = "If set, noise will only apply to pixel values passed \
            to the coloring algorithm; it will not be included in \
            the fractal calculation between iterations."
  endparam

switch:
  type = "dmj-fBmNovaJulia"
  seed = #pixel
  power = @power
  bailout = @bailout
  relax = @relax
  
  distortion = @distortion
  style = @style
  distangle = @distangle
  distcenter = @distcenter
  centermove = @centermove
  offset = @offset
  scale = @scale
  angle = @angle
  step = @step
  anglestep = @anglestep
  octaves = @octaves
  npower = @npower
  
  noisestart = @noisestart
  noiseiter = @noiseiter
  noiseskip = @noiseskip
  coloronly = @coloronly
}

alternating-functions { ; Kerry Mitchell ■■Jul■■■■
init:
  complex dz=(■,■)
  complex z=(■,■)
  complex xnew=(■,■)
  complex xold=(■,■)
  complex ynew=(■,■)
  complex yold=(■,■)
  complex znew=(■,■)
  complex zold=(■,■)
  float r=■
  float sincos=■
  int funtype=■
  int iter=■
  int picker=■
  int seed=@initial_seed
;
  if(@initz_type=="pixel")
    zold=#pixel
  else
    zold=@initial_z
  endif
  iter=-■
loop:
  iter=iter+■
;
; choose function
;
; ■ function
;
  if(@nfunction=="■")
    if(@fn■=="Mandelbrot ■")
      funtype=■
    elseif(@fn■=="Julia ■")
      funtype=■
    elseif(@fn■=="Newton M ■")
      funtype=■
    elseif(@fn■=="Newton J ■")
      funtype=■
    elseif(@fn■=="Popcorn C ■")
      funtype=■
    elseif(@fn■=="Popcorn R ■")
      funtype=■
    elseif(@fn■=="Mandelbrot ■")
      funtype=■
    elseif(@fn■=="Julia ■")
      funtype=■
    elseif(@fn■=="Newton M ■")
      funtype=■
    elseif(@fn■=="Newton J ■")
      funtype=■■
    elseif(@fn■=="Popcorn C ■")
      funtype=■■
    elseif(@fn■=="Popcorn R ■")
      funtype=■■
    endif
;
; ■ functions
;
  elseif(@nfunction=="■")
    if(@oscillator_type=="ramp")
      picker=iter%■
    elseif(@oscillator_type=="sine")
      sincos=(■+sin(iter-■.■■■))/■
      picker=trunc(sincos■■)
    elseif(@oscillator_type=="cosine")
      sincos=(■+cos(iter+■.■■■))/■
      picker=trunc(sincos■■)
    elseif(@oscillator_type=="random msb")
      seed=random(seed)
      sincos=abs(seed/#randomrange)
      picker=trunc(sincos■■)
    elseif(@oscillator_type=="random lsb")
      seed=random(seed)
      picker=abs(seed)%■
    endif
    picker=picker+■
    if(picker==■)
      if(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■
      elseif(@fn■=="Popcorn C ■")
        funtype=■
      elseif(@fn■=="Popcorn R ■")
        funtype=■
      elseif(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■■
      elseif(@fn■=="Popcorn C ■")
        funtype=■■
      elseif(@fn■=="Popcorn R ■")
        funtype=■■
      endif
    else
      if(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■
      elseif(@fn■=="Popcorn C ■")
        funtype=■
      elseif(@fn■=="Popcorn R ■")
        funtype=■
      elseif(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■■
      elseif(@fn■=="Popcorn C ■")
        funtype=■■
      elseif(@fn■=="Popcorn R ■")
        funtype=■■
      endif
    endif
;
; ■ functions
;
  elseif(@nfunction=="■")
    if(@oscillator_type=="ramp")
      picker=iter%■
    elseif(@oscillator_type=="sine")
      sincos=(■+sin(iter-■.■■■))/■
      picker=trunc(sincos■■)
    elseif(@oscillator_type=="cosine")
      sincos=(■+cos(iter+■.■■■))/■
      picker=trunc(sincos■■)
    elseif(@oscillator_type=="random msb")
      seed=random(seed)
      sincos=abs(seed/#randomrange)
      picker=trunc(sincos■■)
    elseif(@oscillator_type=="random lsb")
      seed=random(seed)
      picker=abs(seed)%■
    endif
    picker=picker+■
    if(picker==■)
      if(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■
      elseif(@fn■=="Popcorn C ■")
        funtype=■
      elseif(@fn■=="Popcorn R ■")
        funtype=■
      elseif(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■■
      elseif(@fn■=="Popcorn C ■")
        funtype=■■
      elseif(@fn■=="Popcorn R ■")
        funtype=■■
      endif
    elseif(picker==■)
      if(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■
      elseif(@fn■=="Popcorn C ■")
        funtype=■
      elseif(@fn■=="Popcorn R ■")
        funtype=■
      elseif(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■■
      elseif(@fn■=="Popcorn C ■")
        funtype=■■
      elseif(@fn■=="Popcorn R ■")
        funtype=■■
      endif
    else
      if(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■
      elseif(@fn■=="Popcorn C ■")
        funtype=■
      elseif(@fn■=="Popcorn R ■")
        funtype=■
      elseif(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■■
      elseif(@fn■=="Popcorn C ■")
        funtype=■■
      elseif(@fn■=="Popcorn R ■")
        funtype=■■
      endif
    endif
;
; ■ functions
;
  elseif(@nfunction=="■")
    if(@oscillator_type=="ramp")
      picker=iter%■
    elseif(@oscillator_type=="sine")
      sincos=(■+sin(iter-■.■■■))/■
      picker=trunc(sincos■■)
    elseif(@oscillator_type=="cosine")
      sincos=(■+cos(iter+■.■■■))/■
      picker=trunc(sincos■■)
    elseif(@oscillator_type=="random msb")
      seed=random(seed)
      sincos=abs(seed/#randomrange)
      picker=trunc(sincos■■)
    elseif(@oscillator_type=="random lsb")
      seed=random(seed)
      picker=abs(seed)%■
    endif
    picker=picker+■
    if(picker==■)
      if(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■
      elseif(@fn■=="Popcorn C ■")
        funtype=■
      elseif(@fn■=="Popcorn R ■")
        funtype=■
      elseif(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■■
      elseif(@fn■=="Popcorn C ■")
        funtype=■■
      elseif(@fn■=="Popcorn R ■")
        funtype=■■
      endif
    elseif(picker==■)
      if(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■
      elseif(@fn■=="Popcorn C ■")
        funtype=■
      elseif(@fn■=="Popcorn R ■")
        funtype=■
      elseif(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■■
      elseif(@fn■=="Popcorn C ■")
        funtype=■■
      elseif(@fn■=="Popcorn R ■")
        funtype=■■
      endif
    elseif(picker==■)
      if(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■
      elseif(@fn■=="Popcorn C ■")
        funtype=■
      elseif(@fn■=="Popcorn R ■")
        funtype=■
      elseif(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■■
      elseif(@fn■=="Popcorn C ■")
        funtype=■■
      elseif(@fn■=="Popcorn R ■")
        funtype=■■
      endif
    else
      if(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■
      elseif(@fn■=="Popcorn C ■")
        funtype=■
      elseif(@fn■=="Popcorn R ■")
        funtype=■
      elseif(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■■
      elseif(@fn■=="Popcorn C ■")
        funtype=■■
      elseif(@fn■=="Popcorn R ■")
        funtype=■■
      endif
    endif
;
; ■ functions
;
  elseif(@nfunction=="■")
    if(@oscillator_type=="ramp")
      picker=iter%■
    elseif(@oscillator_type=="sine")
      sincos=(■+sin(iter-■.■■■))/■
      picker=trunc(sincos■■)
    elseif(@oscillator_type=="cosine")
      sincos=(■+cos(iter+■.■■■))/■
      picker=trunc(sincos■■)
    elseif(@oscillator_type=="random msb")
      seed=random(seed)
      sincos=abs(seed/#randomrange)
      picker=trunc(sincos■■)
    elseif(@oscillator_type=="random lsb")
      seed=random(seed)
      picker=abs(seed)%■
    endif
    picker=picker+■
    if(picker==■)
      if(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■
      elseif(@fn■=="Popcorn C ■")
        funtype=■
      elseif(@fn■=="Popcorn R ■")
        funtype=■
      elseif(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■■
      elseif(@fn■=="Popcorn C ■")
        funtype=■■
      elseif(@fn■=="Popcorn R ■")
        funtype=■■
      endif
    elseif(picker==■)
      if(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■
      elseif(@fn■=="Popcorn C ■")
        funtype=■
      elseif(@fn■=="Popcorn R ■")
        funtype=■
      elseif(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■■
      elseif(@fn■=="Popcorn C ■")
        funtype=■■
      elseif(@fn■=="Popcorn R ■")
        funtype=■■
      endif
    elseif(picker==■)
      if(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■
      elseif(@fn■=="Popcorn C ■")
        funtype=■
      elseif(@fn■=="Popcorn R ■")
        funtype=■
      elseif(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■■
      elseif(@fn■=="Popcorn C ■")
        funtype=■■
      elseif(@fn■=="Popcorn R ■")
        funtype=■■
      endif
    elseif(picker==■)
      if(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■
      elseif(@fn■=="Popcorn C ■")
        funtype=■
      elseif(@fn■=="Popcorn R ■")
        funtype=■
      elseif(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■■
      elseif(@fn■=="Popcorn C ■")
        funtype=■■
      elseif(@fn■=="Popcorn R ■")
        funtype=■■
      endif
    else
      if(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■
      elseif(@fn■=="Popcorn C ■")
        funtype=■
      elseif(@fn■=="Popcorn R ■")
        funtype=■
      elseif(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■■
      elseif(@fn■=="Popcorn C ■")
        funtype=■■
      elseif(@fn■=="Popcorn R ■")
        funtype=■■
      endif
    endif
;
; ■ functions
;
  elseif(@nfunction=="■")
    if(@oscillator_type=="ramp")
      picker=iter%■
    elseif(@oscillator_type=="sine")
      sincos=(■+sin(iter-■.■■■))/■
      picker=trunc(sincos■■)
    elseif(@oscillator_type=="cosine")
      sincos=(■+cos(iter+■.■■■))/■
      picker=trunc(sincos■■)
    elseif(@oscillator_type=="random msb")
      seed=random(seed)
      sincos=abs(seed/#randomrange)
      picker=trunc(sincos■■)
    elseif(@oscillator_type=="random lsb")
      seed=random(seed)
      picker=abs(seed)%■
    endif
    picker=picker+■
    if(picker==■)
      if(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■
      elseif(@fn■=="Popcorn C ■")
        funtype=■
      elseif(@fn■=="Popcorn R ■")
        funtype=■
      elseif(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■■
      elseif(@fn■=="Popcorn C ■")
        funtype=■■
      elseif(@fn■=="Popcorn R ■")
        funtype=■■
      endif
    elseif(picker==■)
      if(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■
      elseif(@fn■=="Popcorn C ■")
        funtype=■
      elseif(@fn■=="Popcorn R ■")
        funtype=■
      elseif(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■■
      elseif(@fn■=="Popcorn C ■")
        funtype=■■
      elseif(@fn■=="Popcorn R ■")
        funtype=■■
      endif
    elseif(picker==■)
      if(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■
      elseif(@fn■=="Popcorn C ■")
        funtype=■
      elseif(@fn■=="Popcorn R ■")
        funtype=■
      elseif(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■■
      elseif(@fn■=="Popcorn C ■")
        funtype=■■
      elseif(@fn■=="Popcorn R ■")
        funtype=■■
      endif
    elseif(picker==■)
      if(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■
      elseif(@fn■=="Popcorn C ■")
        funtype=■
      elseif(@fn■=="Popcorn R ■")
        funtype=■
      elseif(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■■
      elseif(@fn■=="Popcorn C ■")
        funtype=■■
      elseif(@fn■=="Popcorn R ■")
        funtype=■■
      endif
    elseif(picker==■)
      if(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■
      elseif(@fn■=="Popcorn C ■")
        funtype=■
      elseif(@fn■=="Popcorn R ■")
        funtype=■
      elseif(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■■
      elseif(@fn■=="Popcorn C ■")
        funtype=■■
      elseif(@fn■=="Popcorn R ■")
        funtype=■■
      endif
    else
      if(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■
      elseif(@fn■=="Popcorn C ■")
        funtype=■
      elseif(@fn■=="Popcorn R ■")
        funtype=■
      elseif(@fn■=="Mandelbrot ■")
        funtype=■
      elseif(@fn■=="Julia ■")
        funtype=■
      elseif(@fn■=="Newton M ■")
        funtype=■
      elseif(@fn■=="Newton J ■")
        funtype=■■
      elseif(@fn■=="Popcorn C ■")
        funtype=■■
      elseif(@fn■=="Popcorn R ■")
        funtype=■■
      endif
    endif
  endif
;
; iterate
;
  if(funtype==■) ; Mandelbrot ■
    znew=(■-@m■weight)■zold+@m■weight■(zold^@m■power+#pixel)
    r=|znew|
  elseif(funtype==■) ; Julia ■
    znew=(■-@j■weight)■zold+@j■weight■(zold^@j■power+@j■param)
    r=|znew|
  elseif(funtype==■) ; Newton M ■, roots of pixel
    dz=(zold^@nm■power-#pixel)/(@nm■power■zold^(@nm■power-■))
    znew=zold-@nm■weight■dz
    r=■/|dz|
  elseif(funtype==■) ; Newton J ■, roots of specific value
    dz=(zold^@nj■power-@nj■param)/(@nj■power■zold^(@nj■power-■))
    znew=zold-@nj■weight■dz
    r=■/|dz|
  elseif(funtype==■) ; Popcorn C ■, popcorn with complex variables
    xold=real(zold)
    yold=imag(zold)
    xnew=xold-@pc■h■@pc■out(yold+@pc■in(@pc■c■yold))
    ynew=yold-@pc■h■@pc■out(xold+@pc■in(@pc■c■xold))
    znew=xnew+flip(ynew)
    r=|znew|
  elseif(funtype==■) ; Popcorn R ■, popcorn with real variables
    xold=real(zold)
    yold=imag(zold)
    xnew=xold-@pr■h■real(@pr■out(yold+real(@pr■in(@pr■c■yold))))
    ynew=yold-@pr■h■real(@pr■out(xold+real(@pr■in(@pr■c■xold))))
    znew=xnew+flip(ynew)
    r=|znew|
  elseif(funtype==■) ; Mandelbrot ■
    znew=(■-@m■weight)■zold+@m■weight■(zold^@m■power+#pixel)
    r=|znew|
  elseif(funtype==■) ; Julia ■
    znew=(■-@j■weight)■zold+@j■weight■(zold^@j■power+@j■param)
    r=|znew|
  elseif(funtype==■) ; Newton M ■, roots of pixel
    dz=(zold^@nm■power-#pixel)/(@nm■power■zold^(@nm■power-■))
    znew=zold-@nm■weight■dz
    r=■/|dz|
  elseif(funtype==■■) ; Newton J ■, roots of specific value
    dz=(zold^@nj■power-@nj■param)/(@nj■power■zold^(@nj■power-■))
    znew=zold-@nj■weight■dz
    r=■/|dz|
  elseif(funtype==■■) ; Popcorn C ■, popcorn with complex variables
    xold=real(zold)
    yold=imag(zold)
    xnew=xold-@pc■h■@pc■out(yold+@pc■in(@pc■c■yold))
    ynew=yold-@pc■h■@pc■out(xold+@pc■in(@pc■c■xold))
    znew=xnew+flip(ynew)
    r=|znew|
  elseif(funtype==■■) ; Popcorn R ■, popcorn with real variables
    xold=real(zold)
    yold=imag(zold)
    xnew=xold-@pr■h■real(@pr■out(yold+real(@pr■in(@pr■c■yold))))
    ynew=yold-@pr■h■real(@pr■out(xold+real(@pr■in(@pr■c■xold))))
    znew=xnew+flip(ynew)
    r=|znew|
  endif
;
; establish z
;
  if(@ztype=="iterate")
    z=znew
  elseif(@ztype=="difference")
    z=znew-zold
  elseif(@ztype=="ratio")
    z=znew/zold
  elseif(@ztype=="weird")
    if(@nfunction=="■")
      z=zold^znew
    elseif(@nfunction=="■")
      z=(-zold)^znew
    elseif(@nfunction=="■")
      z=(-zold)^(-znew)
    elseif(@nfunction=="■")
      z=zold^(-znew)
    elseif(@nfunction=="■")
      z=(zold+znew)^(zold-znew)
    elseif(@nfunction=="■")
      z=(znew-zold)^(zold+znew)
    endif
  endif
  zold=znew
bailout:
  r<@bailout
default:
  title="Alternating Functions"
  heading
    text="Allows you to alternate between several functions every iteration."
  endheading
;
; general parameters
;
  heading
    caption="General parameters"
  endheading
  param initz_type
    caption="initial z type"
    default=■
    enum="manual" "pixel"
  endparam
  complex param initial_z
    caption="initial z"
    default=(■,■)
    visible=(@initz_type=="manual")
  endparam
  float param bailout
    caption="bailout"
    default=■■■■
  endparam
  param ztype
    caption="z type"
    default=■
    enum="iterate" "difference" "ratio" "weird"
  endparam
;
; alternating function defintions
;
  heading
    caption="Alternating functions"
  endheading
  param nfunction
    caption="# of functions"
    default=■
    enum="■" "■" "■" "■" "■" "■"
  endparam
  param fn■
    caption="function ■"
    default=■
    enum=" " "Mandelbrot ■" "Julia ■" "Newton M ■" "Newton J ■" "Popcorn C ■" "Popcorn R ■"\
      "Mandelbrot ■" "Julia ■" "Newton M ■" "Newton J ■" "Popcorn C ■" "Popcorn R ■"
  endparam
  param fn■
    caption="function ■"
    default=■
    enum=" " "Mandelbrot ■" "Julia ■" "Newton M ■" "Newton J ■" "Popcorn C ■" "Popcorn R ■"\
      "Mandelbrot ■" "Julia ■" "Newton M ■" "Newton J ■" "Popcorn C ■" "Popcorn R ■"
    visible=(@nfunction>■)
  endparam
  param fn■
    caption="function ■"
    default=■
    enum=" " "Mandelbrot ■" "Julia ■" "Newton M ■" "Newton J ■" "Popcorn C ■" "Popcorn R ■"\
      "Mandelbrot ■" "Julia ■" "Newton M ■" "Newton J ■" "Popcorn C ■" "Popcorn R ■"
    visible=(@nfunction>■)
  endparam
  param fn■
    caption="function ■"
    default=■
    enum=" " "Mandelbrot ■" "Julia ■" "Newton M ■" "Newton J ■" "Popcorn C ■" "Popcorn R ■"\
      "Mandelbrot ■" "Julia ■" "Newton M ■" "Newton J ■" "Popcorn C ■" "Popcorn R ■"
    visible=(@nfunction>■)
  endparam
  param fn■
    caption="function ■"
    default=■
    enum=" " "Mandelbrot ■" "Julia ■" "Newton M ■" "Newton J ■" "Popcorn C ■" "Popcorn R ■"\
      "Mandelbrot ■" "Julia ■" "Newton M ■" "Newton J ■" "Popcorn C ■" "Popcorn R ■"
    visible=(@nfunction>■)
  endparam
  param fn■
    caption="function ■"
    default=■
    enum=" " "Mandelbrot ■" "Julia ■" "Newton M ■" "Newton J ■" "Popcorn C ■" "Popcorn R ■"\
      "Mandelbrot ■" "Julia ■" "Newton M ■" "Newton J ■" "Popcorn C ■" "Popcorn R ■"
    visible=(@nfunction>■)
  endparam
;
  complex param m■power
    caption="Mandelbrot ■ power"
    default=(■,■)
    visible=((@fn■=="Mandelbrot ■")||(@fn■=="Mandelbrot ■")||(@fn■=="Mandelbrot ■")||\
      (@fn■=="Mandelbrot ■")||(@fn■=="Mandelbrot ■")||(@fn■=="Mandelbrot ■"))
  endparam
  complex param m■weight
    caption="Mandelbrot ■ weight"
    default=■
    visible=((@fn■=="Mandelbrot ■")||(@fn■=="Mandelbrot ■")||(@fn■=="Mandelbrot ■")||\
      (@fn■=="Mandelbrot ■")||(@fn■=="Mandelbrot ■")||(@fn■=="Mandelbrot ■"))
  endparam
  complex param j■power
    caption="Julia ■ power"
    default=(■,■)
    visible=((@fn■=="Julia ■")||(@fn■=="Julia ■")||(@fn■=="Julia ■")||\
      (@fn■=="Julia ■")||(@fn■=="Julia ■")||(@fn■=="Julia ■"))
  endparam
  complex param j■param
    caption="Julia ■ parameter"
    default=(■,■)
    visible=((@fn■=="Julia ■")||(@fn■=="Julia ■")||(@fn■=="Julia ■")||\
      (@fn■=="Julia ■")||(@fn■=="Julia ■")||(@fn■=="Julia ■"))
  endparam
  complex param j■weight
    caption="Julia ■ weight"
    default=■
    visible=((@fn■=="Julia ■")||(@fn■=="Julia ■")||(@fn■=="Julia ■")||\
      (@fn■=="Julia ■")||(@fn■=="Julia ■")||(@fn■=="Julia ■"))
  endparam
  complex param nm■power
    caption="Newton M ■ power"
    default=(■,■)
    visible=((@fn■=="Newton M ■")||(@fn■=="Newton M ■")||(@fn■=="Newton M ■")||\
      (@fn■=="Newton M ■")||(@fn■=="Newton M ■")||(@fn■=="Newton M ■"))
  endparam
  complex param nm■weight
    caption="Newton M ■ nova fac"
    default=■
    visible=((@fn■=="Newton M ■")||(@fn■=="Newton M ■")||(@fn■=="Newton M ■")||\
      (@fn■=="Newton M ■")||(@fn■=="Newton M ■")||(@fn■=="Newton M ■"))
  endparam
  complex param nj■power
    caption="Newton J ■ power"
    default=(■,■)
    visible=((@fn■=="Newton J ■")||(@fn■=="Newton J ■")||(@fn■=="Newton J ■")||\
      (@fn■=="Newton J ■")||(@fn■=="Newton J ■")||(@fn■=="Newton J ■"))
  endparam
  complex param nj■param
    caption="Newton J ■ parameter"
    default=(■,■)
    visible=((@fn■=="Newton J ■")||(@fn■=="Newton J ■")||(@fn■=="Newton J ■")||\
      (@fn■=="Newton J ■")||(@fn■=="Newton J ■")||(@fn■=="Newton J ■"))
  endparam
  complex param nj■weight
    caption="Newton J ■ nova fac"
    default=■
    visible=((@fn■=="Newton J ■")||(@fn■=="Newton J ■")||(@fn■=="Newton J ■")||\
      (@fn■=="Newton J ■")||(@fn■=="Newton J ■")||(@fn■=="Newton J ■"))
  endparam
  complex param pc■h
    caption="complex step size ■"
    default=(■.■,■)
    visible=((@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■")||\
      (@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■"))
  endparam
  complex param pc■c
    caption="complex frequency ■"
    default=(■,■)
    visible=((@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■")||\
      (@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■"))
  endparam
  func pc■out
    caption="complex outer function ■"
    default=sin()
    visible=((@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■")||\
      (@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■"))
  endfunc
  func pc■in
    caption="complex inner function ■"
    default=tan()
    visible=((@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■")||\
      (@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■"))
  endfunc
  float param pr■h
    caption="real step size ■"
    default=■.■
    visible=((@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■")||\
      (@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■"))
  endparam
  float param pr■c
    caption="real frequency ■"
    default=■
    visible=((@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■")||\
      (@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■"))
  endparam
  func pr■out
    caption="real outer function ■"
    default=sin()
    visible=((@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■")||\
      (@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■"))
  endfunc
  func pr■in
    caption="real inner function ■"
    default=tan()
    visible=((@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■")||\
      (@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■"))
  endfunc
  complex param m■power
    caption="Mandelbrot ■ power"
    default=(■,■)
    visible=((@fn■=="Mandelbrot ■")||(@fn■=="Mandelbrot ■")||(@fn■=="Mandelbrot ■")||\
      (@fn■=="Mandelbrot ■")||(@fn■=="Mandelbrot ■")||(@fn■=="Mandelbrot ■"))
  endparam
  complex param m■weight
    caption="Mandelbrot ■ weight"
    default=■
    visible=((@fn■=="Mandelbrot ■")||(@fn■=="Mandelbrot ■")||(@fn■=="Mandelbrot ■")||\
      (@fn■=="Mandelbrot ■")||(@fn■=="Mandelbrot ■")||(@fn■=="Mandelbrot ■"))
  endparam
  complex param j■power
    caption="Julia ■ power"
    default=(■,■)
    visible=((@fn■=="Julia ■")||(@fn■=="Julia ■")||(@fn■=="Julia ■")||\
      (@fn■=="Julia ■")||(@fn■=="Julia ■")||(@fn■=="Julia ■"))
  endparam
  complex param j■param
    caption="Julia ■ parameter"
    default=(■,■)
    visible=((@fn■=="Julia ■")||(@fn■=="Julia ■")||(@fn■=="Julia ■")||\
      (@fn■=="Julia ■")||(@fn■=="Julia ■")||(@fn■=="Julia ■"))
  endparam
  complex param j■weight
    caption="Julia ■ weight"
    default=■
    visible=((@fn■=="Julia ■")||(@fn■=="Julia ■")||(@fn■=="Julia ■")||\
      (@fn■=="Julia ■")||(@fn■=="Julia ■")||(@fn■=="Julia ■"))
  endparam
  complex param nm■power
    caption="Newton M ■ power"
    default=(■,■)
    visible=((@fn■=="Newton M ■")||(@fn■=="Newton M ■")||(@fn■=="Newton M ■")||\
      (@fn■=="Newton M ■")||(@fn■=="Newton M ■")||(@fn■=="Newton M ■"))
  endparam
  complex param nm■weight
    caption="Newton M ■ nova fac"
    default=■
    visible=((@fn■=="Newton M ■")||(@fn■=="Newton M ■")||(@fn■=="Newton M ■")||\
      (@fn■=="Newton M ■")||(@fn■=="Newton M ■")||(@fn■=="Newton M ■"))
  endparam
  complex param nj■power
    caption="Newton J ■ power"
    default=(■,■)
    visible=((@fn■=="Newton J ■")||(@fn■=="Newton J ■")||(@fn■=="Newton J ■")||\
      (@fn■=="Newton J ■")||(@fn■=="Newton J ■")||(@fn■=="Newton J ■"))
  endparam
  complex param nj■param
    caption="Newton J ■ parameter"
    default=(■,■)
    visible=((@fn■=="Newton J ■")||(@fn■=="Newton J ■")||(@fn■=="Newton J ■")||\
      (@fn■=="Newton J ■")||(@fn■=="Newton J ■")||(@fn■=="Newton J ■"))
  endparam
  complex param nj■weight
    caption="Newton J ■ nova fac"
    default=(■,■)
    visible=((@fn■=="Newton J ■")||(@fn■=="Newton J ■")||(@fn■=="Newton J ■")||\
      (@fn■=="Newton J ■")||(@fn■=="Newton J ■")||(@fn■=="Newton J ■"))
  endparam
  complex param pc■h
    caption="complex step size ■"
    default=(■.■,■)
    visible=((@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■")||\
      (@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■"))
  endparam
  complex param pc■c
    caption="complex frequency ■"
    default=(■,■)
    visible=((@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■")||\
      (@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■"))
  endparam
  func pc■out
    caption="complex outer function ■"
    default=sin()
    visible=((@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■")||\
      (@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■"))
  endfunc
  func pc■in
    caption="complex inner function ■"
    default=tan()
    visible=((@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■")||\
      (@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■")||(@fn■=="Popcorn C ■"))
  endfunc
  float param pr■h
    caption="real step size ■"
    default=■.■
    visible=((@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■")||\
      (@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■"))
  endparam
  float param pr■c
    caption="real frequency ■"
    default=■
    visible=((@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■")||\
      (@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■"))
  endparam
  func pr■out
    caption="real outer function ■"
    default=sin()
    visible=((@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■")||\
      (@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■"))
  endfunc
  func pr■in
    caption="real inner function ■"
    default=tan()
    visible=((@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■")||\
      (@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■")||(@fn■=="Popcorn R ■"))
  endfunc
;
; oscillator/ramp
;
  heading
    caption="Oscillator"
  endheading
  param oscillator_type
    caption="type"
    default=■
    enum="ramp" "sine" "cosine" "random msb" "random lsb"
  endparam
  int param initial_seed
    caption="random seed"
    default=■■■■
    visible=((@oscillator_type=="random msb")||(@oscillator_type=="random lsb"))
  endparam
}
not generated by AI logo